@leadbot/components 2.21.1 → 2.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +50 -3
  2. package/dist/agentChat-8s9g6Np1.js +379 -0
  3. package/dist/agentChat-DWRE_Le4.cjs +1 -0
  4. package/dist/agentChat.d.ts +2 -0
  5. package/dist/agentChat.d.ts.map +1 -1
  6. package/dist/buttons-ecViBEJ9.js +85 -0
  7. package/dist/buttons-rml8Kh8z.cjs +1 -0
  8. package/dist/buttons.cjs +1 -0
  9. package/dist/buttons.js +3 -0
  10. package/dist/chat.cjs +1 -0
  11. package/dist/chat.js +3 -0
  12. package/dist/entries/_shared.d.ts +5 -0
  13. package/dist/entries/_shared.d.ts.map +1 -0
  14. package/dist/entries/buttons.d.ts +3 -0
  15. package/dist/entries/buttons.d.ts.map +1 -0
  16. package/dist/entries/chat.d.ts +3 -0
  17. package/dist/entries/chat.d.ts.map +1 -0
  18. package/dist/entries/flow.d.ts +3 -0
  19. package/dist/entries/flow.d.ts.map +1 -0
  20. package/dist/entries/form.d.ts +3 -0
  21. package/dist/entries/form.d.ts.map +1 -0
  22. package/dist/entries/whatsapp.d.ts +3 -0
  23. package/dist/entries/whatsapp.d.ts.map +1 -0
  24. package/dist/flow-BZED8XTR.js +5047 -0
  25. package/dist/flow-BpPqOZAo.cjs +82 -0
  26. package/dist/flow.cjs +1 -0
  27. package/dist/flow.d.ts.map +1 -1
  28. package/dist/flow.js +3 -0
  29. package/dist/form-Dc8AaZBV.cjs +1 -0
  30. package/dist/form-Df53ALbk.js +290 -0
  31. package/dist/form.cjs +1 -0
  32. package/dist/form.d.ts +1 -0
  33. package/dist/form.d.ts.map +1 -1
  34. package/dist/form.js +3 -0
  35. package/dist/i18n-DyDsn-Fk.js +93 -0
  36. package/dist/i18n-gV6rxSod.cjs +1 -0
  37. package/dist/i18n.d.ts +25 -0
  38. package/dist/i18n.d.ts.map +1 -0
  39. package/dist/index.cjs +1 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +9 -6779
  43. package/dist/jsxRuntime.module-CT7yzySL.cjs +1 -0
  44. package/dist/jsxRuntime.module-DsRxbn3o.js +657 -0
  45. package/dist/mount.d.ts +38 -2
  46. package/dist/mount.d.ts.map +1 -1
  47. package/dist/styles.css +93 -4
  48. package/dist/useStep.d.ts +47 -1
  49. package/dist/useStep.d.ts.map +1 -1
  50. package/dist/whatsapp-B3GO1RDT.cjs +1 -0
  51. package/dist/whatsapp-DGnyaume.js +128 -0
  52. package/dist/whatsapp.cjs +1 -0
  53. package/dist/whatsapp.d.ts +1 -0
  54. package/dist/whatsapp.d.ts.map +1 -1
  55. package/dist/whatsapp.js +3 -0
  56. package/package.json +39 -11
@@ -0,0 +1,290 @@
1
+ import { b as e, g as t, h as n, i as r, l as i, n as a, r as o, t as s, u as c, x as l } from "./jsxRuntime.module-DsRxbn3o.js";
2
+ import { i as u, n as d, r as f } from "./i18n-DyDsn-Fk.js";
3
+ import { buildGaUserData as p, buildSubmitPayload as m, formSchemaToFields as h, getActiveChatSession as g, getFieldOptions as _, getOrCreateVisitorId as v, getTracker as y, getVariableValue as b, resolveFieldType as x } from "@leadbot/core";
4
+ //#region src/form.tsx
5
+ var S = d("en"), ee = /* @__PURE__ */ new Set([
6
+ "form_submit",
7
+ "callback_request",
8
+ "email_request",
9
+ "whatsapp"
10
+ ]), C = /^[^@\s]+@[^@\s]+\.[^@\s]+$/, w = /^[\d\s+\-().]*$/;
11
+ function T(e) {
12
+ return e === "checkbox" ? !1 : e === "checklist" ? [] : "";
13
+ }
14
+ function E(e, t) {
15
+ return e === "checkbox" ? t !== !0 : e === "checklist" ? t.length === 0 : String(t).trim() === "";
16
+ }
17
+ function D(e, t, n, r) {
18
+ if (E(t, n)) return e.required ? r.required : null;
19
+ let i = String(n).trim();
20
+ return t === "email" && !C.test(i) ? r.invalidEmail : t === "tel" && ((i.match(/\d/g)?.length ?? 0) < 3 || !w.test(i)) ? r.invalidPhone : t === "number" && Number.isNaN(Number(i)) ? r.invalidNumber : null;
21
+ }
22
+ function O(e, t) {
23
+ return e === "checklist" ? JSON.stringify(t) : t;
24
+ }
25
+ function k(e, t, n) {
26
+ let r = {
27
+ value: n,
28
+ type: t,
29
+ label: e.label,
30
+ required: !!e.required
31
+ }, i = _(e).map((e) => e.value);
32
+ return i.length > 0 && (r.options = i), r;
33
+ }
34
+ function A(e) {
35
+ let { field: t, type: n, id: r, value: i, error: a, disabled: o, hideLabels: c, onChange: l } = e, u = a ? " leadbot-field-error" : "", d = {
36
+ "data-field": t.name,
37
+ "data-field-type": n
38
+ }, f = c ? "leadbot-visually-hidden" : void 0, p = t.placeholder ?? (c ? t.label : void 0), m = t.required ? /* @__PURE__ */ s("span", {
39
+ className: "leadbot-required-asterisk",
40
+ children: "*"
41
+ }) : null, h = a ? /* @__PURE__ */ s("div", {
42
+ className: "leadbot-field-error-text",
43
+ children: a
44
+ }) : null;
45
+ if (n === "checkbox") return /* @__PURE__ */ s("div", {
46
+ className: "leadbot-field leadbot-field-checkbox",
47
+ ...d,
48
+ children: [/* @__PURE__ */ s("label", { children: [
49
+ /* @__PURE__ */ s("input", {
50
+ type: "checkbox",
51
+ id: r,
52
+ name: t.name,
53
+ checked: i === !0,
54
+ disabled: o,
55
+ onChange: (e) => l(e.currentTarget.checked)
56
+ }),
57
+ t.label,
58
+ m
59
+ ] }), h]
60
+ });
61
+ if (n === "checklist" || n === "radiolist") {
62
+ let e = n === "checklist" ? i : null;
63
+ return /* @__PURE__ */ s("fieldset", {
64
+ className: "leadbot-field leadbot-field-list",
65
+ ...d,
66
+ children: [
67
+ /* @__PURE__ */ s("legend", {
68
+ className: `leadbot-field-list-label${c ? " leadbot-visually-hidden" : ""}`,
69
+ children: [t.label, m]
70
+ }),
71
+ /* @__PURE__ */ s("div", {
72
+ className: "leadbot-field-options",
73
+ children: _(t).map((a) => /* @__PURE__ */ s("label", {
74
+ className: "leadbot-field-option",
75
+ children: [/* @__PURE__ */ s("input", {
76
+ type: n === "checklist" ? "checkbox" : "radio",
77
+ name: `${r}-${t.name}`,
78
+ value: a.value,
79
+ disabled: o,
80
+ checked: e ? e.includes(a.value) : i === a.value,
81
+ onChange: (t) => {
82
+ e ? t.currentTarget.checked ? l([...e, a.value]) : l(e.filter((e) => e !== a.value)) : l(a.value);
83
+ }
84
+ }), /* @__PURE__ */ s("span", { children: a.label })]
85
+ }, a.value))
86
+ }),
87
+ h
88
+ ]
89
+ });
90
+ }
91
+ return n === "select" ? /* @__PURE__ */ s("div", {
92
+ className: "leadbot-field",
93
+ ...d,
94
+ children: [
95
+ /* @__PURE__ */ s("label", {
96
+ htmlFor: r,
97
+ className: f,
98
+ children: [t.label, m]
99
+ }),
100
+ /* @__PURE__ */ s("select", {
101
+ id: r,
102
+ name: t.name,
103
+ className: u.trim() || void 0,
104
+ value: i,
105
+ disabled: o,
106
+ onChange: (e) => l(e.currentTarget.value),
107
+ children: [/* @__PURE__ */ s("option", {
108
+ value: "",
109
+ children: e.selectPlaceholder
110
+ }), _(t).map((e) => /* @__PURE__ */ s("option", {
111
+ value: e.value,
112
+ children: e.label
113
+ }, e.value))]
114
+ }),
115
+ h
116
+ ]
117
+ }) : n === "textarea" ? /* @__PURE__ */ s("div", {
118
+ className: "leadbot-field",
119
+ ...d,
120
+ children: [
121
+ /* @__PURE__ */ s("label", {
122
+ htmlFor: r,
123
+ className: f,
124
+ children: [t.label, m]
125
+ }),
126
+ /* @__PURE__ */ s("textarea", {
127
+ id: r,
128
+ name: t.name,
129
+ className: u.trim() || void 0,
130
+ placeholder: p,
131
+ value: i,
132
+ disabled: o,
133
+ onInput: (e) => l(e.currentTarget.value)
134
+ }),
135
+ h
136
+ ]
137
+ }) : /* @__PURE__ */ s("div", {
138
+ className: "leadbot-field",
139
+ ...d,
140
+ children: [
141
+ /* @__PURE__ */ s("label", {
142
+ htmlFor: r,
143
+ className: f,
144
+ children: [t.label, m]
145
+ }),
146
+ /* @__PURE__ */ s("input", {
147
+ type: n,
148
+ id: r,
149
+ name: t.name,
150
+ className: u.trim() || void 0,
151
+ placeholder: p,
152
+ value: i,
153
+ disabled: o,
154
+ inputMode: n === "number" ? "decimal" : void 0,
155
+ onInput: (e) => l(e.currentTarget.value)
156
+ }),
157
+ h
158
+ ]
159
+ });
160
+ }
161
+ var te = {
162
+ callback_request: "leadbot-callback-form",
163
+ email_request: "leadbot-email-request-form"
164
+ };
165
+ function j(t) {
166
+ let _ = u(t), S = {
167
+ ...d(_),
168
+ ...t.labels
169
+ }, C = c(), { step: w, missing: E, forbidden: j } = r(t), [M, N] = i({}), [P, F] = i({}), [I, L] = i(null), [R, z] = i(!1), [B, V] = i(!1), H = t.defaults ?? f(t.stepType, _), U = w?.attributes ?? {}, W = U.form_schema, G = W ? h(W) : [], K = t.fields ?? (G.length > 0 ? G : H?.fields) ?? [], q = t.stepType ?? (ee.has(w?.step_type) ? w?.step_type : void 0), ne = t.submitLabel ?? U.button_text ?? H?.submitLabel, re = t.successMessage ?? U.success_message ?? H?.successMessage, J = t.eventLabel ?? w?.event_label ?? void 0, ie = t.marksAsQualified ?? w?.marks_as_qualified ?? void 0, Y = W?.show_title === !1 ? null : W?.title, X = `${te[q ?? "form_submit"] ?? "leadbot-form"}${t.layout === "inline" ? " leadbot-layout-inline" : ""}`, Z = (e) => x(e) ?? "text", Q = (e) => e.uuid ?? e.name, $ = (e) => M[Q(e)] ?? T(Z(e));
170
+ return B ? /* @__PURE__ */ s("div", {
171
+ className: `${X} leadbot-form-complete`,
172
+ children: /* @__PURE__ */ s("div", {
173
+ className: "leadbot-success-message",
174
+ children: re ?? b("form_success_default", _)
175
+ })
176
+ }) : K.length === 0 ? E ? /* @__PURE__ */ s(a, {
177
+ ...o(t),
178
+ forbidden: j,
179
+ lang: _
180
+ }) : null : /* @__PURE__ */ s("div", {
181
+ className: X,
182
+ children: /* @__PURE__ */ s("form", {
183
+ className: "leadbot-form-shell",
184
+ onSubmit: async (r) => {
185
+ if (r.preventDefault(), R || B) return;
186
+ L(null);
187
+ let i = {}, a = {}, o = {};
188
+ for (let e of K) {
189
+ let t = Z(e), n = $(e), r = D(e, t, n, S);
190
+ r && (i[Q(e)] = r);
191
+ let s = O(t, n);
192
+ a[e.name] = s, o[Q(e)] = k(e, t, s);
193
+ }
194
+ if (F(i), !(Object.keys(i).length > 0)) try {
195
+ if (t.onSubmit && await t.onSubmit(a) === !1) return;
196
+ z(!0);
197
+ let r = l(t), i = await r.postJson("/client/submit", m({
198
+ domainKey: r.domainKey,
199
+ leadbotId: t.leadbotId,
200
+ stepUuid: t.id,
201
+ stepType: q ?? "form_submit",
202
+ visitorId: v(),
203
+ userData: o,
204
+ analytics: n(),
205
+ components: !0,
206
+ event_label: J,
207
+ marks_as_qualified: ie,
208
+ chat_session_id: g(),
209
+ ...e(t)
210
+ }));
211
+ if (!i.ok) {
212
+ let e = null;
213
+ try {
214
+ e = await i.json();
215
+ } catch {}
216
+ let n = {};
217
+ if (Array.isArray(e?.errors)) for (let t of e.errors) {
218
+ let e = t?.field_name || t?.field_label, r = K.find((t) => t.name === e || t.label === e);
219
+ r && typeof t?.message == "string" && (n[Q(r)] = t.message);
220
+ }
221
+ F(n), Object.keys(n).length === 0 && L(S.submitError), t.onError?.(Error(typeof e?.message == "string" ? e.message : `Server error: ${i.status}`));
222
+ return;
223
+ }
224
+ y().trackFormSubmit({ event_label: J }, q ?? "form_submit", p(K, Z, $)), V(!0), t.onSuccess?.(a);
225
+ } catch (e) {
226
+ L(S.submitError), t.onError?.(e);
227
+ } finally {
228
+ z(!1);
229
+ }
230
+ },
231
+ noValidate: !0,
232
+ children: [/* @__PURE__ */ s("div", {
233
+ className: "leadbot-form-scroll",
234
+ children: [
235
+ Y && /* @__PURE__ */ s("div", {
236
+ className: "leadbot-form-title",
237
+ children: Y
238
+ }),
239
+ I && /* @__PURE__ */ s("div", {
240
+ className: "leadbot-form-error",
241
+ children: I
242
+ }),
243
+ /* @__PURE__ */ s("fieldset", {
244
+ className: "leadbot-form-fields",
245
+ disabled: R,
246
+ children: K.map((e) => /* @__PURE__ */ s(A, {
247
+ field: e,
248
+ type: Z(e),
249
+ id: `${C}-${Q(e)}`,
250
+ value: $(e),
251
+ error: P[Q(e)],
252
+ disabled: R,
253
+ hideLabels: !!t.hideLabels,
254
+ selectPlaceholder: S.selectPlaceholder,
255
+ onChange: (t) => N((n) => ({
256
+ ...n,
257
+ [Q(e)]: t
258
+ }))
259
+ }, Q(e)))
260
+ })
261
+ ]
262
+ }), /* @__PURE__ */ s("div", {
263
+ className: "leadbot-form-actions",
264
+ children: /* @__PURE__ */ s("button", {
265
+ type: "submit",
266
+ className: `leadbot-submit-btn${R ? " leadbot-loading" : ""}`,
267
+ disabled: R,
268
+ children: ne ?? b("form_submit_button", _)
269
+ })
270
+ })]
271
+ })
272
+ });
273
+ }
274
+ function M(e, n) {
275
+ return t(j, e, n);
276
+ }
277
+ function N(e, t) {
278
+ return M(e, {
279
+ ...t,
280
+ stepType: "callback_request"
281
+ });
282
+ }
283
+ function P(e, t) {
284
+ return M(e, {
285
+ ...t,
286
+ stepType: "email_request"
287
+ });
288
+ }
289
+ //#endregion
290
+ export { M as a, P as i, S as n, N as r, j as t };
package/dist/form.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./jsxRuntime.module-CT7yzySL.cjs"),t=require("./form-Dc8AaZBV.cjs");let n=require("@leadbot/core");exports.ComponentsForm=t.t,exports.DEFAULT_FORM_LABELS=t.n,exports.ROOT_CLASS=e.m,Object.defineProperty(exports,"buildAnalytics",{enumerable:!0,get:function(){return n.buildAnalytics}}),exports.init=e._,exports.loadFlow=e.v,exports.mountCallbackRequest=t.r,exports.mountEmailRequest=t.i,exports.mountForm=t.a,exports.useStep=e.a;
package/dist/form.d.ts CHANGED
@@ -21,6 +21,7 @@ export interface FormLabels {
21
21
  invalidNumber: string;
22
22
  selectPlaceholder: string;
23
23
  }
24
+ /** English label set; every other language comes from the same table. */
24
25
  export declare const DEFAULT_FORM_LABELS: FormLabels;
25
26
  export type ComponentsStepType = "form_submit" | "callback_request" | "email_request" | "whatsapp";
26
27
  export interface FormOptions extends BaseMountOptions, StepOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.tsx"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,SAAS,EAOd,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAGhB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IACnC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,mBAAmB,EAAE,UAOjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC3B,aAAa,GACb,kBAAkB,GAClB,eAAe,GACf,UAAU,CAAC;AAWd,MAAM,WAAW,WAAY,SAAQ,gBAAgB,EAAE,WAAW;IACjE,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,aAAa,GAAG,gBAAgB,CAAC,CAAC;IAC1E,yEAAyE;IACzE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAC7B;AA+OD,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,uCAyMhD;AAED,wBAAgB,SAAS,CACxB,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,WAAW,GAClB,WAAW,CAAC,WAAW,CAAC,CAE1B;AAED,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;AAa3E,wBAAgB,oBAAoB,CACnC,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,iBAAiB,GACxB,WAAW,CAAC,WAAW,CAAC,CAU1B;AAED,wBAAgB,iBAAiB,CAChC,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,iBAAiB,GACxB,WAAW,CAAC,WAAW,CAAC,CAS1B"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.tsx"],"names":[],"mappings":"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"}
package/dist/form.js ADDED
@@ -0,0 +1,3 @@
1
+ import { a as e, h as t, m as n, v as r, y as i } from "./jsxRuntime.module-DsRxbn3o.js";
2
+ import { a, i as o, n as s, r as c, t as l } from "./form-Df53ALbk.js";
3
+ export { l as ComponentsForm, s as DEFAULT_FORM_LABELS, n as ROOT_CLASS, t as buildAnalytics, r as init, i as loadFlow, c as mountCallbackRequest, o as mountEmailRequest, a as mountForm, e as useStep };
@@ -0,0 +1,93 @@
1
+ import { C as e, S as t, _ as n, d as r, l as i } from "./jsxRuntime.module-DsRxbn3o.js";
2
+ import { getVariableValue as a, resolveLanguage as o } from "@leadbot/core";
3
+ //#region src/i18n.ts
4
+ var s = (e, t) => a(e, t);
5
+ function c(e) {
6
+ return {
7
+ submitError: s("form_submit_failed", e),
8
+ required: s("form_field_required", e),
9
+ invalidEmail: s("form_invalid_email", e),
10
+ invalidPhone: s("form_invalid_phone", e),
11
+ invalidNumber: s("form_invalid_number", e),
12
+ selectPlaceholder: s("form_select_placeholder", e)
13
+ };
14
+ }
15
+ function l(e, t) {
16
+ if (e === "callback_request") return {
17
+ fields: [{
18
+ name: "name",
19
+ label: s("field_label_name", t),
20
+ type: "text",
21
+ required: !0
22
+ }, {
23
+ name: "phone",
24
+ label: s("field_label_phone", t),
25
+ type: "tel",
26
+ required: !0
27
+ }],
28
+ submitLabel: s("form_callback_submit", t),
29
+ successMessage: s("form_callback_success", t)
30
+ };
31
+ if (e === "email_request") return {
32
+ fields: [
33
+ {
34
+ name: "name",
35
+ label: s("field_label_name", t),
36
+ type: "text",
37
+ required: !0
38
+ },
39
+ {
40
+ name: "email",
41
+ label: s("field_label_email", t),
42
+ type: "email",
43
+ required: !0
44
+ },
45
+ {
46
+ name: "message",
47
+ label: s("field_label_message", t),
48
+ type: "textarea"
49
+ }
50
+ ],
51
+ successMessage: s("form_email_success", t)
52
+ };
53
+ }
54
+ function u(e) {
55
+ return {
56
+ contactName: s("whatsapp_default_contact", e),
57
+ status: s("whatsapp_status_online", e),
58
+ placeholder: s("whatsapp_placeholder", e),
59
+ messageLabel: s("whatsapp_message_label", e),
60
+ submitError: s("whatsapp_error_submission", e),
61
+ redirectError: s("whatsapp_error_redirect", e)
62
+ };
63
+ }
64
+ function d(e) {
65
+ return {
66
+ title: s("chatbot_title", e),
67
+ status: s("whatsapp_status_online", e),
68
+ reset: s("chatbot_reset", e),
69
+ send: s("chatbot_send_label", e),
70
+ menu: s("chatbot_menu_label", e),
71
+ thinking: s("chatbot_thinking", e),
72
+ searching: s("chatbot_searching", e),
73
+ usingTool: s("chatbot_using_tool", e),
74
+ chatbot_error_default: s("chatbot_error_default", e),
75
+ chatbot_error_network: s("chatbot_error_network", e),
76
+ chatbot_error_invalid_request: s("chatbot_error_invalid_request", e),
77
+ chatbot_error_step_not_found: s("chatbot_error_step_not_found", e),
78
+ chatbot_error_agent_not_found: s("chatbot_error_agent_not_found", e),
79
+ chatbot_error_agent_not_configured: s("chatbot_error_agent_not_configured", e),
80
+ chatbot_error_agent_unavailable: s("chatbot_error_agent_unavailable", e),
81
+ chatbot_error_agent_no_response: s("chatbot_error_agent_no_response", e),
82
+ chatbot_error_agent_response_failed: s("chatbot_error_agent_response_failed", e)
83
+ };
84
+ }
85
+ function f(a) {
86
+ let s = e(a).leadbotId, [c, l] = i(() => n(s));
87
+ return r(() => {
88
+ let e = () => l(n(s));
89
+ return e(), t(e);
90
+ }, [s]), o(c.language ?? a.language ?? (typeof document > "u" ? void 0 : document.documentElement.lang));
91
+ }
92
+ //#endregion
93
+ export { u as a, f as i, c as n, l as r, d as t };
@@ -0,0 +1 @@
1
+ const e=require("./jsxRuntime.module-CT7yzySL.cjs");let t=require("@leadbot/core");var n=(e,n)=>(0,t.getVariableValue)(e,n);function r(e){return{submitError:n(`form_submit_failed`,e),required:n(`form_field_required`,e),invalidEmail:n(`form_invalid_email`,e),invalidPhone:n(`form_invalid_phone`,e),invalidNumber:n(`form_invalid_number`,e),selectPlaceholder:n(`form_select_placeholder`,e)}}function i(e,t){if(e===`callback_request`)return{fields:[{name:`name`,label:n(`field_label_name`,t),type:`text`,required:!0},{name:`phone`,label:n(`field_label_phone`,t),type:`tel`,required:!0}],submitLabel:n(`form_callback_submit`,t),successMessage:n(`form_callback_success`,t)};if(e===`email_request`)return{fields:[{name:`name`,label:n(`field_label_name`,t),type:`text`,required:!0},{name:`email`,label:n(`field_label_email`,t),type:`email`,required:!0},{name:`message`,label:n(`field_label_message`,t),type:`textarea`}],successMessage:n(`form_email_success`,t)}}function a(e){return{contactName:n(`whatsapp_default_contact`,e),status:n(`whatsapp_status_online`,e),placeholder:n(`whatsapp_placeholder`,e),messageLabel:n(`whatsapp_message_label`,e),submitError:n(`whatsapp_error_submission`,e),redirectError:n(`whatsapp_error_redirect`,e)}}function o(e){return{title:n(`chatbot_title`,e),status:n(`whatsapp_status_online`,e),reset:n(`chatbot_reset`,e),send:n(`chatbot_send_label`,e),menu:n(`chatbot_menu_label`,e),thinking:n(`chatbot_thinking`,e),searching:n(`chatbot_searching`,e),usingTool:n(`chatbot_using_tool`,e),chatbot_error_default:n(`chatbot_error_default`,e),chatbot_error_network:n(`chatbot_error_network`,e),chatbot_error_invalid_request:n(`chatbot_error_invalid_request`,e),chatbot_error_step_not_found:n(`chatbot_error_step_not_found`,e),chatbot_error_agent_not_found:n(`chatbot_error_agent_not_found`,e),chatbot_error_agent_not_configured:n(`chatbot_error_agent_not_configured`,e),chatbot_error_agent_unavailable:n(`chatbot_error_agent_unavailable`,e),chatbot_error_agent_no_response:n(`chatbot_error_agent_no_response`,e),chatbot_error_agent_response_failed:n(`chatbot_error_agent_response_failed`,e)}}function s(n){let r=e.S(n).leadbotId,[i,a]=e.l(()=>e.g(r));return e.d(()=>{let t=()=>a(e.g(r));return t(),e.x(t)},[r]),(0,t.resolveLanguage)(i.language??n.language??(typeof document>`u`?void 0:document.documentElement.lang))}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
package/dist/i18n.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import { type Lang } from "@leadbot/core";
2
+ import type { AgentChatLabels } from "./agentChat";
3
+ import type { ComponentsStepType, FormLabels, FormOptions } from "./form";
4
+ import { type LeadbotComponentsConfig } from "./mount";
5
+ import type { WhatsAppLabels } from "./whatsapp";
6
+ export declare function formLabels(lang: Lang): FormLabels;
7
+ /**
8
+ * Fallback fields and copy for the preset mounters (`mountCallbackRequest`,
9
+ * `mountEmailRequest`), resolved in the bot's language rather than baked in
10
+ * English at mount time. Only used when the published step carries no schema.
11
+ */
12
+ export declare function presetDefaults(stepType: ComponentsStepType | undefined, lang: Lang): NonNullable<FormOptions["defaults"]> | undefined;
13
+ export declare function whatsappLabels(lang: Lang): WhatsAppLabels;
14
+ export declare function chatLabels(lang: Lang): AgentChatLabels;
15
+ /**
16
+ * The language a component renders its own copy in: the language of the bot as
17
+ * published, which is what the visitor-facing text of the flow is written in.
18
+ *
19
+ * `<html lang>` (or an explicit `language` option) is only the pre-boot
20
+ * fallback — a Dutch bot on a `lang="en"` page must not show English errors,
21
+ * so the flow response wins as soon as it lands. Reads the boot fetch a
22
+ * component already made; it never triggers one of its own.
23
+ */
24
+ export declare function useLeadbotLanguage(options: LeadbotComponentsConfig): Lang;
25
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,IAAI,EAAmB,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACX,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,EAEN,KAAK,uBAAuB,EAG5B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CASjD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,kBAAkB,GAAG,SAAS,EACxC,IAAI,EAAE,IAAI,GACR,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CA8ClD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CASzD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAgCtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAkBzE"}
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./jsxRuntime.module-CT7yzySL.cjs"),t=require("./i18n-gV6rxSod.cjs"),n=require("./agentChat-DWRE_Le4.cjs"),r=require("./form-Dc8AaZBV.cjs"),i=require("./whatsapp-B3GO1RDT.cjs"),a=require("./flow-BpPqOZAo.cjs"),o=require("./buttons-rml8Kh8z.cjs");let s=require("@leadbot/core");exports.AgentChat=n.t,exports.ComponentsButtons=o.t,exports.ComponentsForm=r.t,exports.ComponentsWhatsApp=i.t,exports.DEFAULT_CHAT_LABELS=n.n,exports.DEFAULT_FORM_LABELS=r.n,exports.DEFAULT_WHATSAPP_LABELS=i.n,exports.FLOW_CLASS=a.t,exports.ROOT_CLASS=e.m,Object.defineProperty(exports,"buildAnalytics",{enumerable:!0,get:function(){return s.buildAnalytics}}),exports.chatLabels=t.t,Object.defineProperty(exports,"clearFlowCache",{enumerable:!0,get:function(){return s.clearFlowCache}}),Object.defineProperty(exports,"closeWidget",{enumerable:!0,get:function(){return s.closeWidget}}),exports.formLabels=t.n,Object.defineProperty(exports,"getActiveChatSession",{enumerable:!0,get:function(){return s.getActiveChatSession}}),Object.defineProperty(exports,"getTracker",{enumerable:!0,get:function(){return s.getTracker}}),exports.init=e._,exports.loadFlow=e.v,exports.mountAgentChat=n.r,exports.mountButtons=o.n,exports.mountCallbackRequest=r.r,exports.mountEmailRequest=r.i,exports.mountFlow=a.n,exports.mountForm=r.a,exports.mountWhatsApp=i.r,Object.defineProperty(exports,"openWidget",{enumerable:!0,get:function(){return s.openWidget}}),Object.defineProperty(exports,"sendChatFeedback",{enumerable:!0,get:function(){return s.sendChatFeedback}}),Object.defineProperty(exports,"toggleWidget",{enumerable:!0,get:function(){return s.toggleWidget}}),Object.defineProperty(exports,"trackClick",{enumerable:!0,get:function(){return s.trackClick}}),Object.defineProperty(exports,"trackPageviewUrlChange",{enumerable:!0,get:function(){return s.trackPageviewUrlChange}}),exports.useLeadbotLanguage=t.i,exports.useStep=e.a,exports.whatsappLabels=t.a;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { buildAnalytics, init, loadFlow, ROOT_CLASS } from "./mount";
2
2
  export type { BaseMountOptions, LeadbotComponentsConfig, MountHandle, } from "./mount";
3
+ export { chatLabels, formLabels, useLeadbotLanguage, whatsappLabels, } from "./i18n";
3
4
  export { useStep } from "./useStep";
4
5
  export type { PublishedStep, StepOptions } from "./useStep";
5
6
  export { AgentChat, DEFAULT_CHAT_LABELS, mountAgentChat } from "./agentChat";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrE,YAAY,EACX,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,GACT,MAAM,QAAQ,CAAC;AAChB,YAAY,EACX,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACN,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACX,cAAc,EACd,gBAAgB,EAChB,sBAAsB,GACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACN,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,sBAAsB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrE,YAAY,EACX,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EACN,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,GACd,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,GACT,MAAM,QAAQ,CAAC;AAChB,YAAY,EACX,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACN,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACX,cAAc,EACd,gBAAgB,EAChB,sBAAsB,GACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACN,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,sBAAsB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}