@8wave/ai-elements 0.112.0-beta.8 → 0.112.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.
- package/dist/_chunks/{PkToolShowVideo-Djr8Ofsz.js → PkToolShowVideo-p6Y9j3-B.js} +3 -3
- package/dist/_chunks/PkToolShowVideo-p6Y9j3-B.js.map +1 -0
- package/dist/_chunks/{browser-B0Xnbqi7.js → browser-Ct5TRDgj.js} +521 -518
- package/dist/_chunks/{browser-B0Xnbqi7.js.map → browser-Ct5TRDgj.js.map} +1 -1
- package/dist/_chunks/markdown-BRD-hDrH.js.map +1 -1
- package/dist/_chunks/{web-Dzr6HJ14.js → web-CEmtEYdH.js} +89 -65
- package/dist/_chunks/web-CEmtEYdH.js.map +1 -0
- package/dist/ai-elements.es.js +2918 -3166
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotAuth.js +1 -1
- package/dist-vue/PkChatbotMessages.js +1 -1
- package/dist-vue/PkChatbotViewChat.js +1 -1
- package/dist-vue/PkChatbotViewConversations.js +1 -1
- package/dist-vue/PkChatbotViewFiles.js +1 -1
- package/dist-vue/PkChatbotViewProfile.js +1 -1
- package/dist-vue/_chunks/{Document-Bjz-CSLq.js → Document-2X01-F4Z.js} +2 -2
- package/dist-vue/_chunks/Document-2X01-F4Z.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbot-BGSXeh04.js → PkChatbot-C11EVHnI.js} +6 -6
- package/dist-vue/_chunks/{PkChatbot-BGSXeh04.js.map → PkChatbot-C11EVHnI.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotAuth-AxAOI9t2.js → PkChatbotAuth-Bi508F1u.js} +57 -57
- package/dist-vue/_chunks/PkChatbotAuth-Bi508F1u.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotMessages-BNjbDHgy.js → PkChatbotMessages-BD-vUak6.js} +4 -4
- package/dist-vue/_chunks/{PkChatbotMessages-BNjbDHgy.js.map → PkChatbotMessages-BD-vUak6.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewChat-ZWFtuc-N.js → PkChatbotViewChat-DJnjuhjt.js} +5 -5
- package/dist-vue/_chunks/{PkChatbotViewChat-ZWFtuc-N.js.map → PkChatbotViewChat-DJnjuhjt.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewConversations-BLMzqmXi.js → PkChatbotViewConversations-BCdolW0R.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewConversations-BLMzqmXi.js.map → PkChatbotViewConversations-BCdolW0R.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewFiles-DLkQ7ClA.js → PkChatbotViewFiles-Cudao8ew.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotViewFiles-DLkQ7ClA.js.map → PkChatbotViewFiles-Cudao8ew.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewProfile-DZ-Jim4x.js → PkChatbotViewProfile-DDsKOkcC.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewProfile-DZ-Jim4x.js.map → PkChatbotViewProfile-DDsKOkcC.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowDiagram-BXdA_2Na.js → PkToolShowDiagram-RtkI_sKL.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowDiagram-BXdA_2Na.js.map → PkToolShowDiagram-RtkI_sKL.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowSources-B3tBNres.js → PkToolShowSources-gI947JOm.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowSources-B3tBNres.js.map → PkToolShowSources-gI947JOm.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowVideo-Bv9kMd88.js → PkToolShowVideo-BZOTu2Qe.js} +3 -3
- package/dist-vue/_chunks/PkToolShowVideo-BZOTu2Qe.js.map +1 -0
- package/dist-vue/_chunks/{useChatbotStore-Bc6V5Rv0.js → useChatbotStore-BwrBZJCq.js} +1157 -1500
- package/dist-vue/_chunks/useChatbotStore-BwrBZJCq.js.map +1 -0
- package/dist-vue/_chunks/{web-Dzr6HJ14.js → web-CEmtEYdH.js} +89 -65
- package/dist-vue/_chunks/web-CEmtEYdH.js.map +1 -0
- package/dist-vue/apps/web-component/src/composables/useChatbotAuthForm.d.ts +0 -1
- package/dist-vue/composables.js +2809 -80
- package/dist-vue/composables.js.map +1 -1
- package/dist-vue/index.js +250 -195
- package/dist-vue/index.js.map +1 -1
- package/dist-vue/locales.js +16 -20
- package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +2 -2
- package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +12 -0
- package/dist-vue/packages/models/src/schema/ModelProvider.d.ts +11 -2
- package/dist-vue/packages/models/src/schema/Organization.d.ts +3 -3
- package/dist-vue/packages/models/src/schema/User.d.ts +10 -0
- package/dist-vue/packages/models/src/schema/constants.d.ts +1 -1
- package/dist-vue/style.css +1 -1
- package/package.json +3 -3
- package/dist/_chunks/PkToolShowVideo-Djr8Ofsz.js.map +0 -1
- package/dist/_chunks/web-Dzr6HJ14.js.map +0 -1
- package/dist-vue/_chunks/Document-Bjz-CSLq.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotAuth-AxAOI9t2.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowVideo-Bv9kMd88.js.map +0 -1
- package/dist-vue/_chunks/useChatbotStore-Bc6V5Rv0.js.map +0 -1
- package/dist-vue/_chunks/web-Dzr6HJ14.js.map +0 -1
|
@@ -6,7 +6,7 @@ import { VvAlert as ee, VvButton as l, VvButtonGroup as te, VvIcon as ne } from
|
|
|
6
6
|
import { Fragment as u, Transition as d, computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createTextVNode as _, createVNode as v, defineComponent as y, mergeModels as b, openBlock as x, ref as S, resolveDynamicComponent as re, toDisplayString as C, unref as w, useModel as T, watch as E, withCtx as D } from "vue";
|
|
7
7
|
import { useI18n as ie } from "vue-i18n";
|
|
8
8
|
//#region ../../packages/models/src/schema/User.ts
|
|
9
|
-
var O = n(["user", "admin"]), k = t().min(8);
|
|
9
|
+
var O = n(["user", "admin"]), k = t().min(8).max(64);
|
|
10
10
|
e({
|
|
11
11
|
id: t(),
|
|
12
12
|
name: t(),
|
|
@@ -90,17 +90,17 @@ var j = A.extend({
|
|
|
90
90
|
"update:errorMessage",
|
|
91
91
|
"update:success"
|
|
92
92
|
], ["update:errorMessage", "update:success"]),
|
|
93
|
-
setup(
|
|
94
|
-
let { t:
|
|
93
|
+
setup(t, { emit: n }) {
|
|
94
|
+
let { t: a } = ie({ useScope: "global" }), o = t, { canShowImage: y, onImageError: b } = s(), O = T(t, "errorMessage"), A = T(t, "success"), q = n, J = S("sign-in");
|
|
95
95
|
E(J, () => {
|
|
96
|
-
|
|
96
|
+
O.value = void 0, A.value = void 0;
|
|
97
97
|
});
|
|
98
98
|
function oe() {
|
|
99
99
|
A.value = void 0, J.value = "sign-in";
|
|
100
100
|
}
|
|
101
|
-
let se = f(() =>
|
|
101
|
+
let se = f(() => o.authMethods?.google || o.authMethods?.microsoft), ce = e({
|
|
102
102
|
email: i(),
|
|
103
|
-
password:
|
|
103
|
+
password: k,
|
|
104
104
|
rememberMe: r().default(!1)
|
|
105
105
|
}), le = e({ email: i() }), { VvForm: ue, VvFormField: Y } = c(ce, { lazyLoad: !0 }), { VvForm: de, VvFormField: X, clear: fe } = c(j, { lazyLoad: !0 }), { VvForm: pe, VvFormField: me, clear: he } = c(le, { lazyLoad: !0 });
|
|
106
106
|
E(A, (e) => {
|
|
@@ -130,8 +130,8 @@ var j = A.extend({
|
|
|
130
130
|
function $(e) {
|
|
131
131
|
q("social", e);
|
|
132
132
|
}
|
|
133
|
-
return (e,
|
|
134
|
-
let r = ne, i = l,
|
|
133
|
+
return (e, n) => {
|
|
134
|
+
let r = ne, i = l, o = ee, s = te;
|
|
135
135
|
return x(), h("div", M, [g("div", N, [v(d, {
|
|
136
136
|
name: "pk-flip",
|
|
137
137
|
mode: "out-in",
|
|
@@ -155,30 +155,30 @@ var j = A.extend({
|
|
|
155
155
|
type: "button",
|
|
156
156
|
modifiers: "link",
|
|
157
157
|
icon: "chevron-left",
|
|
158
|
-
label: w(
|
|
158
|
+
label: w(a)("action.backToSignIn"),
|
|
159
159
|
onClick: oe
|
|
160
160
|
}, null, 8, ["label"])
|
|
161
161
|
], 512)) : (x(), h("div", L, [g("div", R, [
|
|
162
|
-
w(
|
|
163
|
-
src:
|
|
164
|
-
alt:
|
|
162
|
+
w(y)(t.branding?.interface.logo) ? (x(), h("div", z, [g("img", {
|
|
163
|
+
src: t.branding?.interface.logo,
|
|
164
|
+
alt: t.branding?.name,
|
|
165
165
|
class: "w-64 h-64 border border-surface-3 rounded-full bg-surface-0 overflow-hidden bg-surface object-contain",
|
|
166
|
-
onError:
|
|
166
|
+
onError: n[0] ||= (e) => w(b)(t.branding?.interface.logo)
|
|
167
167
|
}, null, 40, B)])) : m("", !0),
|
|
168
|
-
g("div", V, [
|
|
169
|
-
default: D(() => [J.value === "sign-in" ? (x(), h(u, { key: 0 }, [_(C(w(
|
|
168
|
+
g("div", V, [t.branding?.name ? (x(), h("h1", H, C(t.branding.name), 1)) : m("", !0), (x(), p(re(t.branding?.name ? "h2" : "h1"), { class: "text-word-3 mb-0" }, {
|
|
169
|
+
default: D(() => [J.value === "sign-in" ? (x(), h(u, { key: 0 }, [_(C(w(a)("auth.signInTitle")), 1)], 64)) : J.value === "sign-up" ? (x(), h(u, { key: 1 }, [_(C(w(a)("auth.signUpTitle")), 1)], 64)) : J.value === "reset" ? (x(), h(u, { key: 2 }, [_(C(w(a)("auth.resetTitle")), 1)], 64)) : m("", !0)]),
|
|
170
170
|
_: 1
|
|
171
171
|
}))]),
|
|
172
|
-
|
|
172
|
+
O.value ? (x(), p(o, {
|
|
173
173
|
key: 1,
|
|
174
174
|
modifiers: "danger",
|
|
175
175
|
class: "mb-md",
|
|
176
|
-
content:
|
|
176
|
+
content: O.value
|
|
177
177
|
}, null, 8, ["content"])) : m("", !0),
|
|
178
178
|
J.value === "sign-in" ? (x(), p(w(ue), {
|
|
179
179
|
key: 2,
|
|
180
180
|
class: "flex flex-col",
|
|
181
|
-
readonly:
|
|
181
|
+
readonly: t.loading,
|
|
182
182
|
onSubmit: _e
|
|
183
183
|
}, {
|
|
184
184
|
default: D(() => [g("div", U, [
|
|
@@ -186,34 +186,34 @@ var j = A.extend({
|
|
|
186
186
|
name: "email",
|
|
187
187
|
type: "email",
|
|
188
188
|
autocomplete: "username",
|
|
189
|
-
label: w(
|
|
189
|
+
label: w(a)("label.email"),
|
|
190
190
|
floating: ""
|
|
191
191
|
}, null, 8, ["label"]),
|
|
192
192
|
v(w(Y), {
|
|
193
193
|
name: "password",
|
|
194
194
|
type: "password",
|
|
195
195
|
autocomplete: "current-password",
|
|
196
|
-
label: w(
|
|
196
|
+
label: w(a)("label.password"),
|
|
197
197
|
floating: ""
|
|
198
198
|
}, null, 8, ["label"]),
|
|
199
199
|
g("div", W, [v(i, {
|
|
200
200
|
type: "button",
|
|
201
201
|
modifiers: "link",
|
|
202
|
-
label: w(
|
|
203
|
-
onClick:
|
|
202
|
+
label: w(a)("action.forgetPassword"),
|
|
203
|
+
onClick: n[1] ||= (e) => J.value = "reset"
|
|
204
204
|
}, null, 8, ["label"])]),
|
|
205
205
|
v(w(Y), {
|
|
206
206
|
name: "rememberMe",
|
|
207
207
|
type: "checkbox",
|
|
208
|
-
label: w(
|
|
208
|
+
label: w(a)("label.rememberMe"),
|
|
209
209
|
switch: ""
|
|
210
210
|
}, null, 8, ["label"])
|
|
211
211
|
]), v(i, {
|
|
212
212
|
type: "submit",
|
|
213
213
|
modifiers: "primary",
|
|
214
|
-
loading:
|
|
215
|
-
disabled:
|
|
216
|
-
label: w(
|
|
214
|
+
loading: t.loading,
|
|
215
|
+
disabled: t.loading,
|
|
216
|
+
label: w(a)("action.signIn")
|
|
217
217
|
}, null, 8, [
|
|
218
218
|
"loading",
|
|
219
219
|
"disabled",
|
|
@@ -223,7 +223,7 @@ var j = A.extend({
|
|
|
223
223
|
}, 8, ["readonly"])) : J.value === "sign-up" ? (x(), p(w(de), {
|
|
224
224
|
key: 3,
|
|
225
225
|
class: "flex flex-col",
|
|
226
|
-
readonly:
|
|
226
|
+
readonly: t.loading,
|
|
227
227
|
onSubmit: Q
|
|
228
228
|
}, {
|
|
229
229
|
default: D(() => [g("div", G, [
|
|
@@ -231,36 +231,36 @@ var j = A.extend({
|
|
|
231
231
|
name: "name",
|
|
232
232
|
type: "text",
|
|
233
233
|
autocomplete: "name",
|
|
234
|
-
label: w(
|
|
234
|
+
label: w(a)("label.name"),
|
|
235
235
|
floating: ""
|
|
236
236
|
}, null, 8, ["label"]),
|
|
237
237
|
v(w(X), {
|
|
238
238
|
name: "email",
|
|
239
239
|
type: "email",
|
|
240
240
|
autocomplete: "username",
|
|
241
|
-
label: w(
|
|
241
|
+
label: w(a)("label.email"),
|
|
242
242
|
floating: ""
|
|
243
243
|
}, null, 8, ["label"]),
|
|
244
244
|
v(w(X), {
|
|
245
245
|
name: "password",
|
|
246
246
|
type: "password",
|
|
247
247
|
autocomplete: "new-password",
|
|
248
|
-
label: w(
|
|
248
|
+
label: w(a)("label.password"),
|
|
249
249
|
floating: ""
|
|
250
250
|
}, null, 8, ["label"]),
|
|
251
251
|
v(w(X), {
|
|
252
252
|
name: "passwordConfirmation",
|
|
253
253
|
type: "password",
|
|
254
254
|
autocomplete: "new-password",
|
|
255
|
-
label: w(
|
|
255
|
+
label: w(a)("label.confirmPassword"),
|
|
256
256
|
floating: ""
|
|
257
257
|
}, null, 8, ["label"])
|
|
258
258
|
]), v(i, {
|
|
259
259
|
type: "submit",
|
|
260
260
|
modifiers: "primary",
|
|
261
|
-
loading:
|
|
262
|
-
disabled:
|
|
263
|
-
label: w(
|
|
261
|
+
loading: t.loading,
|
|
262
|
+
disabled: t.loading,
|
|
263
|
+
label: w(a)("action.continue")
|
|
264
264
|
}, null, 8, [
|
|
265
265
|
"loading",
|
|
266
266
|
"disabled",
|
|
@@ -270,22 +270,22 @@ var j = A.extend({
|
|
|
270
270
|
}, 8, ["readonly"])) : J.value === "reset" ? (x(), p(w(pe), {
|
|
271
271
|
key: 4,
|
|
272
272
|
class: "flex flex-col",
|
|
273
|
-
readonly:
|
|
273
|
+
readonly: t.loading,
|
|
274
274
|
onSubmit: ve
|
|
275
275
|
}, {
|
|
276
276
|
default: D(() => [v(w(me), {
|
|
277
277
|
name: "email",
|
|
278
278
|
type: "email",
|
|
279
279
|
autocomplete: "username",
|
|
280
|
-
label: w(
|
|
280
|
+
label: w(a)("label.email"),
|
|
281
281
|
floating: ""
|
|
282
282
|
}, null, 8, ["label"]), v(s, { modifiers: "vertical" }, {
|
|
283
283
|
default: D(() => [v(i, {
|
|
284
284
|
type: "submit",
|
|
285
285
|
modifiers: "primary",
|
|
286
|
-
loading:
|
|
287
|
-
disabled:
|
|
288
|
-
label: w(
|
|
286
|
+
loading: t.loading,
|
|
287
|
+
disabled: t.loading,
|
|
288
|
+
label: w(a)("action.submit")
|
|
289
289
|
}, null, 8, [
|
|
290
290
|
"loading",
|
|
291
291
|
"disabled",
|
|
@@ -295,48 +295,48 @@ var j = A.extend({
|
|
|
295
295
|
})]),
|
|
296
296
|
_: 1
|
|
297
297
|
}, 8, ["readonly"])) : m("", !0),
|
|
298
|
-
(J.value === "sign-in" || J.value === "sign-up") && se.value ? (x(), h(u, { key: 5 }, [g("div", ae, [g("span", null, C(w(
|
|
298
|
+
(J.value === "sign-in" || J.value === "sign-up") && se.value ? (x(), h(u, { key: 5 }, [g("div", ae, [g("span", null, C(w(a)("label.or")), 1)]), v(s, {
|
|
299
299
|
modifiers: "vertical",
|
|
300
300
|
class: "gap-xs mt-xs"
|
|
301
301
|
}, {
|
|
302
|
-
default: D(() => [
|
|
302
|
+
default: D(() => [t.authMethods?.google ? (x(), p(i, {
|
|
303
303
|
key: 0,
|
|
304
304
|
type: "button",
|
|
305
305
|
modifiers: "secondary",
|
|
306
306
|
icon: "logos:google-icon",
|
|
307
|
-
disabled:
|
|
308
|
-
label: w(
|
|
309
|
-
onClick:
|
|
310
|
-
}, null, 8, ["disabled", "label"])) : m("", !0),
|
|
307
|
+
disabled: t.loading,
|
|
308
|
+
label: w(a)("action.signInWithSocialProvider", { provider: "Google" }),
|
|
309
|
+
onClick: n[2] ||= (e) => $("google")
|
|
310
|
+
}, null, 8, ["disabled", "label"])) : m("", !0), t.authMethods?.microsoft ? (x(), p(i, {
|
|
311
311
|
key: 1,
|
|
312
312
|
type: "button",
|
|
313
313
|
modifiers: "secondary",
|
|
314
314
|
icon: "logos:microsoft-icon",
|
|
315
|
-
disabled:
|
|
316
|
-
label: w(
|
|
317
|
-
onClick:
|
|
315
|
+
disabled: t.loading,
|
|
316
|
+
label: w(a)("action.signInWithSocialProvider", { provider: "Microsoft" }),
|
|
317
|
+
onClick: n[3] ||= (e) => $("microsoft")
|
|
318
318
|
}, null, 8, ["disabled", "label"])) : m("", !0)]),
|
|
319
319
|
_: 1
|
|
320
320
|
})], 64)) : m("", !0)
|
|
321
|
-
]), g("div", K, [J.value === "sign-in" ? (x(), h(u, { key: 0 }, [_(C(w(
|
|
321
|
+
]), g("div", K, [J.value === "sign-in" ? (x(), h(u, { key: 0 }, [_(C(w(a)("auth.noAccount")) + " ", 1), v(i, {
|
|
322
322
|
type: "button",
|
|
323
323
|
modifiers: "link",
|
|
324
324
|
class: "font-semibold",
|
|
325
|
-
label: w(
|
|
326
|
-
onClick:
|
|
327
|
-
}, null, 8, ["label"])], 64)) : J.value === "sign-up" ? (x(), h(u, { key: 1 }, [_(C(w(
|
|
325
|
+
label: w(a)("action.signUp"),
|
|
326
|
+
onClick: n[4] ||= (e) => J.value = "sign-up"
|
|
327
|
+
}, null, 8, ["label"])], 64)) : J.value === "sign-up" ? (x(), h(u, { key: 1 }, [_(C(w(a)("auth.haveAccount")) + " ", 1), v(i, {
|
|
328
328
|
type: "button",
|
|
329
329
|
modifiers: "link",
|
|
330
330
|
class: "font-semibold",
|
|
331
|
-
label: w(
|
|
332
|
-
onClick:
|
|
331
|
+
label: w(a)("action.signIn"),
|
|
332
|
+
onClick: n[5] ||= (e) => J.value = "sign-in"
|
|
333
333
|
}, null, 8, ["label"])], 64)) : (x(), p(i, {
|
|
334
334
|
key: 2,
|
|
335
335
|
type: "button",
|
|
336
336
|
modifiers: "link",
|
|
337
337
|
icon: "chevron-left",
|
|
338
|
-
label: w(
|
|
339
|
-
onClick:
|
|
338
|
+
label: w(a)("action.backToSignIn"),
|
|
339
|
+
onClick: n[6] ||= (e) => J.value = "sign-in"
|
|
340
340
|
}, null, 8, ["label"]))])]))]),
|
|
341
341
|
_: 1
|
|
342
342
|
})])]);
|
|
@@ -346,4 +346,4 @@ var j = A.extend({
|
|
|
346
346
|
//#endregion
|
|
347
347
|
export { q as t };
|
|
348
348
|
|
|
349
|
-
//# sourceMappingURL=PkChatbotAuth-
|
|
349
|
+
//# sourceMappingURL=PkChatbotAuth-Bi508F1u.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PkChatbotAuth-Bi508F1u.js","names":[],"sources":["../../../../packages/models/src/schema/User.ts","../../../../packages/components/src/chat/PkChatbotAuth.vue","../../../../packages/components/src/chat/PkChatbotAuth.vue"],"sourcesContent":["import * as z from 'zod'\nimport { MediaSchema } from './Media'\n\nconst RoleSchema = z.enum(['user', 'admin'])\n\n/** Shortest password better-auth accepts, see `packages/auth`. */\nexport const PASSWORD_MIN_LENGTH = 8\n\n/**\n * Longest password better-auth accepts. Since better-auth 1.7.6 a longer one\n * is refused on sign-in too (`PASSWORD_TOO_LONG`), so every form checks it\n * before sending and shows the translated validation error instead.\n */\nexport const PASSWORD_MAX_LENGTH = 64\n\n/** A password as better-auth accepts it, for every form that sends one. */\nexport const PasswordSchema = z\n .string()\n .min(PASSWORD_MIN_LENGTH)\n .max(PASSWORD_MAX_LENGTH)\n\nexport const UserSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string(),\n emailVerified: z.boolean(),\n image: z.string().nullable(),\n media: MediaSchema.optional().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n banned: z.boolean().nullable(),\n banReason: z.string().nullable(),\n banExpires: z.coerce.date().nullable(),\n isAnonymous: z.boolean().nullable(),\n role: RoleSchema,\n})\n\nexport type User = z.infer<typeof UserSchema>\n\n/**\n * Trimmed user shape for org-scoped lookups (avatars, chat logs, member\n * lists). Served by GET /:audience/users/:id, which only resolves users\n * visible to the caller's active organization.\n */\nexport const UserPreviewSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string().nullable(),\n image: z.string().nullable(),\n isAnonymous: z.boolean().nullable(),\n banned: z.boolean().nullable(),\n})\n\nexport type UserPreview = z.infer<typeof UserPreviewSchema>\n\nexport const PasswordChangeSchema = z\n .object({\n password: PasswordSchema,\n passwordConfirmation: PasswordSchema,\n })\n .refine((data) => data.password === data.passwordConfirmation, {\n params: {\n i18n: 'errors.passwordsDoNotMatch',\n },\n path: ['passwordConfirmation'],\n })\n\nexport type PasswordChange = z.infer<typeof PasswordChangeSchema>\n\nexport const PasswordChangeWithCurrentSchema = PasswordChangeSchema.extend({\n currentPassword: PasswordSchema,\n})\n\nexport type PasswordChangeWithCurrent = z.infer<\n typeof PasswordChangeWithCurrentSchema\n>\n\nexport const UserCreateSchema = PasswordChangeSchema.extend({\n name: z.string().min(1),\n email: z.email(),\n media: MediaSchema.optional(),\n role: RoleSchema.optional().default('user'),\n})\n\nexport type UserCreate = z.infer<typeof UserCreateSchema>\n\nexport const UserUpdateSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string(),\n emailVerified: z.boolean().optional(),\n image: z.string().nullish(),\n role: RoleSchema,\n media: MediaSchema.optional().nullable(),\n banned: z.boolean().nullish(),\n banReason: z.string().nullish(),\n banExpires: z.string().nullish(),\n isAnonymous: z.boolean().nullish(),\n})\n\nexport type UserUpdate = z.infer<typeof UserUpdateSchema>\n\nexport const SignUpSchema = PasswordChangeSchema.extend({\n name: z.string().min(1),\n email: z.email(),\n rememberMe: z.boolean().optional(),\n})\n\nexport type SignUp = z.infer<typeof SignUpSchema>\n","<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n import { PasswordSchema, SignUpSchema } from 'models'\n import type { AgentBranding, AuthMethods } from 'models'\n import { useImageFallback } from 'composables'\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const props = withDefaults(\n defineProps<{\n branding?: AgentBranding\n authMethods?: AuthMethods\n loading?: boolean\n }>(),\n {\n branding: undefined,\n authMethods: undefined,\n loading: false,\n },\n )\n\n // A deleted agent logo would leave a broken glyph above the sign-in form:\n // drop the whole block instead, the agent name below already identifies it.\n const { canShowImage, onImageError } = useImageFallback()\n\n const errorMessage = defineModel<string | undefined>('errorMessage', {\n default: undefined,\n })\n /**\n * Non-error feedback (e.g. \"check your inbox\" after sign-up / reset).\n * When set, a dedicated success screen replaces the form.\n */\n const success = defineModel<{ title: string; message: string } | undefined>(\n 'success',\n { default: undefined },\n )\n\n const emit = defineEmits<{\n (\n e: 'sign-in',\n payload: {\n email: string\n password: string\n rememberMe: boolean\n },\n ): void\n (\n e: 'sign-up',\n payload: { email: string; password: string; name: string },\n ): void\n (e: 'request-reset', payload: { email: string }): void\n (e: 'social', provider: 'google' | 'microsoft'): void\n (e: 'update:errorMessage', message?: string): void\n (e: 'update:success', value?: { title: string; message: string }): void\n }>()\n\n type Mode = 'sign-in' | 'sign-up' | 'reset'\n const mode = ref<Mode>('sign-in')\n watch(mode, () => {\n errorMessage.value = undefined\n success.value = undefined\n })\n\n /** Returns to the sign-in form, clearing any success feedback. */\n function backToSignIn() {\n success.value = undefined\n mode.value = 'sign-in'\n }\n\n const showSocialButtons = computed(\n () => props.authMethods?.google || props.authMethods?.microsoft,\n )\n\n const signInSchema = z.object({\n email: z.email(),\n password: PasswordSchema,\n rememberMe: z.boolean().default(false),\n })\n\n const resetSchema = z.object({\n email: z.email(),\n })\n\n const { VvForm: VvSignInForm, VvFormField: VvSignInField } = useForm(\n signInSchema,\n { lazyLoad: true },\n )\n const {\n VvForm: VvSignUpForm,\n VvFormField: VvSignUpField,\n clear: clearSignUp,\n } = useForm(SignUpSchema, { lazyLoad: true })\n const {\n VvForm: VvResetForm,\n VvFormField: VvResetField,\n clear: clearReset,\n } = useForm(resetSchema, { lazyLoad: true })\n\n // Empty the sign-up / reset forms once their submission succeeds so a\n // later \"back to sign in\" doesn't reveal stale input.\n watch(success, (value) => {\n if (value) {\n clearSignUp()\n clearReset()\n }\n })\n\n // Move focus to the success card once the flip animation has finished\n // (the out-in transition mounts it only after the form leaves), so\n // screen-reader/keyboard users are announced the result.\n const successCard = ref<HTMLElement>()\n function focusSuccessCard() {\n if (success.value) {\n successCard.value?.focus()\n }\n }\n\n function onSignIn(data: {\n email: string\n password: string\n rememberMe?: boolean\n }) {\n emit('sign-in', {\n email: data.email,\n password: data.password,\n rememberMe: data.rememberMe ?? false,\n })\n }\n\n function onSignUp(data: { name: string; email: string; password: string }) {\n emit('sign-up', {\n name: data.name.trim(),\n email: data.email,\n password: data.password,\n })\n }\n\n function onReset(data: { email: string }) {\n emit('request-reset', { email: data.email })\n }\n\n function handleSocial(provider: 'google' | 'microsoft') {\n emit('social', provider)\n }\n</script>\n\n<template>\n <div\n class=\"pk-chatbot-auth flex flex-col items-center justify-center w-full min-h-full p-lg overflow-y-auto\">\n <div class=\"pk-chatbot-auth__flip w-full max-w-384 mx-auto my-auto\">\n <Transition\n name=\"pk-flip\"\n mode=\"out-in\"\n @after-enter=\"focusSuccessCard\">\n <!-- Success screen (sign-up / reset feedback) -->\n <div\n v-if=\"success\"\n ref=\"successCard\"\n key=\"success\"\n tabindex=\"-1\"\n class=\"pk-chatbot-auth__flip-card outline-none flex flex-col text-center leading-normal\">\n <div\n class=\"pk-chatbot-auth__success-icon w-64 h-64 border border-surface-3 rounded-full bg-surface-0 flex items-center justify-center overflow-hidden bg-surface mx-auto mb-md\">\n <VvIcon\n name=\"ri:mail-check-line\"\n aria-hidden=\"true\"\n class=\"text-success w-32 h-32\" />\n </div>\n <h1 class=\"font-bold text-18 mb-xs\">\n {{ success.title }}\n </h1>\n <p class=\"mb-lg text-16 text-word-3\">\n {{ success.message }}\n </p>\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n icon=\"chevron-left\"\n :label=\"$t('action.backToSignIn')\"\n @click=\"backToSignIn\" />\n </div>\n\n <!-- Sign-in / sign-up / reset forms -->\n <div\n v-else\n key=\"form\"\n class=\"pk-chatbot-auth__flip-card flex flex-col\">\n <!-- Form Container -->\n <div class=\"flex flex-col\">\n <!-- Relative Header Logo -->\n <div\n v-if=\"canShowImage(branding?.interface.logo)\"\n class=\"flex justify-center mb-md\">\n <img\n :src=\"branding?.interface.logo\"\n :alt=\"branding?.name\"\n class=\"w-64 h-64 border border-surface-3 rounded-full bg-surface-0 overflow-hidden bg-surface object-contain\"\n @error=\"\n onImageError(branding?.interface.logo)\n \" />\n </div>\n\n <div class=\"text-center leading-normal mb-lg\">\n <h1\n v-if=\"branding?.name\"\n class=\"font-bold text-20 m-0\">\n {{ branding.name }}\n </h1>\n <component\n :is=\"branding?.name ? 'h2' : 'h1'\"\n class=\"text-word-3 mb-0\">\n <template v-if=\"mode === 'sign-in'\">\n {{ $t('auth.signInTitle') }}\n </template>\n <template v-else-if=\"mode === 'sign-up'\">\n {{ $t('auth.signUpTitle') }}\n </template>\n <template v-else-if=\"mode === 'reset'\">\n {{ $t('auth.resetTitle') }}\n </template>\n </component>\n </div>\n\n <!-- Error message -->\n <VvAlert\n v-if=\"errorMessage\"\n modifiers=\"danger\"\n class=\"mb-md\"\n :content=\"errorMessage\" />\n\n <!-- Sign In -->\n <VvSignInForm\n v-if=\"mode === 'sign-in'\"\n class=\"flex flex-col\"\n :readonly=\"loading\"\n @submit=\"onSignIn\">\n <div class=\"mb-md\">\n <VvSignInField\n name=\"email\"\n type=\"email\"\n autocomplete=\"username\"\n :label=\"$t('label.email')\"\n floating />\n <VvSignInField\n name=\"password\"\n type=\"password\"\n autocomplete=\"current-password\"\n :label=\"$t('label.password')\"\n floating />\n <div class=\"mb-md\">\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n :label=\"$t('action.forgetPassword')\"\n @click=\"mode = 'reset'\" />\n </div>\n <VvSignInField\n name=\"rememberMe\"\n type=\"checkbox\"\n :label=\"$t('label.rememberMe')\"\n switch />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading=\"loading\"\n :disabled=\"loading\"\n :label=\"$t('action.signIn')\" />\n </VvSignInForm>\n\n <!-- Sign Up -->\n <VvSignUpForm\n v-else-if=\"mode === 'sign-up'\"\n class=\"flex flex-col\"\n :readonly=\"loading\"\n @submit=\"onSignUp\">\n <div class=\"mb-md\">\n <VvSignUpField\n name=\"name\"\n type=\"text\"\n autocomplete=\"name\"\n :label=\"$t('label.name')\"\n floating />\n <VvSignUpField\n name=\"email\"\n type=\"email\"\n autocomplete=\"username\"\n :label=\"$t('label.email')\"\n floating />\n <VvSignUpField\n name=\"password\"\n type=\"password\"\n autocomplete=\"new-password\"\n :label=\"$t('label.password')\"\n floating />\n <VvSignUpField\n name=\"passwordConfirmation\"\n type=\"password\"\n autocomplete=\"new-password\"\n :label=\"$t('label.confirmPassword')\"\n floating />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading=\"loading\"\n :disabled=\"loading\"\n :label=\"$t('action.continue')\" />\n </VvSignUpForm>\n\n <!-- Reset Password -->\n <VvResetForm\n v-else-if=\"mode === 'reset'\"\n class=\"flex flex-col\"\n :readonly=\"loading\"\n @submit=\"onReset\">\n <VvResetField\n name=\"email\"\n type=\"email\"\n autocomplete=\"username\"\n :label=\"$t('label.email')\"\n floating />\n <VvButtonGroup modifiers=\"vertical\">\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading=\"loading\"\n :disabled=\"loading\"\n :label=\"$t('action.submit')\" />\n </VvButtonGroup>\n </VvResetForm>\n\n <!-- Social providers (shared by sign-in and sign-up) -->\n <template\n v-if=\"\n (mode === 'sign-in' || mode === 'sign-up') &&\n showSocialButtons\n \">\n <div class=\"hr mt-xs\">\n <span>{{ $t('label.or') }}</span>\n </div>\n <VvButtonGroup\n modifiers=\"vertical\"\n class=\"gap-xs mt-xs\">\n <VvButton\n v-if=\"authMethods?.google\"\n type=\"button\"\n modifiers=\"secondary\"\n icon=\"logos:google-icon\"\n :disabled=\"loading\"\n :label=\"\n $t('action.signInWithSocialProvider', {\n provider: 'Google',\n })\n \"\n @click=\"handleSocial('google')\" />\n <VvButton\n v-if=\"authMethods?.microsoft\"\n type=\"button\"\n modifiers=\"secondary\"\n icon=\"logos:microsoft-icon\"\n :disabled=\"loading\"\n :label=\"\n $t('action.signInWithSocialProvider', {\n provider: 'Microsoft',\n })\n \"\n @click=\"handleSocial('microsoft')\" />\n </VvButtonGroup>\n </template>\n </div>\n\n <!-- Footer below Form -->\n <div class=\"pt-lg text-center text-word-3\">\n <template v-if=\"mode === 'sign-in'\">\n {{ $t('auth.noAccount') }}\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n class=\"font-semibold\"\n :label=\"$t('action.signUp')\"\n @click=\"mode = 'sign-up'\" />\n </template>\n <template v-else-if=\"mode === 'sign-up'\">\n {{ $t('auth.haveAccount') }}\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n class=\"font-semibold\"\n :label=\"$t('action.signIn')\"\n @click=\"mode = 'sign-in'\" />\n </template>\n <template v-else>\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n icon=\"chevron-left\"\n :label=\"$t('action.backToSignIn')\"\n @click=\"mode = 'sign-in'\" />\n </template>\n </div>\n </div>\n </Transition>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-auth {\n // Flip-card reveal between the form and the success screen, mirroring\n // the classic login in apps/frontend.\n &__flip {\n display: grid;\n transform-style: preserve-3d;\n perspective: 1000px;\n }\n\n &__flip-card {\n grid-area: 1 / 1;\n backface-visibility: hidden;\n transform-style: preserve-3d;\n }\n\n // Subtle pop on the success check icon once the card has flipped in.\n &__success-icon {\n animation: pk-chatbot-auth-check-pop 0.4s ease-out 0.3s backwards;\n }\n }\n\n .pk-flip-enter-active {\n animation: pk-chatbot-auth-flip-in 0.6s ease-out;\n }\n\n .pk-flip-leave-active {\n animation: pk-chatbot-auth-flip-out 0.6s ease-in;\n }\n\n @keyframes pk-chatbot-auth-flip-in {\n 0% {\n transform: rotateY(-180deg);\n opacity: 0;\n }\n\n 100% {\n transform: rotateY(0deg);\n opacity: 1;\n }\n }\n\n @keyframes pk-chatbot-auth-flip-out {\n 0% {\n transform: rotateY(0deg);\n opacity: 1;\n }\n\n 100% {\n transform: rotateY(180deg);\n opacity: 0;\n }\n }\n\n @keyframes pk-chatbot-auth-check-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 60% {\n transform: scale(1.15);\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n import { PasswordSchema, SignUpSchema } from 'models'\n import type { AgentBranding, AuthMethods } from 'models'\n import { useImageFallback } from 'composables'\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n const props = withDefaults(\n defineProps<{\n branding?: AgentBranding\n authMethods?: AuthMethods\n loading?: boolean\n }>(),\n {\n branding: undefined,\n authMethods: undefined,\n loading: false,\n },\n )\n\n // A deleted agent logo would leave a broken glyph above the sign-in form:\n // drop the whole block instead, the agent name below already identifies it.\n const { canShowImage, onImageError } = useImageFallback()\n\n const errorMessage = defineModel<string | undefined>('errorMessage', {\n default: undefined,\n })\n /**\n * Non-error feedback (e.g. \"check your inbox\" after sign-up / reset).\n * When set, a dedicated success screen replaces the form.\n */\n const success = defineModel<{ title: string; message: string } | undefined>(\n 'success',\n { default: undefined },\n )\n\n const emit = defineEmits<{\n (\n e: 'sign-in',\n payload: {\n email: string\n password: string\n rememberMe: boolean\n },\n ): void\n (\n e: 'sign-up',\n payload: { email: string; password: string; name: string },\n ): void\n (e: 'request-reset', payload: { email: string }): void\n (e: 'social', provider: 'google' | 'microsoft'): void\n (e: 'update:errorMessage', message?: string): void\n (e: 'update:success', value?: { title: string; message: string }): void\n }>()\n\n type Mode = 'sign-in' | 'sign-up' | 'reset'\n const mode = ref<Mode>('sign-in')\n watch(mode, () => {\n errorMessage.value = undefined\n success.value = undefined\n })\n\n /** Returns to the sign-in form, clearing any success feedback. */\n function backToSignIn() {\n success.value = undefined\n mode.value = 'sign-in'\n }\n\n const showSocialButtons = computed(\n () => props.authMethods?.google || props.authMethods?.microsoft,\n )\n\n const signInSchema = z.object({\n email: z.email(),\n password: PasswordSchema,\n rememberMe: z.boolean().default(false),\n })\n\n const resetSchema = z.object({\n email: z.email(),\n })\n\n const { VvForm: VvSignInForm, VvFormField: VvSignInField } = useForm(\n signInSchema,\n { lazyLoad: true },\n )\n const {\n VvForm: VvSignUpForm,\n VvFormField: VvSignUpField,\n clear: clearSignUp,\n } = useForm(SignUpSchema, { lazyLoad: true })\n const {\n VvForm: VvResetForm,\n VvFormField: VvResetField,\n clear: clearReset,\n } = useForm(resetSchema, { lazyLoad: true })\n\n // Empty the sign-up / reset forms once their submission succeeds so a\n // later \"back to sign in\" doesn't reveal stale input.\n watch(success, (value) => {\n if (value) {\n clearSignUp()\n clearReset()\n }\n })\n\n // Move focus to the success card once the flip animation has finished\n // (the out-in transition mounts it only after the form leaves), so\n // screen-reader/keyboard users are announced the result.\n const successCard = ref<HTMLElement>()\n function focusSuccessCard() {\n if (success.value) {\n successCard.value?.focus()\n }\n }\n\n function onSignIn(data: {\n email: string\n password: string\n rememberMe?: boolean\n }) {\n emit('sign-in', {\n email: data.email,\n password: data.password,\n rememberMe: data.rememberMe ?? false,\n })\n }\n\n function onSignUp(data: { name: string; email: string; password: string }) {\n emit('sign-up', {\n name: data.name.trim(),\n email: data.email,\n password: data.password,\n })\n }\n\n function onReset(data: { email: string }) {\n emit('request-reset', { email: data.email })\n }\n\n function handleSocial(provider: 'google' | 'microsoft') {\n emit('social', provider)\n }\n</script>\n\n<template>\n <div\n class=\"pk-chatbot-auth flex flex-col items-center justify-center w-full min-h-full p-lg overflow-y-auto\">\n <div class=\"pk-chatbot-auth__flip w-full max-w-384 mx-auto my-auto\">\n <Transition\n name=\"pk-flip\"\n mode=\"out-in\"\n @after-enter=\"focusSuccessCard\">\n <!-- Success screen (sign-up / reset feedback) -->\n <div\n v-if=\"success\"\n ref=\"successCard\"\n key=\"success\"\n tabindex=\"-1\"\n class=\"pk-chatbot-auth__flip-card outline-none flex flex-col text-center leading-normal\">\n <div\n class=\"pk-chatbot-auth__success-icon w-64 h-64 border border-surface-3 rounded-full bg-surface-0 flex items-center justify-center overflow-hidden bg-surface mx-auto mb-md\">\n <VvIcon\n name=\"ri:mail-check-line\"\n aria-hidden=\"true\"\n class=\"text-success w-32 h-32\" />\n </div>\n <h1 class=\"font-bold text-18 mb-xs\">\n {{ success.title }}\n </h1>\n <p class=\"mb-lg text-16 text-word-3\">\n {{ success.message }}\n </p>\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n icon=\"chevron-left\"\n :label=\"$t('action.backToSignIn')\"\n @click=\"backToSignIn\" />\n </div>\n\n <!-- Sign-in / sign-up / reset forms -->\n <div\n v-else\n key=\"form\"\n class=\"pk-chatbot-auth__flip-card flex flex-col\">\n <!-- Form Container -->\n <div class=\"flex flex-col\">\n <!-- Relative Header Logo -->\n <div\n v-if=\"canShowImage(branding?.interface.logo)\"\n class=\"flex justify-center mb-md\">\n <img\n :src=\"branding?.interface.logo\"\n :alt=\"branding?.name\"\n class=\"w-64 h-64 border border-surface-3 rounded-full bg-surface-0 overflow-hidden bg-surface object-contain\"\n @error=\"\n onImageError(branding?.interface.logo)\n \" />\n </div>\n\n <div class=\"text-center leading-normal mb-lg\">\n <h1\n v-if=\"branding?.name\"\n class=\"font-bold text-20 m-0\">\n {{ branding.name }}\n </h1>\n <component\n :is=\"branding?.name ? 'h2' : 'h1'\"\n class=\"text-word-3 mb-0\">\n <template v-if=\"mode === 'sign-in'\">\n {{ $t('auth.signInTitle') }}\n </template>\n <template v-else-if=\"mode === 'sign-up'\">\n {{ $t('auth.signUpTitle') }}\n </template>\n <template v-else-if=\"mode === 'reset'\">\n {{ $t('auth.resetTitle') }}\n </template>\n </component>\n </div>\n\n <!-- Error message -->\n <VvAlert\n v-if=\"errorMessage\"\n modifiers=\"danger\"\n class=\"mb-md\"\n :content=\"errorMessage\" />\n\n <!-- Sign In -->\n <VvSignInForm\n v-if=\"mode === 'sign-in'\"\n class=\"flex flex-col\"\n :readonly=\"loading\"\n @submit=\"onSignIn\">\n <div class=\"mb-md\">\n <VvSignInField\n name=\"email\"\n type=\"email\"\n autocomplete=\"username\"\n :label=\"$t('label.email')\"\n floating />\n <VvSignInField\n name=\"password\"\n type=\"password\"\n autocomplete=\"current-password\"\n :label=\"$t('label.password')\"\n floating />\n <div class=\"mb-md\">\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n :label=\"$t('action.forgetPassword')\"\n @click=\"mode = 'reset'\" />\n </div>\n <VvSignInField\n name=\"rememberMe\"\n type=\"checkbox\"\n :label=\"$t('label.rememberMe')\"\n switch />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading=\"loading\"\n :disabled=\"loading\"\n :label=\"$t('action.signIn')\" />\n </VvSignInForm>\n\n <!-- Sign Up -->\n <VvSignUpForm\n v-else-if=\"mode === 'sign-up'\"\n class=\"flex flex-col\"\n :readonly=\"loading\"\n @submit=\"onSignUp\">\n <div class=\"mb-md\">\n <VvSignUpField\n name=\"name\"\n type=\"text\"\n autocomplete=\"name\"\n :label=\"$t('label.name')\"\n floating />\n <VvSignUpField\n name=\"email\"\n type=\"email\"\n autocomplete=\"username\"\n :label=\"$t('label.email')\"\n floating />\n <VvSignUpField\n name=\"password\"\n type=\"password\"\n autocomplete=\"new-password\"\n :label=\"$t('label.password')\"\n floating />\n <VvSignUpField\n name=\"passwordConfirmation\"\n type=\"password\"\n autocomplete=\"new-password\"\n :label=\"$t('label.confirmPassword')\"\n floating />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading=\"loading\"\n :disabled=\"loading\"\n :label=\"$t('action.continue')\" />\n </VvSignUpForm>\n\n <!-- Reset Password -->\n <VvResetForm\n v-else-if=\"mode === 'reset'\"\n class=\"flex flex-col\"\n :readonly=\"loading\"\n @submit=\"onReset\">\n <VvResetField\n name=\"email\"\n type=\"email\"\n autocomplete=\"username\"\n :label=\"$t('label.email')\"\n floating />\n <VvButtonGroup modifiers=\"vertical\">\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading=\"loading\"\n :disabled=\"loading\"\n :label=\"$t('action.submit')\" />\n </VvButtonGroup>\n </VvResetForm>\n\n <!-- Social providers (shared by sign-in and sign-up) -->\n <template\n v-if=\"\n (mode === 'sign-in' || mode === 'sign-up') &&\n showSocialButtons\n \">\n <div class=\"hr mt-xs\">\n <span>{{ $t('label.or') }}</span>\n </div>\n <VvButtonGroup\n modifiers=\"vertical\"\n class=\"gap-xs mt-xs\">\n <VvButton\n v-if=\"authMethods?.google\"\n type=\"button\"\n modifiers=\"secondary\"\n icon=\"logos:google-icon\"\n :disabled=\"loading\"\n :label=\"\n $t('action.signInWithSocialProvider', {\n provider: 'Google',\n })\n \"\n @click=\"handleSocial('google')\" />\n <VvButton\n v-if=\"authMethods?.microsoft\"\n type=\"button\"\n modifiers=\"secondary\"\n icon=\"logos:microsoft-icon\"\n :disabled=\"loading\"\n :label=\"\n $t('action.signInWithSocialProvider', {\n provider: 'Microsoft',\n })\n \"\n @click=\"handleSocial('microsoft')\" />\n </VvButtonGroup>\n </template>\n </div>\n\n <!-- Footer below Form -->\n <div class=\"pt-lg text-center text-word-3\">\n <template v-if=\"mode === 'sign-in'\">\n {{ $t('auth.noAccount') }}\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n class=\"font-semibold\"\n :label=\"$t('action.signUp')\"\n @click=\"mode = 'sign-up'\" />\n </template>\n <template v-else-if=\"mode === 'sign-up'\">\n {{ $t('auth.haveAccount') }}\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n class=\"font-semibold\"\n :label=\"$t('action.signIn')\"\n @click=\"mode = 'sign-in'\" />\n </template>\n <template v-else>\n <VvButton\n type=\"button\"\n modifiers=\"link\"\n icon=\"chevron-left\"\n :label=\"$t('action.backToSignIn')\"\n @click=\"mode = 'sign-in'\" />\n </template>\n </div>\n </div>\n </Transition>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-auth {\n // Flip-card reveal between the form and the success screen, mirroring\n // the classic login in apps/frontend.\n &__flip {\n display: grid;\n transform-style: preserve-3d;\n perspective: 1000px;\n }\n\n &__flip-card {\n grid-area: 1 / 1;\n backface-visibility: hidden;\n transform-style: preserve-3d;\n }\n\n // Subtle pop on the success check icon once the card has flipped in.\n &__success-icon {\n animation: pk-chatbot-auth-check-pop 0.4s ease-out 0.3s backwards;\n }\n }\n\n .pk-flip-enter-active {\n animation: pk-chatbot-auth-flip-in 0.6s ease-out;\n }\n\n .pk-flip-leave-active {\n animation: pk-chatbot-auth-flip-out 0.6s ease-in;\n }\n\n @keyframes pk-chatbot-auth-flip-in {\n 0% {\n transform: rotateY(-180deg);\n opacity: 0;\n }\n\n 100% {\n transform: rotateY(0deg);\n opacity: 1;\n }\n }\n\n @keyframes pk-chatbot-auth-flip-out {\n 0% {\n transform: rotateY(0deg);\n opacity: 1;\n }\n\n 100% {\n transform: rotateY(180deg);\n opacity: 0;\n }\n }\n\n @keyframes pk-chatbot-auth-check-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n\n 60% {\n transform: scale(1.15);\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n</style>\n"],"mappings":";;;;;;;;AAGA,IAAM,IAAa,EAAO,CAAC,QAAQ,OAAO,CAAC,GAa9B,IAAiB,EAClB,CAAC,CACR,IAAA,CAAuB,CAAC,CACxB,IAAA,EAAuB;AAEF,EAAS;CAC/B,IAAI,EAAS;CACb,MAAM,EAAS;CACf,OAAO,EAAS;CAChB,eAAe,EAAU;CACzB,OAAO,EAAS,CAAC,CAAC,SAAS;CAC3B,OAAO,EAAY,SAAS,CAAC,CAAC,SAAS;CACvC,WAAW,EAAc;CACzB,WAAW,EAAc;CACzB,QAAQ,EAAU,CAAC,CAAC,SAAS;CAC7B,WAAW,EAAS,CAAC,CAAC,SAAS;CAC/B,YAAY,EAAc,CAAC,CAAC,SAAS;CACrC,aAAa,EAAU,CAAC,CAAC,SAAS;CAClC,MAAM;AACV,CAAC,GASgC,EAAS;CACtC,IAAI,EAAS;CACb,MAAM,EAAS;CACf,OAAO,EAAS,CAAC,CAAC,SAAS;CAC3B,OAAO,EAAS,CAAC,CAAC,SAAS;CAC3B,aAAa,EAAU,CAAC,CAAC,SAAS;CAClC,QAAQ,EAAU,CAAC,CAAC,SAAS;AACjC,CAAC;AAID,IAAa,IAAuB,EACxB;CACJ,UAAU;CACV,sBAAsB;AAC1B,CAAC,CAAC,CACD,QAAQ,MAAS,EAAK,aAAa,EAAK,sBAAsB;CAC3D,QAAQ,EACJ,MAAM,6BACV;CACA,MAAM,CAAC,sBAAsB;AACjC,CAAC;AAI0C,EAAqB,OAAO,EACvE,iBAAiB,EACrB,CAAC,GAM+B,EAAqB,OAAO;CACxD,MAAM,EAAS,CAAC,CAAC,IAAI,CAAC;CACtB,OAAO,EAAQ;CACf,OAAO,EAAY,SAAS;CAC5B,MAAM,EAAW,SAAS,CAAC,CAAC,QAAQ,MAAM;AAC9C,CAAC,GAI+B,EAAS;CACrC,IAAI,EAAS;CACb,MAAM,EAAS;CACf,OAAO,EAAS;CAChB,eAAe,EAAU,CAAC,CAAC,SAAS;CACpC,OAAO,EAAS,CAAC,CAAC,QAAQ;CAC1B,MAAM;CACN,OAAO,EAAY,SAAS,CAAC,CAAC,SAAS;CACvC,QAAQ,EAAU,CAAC,CAAC,QAAQ;CAC5B,WAAW,EAAS,CAAC,CAAC,QAAQ;CAC9B,YAAY,EAAS,CAAC,CAAC,QAAQ;CAC/B,aAAa,EAAU,CAAC,CAAC,QAAQ;AACrC,CAAC;AAID,IAAa,IAAe,EAAqB,OAAO;CACpD,MAAM,EAAS,CAAC,CAAC,IAAI,CAAC;CACtB,OAAO,EAAQ;CACf,YAAY,EAAU,CAAC,CAAC,SAAS;AACrC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECjGG,IAAM,EAAE,GAAG,MAAO,GAAQ,EACtB,UAAU,SACd,CAAC,GAEK,IAAQ,GAeR,EAAE,iBAAc,oBAAiB,EAAiB,GAElD,IAAe,EAA+B,GAAC,cAEpD,GAKK,IAAU,EACb,GAAC,SAEJ,GAEM,IAAO,GAoBP,IAAO,EAAU,SAAS;EAChC,EAAM,SAAY;GAEd,AADA,EAAa,QAAQ,KAAA,GACrB,EAAQ,QAAQ,KAAA;EACpB,CAAC;EAGD,SAAS,KAAe;GAEpB,AADA,EAAQ,QAAQ,KAAA,GAChB,EAAK,QAAQ;EACjB;EAEA,IAAM,KAAoB,QAChB,EAAM,aAAa,UAAU,EAAM,aAAa,SAC1D,GAEM,KAAe,EAAS;GAC1B,OAAO,EAAQ;GACf,UAAU;GACV,YAAY,EAAU,CAAC,CAAC,QAAQ,EAAK;EACzC,CAAC,GAEK,KAAc,EAAS,EACzB,OAAO,EAAQ,EACnB,CAAC,GAEK,EAAE,QAAQ,IAAc,aAAa,MAAkB,EACzD,IACA,EAAE,UAAU,GAAK,CACrB,GACM,EACF,QAAQ,IACR,aAAa,GACb,OAAO,OACP,EAAQ,GAAc,EAAE,UAAU,GAAK,CAAC,GACtC,EACF,QAAQ,IACR,aAAa,IACb,OAAO,OACP,EAAQ,IAAa,EAAE,UAAU,GAAK,CAAC;EAI3C,EAAM,IAAU,MAAU;GACtB,AAAI,MACA,GAAY,GACZ,GAAW;EAEnB,CAAC;EAKD,IAAM,IAAc,EAAiB;EACrC,SAAS,KAAmB;GACxB,AAAI,EAAQ,SACR,EAAY,OAAO,MAAM;EAEjC;EAEA,SAAS,GAAS,GAIf;GACC,EAAK,WAAW;IACZ,OAAO,EAAK;IACZ,UAAU,EAAK;IACf,YAAY,EAAK,cAAc;GACnC,CAAC;EACL;EAEA,SAAS,EAAS,GAAyD;GACvE,EAAK,WAAW;IACZ,MAAM,EAAK,KAAK,KAAK;IACrB,OAAO,EAAK;IACZ,UAAU,EAAK;GACnB,CAAC;EACL;EAEA,SAAS,GAAQ,GAAyB;GACtC,EAAK,iBAAiB,EAAE,OAAO,EAAK,MAAM,CAAC;EAC/C;EAEA,SAAS,EAAa,GAAkC;GACpD,EAAK,UAAU,CAAQ;EAC3B;;;GAIA,OAAA,EAAA,GAAA,EAiQM,OAjQN,GAiQM,CA/PF,EA8PM,OA9PN,GA8PM,CA7PF,EA4Pa,GAAA;IA3PT,MAAK;IACL,MAAK;IACJ,cAAa;;IAEd,SAAA,QAyBM,CAxBI,EAAA,SADV,EAAA,GAAA,EAyBM,OAAA;KAvBE,SAAA;KAAJ,KAAI;KACJ,KAAI;KACJ,UAAS;KACT,OAAM;;KACN,EAMM,OANN,GAMM,CAJF,EAGqC,GAAA;MAFjC,MAAK;MACL,eAAY;MACZ,OAAM;;KAEd,EAEK,MAFL,GAEK,EADE,EAAA,MAAQ,KAAK,GAAA,CAAA;KAEpB,EAEI,KAFJ,GAEI,EADG,EAAA,MAAQ,OAAO,GAAA,CAAA;KAEtB,EAK4B,GAAA;MAJxB,MAAK;MACL,WAAU;MACV,MAAK;MACJ,OAAO,EAAA,CAAA,CAAE,CAAA,qBAAA;MACT,SAAO;;IAIhB,GAAA,GAAA,MAAA,EAAA,GAAA,EA0NM,OA1NN,GA0NM,CArNF,EAsLM,OAtLN,GAsLM;KAnLQ,EAAA,CAAA,CAAY,CAAC,EAAA,UAAU,UAAU,IAAI,KAD/C,EAAA,GAAA,EAUM,OAVN,GAUM,CAPF,EAMQ,OAAA;MALH,KAAK,EAAA,UAAU,UAAU;MACzB,KAAK,EAAA,UAAU;MAChB,OAAM;MACL,SAAK,AAAA,EAAA,QAAA,MAAuC,EAAA,CAAA,CAAY,CAAC,EAAA,UAAU,UAAU,IAAI;;KAK1F,EAmBM,OAnBN,GAmBM,CAjBQ,EAAA,UAAU,QADpB,EAAA,GAAA,EAIK,MAJL,GAIK,EADE,EAAA,SAAS,IAAI,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,IAEpB,EAAA,GAAA,EAYY,GAXH,EAAA,UAAU,OAAI,OAAA,IAAA,GAAA,EACnB,OAAM,mBAAkB,GAAA;MACxB,SAAA,QAEW,CAFK,EAAA,UAAI,aAApB,EAAA,GAAA,EAEW,GAAA,EAAA,KAAA,EAAA,GAAA,CADJ,EAAA,EAAA,EAAA,CAAA,CAAE,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,EAAA,KAEY,EAAA,UAAI,aAAzB,EAAA,GAAA,EAEW,GAAA,EAAA,KAAA,EAAA,GAAA,CADJ,EAAA,EAAA,EAAA,CAAA,CAAE,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,EAAA,KAEY,EAAA,UAAI,WAAzB,EAAA,GAAA,EAEW,GAAA,EAAA,KAAA,EAAA,GAAA,CADJ,EAAA,EAAA,EAAA,CAAA,CAAE,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;;KAOP,EAAA,SADV,EAAA,GAAA,EAI8B,GAAA;;MAF1B,WAAU;MACV,OAAM;MACL,SAAS,EAAA;;KAIJ,EAAA,UAAI,aADd,EAAA,GAAA,EAqCe,EAAA,EAAA,GAAA;;MAnCX,OAAM;MACL,UAAU,EAAA;MACV,UAAQ;;MACT,SAAA,QAyBM,CAzBN,EAyBM,OAzBN,GAyBM;OAxBF,EAKe,EAAA,CAAA,GAAA;QAJX,MAAK;QACL,MAAK;QACL,cAAa;QACZ,OAAO,EAAA,CAAA,CAAE,CAAA,aAAA;QACV,UAAA;;OACJ,EAKe,EAAA,CAAA,GAAA;QAJX,MAAK;QACL,MAAK;QACL,cAAa;QACZ,OAAO,EAAA,CAAA,CAAE,CAAA,gBAAA;QACV,UAAA;;OACJ,EAMM,OANN,GAMM,CALF,EAI8B,GAAA;QAH1B,MAAK;QACL,WAAU;QACT,OAAO,EAAA,CAAA,CAAE,CAAA,uBAAA;QACT,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAI;;OAEpB,EAIa,EAAA,CAAA,GAAA;QAHT,MAAK;QACL,MAAK;QACJ,OAAO,EAAA,CAAA,CAAE,CAAA,kBAAA;QACV,QAAA;;MAER,CAAA,GAAA,EAKmC,GAAA;OAJ/B,MAAK;OACL,WAAU;OACT,SAAS,EAAA;OACT,UAAU,EAAA;OACV,OAAO,EAAA,CAAA,CAAE,CAAA,eAAA;;;;;;;KAKH,GAAA,GAAA,CAAA,UAAA,CAAA,KAAA,EAAA,UAAI,aADnB,EAAA,GAAA,EAqCe,EAAA,EAAA,GAAA;;MAnCX,OAAM;MACL,UAAU,EAAA;MACV,UAAQ;;MACT,SAAA,QAyBM,CAzBN,EAyBM,OAzBN,GAyBM;OAxBF,EAKe,EAAA,CAAA,GAAA;QAJX,MAAK;QACL,MAAK;QACL,cAAa;QACZ,OAAO,EAAA,CAAA,CAAE,CAAA,YAAA;QACV,UAAA;;OACJ,EAKe,EAAA,CAAA,GAAA;QAJX,MAAK;QACL,MAAK;QACL,cAAa;QACZ,OAAO,EAAA,CAAA,CAAE,CAAA,aAAA;QACV,UAAA;;OACJ,EAKe,EAAA,CAAA,GAAA;QAJX,MAAK;QACL,MAAK;QACL,cAAa;QACZ,OAAO,EAAA,CAAA,CAAE,CAAA,gBAAA;QACV,UAAA;;OACJ,EAKe,EAAA,CAAA,GAAA;QAJX,MAAK;QACL,MAAK;QACL,cAAa;QACZ,OAAO,EAAA,CAAA,CAAE,CAAA,uBAAA;QACV,UAAA;;MAER,CAAA,GAAA,EAKqC,GAAA;OAJjC,MAAK;OACL,WAAU;OACT,SAAS,EAAA;OACT,UAAU,EAAA;OACV,OAAO,EAAA,CAAA,CAAE,CAAA,iBAAA;;;;;;;KAKH,GAAA,GAAA,CAAA,UAAA,CAAA,KAAA,EAAA,UAAI,WADnB,EAAA,GAAA,EAmBc,EAAA,EAAA,GAAA;;MAjBV,OAAM;MACL,UAAU,EAAA;MACV,UAAQ;;MACT,SAAA,QAKe,CALf,EAKe,EAAA,EAAA,GAAA;OAJX,MAAK;OACL,MAAK;OACL,cAAa;OACZ,OAAO,EAAA,CAAA,CAAE,CAAA,aAAA;OACV,UAAA;MACJ,GAAA,MAAA,GAAA,CAAA,OAAA,CAAA,GAAA,EAOgB,GAAA,EAPD,WAAU,WAAU,GAAA;OAC/B,SAAA,QAKmC,CALnC,EAKmC,GAAA;QAJ/B,MAAK;QACL,WAAU;QACT,SAAS,EAAA;QACT,UAAU,EAAA;QACV,OAAO,EAAA,CAAA,CAAE,CAAA,eAAA;;;;;;;;;;MAMsB,EAAA,UAAI,aAAkB,EAAA,UAAI,cAAmD,GAAA,SADzH,EAAA,GAAA,EAoCW,GAAA,EAAA,KAAA,EAAA,GAAA,CA/BP,EAEM,OAFN,IAEM,CADF,EAAiC,QAAA,MAAA,EAAxB,EAAA,CAAA,CAAE,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAEf,EA2BgB,GAAA;MA1BZ,WAAU;MACV,OAAM;;MACN,SAAA,QAWsC,CAV5B,EAAA,aAAa,UADvB,EAAA,GAAA,EAWsC,GAAA;;OATlC,MAAK;OACL,WAAU;OACV,MAAK;OACJ,UAAU,EAAA;OACV,OAAgD,EAAA,CAAA,CAAE,CAAA,mCAAA,EAAA,UAAA,SAAA,CAAA;OAKlD,SAAK,AAAA,EAAA,QAAA,MAAE,EAAY,QAAA;MAEd,GAAA,MAAA,GAAA,CAAA,YAAA,OAAA,CAAA,KAAA,EAAA,IAAA,EAAA,GAAA,EAAA,aAAa,aADvB,EAAA,GAAA,EAWyC,GAAA;;OATrC,MAAK;OACL,WAAU;OACV,MAAK;OACJ,UAAU,EAAA;OACV,OAAgD,EAAA,CAAA,CAAE,CAAA,mCAAA,EAAA,UAAA,YAAA,CAAA;OAKlD,SAAK,AAAA,EAAA,QAAA,MAAE,EAAY,WAAA;;;;IAMpC,CAAA,GAAA,EA2BM,OA3BN,GA2BM,CA1Bc,EAAA,UAAI,aAApB,EAAA,GAAA,EAQW,GAAA,EAAA,KAAA,EAAA,GAAA,CAPJ,EAAA,EAAA,EAAA,CAAA,CAAE,CAAA,gBAAA,CAAA,IAAqB,KAC1B,CAAA,GAAA,EAKgC,GAAA;KAJ5B,MAAK;KACL,WAAU;KACV,OAAM;KACL,OAAO,EAAA,CAAA,CAAE,CAAA,eAAA;KACT,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAI;IAEC,GAAA,MAAA,GAAA,CAAA,OAAA,CAAA,CAAA,GAAA,EAAA,KAAA,EAAA,UAAI,aAAzB,EAAA,GAAA,EAQW,GAAA,EAAA,KAAA,EAAA,GAAA,CAPJ,EAAA,EAAA,EAAA,CAAA,CAAE,CAAA,kBAAA,CAAA,IAAuB,KAC5B,CAAA,GAAA,EAKgC,GAAA;KAJ5B,MAAK;KACL,WAAU;KACV,OAAM;KACL,OAAO,EAAA,CAAA,CAAE,CAAA,eAAA;KACT,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAI;IAGhB,GAAA,MAAA,GAAA,CAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAAA,EAKgC,GAAA;;KAJ5B,MAAK;KACL,WAAU;KACV,MAAK;KACJ,OAAO,EAAA,CAAA,CAAE,CAAA,qBAAA;KACT,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAI"}
|
|
@@ -20,7 +20,7 @@ var W = (e) => e.normalize("NFD").replace(/[\u0300-\u036f]/g, ""), _e = (e) => e
|
|
|
20
20
|
showCalendarEvent: j(() => import("./PkToolShowCalendarEvent-BsBdsbV0.js").then((e) => e.n)),
|
|
21
21
|
showComparison: j(() => import("./PkToolShowComparison-BLn4pkno.js").then((e) => e.n)),
|
|
22
22
|
showContactForm: j(() => import("./PkToolShowContactForm-_x_dbiHn.js").then((e) => e.n)),
|
|
23
|
-
showDiagram: j(() => import("./PkToolShowDiagram-
|
|
23
|
+
showDiagram: j(() => import("./PkToolShowDiagram-RtkI_sKL.js")),
|
|
24
24
|
showEmail: j(() => import("./PkToolShowEmail-CRQjoJr1.js").then((e) => e.n)),
|
|
25
25
|
showImageGallery: j(() => import("./PkToolShowImageGallery-DudQzBx4.js").then((e) => e.n)),
|
|
26
26
|
showLocation: j(() => import("./PkToolShowLocation-Bv6sLN5P.js").then((e) => e.n)),
|
|
@@ -29,9 +29,9 @@ var W = (e) => e.normalize("NFD").replace(/[\u0300-\u036f]/g, ""), _e = (e) => e
|
|
|
29
29
|
showMultipleChoice: j(() => import("./PkToolShowForm-IPAkJIXh.js").then((e) => e.n)),
|
|
30
30
|
showProductList: j(() => import("./PkToolShowProductList-tOYjd2bq.js").then((e) => e.n)),
|
|
31
31
|
showQrCode: j(() => import("./PkToolShowQrCode-DEAvfLFu.js").then((e) => e.n)),
|
|
32
|
-
showSources: j(() => import("./PkToolShowSources-
|
|
32
|
+
showSources: j(() => import("./PkToolShowSources-gI947JOm.js").then((e) => e.n)),
|
|
33
33
|
showSuggestedReply: j(() => import("./PkToolShowSuggestedReply-DA4NEjHB.js").then((e) => e.n)),
|
|
34
|
-
showVideo: j(() => import("./PkToolShowVideo-
|
|
34
|
+
showVideo: j(() => import("./PkToolShowVideo-BZOTu2Qe.js")),
|
|
35
35
|
showWeather: j(() => import("./PkToolShowWeather-Bzqalzh8.js")),
|
|
36
36
|
showWebPages: j(() => import("./PkToolShowWebPages-D3Xy4iUs.js").then((e) => e.n))
|
|
37
37
|
}, G = {
|
|
@@ -773,4 +773,4 @@ var Oe = ["aria-busy"], ke = {
|
|
|
773
773
|
//#endregion
|
|
774
774
|
export { ye as a, ve as i, be as n, _e as r, et as t };
|
|
775
775
|
|
|
776
|
-
//# sourceMappingURL=PkChatbotMessages-
|
|
776
|
+
//# sourceMappingURL=PkChatbotMessages-BD-vUak6.js.map
|