@chatcops/widget 0.6.0 → 0.7.0

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 (89) hide show
  1. package/README.md +2 -1
  2. package/dist/api/client.d.ts +17 -2
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/protocol.d.ts +7 -1
  5. package/dist/api/protocol.d.ts.map +1 -1
  6. package/dist/api/turnstile.d.ts.map +1 -1
  7. package/dist/api/types.d.ts +7 -0
  8. package/dist/api/types.d.ts.map +1 -1
  9. package/dist/chatcops.esm.js +1093 -499
  10. package/dist/chatcops.full.min.js +1 -0
  11. package/dist/chatcops.min.js +1 -1
  12. package/dist/chatcops.panel.js +1 -0
  13. package/dist/chunks/prechat-form-DiHgHUnU.js +1 -0
  14. package/dist/chunks/turnstile-CAnVL3fK.js +1 -0
  15. package/dist/dom/bubble.d.ts +3 -0
  16. package/dist/dom/bubble.d.ts.map +1 -1
  17. package/dist/dom/fab.d.ts +4 -1
  18. package/dist/dom/fab.d.ts.map +1 -1
  19. package/dist/dom/icons.d.ts +4 -0
  20. package/dist/dom/icons.d.ts.map +1 -0
  21. package/dist/dom/input.d.ts +1 -0
  22. package/dist/dom/input.d.ts.map +1 -1
  23. package/dist/dom/messages.d.ts +38 -1
  24. package/dist/dom/messages.d.ts.map +1 -1
  25. package/dist/dom/panel.d.ts +8 -0
  26. package/dist/dom/panel.d.ts.map +1 -1
  27. package/dist/dom/prechat-form.d.ts.map +1 -1
  28. package/dist/dom/shadow.d.ts +10 -1
  29. package/dist/dom/shadow.d.ts.map +1 -1
  30. package/dist/i18n.d.ts +7 -1
  31. package/dist/i18n.d.ts.map +1 -1
  32. package/dist/index.d.ts +41 -5
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/loader/index.d.ts +2 -0
  35. package/dist/loader/index.d.ts.map +1 -0
  36. package/dist/loader/loader.d.ts +71 -0
  37. package/dist/loader/loader.d.ts.map +1 -0
  38. package/dist/locales/ar.d.ts +4 -0
  39. package/dist/locales/ar.d.ts.map +1 -0
  40. package/dist/locales/ar.js +1 -0
  41. package/dist/locales/de.d.ts +4 -0
  42. package/dist/locales/de.d.ts.map +1 -0
  43. package/dist/locales/de.js +1 -0
  44. package/dist/locales/es.d.ts +4 -0
  45. package/dist/locales/es.d.ts.map +1 -0
  46. package/dist/locales/es.js +1 -0
  47. package/dist/locales/fr.d.ts +4 -0
  48. package/dist/locales/fr.d.ts.map +1 -0
  49. package/dist/locales/fr.js +1 -0
  50. package/dist/locales/he.d.ts +4 -0
  51. package/dist/locales/he.d.ts.map +1 -0
  52. package/dist/locales/he.js +1 -0
  53. package/dist/locales/hi.d.ts +4 -0
  54. package/dist/locales/hi.d.ts.map +1 -0
  55. package/dist/locales/hi.js +1 -0
  56. package/dist/locales/it.d.ts +4 -0
  57. package/dist/locales/it.d.ts.map +1 -0
  58. package/dist/locales/it.js +1 -0
  59. package/dist/locales/ja.d.ts +4 -0
  60. package/dist/locales/ja.d.ts.map +1 -0
  61. package/dist/locales/ja.js +1 -0
  62. package/dist/locales/ko.d.ts +4 -0
  63. package/dist/locales/ko.d.ts.map +1 -0
  64. package/dist/locales/ko.js +1 -0
  65. package/dist/locales/nl.d.ts +4 -0
  66. package/dist/locales/nl.d.ts.map +1 -0
  67. package/dist/locales/nl.js +1 -0
  68. package/dist/locales/pt.d.ts +4 -0
  69. package/dist/locales/pt.d.ts.map +1 -0
  70. package/dist/locales/pt.js +1 -0
  71. package/dist/locales/ur.d.ts +4 -0
  72. package/dist/locales/ur.d.ts.map +1 -0
  73. package/dist/locales/ur.js +1 -0
  74. package/dist/locales/zh.d.ts +4 -0
  75. package/dist/locales/zh.d.ts.map +1 -0
  76. package/dist/locales/zh.js +1 -0
  77. package/dist/panel.d.ts +6 -0
  78. package/dist/panel.d.ts.map +1 -0
  79. package/dist/script-config.d.ts +5 -0
  80. package/dist/script-config.d.ts.map +1 -0
  81. package/dist/storage.d.ts +30 -10
  82. package/dist/storage.d.ts.map +1 -1
  83. package/dist/theme.d.ts +15 -0
  84. package/dist/theme.d.ts.map +1 -1
  85. package/dist/version.d.ts +3 -0
  86. package/dist/version.d.ts.map +1 -0
  87. package/dist/widget.d.ts +125 -14
  88. package/dist/widget.d.ts.map +1 -1
  89. package/package.json +7 -3
@@ -8,6 +8,10 @@ export interface MessageData {
8
8
  errorType?: MessageErrorType;
9
9
  /** Shown under the content when a reply fails after some of it already streamed. */
10
10
  errorText?: string;
11
+ sources?: Array<{
12
+ url: string;
13
+ title?: string;
14
+ }>;
11
15
  }
12
16
  export interface MessageActions {
13
17
  onRetry?: (messageId: string) => void;
@@ -15,17 +19,44 @@ export interface MessageActions {
15
19
  retryLabel?: string;
16
20
  regenerateLabel?: string;
17
21
  typingLabel?: string;
22
+ sourcesLabel?: string;
18
23
  }
19
24
  export declare class Messages {
20
25
  private container;
26
+ private streams;
27
+ private streamIntervalMs;
28
+ private announcement;
21
29
  private typingEl;
30
+ private suggestionsEl;
31
+ private disclosureEl;
22
32
  private actions?;
23
- constructor(parent: HTMLElement, actions?: MessageActions);
33
+ constructor(parent: HTMLElement, actions?: MessageActions, options?: {
34
+ streamIntervalMs?: number;
35
+ });
36
+ beginReply(): void;
37
+ finishReply(msg?: MessageData): void;
24
38
  addMessage(msg: MessageData): HTMLDivElement;
25
39
  updateMessage(msg: MessageData): void;
40
+ /** Takes the reply's text so far, and renders what changed on the next frame. */
41
+ private stream;
42
+ /** Renders on the next frame that's at least the interval after the last render. */
43
+ private schedule;
44
+ private renderStream;
45
+ private endStream;
46
+ private nearBottom;
26
47
  showTyping(): void;
27
48
  removeTyping(): void;
49
+ showSuggestions(suggestions: string[], label: string, onSelect: (suggestion: string) => void): void;
50
+ removeSuggestions(): void;
28
51
  clear(): void;
52
+ /**
53
+ * The note that visitors are talking to an AI, always first in the log.
54
+ * Only http(s) links become a "Learn more" link.
55
+ */
56
+ setDisclosure(text?: string, learnMore?: {
57
+ url: string;
58
+ label: string;
59
+ }): void;
29
60
  removeMessage(id: string): void;
30
61
  clearRegenerateButtons(): void;
31
62
  showRegenerateButton(messageId: string): void;
@@ -40,4 +71,10 @@ export declare class Messages {
40
71
  private createActionButton;
41
72
  private escapeHtml;
42
73
  }
74
+ /**
75
+ * Where the open block starts: just after the last blank line (and any more
76
+ * newlines) that isn't inside a ``` fence, scanning from `from`, which is
77
+ * itself outside a fence.
78
+ */
79
+ export declare function lastBlockBoundary(text: string, from: number): number;
43
80
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/dom/messages.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AAE/I,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAiB;gBAErB,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc;IASzD,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc;IAQ5C,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAQrC,UAAU,IAAI,IAAI;IASlB,YAAY,IAAI,IAAI;IAOpB,KAAK,IAAI,IAAI;IAKb,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/B,sBAAsB,IAAI,IAAI;IAO9B,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAiB7C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,UAAU;CAKnB"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/dom/messages.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AAE/I,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA0BD,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,OAAO,CAAC,CAAiB;gBAErB,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;IAgBtG,UAAU,IAAI,IAAI;IAKlB,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI;IAUpC,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc;IAY5C,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAarC,iFAAiF;IACjF,OAAO,CAAC,MAAM;IAoBd,oFAAoF;IACpF,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAKlB,UAAU,IAAI,IAAI;IASlB,YAAY,IAAI,IAAI;IAOpB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAoBnG,iBAAiB,IAAI,IAAI;IAKzB,KAAK,IAAI,IAAI;IAQb;;;OAGG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAoB9E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAM/B,sBAAsB,IAAI,IAAI;IAO9B,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAiB7C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,oBAAoB;IAuE5B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,UAAU;CAKnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBpE"}
@@ -18,13 +18,21 @@ export interface PanelOptions {
18
18
  onSend: (text: string) => void;
19
19
  onClose: () => void;
20
20
  }
21
+ /** The parts of the panel that `update()` can change. */
22
+ export type PanelLabels = Pick<PanelOptions, 'branding' | 'placeholder' | 'footerText' | 'closeLabel' | 'sendLabel'>;
21
23
  export declare class Panel {
22
24
  private el;
23
25
  private inline;
26
+ private options;
27
+ private header;
28
+ private footer;
24
29
  messages: Messages;
25
30
  input: Input;
26
31
  messagesContainer: HTMLElement;
27
32
  constructor(root: ShadowRoot, options: PanelOptions);
33
+ /** New wording or branding, applied in place. */
34
+ update(labels: PanelLabels, actionLabels?: Partial<MessageActions>): void;
35
+ private renderHeader;
28
36
  show(): void;
29
37
  hide(): void;
30
38
  containsFocus(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/dom/panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAKnC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,GAAG,aAAa,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAAU;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,WAAW,CAAC;gBAEnB,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY;IA8EnD,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAKZ,aAAa,IAAI,OAAO;IAIxB,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc;IAI5C,YAAY,IAAI,IAAI;IAIpB,YAAY,IAAI,IAAI;IAIpB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;CAKnB"}
1
+ {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/dom/panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAKnC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,GAAG,aAAa,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,yDAAyD;AACzD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;AAErH,qBAAa,KAAK;IAChB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,WAAW,CAAC;gBAEnB,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY;IA6EnD,iDAAiD;IACjD,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IASzE,OAAO,CAAC,YAAY;IAoCpB,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAKZ,aAAa,IAAI,OAAO;IAIxB,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc;IAI5C,YAAY,IAAI,IAAI;IAIpB,YAAY,IAAI,IAAI;IAIpB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;CAKnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"prechat-form.d.ts","sourceRoot":"","sources":["../../src/dom/prechat-form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKtD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CAClD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,aAAa,CAAiF;IACtG,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAqB;gBAExB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB;IAgD5D,OAAO,CAAC,WAAW;IAiFnB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,YAAY;IAIpB,OAAO,IAAI,IAAI;CAKhB"}
1
+ {"version":3,"file":"prechat-form.d.ts","sourceRoot":"","sources":["../../src/dom/prechat-form.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAStD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CAClD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,aAAa,CAAiF;IACtG,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAqB;gBAExB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB;IAiD5D,OAAO,CAAC,WAAW;IAiFnB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,YAAY;IAIpB,OAAO,IAAI,IAAI;CAKhB"}
@@ -1,10 +1,19 @@
1
+ export declare const HOST_ID = "chatcops-root";
1
2
  /**
2
3
  * Creates the widget's host element and shadow root. The first widget on the
3
4
  * page keeps the id `chatcops-root` (sites style it); later ones get
4
5
  * `chatcops-root-2`, `chatcops-root-3` and so on. Every host has the class
5
6
  * `chatcops-root`.
6
7
  */
7
- export declare function createShadowRoot(container?: HTMLElement): ShadowRoot;
8
+ export interface ShadowOptions {
9
+ dir?: 'ltr' | 'rtl' | 'auto';
10
+ locale?: string;
11
+ }
12
+ /** Marks a registered language as right-to-left, or left-to-right. */
13
+ export declare function setLanguageDirection(code: string, dir: 'ltr' | 'rtl'): void;
14
+ export declare function resolveDirection(configured: ShadowOptions['dir'], locale?: string): 'ltr' | 'rtl' | 'auto';
15
+ export declare function createShadowRoot(container?: HTMLElement, options?: ShadowOptions): ShadowRoot;
8
16
  /** Removes the host this widget created, and no other widget's. */
9
17
  export declare function destroyShadowRoot(shadow?: ShadowRoot): void;
18
+ export declare function nextHostId(): string;
10
19
  //# sourceMappingURL=shadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/dom/shadow.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,UAAU,CAkBpE;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAE3D"}
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/dom/shadow.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAI3E;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAK1G;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,aAAkB,GAAG,UAAU,CAoBjG;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAE3D;AAED,wBAAgB,UAAU,IAAI,MAAM,CAKnC"}
package/dist/i18n.d.ts CHANGED
@@ -29,7 +29,13 @@ export interface WidgetLocaleStrings {
29
29
  preChatInvalidEmail: string;
30
30
  retryButton: string;
31
31
  regenerateButton: string;
32
+ suggestionsLabel: string;
33
+ unreadCount: string;
34
+ sourcesLabel: string;
35
+ disclosure: string;
36
+ disclosureLearnMore: string;
32
37
  }
33
38
  export declare function getWidgetLocale(code: string, overrides?: Partial<WidgetLocaleStrings>): WidgetLocaleStrings;
34
- export declare function registerWidgetLocale(code: string, strings: WidgetLocaleStrings): void;
39
+ /** Adds or replaces a language. Strings it leaves out stay in English. */
40
+ export declare function registerWidgetLocale(code: string, strings: Partial<WidgetLocaleStrings>): void;
35
41
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAoCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAG3G;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAErF"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAyCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAG3G;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAE9F"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,49 @@
1
- import { Widget, type WidgetConfig, type WidgetEventType, type WidgetEventHandler } from './widget.js';
2
- export { Widget, type WidgetConfig, type WidgetEventType, type WidgetEventHandler, } from './widget.js';
3
- export declare function parseAutoOpen(value?: string): boolean | number | undefined;
1
+ import { Widget, type WidgetConfig, type WidgetUpdate, type WidgetEventType, type WidgetEventHandler } from './widget.js';
2
+ import { type WidgetLocaleStrings } from './i18n.js';
3
+ export { Widget, type WidgetConfig, type WidgetUpdate, type PreChatField, type PreChatFormConfig, type WidgetEvents, type WidgetEventType, type WidgetEventHandler, } from './widget.js';
4
+ export type { MessageData, MessageErrorType, MessageStatus } from './dom/messages.js';
5
+ export type { ThemeConfig, ThemeMode } from './theme.js';
6
+ export type { Persistence } from './storage.js';
7
+ export type { WidgetLocaleStrings } from './i18n.js';
8
+ export { parseAutoOpen } from './script-config.js';
4
9
  declare const ChatCops: {
5
10
  init(config: WidgetConfig): Widget;
6
11
  open(): void;
7
12
  close(): void;
13
+ toggle(): void;
14
+ /** Sends `text` as the visitor (opening the chat unless `open: false`); resolves when the reply is done. */
15
+ sendMessage(text: string, options?: {
16
+ open?: boolean;
17
+ }): Promise<void>;
18
+ /** A fresh conversation: new id, the log back to the welcome message. */
19
+ newConversation(): void;
20
+ /** A fresh conversation, and the saved transcript and pre-chat answers removed from this browser. */
21
+ clear(): void;
22
+ /**
23
+ * Adds a language, or replaces one: its strings, with English for any it
24
+ * leaves out, and `dir: 'rtl'` for right-to-left. Use the code as `locale`.
25
+ */
26
+ registerLocale(code: string, strings: Partial<WidgetLocaleStrings>, options?: {
27
+ dir?: "ltr" | "rtl";
28
+ }): void;
29
+ /**
30
+ * The signed-in visitor: `token` for the server, `name` and `email` as
31
+ * visitor details. Another user, or `null` to sign out, clears the chat.
32
+ */
33
+ setUser(user: {
34
+ name?: string;
35
+ email?: string;
36
+ token?: string;
37
+ } | null): void;
38
+ /** Details the bot should know for the next messages, such as `{ plan: 'Team' }`. `null` removes them. */
39
+ setContext(data: Record<string, string> | null): void;
40
+ /** Changes the theme, branding or wording of the running chat. What you leave out stays as it is. */
41
+ update(changes: WidgetUpdate): void;
42
+ /** The widget's version. */
43
+ version: string;
8
44
  destroy(): void;
9
- on(event: WidgetEventType, handler: WidgetEventHandler): () => void;
10
- off(event: WidgetEventType, handler: WidgetEventHandler): void;
45
+ on<E extends WidgetEventType>(event: E, handler: WidgetEventHandler<E>): () => void;
46
+ off<E extends WidgetEventType>(event: E, handler: WidgetEventHandler<E>): void;
11
47
  };
12
48
  export default ChatCops;
13
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAKrB,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAM1E;AAED,QAAA,MAAM,QAAQ;iBACC,YAAY,GAAG,MAAM;YAc1B,IAAI;aAIH,IAAI;eAIF,IAAI;cAKL,eAAe,WAAW,kBAAkB,GAAG,MAAM,IAAI;eAaxD,eAAe,WAAW,kBAAkB,GAAG,IAAI;CAI/D,CAAC;AA0DF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAG3E,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,QAAA,MAAM,QAAQ;iBACC,YAAY,GAAG,MAAM;YAc1B,IAAI;aAIH,IAAI;cAIH,IAAI;IAId,4GAA4G;sBAC1F,MAAM,YAAY;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,yEAAyE;uBACtD,IAAI;IAIvB,qGAAqG;aAC5F,IAAI;IAIb;;;OAGG;yBACkB,MAAM,WAAW,OAAO,CAAC,mBAAmB,CAAC,YAAY;QAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GAAG,IAAI;IAK5G;;;OAGG;kBACW;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI;IAI7E,0GAA0G;qBACzF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI;IAIrD,qGAAqG;oBACrF,YAAY,GAAG,IAAI;IAInC,4BAA4B;;eAGjB,IAAI;OAKZ,CAAC,SAAS,eAAe,SAAS,CAAC,WAAW,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;QAa/E,CAAC,SAAS,eAAe,SAAS,CAAC,WAAW,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;CAI/E,CAAC;AAuBF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ import type { Widget, WidgetConfig, WidgetEventHandler, WidgetEventType, WidgetUpdate } from '../widget.js';
3
+ export interface PanelModule {
4
+ Widget: typeof Widget;
5
+ /** Starts loading what the config needs (the pre-chat form's chunk). */
6
+ prefetch?: (config: WidgetConfig) => void;
7
+ }
8
+ /** `window.ChatCops` in the script tag build. */
9
+ export interface ChatCopsLoader {
10
+ /** Shows the launcher, and loads the chat the first time it's needed. */
11
+ init(config: WidgetConfig): void;
12
+ open(): void;
13
+ close(): void;
14
+ toggle(): void;
15
+ destroy(): void;
16
+ on<E extends WidgetEventType>(event: E, handler: WidgetEventHandler<E>): () => void;
17
+ off<E extends WidgetEventType>(event: E, handler: WidgetEventHandler<E>): void;
18
+ /** Sends `text` as the visitor, loading and opening the chat first (unless `open: false`). */
19
+ sendMessage(text: string, options?: {
20
+ open?: boolean;
21
+ }): Promise<void>;
22
+ /** A fresh conversation: new id, the log back to the welcome message. */
23
+ newConversation(): void;
24
+ /** A fresh conversation, and the saved transcript and pre-chat answers removed from this browser. */
25
+ clear(): void;
26
+ /** Adds or replaces a language for `locale`: its strings (English for any left out), and `dir`. */
27
+ registerLocale(code: string, strings: Partial<WidgetLocaleStrings>, options?: {
28
+ dir?: 'ltr' | 'rtl';
29
+ }): void;
30
+ /** The signed-in visitor (token, name, email). Another user, or `null`, clears the chat. Kept until the chat loads. */
31
+ setUser(user: {
32
+ name?: string;
33
+ email?: string;
34
+ token?: string;
35
+ } | null): void;
36
+ /** Details the bot should know for the next messages. `null` removes them. Kept until the chat loads. */
37
+ setContext(data: Record<string, string> | null): void;
38
+ /** Changes the theme, branding or wording of the chat. What you leave out stays as it is. Kept until the chat loads. */
39
+ update(changes: WidgetUpdate): void;
40
+ /** The widget's version. */
41
+ readonly version: string;
42
+ }
43
+ /** A translation file in `dist/locales/`: the widget's strings for one language. */
44
+ export interface LocaleModule {
45
+ default: Partial<WidgetLocaleStrings>;
46
+ }
47
+ /**
48
+ * Where a language's strings are: `locales/<language>.js` next to the panel,
49
+ * by the language part of the code (`pt-BR` loads `pt`). English is built in,
50
+ * so it has no file.
51
+ */
52
+ export declare function localeUrlFor(panelUrl: string, locale: string): string | undefined;
53
+ /**
54
+ * Where the panel is, given the loader's own URL: next to the file
55
+ * (`…/dist/chatcops.min.js` or a renamed copy), or in the package's `dist/`
56
+ * when the page loads the bare package URL that CDNs resolve to the main
57
+ * file (`https://cdn.jsdelivr.net/npm/@chatcops/widget@0.7`).
58
+ */
59
+ export declare function panelUrlFor(loaderUrl: string, version: string): string;
60
+ /**
61
+ * The script tag build: a small launcher that looks like the chat button and
62
+ * loads the full chat (`loadPanel`) when the visitor opens it, or earlier when
63
+ * the page asks for it (`open()`, `autoOpen`, a welcome bubble, inline mode).
64
+ * Hovering or focusing the launcher starts the download, so the click rarely
65
+ * waits. Nothing here touches storage or the network before that.
66
+ *
67
+ * `loadLocale` fetches the strings for `config.locale` alongside the panel.
68
+ * If they can't load, the chat opens in English.
69
+ */
70
+ export declare function createLoader(loadPanel: () => Promise<PanelModule>, loadLocale?: (locale: string) => Promise<LocaleModule> | undefined): ChatCopsLoader;
71
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/loader/loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5G,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3C;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,EAAE,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IACpF,GAAG,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/E,8FAA8F;IAC9F,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,yEAAyE;IACzE,eAAe,IAAI,IAAI,CAAC;IACxB,qGAAqG;IACrG,KAAK,IAAI,IAAI,CAAC;IACd,mGAAmG;IACnG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7G,uHAAuH;IACvH,OAAO,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9E,yGAAyG;IACzG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACtD,wHAAwH;IACxH,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOjF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EACrC,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,SAA2B,GAClF,cAAc,CA6NhB"}
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const ar: Partial<WidgetLocaleStrings>;
3
+ export default ar;
4
+ //# sourceMappingURL=ar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../src/locales/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"كيف يمكنني مساعدتك اليوم؟",inputPlaceholder:"اكتب رسالة…",sendButton:"إرسال",closeButton:"إغلاق",openChat:"فتح المحادثة",defaultName:"مساعد الذكاء الاصطناعي",defaultSubtitle:"متصل",greetingWithName:"مرحبًا، {name}!",selectPlaceholder:"اختر {label}…",dismissBubble:"إخفاء",errorGeneric:"حدث خطأ ما. يُرجى المحاولة مرة أخرى.",errorNetwork:"حدث خطأ في الاتصال. يُرجى التحقق من اتصالك بالإنترنت.",errorRateLimit:"أرسلت رسائل كثيرة جدًا. يُرجى الانتظار قليلًا.",errorRateLimitWait:"أرسلت رسائل كثيرة جدًا. يُرجى المحاولة مرة أخرى بعد {seconds} ثانية.",errorBudget:"وصلت هذه المحادثة إلى حد الاستخدام.",errorBudgetDaily:"وصل المساعد إلى حد الاستخدام اليومي. يُرجى المحاولة لاحقًا.",errorUnavailable:"المساعد غير متاح حاليًا. يُرجى المحاولة مرة أخرى بعد قليل.",errorCutOff:"انقطع الرد قبل اكتماله.",typingIndicator:"يكتب…",poweredBy:"مدعوم من ChatCops",newConversation:"محادثة جديدة",welcomeBubbleDefault:"هل تحتاج إلى مساعدة؟ تواصل معنا!",preChatTitle:"قبل أن نبدأ…",preChatSubtitle:"أخبرنا قليلًا عنك",preChatSubmit:"ابدأ المحادثة",preChatRequired:"هذا الحقل مطلوب.",preChatInvalidEmail:"يُرجى إدخال عنوان بريد إلكتروني صالح.",retryButton:"إعادة المحاولة",regenerateButton:"إنشاء رد جديد",suggestionsLabel:"أسئلة مقترحة",unreadCount:"عدد الرسائل غير المقروءة: {count}",sourcesLabel:"المصادر",disclosure:"أنت تتحدث مع مساعد ذكاء اصطناعي. قد يرتكب أخطاء.",disclosureLearnMore:"معرفة المزيد"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const de: Partial<WidgetLocaleStrings>;
3
+ export default de;
4
+ //# sourceMappingURL=de.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/locales/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAkCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"Wie kann ich Ihnen heute helfen?",inputPlaceholder:"Nachricht eingeben…",sendButton:"Senden",closeButton:"Schließen",openChat:"Chat öffnen",defaultName:"KI-Assistent",defaultSubtitle:"Online",greetingWithName:"Hallo, {name}!",selectPlaceholder:"{label} auswählen…",dismissBubble:"Ausblenden",errorGeneric:"Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.",errorNetwork:"Verbindungsfehler. Bitte überprüfen Sie Ihre Internetverbindung.",errorRateLimit:"Sie haben zu viele Nachrichten gesendet. Bitte warten Sie einen Moment.",errorRateLimitWait:"Sie haben zu viele Nachrichten gesendet. Bitte versuchen Sie es in {seconds} Sekunden erneut.",errorBudget:"Das Limit für diesen Chat ist erreicht.",errorBudgetDaily:"Der Assistent hat sein Tageslimit erreicht. Bitte versuchen Sie es später erneut.",errorUnavailable:"Der Assistent ist momentan nicht verfügbar. Bitte versuchen Sie es später erneut.",errorCutOff:"Die Antwort wurde unterbrochen.",typingIndicator:"Der Assistent schreibt…",poweredBy:"Bereitgestellt von ChatCops",newConversation:"Neuer Chat",welcomeBubbleDefault:"Brauchen Sie Hilfe? Schreiben Sie uns!",preChatTitle:"Bevor wir beginnen…",preChatSubtitle:"Erzählen Sie uns ein wenig über sich",preChatSubmit:"Chat starten",preChatRequired:"Dieses Feld ist erforderlich.",preChatInvalidEmail:"Bitte geben Sie eine gültige E-Mail-Adresse ein.",retryButton:"Erneut versuchen",regenerateButton:"Erneut generieren",unreadCount:"Ungelesene Nachrichten: {count}",sourcesLabel:"Quellen",disclosure:"Sie chatten mit einem KI-Assistenten. Er kann Fehler machen.",disclosureLearnMore:"Mehr erfahren"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const es: Partial<WidgetLocaleStrings>;
3
+ export default es;
4
+ //# sourceMappingURL=es.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/locales/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAkCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"¿Cómo puedo ayudarte hoy?",inputPlaceholder:"Escribe un mensaje…",sendButton:"Enviar",closeButton:"Cerrar",openChat:"Abrir chat",defaultName:"Asistente de IA",defaultSubtitle:"En línea",greetingWithName:"¡Hola, {name}!",selectPlaceholder:"Selecciona {label}…",dismissBubble:"Descartar",errorGeneric:"Algo salió mal. Inténtalo de nuevo.",errorNetwork:"Error de conexión. Comprueba tu conexión a internet.",errorRateLimit:"Has enviado demasiados mensajes. Espera un momento.",errorRateLimitWait:"Has enviado demasiados mensajes. Vuelve a intentarlo en {seconds} segundos.",errorBudget:"Esta conversación alcanzó su límite.",errorBudgetDaily:"El asistente alcanzó su límite de hoy. Vuelve a intentarlo más tarde.",errorUnavailable:"El asistente no está disponible ahora. Vuelve a intentarlo más tarde.",errorCutOff:"La respuesta se interrumpió.",typingIndicator:"Escribiendo…",poweredBy:"Con tecnología de ChatCops",newConversation:"Nueva conversación",welcomeBubbleDefault:"¿Necesitas ayuda? ¡Chatea con nosotros!",preChatTitle:"Antes de empezar…",preChatSubtitle:"Cuéntanos un poco sobre ti",preChatSubmit:"Iniciar chat",preChatRequired:"Este campo es obligatorio.",preChatInvalidEmail:"Introduce un correo electrónico válido.",retryButton:"Reintentar",regenerateButton:"Volver a generar",unreadCount:"{count} sin leer",sourcesLabel:"Fuentes",disclosure:"Estás chateando con un asistente de IA. Puede cometer errores.",disclosureLearnMore:"Más información"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const fr: Partial<WidgetLocaleStrings>;
3
+ export default fr;
4
+ //# sourceMappingURL=fr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/locales/fr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAkCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"Comment puis-je vous aider aujourd’hui ?",inputPlaceholder:"Écrivez un message…",sendButton:"Envoyer",closeButton:"Fermer",openChat:"Ouvrir le chat",defaultName:"Assistant IA",defaultSubtitle:"En ligne",greetingWithName:"Bonjour {name} !",selectPlaceholder:"Sélectionnez {label}…",dismissBubble:"Masquer",errorGeneric:"Une erreur s’est produite. Veuillez réessayer.",errorNetwork:"Erreur de connexion. Vérifiez votre connexion Internet.",errorRateLimit:"Vous avez envoyé trop de messages. Veuillez patienter un instant.",errorRateLimitWait:"Vous avez envoyé trop de messages. Veuillez réessayer dans {seconds} secondes.",errorBudget:"Cette conversation a atteint sa limite.",errorBudgetDaily:"L’assistant a atteint sa limite pour aujourd’hui. Veuillez réessayer plus tard.",errorUnavailable:"L’assistant est indisponible pour le moment. Veuillez réessayer plus tard.",errorCutOff:"La réponse a été interrompue.",typingIndicator:"L’assistant est en train d’écrire…",poweredBy:"Propulsé par ChatCops",newConversation:"Nouvelle conversation",welcomeBubbleDefault:"Besoin d’aide ? Discutez avec nous !",preChatTitle:"Avant de commencer…",preChatSubtitle:"Parlez-nous un peu de vous",preChatSubmit:"Démarrer le chat",preChatRequired:"Ce champ est obligatoire.",preChatInvalidEmail:"Veuillez saisir une adresse e-mail valide.",retryButton:"Réessayer",regenerateButton:"Générer à nouveau",unreadCount:"Messages non lus : {count}",sourcesLabel:"Sources",disclosure:"Vous échangez avec un assistant IA. Il peut faire des erreurs.",disclosureLearnMore:"En savoir plus"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const he: Partial<WidgetLocaleStrings>;
3
+ export default he;
4
+ //# sourceMappingURL=he.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"he.d.ts","sourceRoot":"","sources":["../../src/locales/he.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"איך אפשר לעזור לכם היום?",inputPlaceholder:"כתבו הודעה…",sendButton:"שליחה",closeButton:"סגירה",openChat:"פתיחת צ׳אט",defaultName:"עוזר AI",defaultSubtitle:"מחובר",greetingWithName:"שלום, {name}!",selectPlaceholder:"בחירת {label}…",dismissBubble:"הסתרה",errorGeneric:"משהו השתבש. נסו שוב.",errorNetwork:"שגיאת חיבור. בדקו את החיבור לאינטרנט.",errorRateLimit:"שלחתם יותר מדי הודעות. המתינו רגע.",errorRateLimitWait:"שלחתם יותר מדי הודעות. נסו שוב בעוד {seconds} שניות.",errorBudget:"השיחה הזו הגיעה למגבלת השימוש שלה.",errorBudgetDaily:"העוזר הגיע למגבלת השימוש היומית. נסו שוב מאוחר יותר.",errorUnavailable:"העוזר אינו זמין כרגע. נסו שוב מאוחר יותר.",errorCutOff:"התשובה נקטעה.",typingIndicator:"מקליד…",poweredBy:"מופעל על ידי ChatCops",newConversation:"שיחה חדשה",welcomeBubbleDefault:"צריכים עזרה? דברו איתנו!",preChatTitle:"לפני שנתחיל…",preChatSubtitle:"ספרו לנו קצת על עצמכם",preChatSubmit:"התחלת צ׳אט",preChatRequired:"זהו שדה חובה.",preChatInvalidEmail:"הזינו כתובת אימייל תקינה.",retryButton:"ניסיון חוזר",regenerateButton:"יצירה מחדש",suggestionsLabel:"שאלות מוצעות",unreadCount:"הודעות שלא נקראו: {count}",sourcesLabel:"מקורות",disclosure:"אתם משוחחים עם עוזר מבוסס בינה מלאכותית. ייתכן שהוא יטעה.",disclosureLearnMore:"למידע נוסף"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const hi: Partial<WidgetLocaleStrings>;
3
+ export default hi;
4
+ //# sourceMappingURL=hi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hi.d.ts","sourceRoot":"","sources":["../../src/locales/hi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAiCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"मैं आज आपकी किस तरह मदद करूँ?",inputPlaceholder:"अपना संदेश लिखें…",sendButton:"भेजें",closeButton:"बंद करें",openChat:"चैट खोलें",defaultName:"एआई सहायक",defaultSubtitle:"ऑनलाइन",greetingWithName:"नमस्ते, {name}!",selectPlaceholder:"{label} चुनें…",dismissBubble:"छिपाएँ",errorGeneric:"कुछ गड़बड़ हो गई। कृपया फिर से कोशिश करें।",errorNetwork:"कनेक्शन में समस्या है। कृपया अपना इंटरनेट कनेक्शन जाँचें।",errorRateLimit:"बहुत ज़्यादा संदेश भेजे गए हैं। कृपया थोड़ी देर प्रतीक्षा करें।",errorRateLimitWait:"बहुत ज़्यादा संदेश भेजे गए हैं। कृपया {seconds} सेकंड बाद फिर कोशिश करें।",errorBudget:"इस चैट की सीमा पूरी हो गई है।",errorBudgetDaily:"सहायक की आज की सीमा पूरी हो गई है। कृपया बाद में फिर कोशिश करें।",errorUnavailable:"सहायक अभी उपलब्ध नहीं है। कृपया थोड़ी देर बाद फिर कोशिश करें।",errorCutOff:"जवाब पूरा नहीं आ पाया।",typingIndicator:"जवाब लिख रहा है…",poweredBy:"ChatCops द्वारा संचालित",newConversation:"नई बातचीत",welcomeBubbleDefault:"मदद चाहिए? हमसे चैट करें!",preChatTitle:"शुरू करने से पहले…",preChatSubtitle:"अपने बारे में थोड़ा बताइए",preChatSubmit:"चैट शुरू करें",preChatRequired:"यह फ़ील्ड ज़रूरी है।",preChatInvalidEmail:"कृपया मान्य ईमेल पता दर्ज करें।",retryButton:"फिर कोशिश करें",regenerateButton:"जवाब फिर से तैयार करें",sourcesLabel:"स्रोत",disclosure:"आप एक एआई सहायक से बातचीत कर रहे हैं। यह गलतियाँ कर सकता है।",disclosureLearnMore:"और जानें"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const it: Partial<WidgetLocaleStrings>;
3
+ export default it;
4
+ //# sourceMappingURL=it.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"it.d.ts","sourceRoot":"","sources":["../../src/locales/it.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"Come posso aiutarti oggi?",inputPlaceholder:"Scrivi un messaggio…",sendButton:"Invia",closeButton:"Chiudi",openChat:"Apri chat",defaultName:"Assistente IA",defaultSubtitle:"Online",greetingWithName:"Ciao, {name}!",selectPlaceholder:"Seleziona {label}…",dismissBubble:"Ignora",errorGeneric:"Si è verificato un errore. Riprova.",errorNetwork:"Errore di connessione. Controlla la tua rete.",errorRateLimit:"Hai inviato troppi messaggi. Attendi un momento.",errorRateLimitWait:"Hai inviato troppi messaggi. Riprova tra {seconds} secondi.",errorBudget:"Questa conversazione ha raggiunto il limite.",errorBudgetDaily:"L’assistente ha raggiunto il limite per oggi. Riprova più tardi.",errorUnavailable:"L’assistente non è disponibile al momento. Riprova più tardi.",errorCutOff:"La risposta è stata interrotta.",typingIndicator:"Sta scrivendo…",poweredBy:"Con tecnologia ChatCops",newConversation:"Nuova conversazione",welcomeBubbleDefault:"Hai bisogno di aiuto? Chatta con noi!",preChatTitle:"Prima di iniziare…",preChatSubtitle:"Parlaci un po’ di te",preChatSubmit:"Inizia chat",preChatRequired:"Questo campo è obbligatorio.",preChatInvalidEmail:"Inserisci un indirizzo email valido.",retryButton:"Riprova",regenerateButton:"Rigenera",suggestionsLabel:"Domande suggerite",unreadCount:"Messaggi non letti: {count}",sourcesLabel:"Fonti",disclosure:"Stai chattando con un assistente IA. Può commettere errori.",disclosureLearnMore:"Scopri di più"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const ja: Partial<WidgetLocaleStrings>;
3
+ export default ja;
4
+ //# sourceMappingURL=ja.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../src/locales/ja.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"今日はどのようなお手伝いができますか?",inputPlaceholder:"メッセージを入力…",sendButton:"送信",closeButton:"閉じる",openChat:"チャットを開く",defaultName:"AIアシスタント",defaultSubtitle:"オンライン",greetingWithName:"こんにちは、{name}さん!",selectPlaceholder:"{label}を選択…",dismissBubble:"閉じる",errorGeneric:"問題が発生しました。もう一度お試しください。",errorNetwork:"接続エラーが発生しました。ネットワーク接続をご確認ください。",errorRateLimit:"メッセージの送信が多すぎます。しばらくお待ちください。",errorRateLimitWait:"メッセージの送信が多すぎます。{seconds}秒後にもう一度お試しください。",errorBudget:"このチャットの利用上限に達しました。",errorBudgetDaily:"アシスタントの本日の利用上限に達しました。後でもう一度お試しください。",errorUnavailable:"現在、アシスタントを利用できません。しばらくしてからもう一度お試しください。",errorCutOff:"返信が途中で終了しました。",typingIndicator:"入力中…",poweredBy:"ChatCops 提供",newConversation:"新しい会話",welcomeBubbleDefault:"お困りですか?お気軽にご相談ください!",preChatTitle:"始める前に…",preChatSubtitle:"簡単に自己紹介をお願いします",preChatSubmit:"チャットを開始",preChatRequired:"この項目は必須です。",preChatInvalidEmail:"有効なメールアドレスを入力してください。",retryButton:"再試行",regenerateButton:"再生成",suggestionsLabel:"おすすめの質問",unreadCount:"未読メッセージ {count} 件",sourcesLabel:"情報源",disclosure:"AIアシスタントと会話しています。誤ることがあります。",disclosureLearnMore:"詳しく見る"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const ko: Partial<WidgetLocaleStrings>;
3
+ export default ko;
4
+ //# sourceMappingURL=ko.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../src/locales/ko.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"오늘 무엇을 도와드릴까요?",inputPlaceholder:"메시지를 입력하세요…",sendButton:"보내기",closeButton:"닫기",openChat:"채팅 열기",defaultName:"AI 어시스턴트",defaultSubtitle:"온라인",greetingWithName:"안녕하세요, {name}님!",selectPlaceholder:"{label} 선택…",dismissBubble:"닫기",errorGeneric:"문제가 발생했습니다. 다시 시도해 주세요.",errorNetwork:"연결 오류입니다. 네트워크를 확인해 주세요.",errorRateLimit:"메시지를 너무 많이 보냈습니다. 잠시 기다려 주세요.",errorRateLimitWait:"메시지를 너무 많이 보냈습니다. {seconds}초 후에 다시 시도해 주세요.",errorBudget:"이 채팅의 사용 한도에 도달했습니다.",errorBudgetDaily:"어시스턴트의 오늘 사용 한도에 도달했습니다. 나중에 다시 시도해 주세요.",errorUnavailable:"현재 어시스턴트를 사용할 수 없습니다. 나중에 다시 시도해 주세요.",errorCutOff:"응답이 중간에 끊겼습니다.",typingIndicator:"입력 중…",poweredBy:"ChatCops 제공",newConversation:"새 대화",welcomeBubbleDefault:"도움이 필요하신가요? 문의해 주세요!",preChatTitle:"시작하기 전에…",preChatSubtitle:"간단히 자기소개를 해 주세요",preChatSubmit:"채팅 시작",preChatRequired:"필수 입력 항목입니다.",preChatInvalidEmail:"유효한 이메일 주소를 입력해 주세요.",retryButton:"다시 시도",regenerateButton:"다시 생성",suggestionsLabel:"추천 질문",unreadCount:"읽지 않은 메시지 {count}개",sourcesLabel:"출처",disclosure:"AI 어시스턴트와 대화하고 있습니다. 잘못된 답변을 할 수 있습니다.",disclosureLearnMore:"자세히 알아보기"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const nl: Partial<WidgetLocaleStrings>;
3
+ export default nl;
4
+ //# sourceMappingURL=nl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nl.d.ts","sourceRoot":"","sources":["../../src/locales/nl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"Waarmee kan ik je vandaag helpen?",inputPlaceholder:"Typ een bericht…",sendButton:"Verzenden",closeButton:"Sluiten",openChat:"Chat openen",defaultName:"AI-assistent",defaultSubtitle:"Online",greetingWithName:"Hoi, {name}!",selectPlaceholder:"Kies {label}…",dismissBubble:"Verbergen",errorGeneric:"Er is iets misgegaan. Probeer het opnieuw.",errorNetwork:"Verbindingsfout. Controleer je internetverbinding.",errorRateLimit:"Je hebt te veel berichten verstuurd. Wacht even.",errorRateLimitWait:"Je hebt te veel berichten verstuurd. Probeer het over {seconds} seconden opnieuw.",errorBudget:"Deze chat heeft de gebruikslimiet bereikt.",errorBudgetDaily:"De assistent heeft de dagelijkse limiet bereikt. Probeer het later opnieuw.",errorUnavailable:"De assistent is momenteel niet beschikbaar. Probeer het later opnieuw.",errorCutOff:"Het antwoord is afgebroken.",typingIndicator:"Aan het typen…",poweredBy:"Mogelijk gemaakt door ChatCops",newConversation:"Nieuw gesprek",welcomeBubbleDefault:"Hulp nodig? Chat met ons!",preChatTitle:"Voordat we beginnen…",preChatSubtitle:"Vertel iets over jezelf",preChatSubmit:"Chat starten",preChatRequired:"Dit veld is verplicht.",preChatInvalidEmail:"Vul een geldig e-mailadres in.",retryButton:"Opnieuw proberen",regenerateButton:"Opnieuw genereren",suggestionsLabel:"Voorgestelde vragen",unreadCount:"Ongelezen berichten: {count}",sourcesLabel:"Bronnen",disclosure:"Je chat met een AI-assistent. Deze kan fouten maken.",disclosureLearnMore:"Meer informatie"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const pt: Partial<WidgetLocaleStrings>;
3
+ export default pt;
4
+ //# sourceMappingURL=pt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pt.d.ts","sourceRoot":"","sources":["../../src/locales/pt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"Como posso ajudar você hoje?",inputPlaceholder:"Digite uma mensagem…",sendButton:"Enviar",closeButton:"Fechar",openChat:"Abrir chat",defaultName:"Assistente de IA",defaultSubtitle:"Online",greetingWithName:"Olá, {name}!",selectPlaceholder:"Selecione {label}…",dismissBubble:"Dispensar",errorGeneric:"Algo deu errado. Tente novamente.",errorNetwork:"Erro de conexão. Verifique sua rede.",errorRateLimit:"Você enviou muitas mensagens. Aguarde um momento.",errorRateLimitWait:"Você enviou muitas mensagens. Tente novamente em {seconds} segundos.",errorBudget:"Esta conversa atingiu seu limite.",errorBudgetDaily:"O assistente atingiu o limite para hoje. Tente novamente mais tarde.",errorUnavailable:"O assistente não está disponível no momento. Tente novamente mais tarde.",errorCutOff:"A resposta foi interrompida.",typingIndicator:"Digitando…",poweredBy:"Desenvolvido por ChatCops",newConversation:"Nova conversa",welcomeBubbleDefault:"Precisa de ajuda? Converse conosco!",preChatTitle:"Antes de começar…",preChatSubtitle:"Conte-nos um pouco sobre você",preChatSubmit:"Iniciar chat",preChatRequired:"Este campo é obrigatório.",preChatInvalidEmail:"Insira um e-mail válido.",retryButton:"Tentar novamente",regenerateButton:"Gerar novamente",suggestionsLabel:"Perguntas sugeridas",unreadCount:"Não lidas: {count}",sourcesLabel:"Fontes",disclosure:"Você está conversando com um assistente de IA. Ele pode cometer erros.",disclosureLearnMore:"Saiba mais"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const ur: Partial<WidgetLocaleStrings>;
3
+ export default ur;
4
+ //# sourceMappingURL=ur.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ur.d.ts","sourceRoot":"","sources":["../../src/locales/ur.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CA+BpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"آج میں آپ کی کس طرح مدد کروں؟",inputPlaceholder:"اپنا پیغام لکھیں…",sendButton:"بھیجیں",closeButton:"بند کریں",openChat:"چیٹ کھولیں",defaultName:"اے آئی اسسٹنٹ",defaultSubtitle:"آن لائن",greetingWithName:"سلام {name}!",selectPlaceholder:"{label} منتخب کریں…",dismissBubble:"چھپائیں",errorGeneric:"کچھ غلط ہو گیا۔ براہِ کرم دوبارہ کوشش کریں۔",errorNetwork:"کنکشن میں خرابی ہے۔ براہِ کرم اپنا نیٹ ورک چیک کریں۔",errorRateLimit:"بہت زیادہ پیغامات بھیجے گئے ہیں۔ براہِ کرم تھوڑی دیر انتظار کریں۔",errorRateLimitWait:"بہت زیادہ پیغامات بھیجے گئے ہیں۔ براہِ کرم {seconds} سیکنڈ بعد دوبارہ کوشش کریں۔",errorBudget:"اس چیٹ کی حد پوری ہو گئی ہے۔",errorBudgetDaily:"اسسٹنٹ آج کی حد تک پہنچ چکا ہے۔ براہِ کرم بعد میں دوبارہ کوشش کریں۔",errorUnavailable:"اسسٹنٹ اس وقت دستیاب نہیں ہے۔ براہِ کرم تھوڑی دیر بعد دوبارہ کوشش کریں۔",errorCutOff:"جواب ادھورا رہ گیا۔",typingIndicator:"جواب لکھا جا رہا ہے…",poweredBy:"ChatCops کے ذریعے",newConversation:"نئی گفتگو",welcomeBubbleDefault:"مدد چاہیے؟ ہم سے چیٹ کریں!",preChatTitle:"شروع کرنے سے پہلے…",preChatSubtitle:"ہمیں اپنے بارے میں تھوڑا بتائیں",preChatSubmit:"چیٹ شروع کریں",preChatRequired:"یہ فیلڈ ضروری ہے",preChatInvalidEmail:"براہِ کرم درست ای میل درج کریں",retryButton:"دوبارہ کوشش کریں",regenerateButton:"جواب دوبارہ بنائیں",unreadCount:"{count} غیر پڑھے"};export{e as default};
@@ -0,0 +1,4 @@
1
+ import type { WidgetLocaleStrings } from '../i18n.js';
2
+ declare const zh: Partial<WidgetLocaleStrings>;
3
+ export default zh;
4
+ //# sourceMappingURL=zh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../src/locales/zh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAA,MAAM,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAmCpC,CAAC;AAEF,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ const e={welcomeMessage:"今天我能为您做些什么?",inputPlaceholder:"输入消息…",sendButton:"发送",closeButton:"关闭",openChat:"打开聊天",defaultName:"AI 助手",defaultSubtitle:"在线",greetingWithName:"你好,{name}!",selectPlaceholder:"选择{label}…",dismissBubble:"隐藏提示",errorGeneric:"出了点问题,请重试。",errorNetwork:"连接错误,请检查网络连接。",errorRateLimit:"消息发送过于频繁,请稍等片刻。",errorRateLimitWait:"消息发送过于频繁,请在{seconds}秒后重试。",errorBudget:"此聊天已达到使用上限。",errorBudgetDaily:"助手已达到今日使用上限,请稍后再试。",errorUnavailable:"助手暂时无法使用,请稍后再试。",errorCutOff:"回复已中断。",typingIndicator:"正在输入…",poweredBy:"由 ChatCops 提供支持",newConversation:"新对话",welcomeBubbleDefault:"需要帮助?欢迎咨询!",preChatTitle:"开始之前…",preChatSubtitle:"请简单介绍一下自己",preChatSubmit:"开始聊天",preChatRequired:"此字段为必填项。",preChatInvalidEmail:"请输入有效的电子邮件地址。",retryButton:"重试",regenerateButton:"重新生成",suggestionsLabel:"推荐问题",unreadCount:"{count}条未读消息",sourcesLabel:"来源",disclosure:"您正在与 AI 助手聊天。它可能会出错。",disclosureLearnMore:"了解更多"};export{e as default};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The chat panel chunk (`chatcops.panel.js`). The loader in `chatcops.min.js`
3
+ * imports it the first time the chat is needed.
4
+ */
5
+ export { Widget, prefetch } from './widget.js';
6
+ //# sourceMappingURL=panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { WidgetConfig } from './widget.js';
2
+ export declare function parseAutoOpen(value?: string): boolean | number | undefined;
3
+ /** The widget config from a script tag's `data-*` attributes, or `undefined` without `data-api-url`. */
4
+ export declare function configFromScript(script: HTMLScriptElement): WidgetConfig | undefined;
5
+ //# sourceMappingURL=script-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-config.d.ts","sourceRoot":"","sources":["../src/script-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAM1E;AAED,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,GAAG,SAAS,CA8CpF"}