@strands.gg/accui 0.2.10 → 0.2.12
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/nuxt/module.cjs.js +1 -1
- package/dist/nuxt/module.cjs.js.map +1 -1
- package/dist/nuxt/module.d.ts.map +1 -1
- package/dist/nuxt/module.es.js +23 -14
- package/dist/nuxt/module.es.js.map +1 -1
- package/dist/nuxt-v4/module.cjs.js +5 -5
- package/dist/nuxt-v4/module.cjs.js.map +1 -1
- package/dist/nuxt-v4/module.d.ts.map +1 -1
- package/dist/nuxt-v4/module.es.js +27 -19
- package/dist/nuxt-v4/module.es.js.map +1 -1
- package/dist/strands-auth-ui.cjs.js +2 -2
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +474 -456
- package/dist/strands-auth-ui.es.js.map +1 -1
- package/dist/vue/components/SignedOut.vue.d.ts.map +1 -1
- package/dist/vue/index.d.ts +2 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/plugins/StrandsUIPlugin.d.ts +18 -0
- package/dist/vue/plugins/StrandsUIPlugin.d.ts.map +1 -0
- package/package.json +11 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineComponent as X, computed as C, createElementBlock as A, openBlock as i, normalizeClass as Y, createElementVNode as r, createCommentVNode as n, toDisplayString as k, renderSlot as Z, createTextVNode as V, useSlots as
|
|
2
|
-
import { u as _, p as
|
|
3
|
-
import { s as
|
|
4
|
-
import { u as
|
|
5
|
-
const
|
|
1
|
+
import { defineComponent as X, computed as C, createElementBlock as A, openBlock as i, normalizeClass as Y, createElementVNode as r, createCommentVNode as n, toDisplayString as k, renderSlot as Z, createTextVNode as V, useSlots as we, ref as U, createBlock as E, resolveDynamicComponent as pe, mergeProps as Se, withCtx as y, onMounted as J, nextTick as ce, toRefs as qe, watch as se, Fragment as O, renderList as Ae, normalizeStyle as ve, reactive as G, createVNode as d, Transition as R, withModifiers as ae, createSlots as Ve, createStaticVNode as ye, h as z } from "vue";
|
|
2
|
+
import { u as _, p as ge } from "./useStrandsConfig-j-Bfv_s7.js";
|
|
3
|
+
import { s as ka } from "./useStrandsConfig-j-Bfv_s7.js";
|
|
4
|
+
import { u as ne } from "./useStrandsAuth-CPyy4tH6.js";
|
|
5
|
+
const Ce = /* @__PURE__ */ X({
|
|
6
6
|
__name: "UiAlert",
|
|
7
7
|
props: {
|
|
8
8
|
variant: { type: String, required: !1, default: "info" },
|
|
@@ -32,7 +32,7 @@ const Ve = /* @__PURE__ */ X({
|
|
|
32
32
|
warning: "text-yellow-800",
|
|
33
33
|
info: "text-blue-800"
|
|
34
34
|
}[a.variant]
|
|
35
|
-
].join(" ")),
|
|
35
|
+
].join(" ")), u = C(() => [
|
|
36
36
|
"text-sm",
|
|
37
37
|
{
|
|
38
38
|
success: "text-green-700",
|
|
@@ -53,7 +53,7 @@ const Ve = /* @__PURE__ */ X({
|
|
|
53
53
|
error: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",
|
|
54
54
|
warning: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
|
|
55
55
|
info: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
|
|
56
|
-
})[a.variant]), w = { props: a, alertClasses: e, titleClasses: l, messageClasses:
|
|
56
|
+
})[a.variant]), w = { props: a, alertClasses: e, titleClasses: l, messageClasses: u, dismissClasses: s, iconPath: g };
|
|
57
57
|
return Object.defineProperty(w, "__isScriptSetup", { enumerable: !1, value: !0 }), w;
|
|
58
58
|
}
|
|
59
59
|
}), D = (o, t) => {
|
|
@@ -61,16 +61,16 @@ const Ve = /* @__PURE__ */ X({
|
|
|
61
61
|
for (const [e, l] of t)
|
|
62
62
|
a[e] = l;
|
|
63
63
|
return a;
|
|
64
|
-
},
|
|
64
|
+
}, xe = { class: "flex items-start" }, Ue = { class: "flex-shrink-0" }, We = {
|
|
65
65
|
class: "h-5 w-5",
|
|
66
66
|
fill: "currentColor",
|
|
67
67
|
viewBox: "0 0 20 20",
|
|
68
68
|
"aria-hidden": "true"
|
|
69
|
-
},
|
|
69
|
+
}, ke = ["d"], Ne = { class: "ml-3 flex-1" }, Le = {
|
|
70
70
|
key: 0,
|
|
71
71
|
class: "ml-auto pl-3"
|
|
72
72
|
};
|
|
73
|
-
function
|
|
73
|
+
function Me(o, t, a, e, l, u) {
|
|
74
74
|
return i(), A(
|
|
75
75
|
"div",
|
|
76
76
|
{
|
|
@@ -78,17 +78,17 @@ function Le(o, t, a, e, l, c) {
|
|
|
78
78
|
role: "alert"
|
|
79
79
|
},
|
|
80
80
|
[
|
|
81
|
-
r("div",
|
|
82
|
-
r("div",
|
|
83
|
-
(i(), A("svg",
|
|
81
|
+
r("div", xe, [
|
|
82
|
+
r("div", Ue, [
|
|
83
|
+
(i(), A("svg", We, [
|
|
84
84
|
r("path", {
|
|
85
85
|
"fill-rule": "evenodd",
|
|
86
86
|
d: e.iconPath,
|
|
87
87
|
"clip-rule": "evenodd"
|
|
88
|
-
}, null, 8,
|
|
88
|
+
}, null, 8, ke)
|
|
89
89
|
]))
|
|
90
90
|
]),
|
|
91
|
-
r("div",
|
|
91
|
+
r("div", Ne, [
|
|
92
92
|
a.title ? (i(), A(
|
|
93
93
|
"h3",
|
|
94
94
|
{
|
|
@@ -117,7 +117,7 @@ function Le(o, t, a, e, l, c) {
|
|
|
117
117
|
/* CLASS */
|
|
118
118
|
)
|
|
119
119
|
]),
|
|
120
|
-
a.dismissible ? (i(), A("div",
|
|
120
|
+
a.dismissible ? (i(), A("div", Le, [
|
|
121
121
|
r(
|
|
122
122
|
"button",
|
|
123
123
|
{
|
|
@@ -161,7 +161,7 @@ function Le(o, t, a, e, l, c) {
|
|
|
161
161
|
/* CLASS */
|
|
162
162
|
);
|
|
163
163
|
}
|
|
164
|
-
const de = /* @__PURE__ */ D(
|
|
164
|
+
const de = /* @__PURE__ */ D(Ce, [["render", Me], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiAlert.vue"]]), Pe = /* @__PURE__ */ X({
|
|
165
165
|
__name: "UiButton",
|
|
166
166
|
props: {
|
|
167
167
|
variant: { type: String, required: !1, default: "primary" },
|
|
@@ -176,7 +176,7 @@ const de = /* @__PURE__ */ D(Ve, [["render", Le], ["__file", "/home/runner/work/
|
|
|
176
176
|
setup(o, { expose: t }) {
|
|
177
177
|
t();
|
|
178
178
|
const a = o, e = C(() => {
|
|
179
|
-
const
|
|
179
|
+
const u = [
|
|
180
180
|
"inline-flex items-center justify-center font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"
|
|
181
181
|
], s = {
|
|
182
182
|
sm: "px-3 py-2 text-sm rounded-md",
|
|
@@ -189,7 +189,7 @@ const de = /* @__PURE__ */ D(Ve, [["render", Le], ["__file", "/home/runner/work/
|
|
|
189
189
|
outline: "border border-strands-500 text-strands-500 hover:bg-strands-500 hover:text-white"
|
|
190
190
|
}, w = a.fullWidth ? "w-full" : "";
|
|
191
191
|
return [
|
|
192
|
-
...
|
|
192
|
+
...u,
|
|
193
193
|
s[a.size],
|
|
194
194
|
g[a.variant],
|
|
195
195
|
w
|
|
@@ -197,14 +197,14 @@ const de = /* @__PURE__ */ D(Ve, [["render", Le], ["__file", "/home/runner/work/
|
|
|
197
197
|
}), l = { props: a, buttonClasses: e };
|
|
198
198
|
return Object.defineProperty(l, "__isScriptSetup", { enumerable: !1, value: !0 }), l;
|
|
199
199
|
}
|
|
200
|
-
}),
|
|
200
|
+
}), Ie = ["type", "disabled"], ze = {
|
|
201
201
|
key: 0,
|
|
202
202
|
class: "flex items-center justify-center gap-2"
|
|
203
|
-
},
|
|
203
|
+
}, Be = {
|
|
204
204
|
key: 1,
|
|
205
205
|
class: "flex items-center justify-center gap-2"
|
|
206
206
|
};
|
|
207
|
-
function
|
|
207
|
+
function Fe(o, t, a, e, l, u) {
|
|
208
208
|
return i(), A("button", {
|
|
209
209
|
type: a.type,
|
|
210
210
|
disabled: a.disabled || a.loading,
|
|
@@ -244,13 +244,13 @@ function Be(o, t, a, e, l, c) {
|
|
|
244
244
|
1
|
|
245
245
|
/* TEXT */
|
|
246
246
|
)
|
|
247
|
-
])) : (i(), A("span",
|
|
247
|
+
])) : (i(), A("span", Be, [
|
|
248
248
|
Z(o.$slots, "icon"),
|
|
249
249
|
Z(o.$slots, "default")
|
|
250
250
|
]))
|
|
251
|
-
], 10,
|
|
251
|
+
], 10, Ie);
|
|
252
252
|
}
|
|
253
|
-
const
|
|
253
|
+
const $ = /* @__PURE__ */ D(Pe, [["render", Fe], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiButton.vue"]]), Xe = /* @__PURE__ */ X({
|
|
254
254
|
__name: "UiCard",
|
|
255
255
|
props: {
|
|
256
256
|
variant: { type: String, required: !1, default: "default" },
|
|
@@ -260,7 +260,7 @@ const se = /* @__PURE__ */ D(Me, [["render", Be], ["__file", "/home/runner/work/
|
|
|
260
260
|
setup(o, { expose: t }) {
|
|
261
261
|
t();
|
|
262
262
|
const a = o, e = C(() => {
|
|
263
|
-
const
|
|
263
|
+
const u = ["bg-white border border-gray-200"], s = {
|
|
264
264
|
default: "rounded-lg",
|
|
265
265
|
modern: "rounded-2xl backdrop-blur-lg",
|
|
266
266
|
minimal: "rounded-md"
|
|
@@ -275,7 +275,7 @@ const se = /* @__PURE__ */ D(Me, [["render", Be], ["__file", "/home/runner/work/
|
|
|
275
275
|
lg: "shadow-lg"
|
|
276
276
|
};
|
|
277
277
|
return [
|
|
278
|
-
...
|
|
278
|
+
...u,
|
|
279
279
|
s[a.variant],
|
|
280
280
|
g[a.padding],
|
|
281
281
|
w[a.shadow]
|
|
@@ -283,27 +283,27 @@ const se = /* @__PURE__ */ D(Me, [["render", Be], ["__file", "/home/runner/work/
|
|
|
283
283
|
}), l = { props: a, cardClasses: e };
|
|
284
284
|
return Object.defineProperty(l, "__isScriptSetup", { enumerable: !1, value: !0 }), l;
|
|
285
285
|
}
|
|
286
|
-
}),
|
|
286
|
+
}), De = {
|
|
287
287
|
key: 0,
|
|
288
288
|
class: "border-b border-gray-200 pb-4 mb-6"
|
|
289
|
-
},
|
|
289
|
+
}, je = { class: "space-y-6" }, Ze = {
|
|
290
290
|
key: 1,
|
|
291
291
|
class: "border-t border-gray-200 pt-4 mt-6"
|
|
292
292
|
};
|
|
293
|
-
function
|
|
293
|
+
function Te(o, t, a, e, l, u) {
|
|
294
294
|
return i(), A(
|
|
295
295
|
"div",
|
|
296
296
|
{
|
|
297
297
|
class: Y(e.cardClasses)
|
|
298
298
|
},
|
|
299
299
|
[
|
|
300
|
-
o.$slots.header ? (i(), A("div",
|
|
300
|
+
o.$slots.header ? (i(), A("div", De, [
|
|
301
301
|
Z(o.$slots, "header")
|
|
302
302
|
])) : n("v-if", !0),
|
|
303
|
-
r("div",
|
|
303
|
+
r("div", je, [
|
|
304
304
|
Z(o.$slots, "default")
|
|
305
305
|
]),
|
|
306
|
-
o.$slots.footer ? (i(), A("div",
|
|
306
|
+
o.$slots.footer ? (i(), A("div", Ze, [
|
|
307
307
|
Z(o.$slots, "footer")
|
|
308
308
|
])) : n("v-if", !0)
|
|
309
309
|
],
|
|
@@ -311,7 +311,7 @@ function Ze(o, t, a, e, l, c) {
|
|
|
311
311
|
/* CLASS */
|
|
312
312
|
);
|
|
313
313
|
}
|
|
314
|
-
const
|
|
314
|
+
const oe = /* @__PURE__ */ D(Xe, [["render", Te], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiCard.vue"]]), Ye = /* @__PURE__ */ X({
|
|
315
315
|
__name: "UiInput",
|
|
316
316
|
props: {
|
|
317
317
|
modelValue: { type: [String, Number], required: !1 },
|
|
@@ -328,14 +328,14 @@ const Ae = /* @__PURE__ */ D(Fe, [["render", Ze], ["__file", "/home/runner/work/
|
|
|
328
328
|
emits: ["update:modelValue", "blur", "focus"],
|
|
329
329
|
setup(o, { expose: t, emit: a }) {
|
|
330
330
|
t();
|
|
331
|
-
const e = o, l = a,
|
|
331
|
+
const e = o, l = a, u = we(), s = U(!1), g = U(`input-${Math.random().toString(36).substr(2, 9)}`), w = C(() => e.type === "password" ? s.value ? "text" : "password" : e.type), x = C(() => {
|
|
332
332
|
const p = [
|
|
333
333
|
"block w-full border-gray-300 text-black rounded-lg shadow-sm focus-visible:ring-strands-500 focus-visible:border-strands-500 transition-colors duration-200 disabled:bg-gray-50 disabled:text-gray-500"
|
|
334
334
|
], f = {
|
|
335
335
|
sm: "px-3 py-2 text-sm",
|
|
336
336
|
md: "px-3 py-2.5 text-sm",
|
|
337
337
|
lg: "px-4 py-3 text-base"
|
|
338
|
-
}, W = e.error ? "border-red-300 focus-visible:ring-red-500 focus-visible:border-red-500" : "", N =
|
|
338
|
+
}, W = e.error ? "border-red-300 focus-visible:ring-red-500 focus-visible:border-red-500" : "", N = u.icon ? "pl-10" : "", B = e.type === "password" ? "pr-10" : "";
|
|
339
339
|
return [
|
|
340
340
|
...p,
|
|
341
341
|
f[e.size],
|
|
@@ -343,7 +343,7 @@ const Ae = /* @__PURE__ */ D(Fe, [["render", Ze], ["__file", "/home/runner/work/
|
|
|
343
343
|
N,
|
|
344
344
|
B
|
|
345
345
|
].filter(Boolean).join(" ");
|
|
346
|
-
}), S = { props: e, emit: l, slots:
|
|
346
|
+
}), S = { props: e, emit: l, slots: u, showPassword: s, inputId: g, computedType: w, inputClasses: x, handleInput: (p) => {
|
|
347
347
|
const f = p.target;
|
|
348
348
|
l("update:modelValue", f.value);
|
|
349
349
|
}, togglePasswordVisibility: () => {
|
|
@@ -351,33 +351,33 @@ const Ae = /* @__PURE__ */ D(Fe, [["render", Ze], ["__file", "/home/runner/work/
|
|
|
351
351
|
} };
|
|
352
352
|
return Object.defineProperty(S, "__isScriptSetup", { enumerable: !1, value: !0 }), S;
|
|
353
353
|
}
|
|
354
|
-
}),
|
|
354
|
+
}), Oe = { class: "space-y-1" }, Ee = ["for"], Qe = {
|
|
355
355
|
key: 0,
|
|
356
356
|
class: "text-red-500"
|
|
357
|
-
},
|
|
357
|
+
}, Ke = { class: "relative" }, He = ["id", "type", "value", "placeholder", "disabled", "required", "autocomplete"], Re = {
|
|
358
358
|
key: 0,
|
|
359
359
|
class: "h-5 w-5",
|
|
360
360
|
fill: "none",
|
|
361
361
|
stroke: "currentColor",
|
|
362
362
|
viewBox: "0 0 24 24"
|
|
363
|
-
},
|
|
363
|
+
}, Ge = {
|
|
364
364
|
key: 1,
|
|
365
365
|
class: "h-5 w-5",
|
|
366
366
|
fill: "none",
|
|
367
367
|
stroke: "currentColor",
|
|
368
368
|
viewBox: "0 0 24 24"
|
|
369
|
-
},
|
|
369
|
+
}, Je = {
|
|
370
370
|
key: 1,
|
|
371
371
|
class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"
|
|
372
|
-
},
|
|
372
|
+
}, _e = {
|
|
373
373
|
key: 1,
|
|
374
374
|
class: "text-sm text-red-600"
|
|
375
|
-
},
|
|
375
|
+
}, $e = {
|
|
376
376
|
key: 2,
|
|
377
377
|
class: "text-sm text-gray-500"
|
|
378
378
|
};
|
|
379
|
-
function
|
|
380
|
-
return i(), A("div",
|
|
379
|
+
function et(o, t, a, e, l, u) {
|
|
380
|
+
return i(), A("div", Oe, [
|
|
381
381
|
a.label ? (i(), A("label", {
|
|
382
382
|
key: 0,
|
|
383
383
|
for: e.inputId,
|
|
@@ -388,9 +388,9 @@ function $e(o, t, a, e, l, c) {
|
|
|
388
388
|
1
|
|
389
389
|
/* TEXT */
|
|
390
390
|
),
|
|
391
|
-
a.required ? (i(), A("span",
|
|
392
|
-
], 8,
|
|
393
|
-
r("div",
|
|
391
|
+
a.required ? (i(), A("span", Qe, "*")) : n("v-if", !0)
|
|
392
|
+
], 8, Ee)) : n("v-if", !0),
|
|
393
|
+
r("div", Ke, [
|
|
394
394
|
r("input", {
|
|
395
395
|
id: e.inputId,
|
|
396
396
|
type: e.computedType,
|
|
@@ -403,7 +403,7 @@ function $e(o, t, a, e, l, c) {
|
|
|
403
403
|
onInput: e.handleInput,
|
|
404
404
|
onBlur: t[0] || (t[0] = (s) => o.$emit("blur", s)),
|
|
405
405
|
onFocus: t[1] || (t[1] = (s) => o.$emit("focus", s))
|
|
406
|
-
}, null, 42,
|
|
406
|
+
}, null, 42, He),
|
|
407
407
|
n(" Password visibility toggle "),
|
|
408
408
|
a.type === "password" ? (i(), A("button", {
|
|
409
409
|
key: 0,
|
|
@@ -411,7 +411,7 @@ function $e(o, t, a, e, l, c) {
|
|
|
411
411
|
class: "absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 hover:text-gray-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 rounded-md",
|
|
412
412
|
onClick: e.togglePasswordVisibility
|
|
413
413
|
}, [
|
|
414
|
-
e.showPassword ? (i(), A("svg",
|
|
414
|
+
e.showPassword ? (i(), A("svg", Re, t[2] || (t[2] = [
|
|
415
415
|
r(
|
|
416
416
|
"path",
|
|
417
417
|
{
|
|
@@ -424,7 +424,7 @@ function $e(o, t, a, e, l, c) {
|
|
|
424
424
|
-1
|
|
425
425
|
/* CACHED */
|
|
426
426
|
)
|
|
427
|
-
]))) : (i(), A("svg",
|
|
427
|
+
]))) : (i(), A("svg", Ge, t[3] || (t[3] = [
|
|
428
428
|
r(
|
|
429
429
|
"path",
|
|
430
430
|
{
|
|
@@ -452,27 +452,27 @@ function $e(o, t, a, e, l, c) {
|
|
|
452
452
|
])))
|
|
453
453
|
])) : n("v-if", !0),
|
|
454
454
|
n(" Icon slot "),
|
|
455
|
-
o.$slots.icon ? (i(), A("div",
|
|
455
|
+
o.$slots.icon ? (i(), A("div", Je, [
|
|
456
456
|
Z(o.$slots, "icon", {}, void 0, !0)
|
|
457
457
|
])) : n("v-if", !0)
|
|
458
458
|
]),
|
|
459
459
|
n(" Help text or error message "),
|
|
460
460
|
a.error ? (i(), A(
|
|
461
461
|
"p",
|
|
462
|
-
|
|
462
|
+
_e,
|
|
463
463
|
k(a.error),
|
|
464
464
|
1
|
|
465
465
|
/* TEXT */
|
|
466
466
|
)) : a.helpText ? (i(), A(
|
|
467
467
|
"p",
|
|
468
|
-
|
|
468
|
+
$e,
|
|
469
469
|
k(a.helpText),
|
|
470
470
|
1
|
|
471
471
|
/* TEXT */
|
|
472
472
|
)) : n("v-if", !0)
|
|
473
473
|
]);
|
|
474
474
|
}
|
|
475
|
-
const
|
|
475
|
+
const ee = /* @__PURE__ */ D(Ye, [["render", et], ["__scopeId", "data-v-e87dc617"], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiInput.vue"]]), tt = /* @__PURE__ */ X({
|
|
476
476
|
__name: "UiLink",
|
|
477
477
|
props: {
|
|
478
478
|
href: { type: String, required: !1 },
|
|
@@ -485,7 +485,7 @@ const ae = /* @__PURE__ */ D(Te, [["render", $e], ["__scopeId", "data-v-e87dc617
|
|
|
485
485
|
emits: ["click"],
|
|
486
486
|
setup(o, { expose: t, emit: a }) {
|
|
487
487
|
t();
|
|
488
|
-
const e = o, l = a,
|
|
488
|
+
const e = o, l = a, u = C(() => e.to ? "router-link" : e.href ? "a" : "button"), s = C(() => {
|
|
489
489
|
const q = {};
|
|
490
490
|
return e.to ? q.to = e.to : e.href ? (q.href = e.href, e.external && (q.target = "_blank", q.rel = "noopener noreferrer")) : q.type = "button", e.disabled && (q.disabled = !0, q["aria-disabled"] = !0), q;
|
|
491
491
|
}), g = C(() => {
|
|
@@ -506,14 +506,14 @@ const ae = /* @__PURE__ */ D(Te, [["render", $e], ["__scopeId", "data-v-e87dc617
|
|
|
506
506
|
m[e.size],
|
|
507
507
|
S[e.variant]
|
|
508
508
|
].filter(Boolean).join(" ");
|
|
509
|
-
}), x = { props: e, emit: l, tag:
|
|
509
|
+
}), x = { props: e, emit: l, tag: u, linkProps: s, linkClasses: g, handleClick: (q) => {
|
|
510
510
|
e.disabled || l("click", q);
|
|
511
511
|
} };
|
|
512
512
|
return Object.defineProperty(x, "__isScriptSetup", { enumerable: !1, value: !0 }), x;
|
|
513
513
|
}
|
|
514
514
|
});
|
|
515
|
-
function
|
|
516
|
-
return i(), E(
|
|
515
|
+
function rt(o, t, a, e, l, u) {
|
|
516
|
+
return i(), E(pe(e.tag), Se({ class: e.linkClasses }, e.linkProps, { onClick: e.handleClick }), {
|
|
517
517
|
default: y(() => [
|
|
518
518
|
Z(o.$slots, "default")
|
|
519
519
|
]),
|
|
@@ -521,7 +521,7 @@ function tt(o, t, a, e, l, c) {
|
|
|
521
521
|
/* FORWARDED */
|
|
522
522
|
}, 16, ["class"]);
|
|
523
523
|
}
|
|
524
|
-
const
|
|
524
|
+
const te = /* @__PURE__ */ D(tt, [["render", rt], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLink.vue"]]), st = /* @__PURE__ */ X({
|
|
525
525
|
__name: "UiTabs",
|
|
526
526
|
props: {
|
|
527
527
|
modelValue: { type: String, required: !0 },
|
|
@@ -530,7 +530,7 @@ const ne = /* @__PURE__ */ D(et, [["render", tt], ["__file", "/home/runner/work/
|
|
|
530
530
|
emits: ["update:modelValue"],
|
|
531
531
|
setup(o, { expose: t, emit: a }) {
|
|
532
532
|
t();
|
|
533
|
-
const e = o, l = a,
|
|
533
|
+
const e = o, l = a, u = U([]), s = U({
|
|
534
534
|
width: "0px",
|
|
535
535
|
left: "0px",
|
|
536
536
|
opacity: "0"
|
|
@@ -539,27 +539,27 @@ const ne = /* @__PURE__ */ D(et, [["render", tt], ["__file", "/home/runner/work/
|
|
|
539
539
|
const x = async (f, W) => {
|
|
540
540
|
w || (l("update:modelValue", f), await ce(), q(W));
|
|
541
541
|
}, q = async (f) => {
|
|
542
|
-
if (!
|
|
542
|
+
if (!u.value[f] || f === g) return;
|
|
543
543
|
w = !0;
|
|
544
|
-
const W =
|
|
544
|
+
const W = u.value[f], N = W.parentElement;
|
|
545
545
|
if (!N) return;
|
|
546
|
-
const B = W.getBoundingClientRect(), h = N.getBoundingClientRect(), v = B.left - h.left,
|
|
546
|
+
const B = W.getBoundingClientRect(), h = N.getBoundingClientRect(), v = B.left - h.left, c = B.width;
|
|
547
547
|
if (g === -1) {
|
|
548
548
|
s.value = {
|
|
549
|
-
width: `${
|
|
549
|
+
width: `${c}px`,
|
|
550
550
|
left: `${v}px`,
|
|
551
551
|
opacity: "1"
|
|
552
552
|
}, g = f, w = !1;
|
|
553
553
|
return;
|
|
554
554
|
}
|
|
555
|
-
const T =
|
|
555
|
+
const T = u.value[g].getBoundingClientRect(), K = T.left - h.left, F = T.width, M = f > g, j = M ? K : v, H = M ? v + c - K : K + F - v;
|
|
556
556
|
s.value = {
|
|
557
557
|
width: `${H}px`,
|
|
558
558
|
left: `${j}px`,
|
|
559
559
|
opacity: "1"
|
|
560
560
|
}, setTimeout(() => {
|
|
561
561
|
s.value = {
|
|
562
|
-
width: `${
|
|
562
|
+
width: `${c}px`,
|
|
563
563
|
left: `${v}px`,
|
|
564
564
|
opacity: "1"
|
|
565
565
|
}, g = f, setTimeout(() => {
|
|
@@ -574,13 +574,13 @@ const ne = /* @__PURE__ */ D(et, [["render", tt], ["__file", "/home/runner/work/
|
|
|
574
574
|
});
|
|
575
575
|
const m = C(
|
|
576
576
|
() => e.tabs.findIndex((f) => f.value === e.modelValue)
|
|
577
|
-
), { modelValue: S } =
|
|
578
|
-
|
|
577
|
+
), { modelValue: S } = qe(e);
|
|
578
|
+
se(S, async () => {
|
|
579
579
|
await ce();
|
|
580
580
|
const f = e.tabs.findIndex((W) => W.value === e.modelValue);
|
|
581
581
|
f !== -1 && q(f);
|
|
582
582
|
});
|
|
583
|
-
const p = { props: e, emit: l, tabButtons:
|
|
583
|
+
const p = { props: e, emit: l, tabButtons: u, underlineStyle: s, get currentTabIndex() {
|
|
584
584
|
return g;
|
|
585
585
|
}, set currentTabIndex(f) {
|
|
586
586
|
g = f;
|
|
@@ -591,18 +591,18 @@ const ne = /* @__PURE__ */ D(et, [["render", tt], ["__file", "/home/runner/work/
|
|
|
591
591
|
}, handleTabClick: x, animateUnderlineStretch: q, activeTabIndex: m, modelValue: S };
|
|
592
592
|
return Object.defineProperty(p, "__isScriptSetup", { enumerable: !1, value: !0 }), p;
|
|
593
593
|
}
|
|
594
|
-
}),
|
|
594
|
+
}), at = { class: "relative" }, nt = {
|
|
595
595
|
class: "relative flex border-b border-neutral-200",
|
|
596
596
|
role: "tablist"
|
|
597
|
-
},
|
|
598
|
-
function
|
|
599
|
-
return i(), A("div",
|
|
597
|
+
}, ot = ["aria-selected", "aria-controls", "id", "onClick"];
|
|
598
|
+
function it(o, t, a, e, l, u) {
|
|
599
|
+
return i(), A("div", at, [
|
|
600
600
|
n(" Tab List "),
|
|
601
|
-
r("div",
|
|
601
|
+
r("div", nt, [
|
|
602
602
|
(i(!0), A(
|
|
603
603
|
O,
|
|
604
604
|
null,
|
|
605
|
-
|
|
605
|
+
Ae(a.tabs, (s, g) => (i(), A("button", {
|
|
606
606
|
key: s.value,
|
|
607
607
|
ref_for: !0,
|
|
608
608
|
ref: "tabButtons",
|
|
@@ -617,7 +617,7 @@ function ot(o, t, a, e, l, c) {
|
|
|
617
617
|
id: `tab-${s.value}`,
|
|
618
618
|
role: "tab",
|
|
619
619
|
onClick: (w) => e.handleTabClick(s.value, g)
|
|
620
|
-
}, k(s.label), 11,
|
|
620
|
+
}, k(s.label), 11, ot))),
|
|
621
621
|
128
|
|
622
622
|
/* KEYED_FRAGMENT */
|
|
623
623
|
)),
|
|
@@ -626,7 +626,7 @@ function ot(o, t, a, e, l, c) {
|
|
|
626
626
|
"div",
|
|
627
627
|
{
|
|
628
628
|
class: "absolute bottom-[-2px] h-[3px] bg-strands-500 rounded-full transition-all duration-150 ease-[cubic-bezier(0.25,0.46,0.45,0.94)]",
|
|
629
|
-
style:
|
|
629
|
+
style: ve(e.underlineStyle)
|
|
630
630
|
},
|
|
631
631
|
null,
|
|
632
632
|
4
|
|
@@ -635,7 +635,7 @@ function ot(o, t, a, e, l, c) {
|
|
|
635
635
|
])
|
|
636
636
|
]);
|
|
637
637
|
}
|
|
638
|
-
const
|
|
638
|
+
const be = /* @__PURE__ */ D(st, [["render", it], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiTabs.vue"]]), lt = /* @__PURE__ */ X({
|
|
639
639
|
__name: "UiLoader",
|
|
640
640
|
props: {
|
|
641
641
|
size: { type: Number, required: !1, default: 48 },
|
|
@@ -646,7 +646,7 @@ const it = /* @__PURE__ */ D(rt, [["render", ot], ["__file", "/home/runner/work/
|
|
|
646
646
|
},
|
|
647
647
|
setup(o, { expose: t }) {
|
|
648
648
|
t();
|
|
649
|
-
const a = o, e = U(Math.random().toString(36).substr(2, 9)), l = C(() => `url(#gradient-${e.value})`),
|
|
649
|
+
const a = o, e = U(Math.random().toString(36).substr(2, 9)), l = C(() => `url(#gradient-${e.value})`), u = C(() => [
|
|
650
650
|
"flex flex-col items-center gap-4",
|
|
651
651
|
a.centered ? "justify-center" : ""
|
|
652
652
|
].filter(Boolean).join(" ")), s = C(() => [
|
|
@@ -655,14 +655,14 @@ const it = /* @__PURE__ */ D(rt, [["render", ot], ["__file", "/home/runner/work/
|
|
|
655
655
|
].filter(Boolean).join(" ")), g = C(() => [
|
|
656
656
|
"absolute w-1 h-1 rounded-full animate-float",
|
|
657
657
|
a.variant === "light" ? "bg-strands-400" : a.variant === "dark" ? "bg-white/40" : "bg-strands-400 dark:bg-white/40"
|
|
658
|
-
].filter(Boolean).join(" ")), w = { props: a, componentId: e, gradientId: l, containerClasses:
|
|
658
|
+
].filter(Boolean).join(" ")), w = { props: a, componentId: e, gradientId: l, containerClasses: u, textClasses: s, particleClasses: g };
|
|
659
659
|
return Object.defineProperty(w, "__isScriptSetup", { enumerable: !1, value: !0 }), w;
|
|
660
660
|
}
|
|
661
661
|
}), At = { class: "relative" }, dt = ["width", "height"], ut = ["stroke"], ct = ["stroke"], mt = ["stroke"], ft = ["fill"], gt = ["id"], pt = ["stop-color"], vt = ["stop-color"], yt = ["stop-color"], bt = {
|
|
662
662
|
key: 0,
|
|
663
663
|
class: "absolute inset-0 pointer-events-none"
|
|
664
664
|
};
|
|
665
|
-
function ht(o, t, a, e, l,
|
|
665
|
+
function ht(o, t, a, e, l, u) {
|
|
666
666
|
return i(), A(
|
|
667
667
|
"div",
|
|
668
668
|
{
|
|
@@ -796,12 +796,12 @@ function ht(o, t, a, e, l, c) {
|
|
|
796
796
|
(i(), A(
|
|
797
797
|
O,
|
|
798
798
|
null,
|
|
799
|
-
|
|
799
|
+
Ae(3, (s) => r(
|
|
800
800
|
"div",
|
|
801
801
|
{
|
|
802
802
|
key: s,
|
|
803
803
|
class: Y(e.particleClasses),
|
|
804
|
-
style:
|
|
804
|
+
style: ve({
|
|
805
805
|
animationDelay: `${s * 0.5}s`,
|
|
806
806
|
left: `${20 + s * 30}%`,
|
|
807
807
|
top: `${30 + s * 20}%`
|
|
@@ -832,26 +832,26 @@ function ht(o, t, a, e, l, c) {
|
|
|
832
832
|
/* CLASS */
|
|
833
833
|
);
|
|
834
834
|
}
|
|
835
|
-
const
|
|
835
|
+
const me = /* @__PURE__ */ D(lt, [["render", ht], ["__scopeId", "data-v-32cc7309"], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLoader.vue"]]), wt = /* @__PURE__ */ X({
|
|
836
836
|
__name: "StrandsSecuredFooter",
|
|
837
837
|
props: {
|
|
838
838
|
config: { type: Object, required: !1 }
|
|
839
839
|
},
|
|
840
840
|
setup(o, { expose: t }) {
|
|
841
841
|
t();
|
|
842
|
-
const a = o, { config: e } = _(a.config), l = C(() => e.value.baseUrl !== "https://accounts.strands.gg"),
|
|
843
|
-
return Object.defineProperty(
|
|
842
|
+
const a = o, { config: e } = _(a.config), l = C(() => e.value.baseUrl !== "https://accounts.strands.gg"), u = { props: a, config: e, shouldShowSecuredBy: l };
|
|
843
|
+
return Object.defineProperty(u, "__isScriptSetup", { enumerable: !1, value: !0 }), u;
|
|
844
844
|
}
|
|
845
|
-
}), qt = "data:image/png;base64,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", Vt = {
|
|
845
|
+
}), St = "data:image/png;base64,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", qt = {
|
|
846
846
|
key: 0,
|
|
847
847
|
class: "flex items-center justify-center gap-2 mt-4 -mb-4 pt-4 border-t border-neutral-200"
|
|
848
848
|
};
|
|
849
|
-
function
|
|
850
|
-
return e.shouldShowSecuredBy ? (i(), A("div",
|
|
849
|
+
function Vt(o, t, a, e, l, u) {
|
|
850
|
+
return e.shouldShowSecuredBy ? (i(), A("div", qt, t[0] || (t[0] = [
|
|
851
851
|
r(
|
|
852
852
|
"img",
|
|
853
853
|
{
|
|
854
|
-
src:
|
|
854
|
+
src: St,
|
|
855
855
|
class: "h-12 w-auto"
|
|
856
856
|
},
|
|
857
857
|
null,
|
|
@@ -860,9 +860,9 @@ function Ct(o, t, a, e, l, c) {
|
|
|
860
860
|
)
|
|
861
861
|
]))) : n("v-if", !0);
|
|
862
862
|
}
|
|
863
|
-
const
|
|
864
|
-
function
|
|
865
|
-
const { getUrl: t } = _(), a = U([]), e = U(!1), l = U(null),
|
|
863
|
+
const ie = /* @__PURE__ */ D(wt, [["render", Vt], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSecuredFooter.vue"]]);
|
|
864
|
+
function fe(o = {}) {
|
|
865
|
+
const { getUrl: t } = _(), a = U([]), e = U(!1), l = U(null), u = C(
|
|
866
866
|
() => a.value.filter((m) => m.enabled)
|
|
867
867
|
), s = async () => {
|
|
868
868
|
e.value = !0, l.value = null;
|
|
@@ -897,8 +897,8 @@ function me(o = {}) {
|
|
|
897
897
|
}
|
|
898
898
|
});
|
|
899
899
|
if (!h.ok) {
|
|
900
|
-
const
|
|
901
|
-
throw new Error(
|
|
900
|
+
const c = await h.json().catch(() => ({}));
|
|
901
|
+
throw new Error(c.error?.message || `HTTP ${h.status}: ${h.statusText}`);
|
|
902
902
|
}
|
|
903
903
|
const v = await h.json();
|
|
904
904
|
if (!v.success)
|
|
@@ -938,7 +938,7 @@ function me(o = {}) {
|
|
|
938
938
|
};
|
|
939
939
|
return {
|
|
940
940
|
providers: C(() => a.value),
|
|
941
|
-
enabledProviders:
|
|
941
|
+
enabledProviders: u,
|
|
942
942
|
loading: C(() => e.value),
|
|
943
943
|
error: C(() => l.value),
|
|
944
944
|
fetchProviders: s,
|
|
@@ -948,7 +948,7 @@ function me(o = {}) {
|
|
|
948
948
|
getProviderIcon: q
|
|
949
949
|
};
|
|
950
950
|
}
|
|
951
|
-
const
|
|
951
|
+
const Ct = /* @__PURE__ */ X({
|
|
952
952
|
__name: "StrandsAuth",
|
|
953
953
|
props: {
|
|
954
954
|
mode: { type: String, required: !1, default: "signin" },
|
|
@@ -958,16 +958,16 @@ const xt = /* @__PURE__ */ X({
|
|
|
958
958
|
emits: ["success", "error", "forgot-password", "password-reset-sent", "mode-changed"],
|
|
959
959
|
setup(o, { expose: t, emit: a }) {
|
|
960
960
|
t();
|
|
961
|
-
const e = o, l = a, { getUrl:
|
|
961
|
+
const e = o, l = a, { getUrl: u, getSupportEmail: s } = _(e.config);
|
|
962
962
|
console.log("support email:", s());
|
|
963
|
-
const { setAuthData: g } =
|
|
963
|
+
const { setAuthData: g } = ne(), {
|
|
964
964
|
enabledProviders: w,
|
|
965
965
|
loading: x,
|
|
966
966
|
error: q,
|
|
967
967
|
fetchProviders: m,
|
|
968
968
|
redirectToProvider: S,
|
|
969
969
|
getProviderIcon: p
|
|
970
|
-
} =
|
|
970
|
+
} = fe({
|
|
971
971
|
redirectUrl: e.redirectUrl
|
|
972
972
|
});
|
|
973
973
|
J(() => {
|
|
@@ -976,42 +976,42 @@ const xt = /* @__PURE__ */ X({
|
|
|
976
976
|
});
|
|
977
977
|
});
|
|
978
978
|
const f = C(() => w.value), W = {
|
|
979
|
-
async signIn(L,
|
|
980
|
-
const b = await fetch(
|
|
979
|
+
async signIn(L, I) {
|
|
980
|
+
const b = await fetch(u("signIn"), {
|
|
981
981
|
method: "POST",
|
|
982
982
|
headers: {
|
|
983
983
|
"Content-Type": "application/json"
|
|
984
984
|
},
|
|
985
|
-
body: JSON.stringify({ email: L, password:
|
|
985
|
+
body: JSON.stringify({ email: L, password: I })
|
|
986
986
|
});
|
|
987
987
|
if (!b.ok)
|
|
988
988
|
throw b.status === 401 ? new Error("Invalid email or password") : b.status === 403 ? new Error("Please verify your email address before signing in") : new Error(`Sign in failed: ${b.status} ${b.statusText}`);
|
|
989
989
|
return await b.json();
|
|
990
990
|
},
|
|
991
|
-
async signUp(L,
|
|
992
|
-
const
|
|
991
|
+
async signUp(L, I, b, Q) {
|
|
992
|
+
const le = await fetch(u("signUp"), {
|
|
993
993
|
method: "POST",
|
|
994
994
|
headers: {
|
|
995
995
|
"Content-Type": "application/json"
|
|
996
996
|
},
|
|
997
|
-
body: JSON.stringify({ email: L, password:
|
|
997
|
+
body: JSON.stringify({ email: L, password: I, firstName: b, lastName: Q })
|
|
998
998
|
});
|
|
999
|
-
if (!
|
|
1000
|
-
const
|
|
1001
|
-
throw new Error(
|
|
999
|
+
if (!le.ok) {
|
|
1000
|
+
const he = await le.json().catch(() => ({}));
|
|
1001
|
+
throw new Error(he.error?.message || `HTTP ${le.status}: ${le.statusText}`);
|
|
1002
1002
|
}
|
|
1003
|
-
return (await
|
|
1003
|
+
return (await le.json()).message;
|
|
1004
1004
|
},
|
|
1005
1005
|
async requestPasswordReset(L) {
|
|
1006
1006
|
throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.");
|
|
1007
1007
|
}
|
|
1008
|
-
}, N = U(e.mode), B = U(!1), h = U(""), v = U(!1),
|
|
1008
|
+
}, N = U(e.mode), B = U(!1), h = U(""), v = U(!1), c = G({
|
|
1009
1009
|
firstName: "",
|
|
1010
1010
|
lastName: "",
|
|
1011
1011
|
email: "",
|
|
1012
1012
|
password: "",
|
|
1013
1013
|
confirmPassword: ""
|
|
1014
|
-
}), P = C(() => N.value === "signup"), T = C(() => N.value === "reset-password"), K = C(() =>
|
|
1014
|
+
}), P = C(() => N.value === "signup"), T = C(() => N.value === "reset-password"), K = C(() => c.password === c.confirmPassword), F = C(() => T.value ? c.email.trim() && !v.value : P.value ? c.email.trim() : c.email.trim() && c.password), M = {
|
|
1015
1015
|
weak: {
|
|
1016
1016
|
label: "Weak",
|
|
1017
1017
|
color: "border-red-300",
|
|
@@ -1034,95 +1034,95 @@ const xt = /* @__PURE__ */ X({
|
|
|
1034
1034
|
width: 100
|
|
1035
1035
|
}
|
|
1036
1036
|
}, j = (L) => {
|
|
1037
|
-
let
|
|
1038
|
-
L.length >= 8 && (
|
|
1039
|
-
const b =
|
|
1040
|
-
return { score:
|
|
1037
|
+
let I = 0;
|
|
1038
|
+
L.length >= 8 && (I += 1), L.length >= 12 && (I += 1), /[a-z]/.test(L) && (I += 1), /[A-Z]/.test(L) && (I += 1), /[0-9]/.test(L) && (I += 1), /[^A-Za-z0-9]/.test(L) && (I += 1);
|
|
1039
|
+
const b = I <= 2 ? M.weak : I <= 4 ? M.medium : M.strong;
|
|
1040
|
+
return { score: I, ...b };
|
|
1041
1041
|
}, H = async () => {
|
|
1042
1042
|
B.value = !0, h.value = "";
|
|
1043
1043
|
try {
|
|
1044
1044
|
if (T.value)
|
|
1045
|
-
await W.requestPasswordReset(
|
|
1045
|
+
await W.requestPasswordReset(c.email), v.value = !0, l("password-reset-sent", c.email);
|
|
1046
1046
|
else if (P.value) {
|
|
1047
1047
|
const L = await W.signUp(
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1048
|
+
c.email,
|
|
1049
|
+
c.password,
|
|
1050
|
+
c.firstName,
|
|
1051
|
+
c.lastName
|
|
1052
1052
|
);
|
|
1053
1053
|
l("success", L.user);
|
|
1054
1054
|
} else {
|
|
1055
|
-
const L = await W.signIn(
|
|
1055
|
+
const L = await W.signIn(c.email, c.password);
|
|
1056
1056
|
g(L), l("success", L.user);
|
|
1057
1057
|
}
|
|
1058
1058
|
} catch (L) {
|
|
1059
|
-
const
|
|
1060
|
-
h.value =
|
|
1059
|
+
const I = L instanceof Error ? L.message : "An unexpected error occurred";
|
|
1060
|
+
h.value = I, l("error", I);
|
|
1061
1061
|
} finally {
|
|
1062
1062
|
B.value = !1;
|
|
1063
1063
|
}
|
|
1064
|
-
},
|
|
1064
|
+
}, re = async (L) => {
|
|
1065
1065
|
try {
|
|
1066
1066
|
await S(L, {
|
|
1067
1067
|
redirectUrl: e.redirectUrl
|
|
1068
1068
|
});
|
|
1069
|
-
} catch (
|
|
1070
|
-
const b =
|
|
1069
|
+
} catch (I) {
|
|
1070
|
+
const b = I instanceof Error ? I.message : `Failed to ${P.value ? "sign up" : "sign in"} with ${L}`;
|
|
1071
1071
|
h.value = b, l("error", b);
|
|
1072
1072
|
}
|
|
1073
1073
|
};
|
|
1074
|
-
|
|
1074
|
+
se(() => e.mode, (L) => {
|
|
1075
1075
|
N.value = L;
|
|
1076
|
-
}),
|
|
1077
|
-
h.value = "", v.value = !1,
|
|
1076
|
+
}), se(N, (L) => {
|
|
1077
|
+
h.value = "", v.value = !1, c.firstName = "", c.lastName = "", c.email = "", c.password = "", c.confirmPassword = "", l("mode-changed", L);
|
|
1078
1078
|
});
|
|
1079
|
-
const ue = { props: e, emit: l, getUrl:
|
|
1080
|
-
return
|
|
1079
|
+
const ue = { props: e, emit: l, getUrl: u, getSupportEmail: s, setAuthData: g, enabledProviders: w, oauthLoading: x, oauthError: q, fetchProviders: m, redirectToProvider: S, getProviderIcon: p, displayProviders: f, authApi: W, currentMode: N, loading: B, error: h, isPasswordResetSubmitted: v, form: c, isSignUp: P, isPasswordReset: T, isPasswordMatch: K, isFormValid: F, PASSWORD_STRENGTH_CONFIGS: M, getPasswordStrength: j, handleAuth: H, handleOAuthAuth: re, get StrandsUiCard() {
|
|
1080
|
+
return oe;
|
|
1081
1081
|
}, get StrandsUiButton() {
|
|
1082
|
-
return
|
|
1082
|
+
return $;
|
|
1083
1083
|
}, get StrandsUiInput() {
|
|
1084
|
-
return
|
|
1084
|
+
return ee;
|
|
1085
1085
|
}, get StrandsUiAlert() {
|
|
1086
1086
|
return de;
|
|
1087
1087
|
}, get StrandsUiLink() {
|
|
1088
|
-
return
|
|
1088
|
+
return te;
|
|
1089
1089
|
}, get StrandsUiTabs() {
|
|
1090
|
-
return
|
|
1091
|
-
}, StrandsSecuredFooter:
|
|
1090
|
+
return be;
|
|
1091
|
+
}, StrandsSecuredFooter: ie };
|
|
1092
1092
|
return Object.defineProperty(ue, "__isScriptSetup", { enumerable: !1, value: !0 }), ue;
|
|
1093
1093
|
}
|
|
1094
|
-
}),
|
|
1094
|
+
}), xt = { class: "w-full min-w-100 max-w-md mx-auto animate-slide-up" }, Ut = { class: "text-center mb-8" }, Wt = {
|
|
1095
1095
|
key: 0,
|
|
1096
1096
|
class: "mb-8"
|
|
1097
|
-
},
|
|
1097
|
+
}, kt = {
|
|
1098
1098
|
key: 0,
|
|
1099
1099
|
class: "space-y-3 mb-6"
|
|
1100
|
-
},
|
|
1100
|
+
}, Nt = { class: "w-5 h-5 flex items-center justify-center" }, Lt = {
|
|
1101
1101
|
key: 0,
|
|
1102
1102
|
class: "w-5 h-5"
|
|
1103
|
-
},
|
|
1103
|
+
}, Mt = ["src", "alt"], Pt = {
|
|
1104
1104
|
key: 2,
|
|
1105
1105
|
class: "w-5 h-5 fill-current",
|
|
1106
1106
|
viewBox: "0 0 24 24"
|
|
1107
|
-
}, It = { class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center" },
|
|
1107
|
+
}, It = { class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center" }, zt = { class: "text-xs font-semibold text-neutral-600" }, Bt = { class: "font-medium" }, Ft = {
|
|
1108
1108
|
key: 0,
|
|
1109
1109
|
class: "divider-with-text"
|
|
1110
|
-
},
|
|
1110
|
+
}, Xt = { class: "divider-text" }, Dt = {
|
|
1111
1111
|
key: 0,
|
|
1112
1112
|
class: "mb-4"
|
|
1113
|
-
},
|
|
1113
|
+
}, jt = { class: "flex items-center justify-between mb-2" }, Zt = {
|
|
1114
1114
|
key: 0,
|
|
1115
1115
|
class: "mt-8 text-center"
|
|
1116
|
-
},
|
|
1116
|
+
}, Tt = {
|
|
1117
1117
|
key: 0,
|
|
1118
1118
|
class: "mt-6 text-center"
|
|
1119
|
-
},
|
|
1120
|
-
function
|
|
1121
|
-
return i(), A("div",
|
|
1119
|
+
}, Yt = { class: "text-neutral-400 text-sm" };
|
|
1120
|
+
function Ot(o, t, a, e, l, u) {
|
|
1121
|
+
return i(), A("div", xt, [
|
|
1122
1122
|
d(e.StrandsUiCard, { variant: "modern" }, {
|
|
1123
1123
|
default: y(() => [
|
|
1124
1124
|
n(" Header "),
|
|
1125
|
-
r("div",
|
|
1125
|
+
r("div", Ut, [
|
|
1126
1126
|
d(R, {
|
|
1127
1127
|
name: "fade",
|
|
1128
1128
|
mode: "out-in"
|
|
@@ -1165,7 +1165,7 @@ function Et(o, t, a, e, l, c) {
|
|
|
1165
1165
|
n(" Tab Switcher (only show for signin/signup) "),
|
|
1166
1166
|
d(R, { name: "height-fade" }, {
|
|
1167
1167
|
default: y(() => [
|
|
1168
|
-
e.isPasswordReset ? n("v-if", !0) : (i(), A("div",
|
|
1168
|
+
e.isPasswordReset ? n("v-if", !0) : (i(), A("div", Wt, [
|
|
1169
1169
|
d(e.StrandsUiTabs, {
|
|
1170
1170
|
modelValue: e.currentMode,
|
|
1171
1171
|
"onUpdate:modelValue": t[0] || (t[0] = (s) => e.currentMode = s),
|
|
@@ -1182,11 +1182,11 @@ function Et(o, t, a, e, l, c) {
|
|
|
1182
1182
|
n(" OAuth Providers (not shown for password reset) "),
|
|
1183
1183
|
d(R, { name: "height-fade" }, {
|
|
1184
1184
|
default: y(() => [
|
|
1185
|
-
!e.isPasswordReset && e.displayProviders?.length ? (i(), A("div",
|
|
1185
|
+
!e.isPasswordReset && e.displayProviders?.length ? (i(), A("div", kt, [
|
|
1186
1186
|
(i(!0), A(
|
|
1187
1187
|
O,
|
|
1188
1188
|
null,
|
|
1189
|
-
|
|
1189
|
+
Ae(e.displayProviders, (s) => (i(), E(e.StrandsUiButton, {
|
|
1190
1190
|
key: s.id,
|
|
1191
1191
|
variant: "outline",
|
|
1192
1192
|
"full-width": "",
|
|
@@ -1195,14 +1195,14 @@ function Et(o, t, a, e, l, c) {
|
|
|
1195
1195
|
class: "btn-oauth group"
|
|
1196
1196
|
}, {
|
|
1197
1197
|
default: y(() => [
|
|
1198
|
-
r("div",
|
|
1198
|
+
r("div", Nt, [
|
|
1199
1199
|
n(" Dynamic provider icons "),
|
|
1200
|
-
s.icon || s.iconUrl ? (i(), A("div",
|
|
1200
|
+
s.icon || s.iconUrl ? (i(), A("div", Lt, [
|
|
1201
1201
|
r("img", {
|
|
1202
1202
|
src: s.icon || s.iconUrl,
|
|
1203
1203
|
alt: `${s.displayName || s.name} icon`,
|
|
1204
1204
|
class: "w-5 h-5"
|
|
1205
|
-
}, null, 8,
|
|
1205
|
+
}, null, 8, Mt)
|
|
1206
1206
|
])) : s.id === "google" ? (i(), A(
|
|
1207
1207
|
O,
|
|
1208
1208
|
{ key: 1 },
|
|
@@ -1238,7 +1238,7 @@ function Et(o, t, a, e, l, c) {
|
|
|
1238
1238
|
],
|
|
1239
1239
|
2112
|
|
1240
1240
|
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
1241
|
-
)) : s.id === "github" ? (i(), A("svg",
|
|
1241
|
+
)) : s.id === "github" ? (i(), A("svg", Pt, [...t[7] || (t[7] = [
|
|
1242
1242
|
r(
|
|
1243
1243
|
"path",
|
|
1244
1244
|
{ d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" },
|
|
@@ -1254,7 +1254,7 @@ function Et(o, t, a, e, l, c) {
|
|
|
1254
1254
|
r("div", It, [
|
|
1255
1255
|
r(
|
|
1256
1256
|
"span",
|
|
1257
|
-
|
|
1257
|
+
zt,
|
|
1258
1258
|
k((s.displayName || s.name).charAt(0).toUpperCase()),
|
|
1259
1259
|
1
|
|
1260
1260
|
/* TEXT */
|
|
@@ -1267,7 +1267,7 @@ function Et(o, t, a, e, l, c) {
|
|
|
1267
1267
|
]),
|
|
1268
1268
|
r(
|
|
1269
1269
|
"span",
|
|
1270
|
-
|
|
1270
|
+
Bt,
|
|
1271
1271
|
" Continue with " + k(s.displayName || s.name.charAt(0).toUpperCase() + s.name.slice(1)),
|
|
1272
1272
|
1
|
|
1273
1273
|
/* TEXT */
|
|
@@ -1287,10 +1287,10 @@ function Et(o, t, a, e, l, c) {
|
|
|
1287
1287
|
n(" Divider (not shown for password reset) "),
|
|
1288
1288
|
d(R, { name: "height-fade" }, {
|
|
1289
1289
|
default: y(() => [
|
|
1290
|
-
!e.isPasswordReset && e.displayProviders?.length ? (i(), A("div",
|
|
1290
|
+
!e.isPasswordReset && e.displayProviders?.length ? (i(), A("div", Ft, [
|
|
1291
1291
|
r(
|
|
1292
1292
|
"span",
|
|
1293
|
-
|
|
1293
|
+
Xt,
|
|
1294
1294
|
"Or " + k(e.isSignUp ? "create account" : "sign in") + " with email",
|
|
1295
1295
|
1
|
|
1296
1296
|
/* TEXT */
|
|
@@ -1304,7 +1304,7 @@ function Et(o, t, a, e, l, c) {
|
|
|
1304
1304
|
r(
|
|
1305
1305
|
"form",
|
|
1306
1306
|
{
|
|
1307
|
-
onSubmit:
|
|
1307
|
+
onSubmit: ae(e.handleAuth, ["prevent"]),
|
|
1308
1308
|
class: "space-y-6"
|
|
1309
1309
|
},
|
|
1310
1310
|
[
|
|
@@ -1333,8 +1333,8 @@ function Et(o, t, a, e, l, c) {
|
|
|
1333
1333
|
n(" Password (Sign In Only) "),
|
|
1334
1334
|
d(R, { name: "password-fade" }, {
|
|
1335
1335
|
default: y(() => [
|
|
1336
|
-
!e.isPasswordReset && !e.isSignUp ? (i(), A("div",
|
|
1337
|
-
r("div",
|
|
1336
|
+
!e.isPasswordReset && !e.isSignUp ? (i(), A("div", Dt, [
|
|
1337
|
+
r("div", jt, [
|
|
1338
1338
|
t[9] || (t[9] = r(
|
|
1339
1339
|
"span",
|
|
1340
1340
|
{ class: "text-sm font-medium text-gray-700" },
|
|
@@ -1414,7 +1414,7 @@ function Et(o, t, a, e, l, c) {
|
|
|
1414
1414
|
n(" Back to Sign In (Password Reset Only) "),
|
|
1415
1415
|
d(R, { name: "height-fade" }, {
|
|
1416
1416
|
default: y(() => [
|
|
1417
|
-
e.isPasswordReset ? (i(), A("div",
|
|
1417
|
+
e.isPasswordReset ? (i(), A("div", Zt, [
|
|
1418
1418
|
d(e.StrandsUiLink, {
|
|
1419
1419
|
onClick: t[4] || (t[4] = (s) => e.currentMode = "signin"),
|
|
1420
1420
|
class: "inline-flex items-center gap-2"
|
|
@@ -1465,8 +1465,8 @@ function Et(o, t, a, e, l, c) {
|
|
|
1465
1465
|
n(" Need help "),
|
|
1466
1466
|
d(R, { name: "support-fade" }, {
|
|
1467
1467
|
default: y(() => [
|
|
1468
|
-
e.getSupportEmail() ? (i(), A("div",
|
|
1469
|
-
r("p",
|
|
1468
|
+
e.getSupportEmail() ? (i(), A("div", Tt, [
|
|
1469
|
+
r("p", Yt, [
|
|
1470
1470
|
t[12] || (t[12] = V(
|
|
1471
1471
|
" Need help? ",
|
|
1472
1472
|
-1
|
|
@@ -1502,7 +1502,7 @@ function Et(o, t, a, e, l, c) {
|
|
|
1502
1502
|
})
|
|
1503
1503
|
]);
|
|
1504
1504
|
}
|
|
1505
|
-
const na = /* @__PURE__ */ D(
|
|
1505
|
+
const na = /* @__PURE__ */ D(Ct, [["render", Ot], ["__scopeId", "data-v-4583e1b6"], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsAuth.vue"]]), Et = /* @__PURE__ */ X({
|
|
1506
1506
|
__name: "StrandsSignIn",
|
|
1507
1507
|
props: {
|
|
1508
1508
|
redirectUrl: { type: String, required: !1, default: "/" },
|
|
@@ -1512,13 +1512,13 @@ const na = /* @__PURE__ */ D(xt, [["render", Et], ["__scopeId", "data-v-4583e1b6
|
|
|
1512
1512
|
emits: ["success", "error", "forgot-password", "switch-to-signup"],
|
|
1513
1513
|
setup(o, { expose: t, emit: a }) {
|
|
1514
1514
|
t();
|
|
1515
|
-
const e = o, l = a, { getUrl:
|
|
1515
|
+
const e = o, l = a, { getUrl: u, getSupportEmail: s } = _(e.config), { setAuthData: g } = ne(), {
|
|
1516
1516
|
enabledProviders: w,
|
|
1517
1517
|
loading: x,
|
|
1518
1518
|
error: q,
|
|
1519
1519
|
fetchProviders: m,
|
|
1520
1520
|
redirectToProvider: S
|
|
1521
|
-
} =
|
|
1521
|
+
} = fe({
|
|
1522
1522
|
redirectUrl: e.redirectUrl,
|
|
1523
1523
|
scopes: e.oauthScopes
|
|
1524
1524
|
});
|
|
@@ -1530,10 +1530,10 @@ const na = /* @__PURE__ */ D(xt, [["render", Et], ["__scopeId", "data-v-4583e1b6
|
|
|
1530
1530
|
const p = U(!1), f = U(""), W = G({
|
|
1531
1531
|
email: "",
|
|
1532
1532
|
password: ""
|
|
1533
|
-
}), h = { props: e, emit: l, getUrl:
|
|
1533
|
+
}), h = { props: e, emit: l, getUrl: u, getSupportEmail: s, setAuthData: g, enabledProviders: w, oauthLoading: x, oauthError: q, fetchProviders: m, redirectToProvider: S, loading: p, error: f, form: W, handleSignIn: async () => {
|
|
1534
1534
|
p.value = !0, f.value = "";
|
|
1535
1535
|
try {
|
|
1536
|
-
const v = await fetch(
|
|
1536
|
+
const v = await fetch(u("signIn"), {
|
|
1537
1537
|
method: "POST",
|
|
1538
1538
|
headers: {
|
|
1539
1539
|
"Content-Type": "application/json"
|
|
@@ -1545,11 +1545,11 @@ const na = /* @__PURE__ */ D(xt, [["render", Et], ["__scopeId", "data-v-4583e1b6
|
|
|
1545
1545
|
});
|
|
1546
1546
|
if (!v.ok)
|
|
1547
1547
|
throw v.status === 401 ? new Error("Invalid email or password") : v.status === 403 ? new Error("Please verify your email address before signing in") : new Error(`Sign in failed: ${v.status} ${v.statusText}`);
|
|
1548
|
-
const
|
|
1549
|
-
g(
|
|
1548
|
+
const c = await v.json();
|
|
1549
|
+
g(c), l("success", c.user);
|
|
1550
1550
|
} catch (v) {
|
|
1551
|
-
const
|
|
1552
|
-
f.value =
|
|
1551
|
+
const c = v instanceof Error ? v.message : "Sign in failed";
|
|
1552
|
+
f.value = c, l("error", c);
|
|
1553
1553
|
} finally {
|
|
1554
1554
|
p.value = !1;
|
|
1555
1555
|
}
|
|
@@ -1559,45 +1559,45 @@ const na = /* @__PURE__ */ D(xt, [["render", Et], ["__scopeId", "data-v-4583e1b6
|
|
|
1559
1559
|
redirectUrl: e.redirectUrl,
|
|
1560
1560
|
scopes: e.oauthScopes
|
|
1561
1561
|
});
|
|
1562
|
-
} catch (
|
|
1563
|
-
const P =
|
|
1562
|
+
} catch (c) {
|
|
1563
|
+
const P = c instanceof Error ? c.message : `Failed to sign in with ${v}`;
|
|
1564
1564
|
f.value = P, l("error", P);
|
|
1565
1565
|
}
|
|
1566
1566
|
}, get StrandsUiCard() {
|
|
1567
|
-
return
|
|
1567
|
+
return oe;
|
|
1568
1568
|
}, get StrandsUiButton() {
|
|
1569
|
-
return
|
|
1569
|
+
return $;
|
|
1570
1570
|
}, get StrandsUiInput() {
|
|
1571
|
-
return
|
|
1571
|
+
return ee;
|
|
1572
1572
|
}, get StrandsUiAlert() {
|
|
1573
1573
|
return de;
|
|
1574
1574
|
}, get StrandsUiLink() {
|
|
1575
|
-
return
|
|
1576
|
-
}, StrandsSecuredFooter:
|
|
1575
|
+
return te;
|
|
1576
|
+
}, StrandsSecuredFooter: ie };
|
|
1577
1577
|
return Object.defineProperty(h, "__isScriptSetup", { enumerable: !1, value: !0 }), h;
|
|
1578
1578
|
}
|
|
1579
|
-
}),
|
|
1579
|
+
}), Qt = { class: "w-full min-w-100 max-w-md mx-auto animate-slide-up" }, Kt = {
|
|
1580
1580
|
key: 0,
|
|
1581
1581
|
class: "space-y-3 mb-6"
|
|
1582
|
-
},
|
|
1582
|
+
}, Ht = { class: "w-5 h-5 flex items-center justify-center" }, Rt = {
|
|
1583
1583
|
key: 0,
|
|
1584
1584
|
class: "w-5 h-5"
|
|
1585
|
-
},
|
|
1585
|
+
}, Gt = ["src", "alt"], Jt = {
|
|
1586
1586
|
key: 2,
|
|
1587
1587
|
class: "w-5 h-5 fill-current",
|
|
1588
1588
|
viewBox: "0 0 24 24"
|
|
1589
|
-
},
|
|
1589
|
+
}, _t = {
|
|
1590
1590
|
key: 3,
|
|
1591
1591
|
class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"
|
|
1592
|
-
},
|
|
1592
|
+
}, $t = { class: "text-xs font-semibold text-neutral-600" }, er = { class: "font-medium" }, tr = {
|
|
1593
1593
|
key: 1,
|
|
1594
1594
|
class: "divider-with-text"
|
|
1595
|
-
},
|
|
1595
|
+
}, rr = { class: "space-y-4" }, sr = { class: "flex items-center justify-between mb-2" }, ar = { class: "mt-8 text-center" }, nr = { class: "text-sm text-neutral-600" }, or = {
|
|
1596
1596
|
key: 3,
|
|
1597
1597
|
class: "mt-6 text-center"
|
|
1598
|
-
},
|
|
1599
|
-
function
|
|
1600
|
-
return i(), A("div",
|
|
1598
|
+
}, ir = { class: "text-neutral-400 text-sm" };
|
|
1599
|
+
function lr(o, t, a, e, l, u) {
|
|
1600
|
+
return i(), A("div", Qt, [
|
|
1601
1601
|
d(e.StrandsUiCard, { variant: "modern" }, {
|
|
1602
1602
|
default: y(() => [
|
|
1603
1603
|
n(" Header "),
|
|
@@ -1612,11 +1612,11 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1612
1612
|
/* CACHED */
|
|
1613
1613
|
)),
|
|
1614
1614
|
n(" OAuth Providers "),
|
|
1615
|
-
e.enabledProviders?.length ? (i(), A("div",
|
|
1615
|
+
e.enabledProviders?.length ? (i(), A("div", Kt, [
|
|
1616
1616
|
(i(!0), A(
|
|
1617
1617
|
O,
|
|
1618
1618
|
null,
|
|
1619
|
-
|
|
1619
|
+
Ae(e.enabledProviders, (s) => (i(), E(e.StrandsUiButton, {
|
|
1620
1620
|
key: s.id,
|
|
1621
1621
|
variant: "outline",
|
|
1622
1622
|
"full-width": "",
|
|
@@ -1625,14 +1625,14 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1625
1625
|
class: "btn-oauth group"
|
|
1626
1626
|
}, {
|
|
1627
1627
|
default: y(() => [
|
|
1628
|
-
r("div",
|
|
1628
|
+
r("div", Ht, [
|
|
1629
1629
|
n(" Dynamic provider icons "),
|
|
1630
|
-
s.icon || s.iconUrl ? (i(), A("div",
|
|
1630
|
+
s.icon || s.iconUrl ? (i(), A("div", Rt, [
|
|
1631
1631
|
r("img", {
|
|
1632
1632
|
src: s.icon || s.iconUrl,
|
|
1633
1633
|
alt: `${s.displayName || s.name} icon`,
|
|
1634
1634
|
class: "w-5 h-5"
|
|
1635
|
-
}, null, 8,
|
|
1635
|
+
}, null, 8, Gt)
|
|
1636
1636
|
])) : s.id === "google" ? (i(), A(
|
|
1637
1637
|
O,
|
|
1638
1638
|
{ key: 1 },
|
|
@@ -1668,7 +1668,7 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1668
1668
|
],
|
|
1669
1669
|
2112
|
|
1670
1670
|
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
1671
|
-
)) : s.id === "github" ? (i(), A("svg",
|
|
1671
|
+
)) : s.id === "github" ? (i(), A("svg", Jt, [...t[6] || (t[6] = [
|
|
1672
1672
|
r(
|
|
1673
1673
|
"path",
|
|
1674
1674
|
{ d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" },
|
|
@@ -1676,10 +1676,10 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1676
1676
|
-1
|
|
1677
1677
|
/* CACHED */
|
|
1678
1678
|
)
|
|
1679
|
-
])])) : (i(), A("div",
|
|
1679
|
+
])])) : (i(), A("div", _t, [
|
|
1680
1680
|
r(
|
|
1681
1681
|
"span",
|
|
1682
|
-
|
|
1682
|
+
$t,
|
|
1683
1683
|
k((s.displayName || s.name).charAt(0).toUpperCase()),
|
|
1684
1684
|
1
|
|
1685
1685
|
/* TEXT */
|
|
@@ -1688,7 +1688,7 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1688
1688
|
]),
|
|
1689
1689
|
r(
|
|
1690
1690
|
"span",
|
|
1691
|
-
|
|
1691
|
+
er,
|
|
1692
1692
|
"Continue with " + k(s.displayName || s.name),
|
|
1693
1693
|
1
|
|
1694
1694
|
/* TEXT */
|
|
@@ -1702,7 +1702,7 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1702
1702
|
))
|
|
1703
1703
|
])) : n("v-if", !0),
|
|
1704
1704
|
n(" Divider "),
|
|
1705
|
-
e.enabledProviders?.length ? (i(), A("div",
|
|
1705
|
+
e.enabledProviders?.length ? (i(), A("div", tr, t[7] || (t[7] = [
|
|
1706
1706
|
r(
|
|
1707
1707
|
"span",
|
|
1708
1708
|
{ class: "divider-text" },
|
|
@@ -1715,11 +1715,11 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1715
1715
|
r(
|
|
1716
1716
|
"form",
|
|
1717
1717
|
{
|
|
1718
|
-
onSubmit:
|
|
1718
|
+
onSubmit: ae(e.handleSignIn, ["prevent"]),
|
|
1719
1719
|
class: "space-y-6"
|
|
1720
1720
|
},
|
|
1721
1721
|
[
|
|
1722
|
-
r("div",
|
|
1722
|
+
r("div", rr, [
|
|
1723
1723
|
d(e.StrandsUiInput, {
|
|
1724
1724
|
id: "email",
|
|
1725
1725
|
modelValue: e.form.email,
|
|
@@ -1732,7 +1732,7 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1732
1732
|
error: e.error ? "Invalid email or password" : void 0
|
|
1733
1733
|
}, null, 8, ["modelValue", "error"]),
|
|
1734
1734
|
r("div", null, [
|
|
1735
|
-
r("div",
|
|
1735
|
+
r("div", sr, [
|
|
1736
1736
|
t[9] || (t[9] = r(
|
|
1737
1737
|
"span",
|
|
1738
1738
|
{ class: "text-sm font-medium text-neutral-700" },
|
|
@@ -1799,8 +1799,8 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1799
1799
|
onDismiss: t[3] || (t[3] = (s) => e.error = "")
|
|
1800
1800
|
}, null, 8, ["message"])) : n("v-if", !0),
|
|
1801
1801
|
n(" Sign up link "),
|
|
1802
|
-
r("div",
|
|
1803
|
-
r("p",
|
|
1802
|
+
r("div", ar, [
|
|
1803
|
+
r("p", nr, [
|
|
1804
1804
|
t[12] || (t[12] = V(
|
|
1805
1805
|
" Don't have an account? ",
|
|
1806
1806
|
-1
|
|
@@ -1822,8 +1822,8 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1822
1822
|
])
|
|
1823
1823
|
]),
|
|
1824
1824
|
n(" Need help "),
|
|
1825
|
-
e.getSupportEmail() ? (i(), A("div",
|
|
1826
|
-
r("p",
|
|
1825
|
+
e.getSupportEmail() ? (i(), A("div", or, [
|
|
1826
|
+
r("p", ir, [
|
|
1827
1827
|
t[14] || (t[14] = V(
|
|
1828
1828
|
" Need help? ",
|
|
1829
1829
|
-1
|
|
@@ -1855,7 +1855,7 @@ function Ar(o, t, a, e, l, c) {
|
|
|
1855
1855
|
})
|
|
1856
1856
|
]);
|
|
1857
1857
|
}
|
|
1858
|
-
const oa = /* @__PURE__ */ D(
|
|
1858
|
+
const oa = /* @__PURE__ */ D(Et, [["render", lr], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignIn.vue"]]), Ar = /* @__PURE__ */ X({
|
|
1859
1859
|
__name: "StrandsSignUp",
|
|
1860
1860
|
props: {
|
|
1861
1861
|
redirectUrl: { type: String, required: !1, default: "/" },
|
|
@@ -1865,13 +1865,13 @@ const oa = /* @__PURE__ */ D(Qt, [["render", Ar], ["__file", "/home/runner/work/
|
|
|
1865
1865
|
emits: ["success", "error", "switch-to-signin"],
|
|
1866
1866
|
setup(o, { expose: t, emit: a }) {
|
|
1867
1867
|
t();
|
|
1868
|
-
const e = o, l = a, { getUrl:
|
|
1868
|
+
const e = o, l = a, { getUrl: u, getSupportEmail: s } = _(e.config), {
|
|
1869
1869
|
enabledProviders: g,
|
|
1870
1870
|
loading: w,
|
|
1871
1871
|
error: x,
|
|
1872
1872
|
fetchProviders: q,
|
|
1873
1873
|
redirectToProvider: m
|
|
1874
|
-
} =
|
|
1874
|
+
} = fe({
|
|
1875
1875
|
redirectUrl: e.redirectUrl,
|
|
1876
1876
|
scopes: e.oauthScopes
|
|
1877
1877
|
});
|
|
@@ -1882,10 +1882,10 @@ const oa = /* @__PURE__ */ D(Qt, [["render", Ar], ["__file", "/home/runner/work/
|
|
|
1882
1882
|
});
|
|
1883
1883
|
const S = U(!1), p = U(""), f = U(!1), W = U(""), N = U("Magic Link Sent!"), B = U(""), h = G({
|
|
1884
1884
|
email: ""
|
|
1885
|
-
}), v = C(() => h.email.trim() && h.email.includes("@")), K = { props: e, emit: l, getUrl:
|
|
1885
|
+
}), v = C(() => h.email.trim() && h.email.includes("@")), K = { props: e, emit: l, getUrl: u, getSupportEmail: s, enabledProviders: g, oauthLoading: w, oauthError: x, fetchProviders: q, redirectToProvider: m, loading: S, error: p, signupSuccess: f, successMessage: W, successTitle: N, successEmail: B, form: h, isFormValid: v, handleSignUp: async () => {
|
|
1886
1886
|
S.value = !0, p.value = "";
|
|
1887
1887
|
try {
|
|
1888
|
-
const F =
|
|
1888
|
+
const F = u("signUp");
|
|
1889
1889
|
console.log("Attempting sign up to URL:", F);
|
|
1890
1890
|
const M = await fetch(F, {
|
|
1891
1891
|
method: "POST",
|
|
@@ -1899,8 +1899,8 @@ const oa = /* @__PURE__ */ D(Qt, [["render", Ar], ["__file", "/home/runner/work/
|
|
|
1899
1899
|
if (process.env.NODE_ENV === "development" && console.log("Sign up response status:", M.status), !M.ok) {
|
|
1900
1900
|
let H = `Sign up failed (${M.status})`;
|
|
1901
1901
|
try {
|
|
1902
|
-
const
|
|
1903
|
-
H =
|
|
1902
|
+
const re = await M.json();
|
|
1903
|
+
H = re.message || re.error || H;
|
|
1904
1904
|
} catch {
|
|
1905
1905
|
H = await M.text() || H;
|
|
1906
1906
|
}
|
|
@@ -1939,51 +1939,51 @@ const oa = /* @__PURE__ */ D(Qt, [["render", Ar], ["__file", "/home/runner/work/
|
|
|
1939
1939
|
p.value = j, l("error", j);
|
|
1940
1940
|
}
|
|
1941
1941
|
}, get StrandsUiCard() {
|
|
1942
|
-
return
|
|
1942
|
+
return oe;
|
|
1943
1943
|
}, get StrandsUiButton() {
|
|
1944
|
-
return
|
|
1944
|
+
return $;
|
|
1945
1945
|
}, get StrandsUiInput() {
|
|
1946
|
-
return
|
|
1946
|
+
return ee;
|
|
1947
1947
|
}, get StrandsUiLink() {
|
|
1948
|
-
return
|
|
1949
|
-
}, StrandsSecuredFooter:
|
|
1948
|
+
return te;
|
|
1949
|
+
}, StrandsSecuredFooter: ie };
|
|
1950
1950
|
return Object.defineProperty(K, "__isScriptSetup", { enumerable: !1, value: !0 }), K;
|
|
1951
1951
|
}
|
|
1952
|
-
}),
|
|
1952
|
+
}), dr = { class: "w-full min-w-100 max-w-md mx-auto animate-slide-up" }, ur = { class: "text-center" }, cr = { class: "text-2xl font-bold text-gray-900 mb-2" }, mr = { class: "text-gray-600 mb-4" }, fr = {
|
|
1953
1953
|
key: 0,
|
|
1954
1954
|
class: "text-sm text-gray-500 mb-4"
|
|
1955
|
-
},
|
|
1955
|
+
}, gr = {
|
|
1956
1956
|
key: 0,
|
|
1957
1957
|
class: "space-y-3 mb-6"
|
|
1958
|
-
},
|
|
1958
|
+
}, pr = { class: "w-5 h-5 flex items-center justify-center" }, vr = {
|
|
1959
1959
|
key: 0,
|
|
1960
1960
|
class: "w-5 h-5"
|
|
1961
|
-
},
|
|
1961
|
+
}, yr = ["src", "alt"], br = {
|
|
1962
1962
|
key: 2,
|
|
1963
1963
|
class: "w-5 h-5 fill-current",
|
|
1964
1964
|
viewBox: "0 0 24 24"
|
|
1965
|
-
},
|
|
1965
|
+
}, hr = {
|
|
1966
1966
|
key: 3,
|
|
1967
1967
|
class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"
|
|
1968
|
-
},
|
|
1968
|
+
}, wr = { class: "text-xs font-semibold text-neutral-600" }, Sr = { class: "font-medium" }, qr = {
|
|
1969
1969
|
key: 1,
|
|
1970
1970
|
class: "divider-with-text"
|
|
1971
|
-
},
|
|
1971
|
+
}, Vr = {
|
|
1972
1972
|
key: 2,
|
|
1973
1973
|
class: "mt-6 animate-fade-in"
|
|
1974
|
-
},
|
|
1974
|
+
}, Cr = { class: "alert-error" }, xr = { class: "flex items-start gap-3" }, Ur = { class: "font-medium" }, Wr = { class: "mt-8 text-center" }, kr = { class: "text-sm text-neutral-600" }, Nr = {
|
|
1975
1975
|
key: 3,
|
|
1976
1976
|
class: "mt-6 text-center"
|
|
1977
|
-
},
|
|
1978
|
-
function
|
|
1979
|
-
return i(), A("div",
|
|
1977
|
+
}, Lr = { class: "text-neutral-400 text-sm" };
|
|
1978
|
+
function Mr(o, t, a, e, l, u) {
|
|
1979
|
+
return i(), A("div", dr, [
|
|
1980
1980
|
n(" Success State "),
|
|
1981
1981
|
e.signupSuccess ? (i(), E(e.StrandsUiCard, {
|
|
1982
1982
|
key: 0,
|
|
1983
1983
|
variant: "modern"
|
|
1984
1984
|
}, {
|
|
1985
1985
|
default: y(() => [
|
|
1986
|
-
r("div",
|
|
1986
|
+
r("div", ur, [
|
|
1987
1987
|
t[3] || (t[3] = r(
|
|
1988
1988
|
"div",
|
|
1989
1989
|
{ class: "text-green-500 text-6xl mb-4" },
|
|
@@ -1993,19 +1993,19 @@ function Pr(o, t, a, e, l, c) {
|
|
|
1993
1993
|
)),
|
|
1994
1994
|
r(
|
|
1995
1995
|
"h1",
|
|
1996
|
-
|
|
1996
|
+
cr,
|
|
1997
1997
|
k(e.successTitle),
|
|
1998
1998
|
1
|
|
1999
1999
|
/* TEXT */
|
|
2000
2000
|
),
|
|
2001
2001
|
r(
|
|
2002
2002
|
"p",
|
|
2003
|
-
|
|
2003
|
+
mr,
|
|
2004
2004
|
k(e.successMessage),
|
|
2005
2005
|
1
|
|
2006
2006
|
/* TEXT */
|
|
2007
2007
|
),
|
|
2008
|
-
e.successEmail ? (i(), A("div",
|
|
2008
|
+
e.successEmail ? (i(), A("div", fr, [
|
|
2009
2009
|
r(
|
|
2010
2010
|
"strong",
|
|
2011
2011
|
null,
|
|
@@ -2059,11 +2059,11 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2059
2059
|
/* CACHED */
|
|
2060
2060
|
)),
|
|
2061
2061
|
n(" OAuth Providers "),
|
|
2062
|
-
e.enabledProviders?.length ? (i(), A("div",
|
|
2062
|
+
e.enabledProviders?.length ? (i(), A("div", gr, [
|
|
2063
2063
|
(i(!0), A(
|
|
2064
2064
|
O,
|
|
2065
2065
|
null,
|
|
2066
|
-
|
|
2066
|
+
Ae(e.enabledProviders, (s) => (i(), E(e.StrandsUiButton, {
|
|
2067
2067
|
key: s.id,
|
|
2068
2068
|
variant: "outline",
|
|
2069
2069
|
"full-width": "",
|
|
@@ -2072,14 +2072,14 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2072
2072
|
class: "btn-oauth group"
|
|
2073
2073
|
}, {
|
|
2074
2074
|
default: y(() => [
|
|
2075
|
-
r("div",
|
|
2075
|
+
r("div", pr, [
|
|
2076
2076
|
n(" Dynamic provider icons "),
|
|
2077
|
-
s.icon || s.iconUrl ? (i(), A("div",
|
|
2077
|
+
s.icon || s.iconUrl ? (i(), A("div", vr, [
|
|
2078
2078
|
r("img", {
|
|
2079
2079
|
src: s.icon || s.iconUrl,
|
|
2080
2080
|
alt: `${s.displayName || s.name} icon`,
|
|
2081
2081
|
class: "w-5 h-5"
|
|
2082
|
-
}, null, 8,
|
|
2082
|
+
}, null, 8, yr)
|
|
2083
2083
|
])) : s.id === "google" ? (i(), A(
|
|
2084
2084
|
O,
|
|
2085
2085
|
{ key: 1 },
|
|
@@ -2115,7 +2115,7 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2115
2115
|
],
|
|
2116
2116
|
2112
|
|
2117
2117
|
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
2118
|
-
)) : s.id === "github" ? (i(), A("svg",
|
|
2118
|
+
)) : s.id === "github" ? (i(), A("svg", br, [...t[6] || (t[6] = [
|
|
2119
2119
|
r(
|
|
2120
2120
|
"path",
|
|
2121
2121
|
{ d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" },
|
|
@@ -2123,10 +2123,10 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2123
2123
|
-1
|
|
2124
2124
|
/* CACHED */
|
|
2125
2125
|
)
|
|
2126
|
-
])])) : (i(), A("div",
|
|
2126
|
+
])])) : (i(), A("div", hr, [
|
|
2127
2127
|
r(
|
|
2128
2128
|
"span",
|
|
2129
|
-
|
|
2129
|
+
wr,
|
|
2130
2130
|
k((s.displayName || s.name).charAt(0).toUpperCase()),
|
|
2131
2131
|
1
|
|
2132
2132
|
/* TEXT */
|
|
@@ -2135,7 +2135,7 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2135
2135
|
]),
|
|
2136
2136
|
r(
|
|
2137
2137
|
"span",
|
|
2138
|
-
|
|
2138
|
+
Sr,
|
|
2139
2139
|
"Continue with " + k(s.displayName || s.name),
|
|
2140
2140
|
1
|
|
2141
2141
|
/* TEXT */
|
|
@@ -2149,7 +2149,7 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2149
2149
|
))
|
|
2150
2150
|
])) : n("v-if", !0),
|
|
2151
2151
|
n(" Divider "),
|
|
2152
|
-
e.enabledProviders?.length ? (i(), A("div",
|
|
2152
|
+
e.enabledProviders?.length ? (i(), A("div", qr, t[7] || (t[7] = [
|
|
2153
2153
|
r(
|
|
2154
2154
|
"span",
|
|
2155
2155
|
{ class: "divider-text" },
|
|
@@ -2162,7 +2162,7 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2162
2162
|
r(
|
|
2163
2163
|
"form",
|
|
2164
2164
|
{
|
|
2165
|
-
onSubmit:
|
|
2165
|
+
onSubmit: ae(e.handleSignUp, ["prevent"]),
|
|
2166
2166
|
class: "space-y-6"
|
|
2167
2167
|
},
|
|
2168
2168
|
[
|
|
@@ -2203,9 +2203,9 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2203
2203
|
/* NEED_HYDRATION */
|
|
2204
2204
|
),
|
|
2205
2205
|
n(" Error Alert "),
|
|
2206
|
-
e.error ? (i(), A("div",
|
|
2207
|
-
r("div",
|
|
2208
|
-
r("div",
|
|
2206
|
+
e.error ? (i(), A("div", Vr, [
|
|
2207
|
+
r("div", Cr, [
|
|
2208
|
+
r("div", xr, [
|
|
2209
2209
|
t[9] || (t[9] = r(
|
|
2210
2210
|
"svg",
|
|
2211
2211
|
{
|
|
@@ -2225,7 +2225,7 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2225
2225
|
)),
|
|
2226
2226
|
r(
|
|
2227
2227
|
"p",
|
|
2228
|
-
|
|
2228
|
+
Ur,
|
|
2229
2229
|
k(e.error),
|
|
2230
2230
|
1
|
|
2231
2231
|
/* TEXT */
|
|
@@ -2234,8 +2234,8 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2234
2234
|
])
|
|
2235
2235
|
])) : n("v-if", !0),
|
|
2236
2236
|
n(" Sign in link "),
|
|
2237
|
-
r("div",
|
|
2238
|
-
r("p",
|
|
2237
|
+
r("div", Wr, [
|
|
2238
|
+
r("p", kr, [
|
|
2239
2239
|
t[10] || (t[10] = V(
|
|
2240
2240
|
" Already have an account? ",
|
|
2241
2241
|
-1
|
|
@@ -2249,8 +2249,8 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2249
2249
|
])
|
|
2250
2250
|
]),
|
|
2251
2251
|
n(" Need help "),
|
|
2252
|
-
e.getSupportEmail() ? (i(), A("div",
|
|
2253
|
-
r("p",
|
|
2252
|
+
e.getSupportEmail() ? (i(), A("div", Nr, [
|
|
2253
|
+
r("p", Lr, [
|
|
2254
2254
|
t[12] || (t[12] = V(
|
|
2255
2255
|
" Need help? ",
|
|
2256
2256
|
-1
|
|
@@ -2286,7 +2286,7 @@ function Pr(o, t, a, e, l, c) {
|
|
|
2286
2286
|
))
|
|
2287
2287
|
]);
|
|
2288
2288
|
}
|
|
2289
|
-
const ia = /* @__PURE__ */ D(
|
|
2289
|
+
const ia = /* @__PURE__ */ D(Ar, [["render", Mr], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignUp.vue"]]), Pr = /* @__PURE__ */ X({
|
|
2290
2290
|
__name: "StrandsCompleteSignUp",
|
|
2291
2291
|
props: {
|
|
2292
2292
|
token: { type: String, required: !1 },
|
|
@@ -2296,7 +2296,7 @@ const ia = /* @__PURE__ */ D(dr, [["render", Pr], ["__file", "/home/runner/work/
|
|
|
2296
2296
|
emits: ["success", "error", "invalid-token", "request-new-link", "start-registration"],
|
|
2297
2297
|
setup(o, { expose: t, emit: a }) {
|
|
2298
2298
|
t();
|
|
2299
|
-
const e = o, l = a, { getUrl:
|
|
2299
|
+
const e = o, l = a, { getUrl: u, getSupportEmail: s } = _(e.config), { setAuthData: g } = ne(), w = U(!1), x = U(!1), q = U(!1), m = U(""), S = U(""), p = G({
|
|
2300
2300
|
username: "",
|
|
2301
2301
|
firstName: "",
|
|
2302
2302
|
lastName: "",
|
|
@@ -2307,18 +2307,18 @@ const ia = /* @__PURE__ */ D(dr, [["render", Pr], ["__file", "/home/runner/work/
|
|
|
2307
2307
|
lastName: "",
|
|
2308
2308
|
password: ""
|
|
2309
2309
|
}), W = C(() => {
|
|
2310
|
-
const
|
|
2311
|
-
return
|
|
2310
|
+
const c = p.username.trim() && p.password.trim(), P = p.password.length >= 8, T = !!e.token;
|
|
2311
|
+
return c && P && T;
|
|
2312
2312
|
});
|
|
2313
|
-
|
|
2313
|
+
se(
|
|
2314
2314
|
() => p.password,
|
|
2315
|
-
(
|
|
2316
|
-
|
|
2315
|
+
(c) => {
|
|
2316
|
+
c && c.length < 8 ? f.password = "Password must be at least 8 characters long" : f.password = "";
|
|
2317
2317
|
}
|
|
2318
|
-
),
|
|
2318
|
+
), se(
|
|
2319
2319
|
() => p.username,
|
|
2320
|
-
(
|
|
2321
|
-
|
|
2320
|
+
(c) => {
|
|
2321
|
+
c && c.length < 2 ? f.username = "Username must be at least 2 characters long" : f.username = "";
|
|
2322
2322
|
}
|
|
2323
2323
|
);
|
|
2324
2324
|
const N = C(() => ({
|
|
@@ -2328,31 +2328,31 @@ const ia = /* @__PURE__ */ D(dr, [["render", Pr], ["__file", "/home/runner/work/
|
|
|
2328
2328
|
J(() => {
|
|
2329
2329
|
if (e.token)
|
|
2330
2330
|
try {
|
|
2331
|
-
const
|
|
2332
|
-
if (
|
|
2333
|
-
const P = JSON.parse(atob(
|
|
2331
|
+
const c = e.token.split(".");
|
|
2332
|
+
if (c.length === 3) {
|
|
2333
|
+
const P = JSON.parse(atob(c[1]));
|
|
2334
2334
|
P.email && (S.value = P.email);
|
|
2335
2335
|
}
|
|
2336
|
-
} catch (
|
|
2337
|
-
console.warn("Could not decode token for email display:",
|
|
2336
|
+
} catch (c) {
|
|
2337
|
+
console.warn("Could not decode token for email display:", c);
|
|
2338
2338
|
}
|
|
2339
2339
|
});
|
|
2340
2340
|
const B = () => {
|
|
2341
2341
|
N.value.referrerUrl && (console.log("Redirecting to referrer:", N.value.referrerUrl), window.location.href = N.value.referrerUrl);
|
|
2342
|
-
}, v = { props: e, emit: l, getUrl:
|
|
2342
|
+
}, v = { props: e, emit: l, getUrl: u, getSupportEmail: s, setAuthData: g, registrationComplete: w, invalidToken: x, loading: q, error: m, email: S, form: p, fieldErrors: f, isFormValid: W, authConfig: N, redirectToReferrer: B, handleCompleteSignUp: async () => {
|
|
2343
2343
|
if (!e.token) {
|
|
2344
2344
|
m.value = "Registration token is required";
|
|
2345
2345
|
return;
|
|
2346
2346
|
}
|
|
2347
|
-
if (m.value = "", Object.keys(f).forEach((
|
|
2348
|
-
f[
|
|
2347
|
+
if (m.value = "", Object.keys(f).forEach((c) => {
|
|
2348
|
+
f[c] = "";
|
|
2349
2349
|
}), !W.value) {
|
|
2350
2350
|
m.value = "Please fill in all required fields correctly";
|
|
2351
2351
|
return;
|
|
2352
2352
|
}
|
|
2353
2353
|
q.value = !0;
|
|
2354
2354
|
try {
|
|
2355
|
-
const
|
|
2355
|
+
const c = await fetch(`${N.value.baseUrl}/api/v1/auth/complete-registration`, {
|
|
2356
2356
|
method: "POST",
|
|
2357
2357
|
headers: {
|
|
2358
2358
|
"Content-Type": "application/json"
|
|
@@ -2365,43 +2365,43 @@ const ia = /* @__PURE__ */ D(dr, [["render", Pr], ["__file", "/home/runner/work/
|
|
|
2365
2365
|
last_name: p.lastName || null
|
|
2366
2366
|
})
|
|
2367
2367
|
});
|
|
2368
|
-
if (!
|
|
2369
|
-
const T = await
|
|
2368
|
+
if (!c.ok) {
|
|
2369
|
+
const T = await c.text();
|
|
2370
2370
|
throw new Error(`Failed to complete registration: ${T}`);
|
|
2371
2371
|
}
|
|
2372
|
-
const P = await
|
|
2372
|
+
const P = await c.json();
|
|
2373
2373
|
console.log("Registration success:", P), P.access_token && P.refresh_token && P.user ? (g(P), console.log("Auth tokens stored successfully for user:", P.user.email)) : console.warn("Registration response missing auth tokens or user data"), w.value = !0, l("success", P), setTimeout(() => {
|
|
2374
2374
|
B();
|
|
2375
2375
|
}, 2e3);
|
|
2376
|
-
} catch (
|
|
2377
|
-
|
|
2376
|
+
} catch (c) {
|
|
2377
|
+
c instanceof Error ? c.message.includes("CONFLICT") || c.message.includes("409") ? m.value = "This account already exists. Please try signing in instead." : c.message.includes("BAD_REQUEST") || c.message.includes("400") ? (m.value = "Invalid or expired registration link. Please request a new one.", x.value = !0, l("invalid-token")) : m.value = c.message : m.value = "Failed to complete registration. Please try again.", l("error", m.value);
|
|
2378
2378
|
} finally {
|
|
2379
2379
|
q.value = !1;
|
|
2380
2380
|
}
|
|
2381
2381
|
}, get StrandsUiCard() {
|
|
2382
|
-
return
|
|
2382
|
+
return oe;
|
|
2383
2383
|
}, get StrandsUiButton() {
|
|
2384
|
-
return
|
|
2384
|
+
return $;
|
|
2385
2385
|
}, get StrandsUiInput() {
|
|
2386
|
-
return
|
|
2386
|
+
return ee;
|
|
2387
2387
|
}, get StrandsUiAlert() {
|
|
2388
2388
|
return de;
|
|
2389
2389
|
}, get StrandsUiLink() {
|
|
2390
|
-
return
|
|
2391
|
-
}, StrandsSecuredFooter:
|
|
2390
|
+
return te;
|
|
2391
|
+
}, StrandsSecuredFooter: ie };
|
|
2392
2392
|
return Object.defineProperty(v, "__isScriptSetup", { enumerable: !1, value: !0 }), v;
|
|
2393
2393
|
}
|
|
2394
2394
|
}), Ir = {
|
|
2395
2395
|
key: 0,
|
|
2396
2396
|
class: "min-w-100 w-full max-w-md mx-auto animate-slide-up"
|
|
2397
|
-
},
|
|
2397
|
+
}, zr = { class: "text-center" }, Br = { class: "min-w-100 w-full max-w-md mx-auto animate-slide-up" }, Fr = { class: "text-center" }, Xr = { class: "min-w-100 w-full max-w-md mx-auto animate-slide-up" }, Dr = { class: "text-center mb-8" }, jr = {
|
|
2398
2398
|
key: 0,
|
|
2399
2399
|
class: "mt-2"
|
|
2400
|
-
},
|
|
2400
|
+
}, Zr = { class: "text-sm text-neutral-500" }, Tr = { class: "font-medium text-neutral-700" }, Yr = {
|
|
2401
2401
|
key: 1,
|
|
2402
2402
|
class: "mt-6 text-center"
|
|
2403
|
-
},
|
|
2404
|
-
function
|
|
2403
|
+
}, Or = { class: "text-neutral-400 text-sm" }, Er = { class: "min-w-100 w-full max-w-md mx-auto animate-slide-up" }, Qr = { class: "text-center" };
|
|
2404
|
+
function Kr(o, t, a, e, l, u) {
|
|
2405
2405
|
return i(), A(
|
|
2406
2406
|
O,
|
|
2407
2407
|
null,
|
|
@@ -2410,7 +2410,7 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2410
2410
|
e.registrationComplete ? (i(), A("div", Ir, [
|
|
2411
2411
|
d(e.StrandsUiCard, { variant: "modern" }, {
|
|
2412
2412
|
default: y(() => [
|
|
2413
|
-
r("div",
|
|
2413
|
+
r("div", zr, [
|
|
2414
2414
|
t[8] || (t[8] = r(
|
|
2415
2415
|
"div",
|
|
2416
2416
|
{ class: "text-green-500 text-6xl mb-4" },
|
|
@@ -2465,10 +2465,10 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2465
2465
|
{ key: 1 },
|
|
2466
2466
|
[
|
|
2467
2467
|
n(" Invalid Token State "),
|
|
2468
|
-
r("div",
|
|
2468
|
+
r("div", Br, [
|
|
2469
2469
|
d(e.StrandsUiCard, { variant: "modern" }, {
|
|
2470
2470
|
default: y(() => [
|
|
2471
|
-
r("div",
|
|
2471
|
+
r("div", Fr, [
|
|
2472
2472
|
t[13] || (t[13] = r(
|
|
2473
2473
|
"div",
|
|
2474
2474
|
{ class: "text-red-500 text-6xl mb-4" },
|
|
@@ -2527,11 +2527,11 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2527
2527
|
{ key: 2 },
|
|
2528
2528
|
[
|
|
2529
2529
|
n(" Registration Form "),
|
|
2530
|
-
r("div",
|
|
2530
|
+
r("div", Xr, [
|
|
2531
2531
|
d(e.StrandsUiCard, { variant: "modern" }, {
|
|
2532
2532
|
default: y(() => [
|
|
2533
2533
|
n(" Header "),
|
|
2534
|
-
r("div",
|
|
2534
|
+
r("div", Dr, [
|
|
2535
2535
|
t[18] || (t[18] = r(
|
|
2536
2536
|
"h1",
|
|
2537
2537
|
{ class: "text-3xl font-bold text-gradient mb-2" },
|
|
@@ -2546,8 +2546,8 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2546
2546
|
-1
|
|
2547
2547
|
/* CACHED */
|
|
2548
2548
|
)),
|
|
2549
|
-
e.email ? (i(), A("div",
|
|
2550
|
-
r("p",
|
|
2549
|
+
e.email ? (i(), A("div", jr, [
|
|
2550
|
+
r("p", Zr, [
|
|
2551
2551
|
t[17] || (t[17] = V(
|
|
2552
2552
|
"Creating account for: ",
|
|
2553
2553
|
-1
|
|
@@ -2555,7 +2555,7 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2555
2555
|
)),
|
|
2556
2556
|
r(
|
|
2557
2557
|
"span",
|
|
2558
|
-
|
|
2558
|
+
Tr,
|
|
2559
2559
|
k(e.email),
|
|
2560
2560
|
1
|
|
2561
2561
|
/* TEXT */
|
|
@@ -2567,7 +2567,7 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2567
2567
|
r(
|
|
2568
2568
|
"form",
|
|
2569
2569
|
{
|
|
2570
|
-
onSubmit:
|
|
2570
|
+
onSubmit: ae(e.handleCompleteSignUp, ["prevent"]),
|
|
2571
2571
|
class: "space-y-6"
|
|
2572
2572
|
},
|
|
2573
2573
|
[
|
|
@@ -2665,8 +2665,8 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2665
2665
|
onDismiss: t[5] || (t[5] = (s) => e.error = "")
|
|
2666
2666
|
}, null, 8, ["message"])) : n("v-if", !0),
|
|
2667
2667
|
n(" Need help "),
|
|
2668
|
-
e.getSupportEmail() ? (i(), A("div",
|
|
2669
|
-
r("p",
|
|
2668
|
+
e.getSupportEmail() ? (i(), A("div", Yr, [
|
|
2669
|
+
r("p", Or, [
|
|
2670
2670
|
t[23] || (t[23] = V(
|
|
2671
2671
|
" Need help? ",
|
|
2672
2672
|
-1
|
|
@@ -2705,10 +2705,10 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2705
2705
|
{ key: 3 },
|
|
2706
2706
|
[
|
|
2707
2707
|
n(" No Token State "),
|
|
2708
|
-
r("div",
|
|
2708
|
+
r("div", Er, [
|
|
2709
2709
|
d(e.StrandsUiCard, { variant: "modern" }, {
|
|
2710
2710
|
default: y(() => [
|
|
2711
|
-
r("div",
|
|
2711
|
+
r("div", Qr, [
|
|
2712
2712
|
t[25] || (t[25] = r(
|
|
2713
2713
|
"div",
|
|
2714
2714
|
{ class: "text-yellow-500 text-6xl mb-4" },
|
|
@@ -2768,7 +2768,7 @@ function Hr(o, t, a, e, l, c) {
|
|
|
2768
2768
|
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
2769
2769
|
);
|
|
2770
2770
|
}
|
|
2771
|
-
const la = /* @__PURE__ */ D(
|
|
2771
|
+
const la = /* @__PURE__ */ D(Pr, [["render", Kr], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsCompleteSignUp.vue"]]), Hr = /* @__PURE__ */ X({
|
|
2772
2772
|
__name: "StrandsUserProfile",
|
|
2773
2773
|
props: {
|
|
2774
2774
|
user: { type: Object, required: !1 },
|
|
@@ -2778,7 +2778,7 @@ const la = /* @__PURE__ */ D(zr, [["render", Hr], ["__file", "/home/runner/work/
|
|
|
2778
2778
|
emits: ["profile-updated", "error", "manage-sessions", "mfa-toggle"],
|
|
2779
2779
|
setup(o, { expose: t, emit: a }) {
|
|
2780
2780
|
t();
|
|
2781
|
-
const e = o, l = a, { getSupportEmail:
|
|
2781
|
+
const e = o, l = a, { getSupportEmail: u } = _(e.config), { fetchProfile: s, updateProfile: g, currentUser: w, isAuthenticated: x } = ne(), q = U(null), m = U(!1), S = C(() => w.value || e.user || q.value), p = U(!1), f = U(!1), W = U(""), N = U(""), B = U([
|
|
2782
2782
|
{ id: "1", device: "Chrome on Mac", location: "San Francisco, CA", lastActive: "2 minutes ago", current: !0 },
|
|
2783
2783
|
{ id: "2", device: "Safari on iPhone", location: "San Francisco, CA", lastActive: "1 hour ago", current: !1 }
|
|
2784
2784
|
]), h = G({
|
|
@@ -2790,7 +2790,7 @@ const la = /* @__PURE__ */ D(zr, [["render", Hr], ["__file", "/home/runner/work/
|
|
|
2790
2790
|
current: "",
|
|
2791
2791
|
new: "",
|
|
2792
2792
|
confirm: ""
|
|
2793
|
-
}),
|
|
2793
|
+
}), c = G({
|
|
2794
2794
|
firstName: "",
|
|
2795
2795
|
lastName: "",
|
|
2796
2796
|
email: "",
|
|
@@ -2811,16 +2811,16 @@ const la = /* @__PURE__ */ D(zr, [["render", Hr], ["__file", "/home/runner/work/
|
|
|
2811
2811
|
}
|
|
2812
2812
|
}
|
|
2813
2813
|
};
|
|
2814
|
-
|
|
2814
|
+
se(() => S.value, (b) => {
|
|
2815
2815
|
b && (h.firstName = b.firstName, h.lastName = b.lastName, h.email = b.email, h.phone = b.phone || "");
|
|
2816
2816
|
}, { immediate: !0 }), J(() => {
|
|
2817
2817
|
F();
|
|
2818
2818
|
});
|
|
2819
2819
|
const M = () => {
|
|
2820
|
-
W.value = "", N.value = "", Object.keys(
|
|
2821
|
-
|
|
2820
|
+
W.value = "", N.value = "", Object.keys(c).forEach((b) => {
|
|
2821
|
+
c[b] = "";
|
|
2822
2822
|
});
|
|
2823
|
-
},
|
|
2823
|
+
}, I = { props: e, emit: l, getSupportEmail: u, fetchProfile: s, updateProfile: g, authUser: w, isAuthenticated: x, internalUser: q, fetchingProfile: m, currentUser: S, loading: p, showPasswordChange: f, successMessage: W, errorMessage: N, activeSessions: B, form: h, passwordForm: v, errors: c, hasChanges: P, isPasswordFormValid: T, getInitials: K, fetchUserProfile: F, clearMessages: M, handleUpdateProfile: async () => {
|
|
2824
2824
|
M(), p.value = !0;
|
|
2825
2825
|
try {
|
|
2826
2826
|
const b = await g({
|
|
@@ -2855,30 +2855,30 @@ const la = /* @__PURE__ */ D(zr, [["render", Hr], ["__file", "/home/runner/work/
|
|
|
2855
2855
|
const b = S.value;
|
|
2856
2856
|
b && (h.firstName = b.firstName, h.lastName = b.lastName, h.email = b.email, h.phone = b.phone || ""), M(), f.value = !1, v.current = "", v.new = "", v.confirm = "";
|
|
2857
2857
|
}, get StrandsUiButton() {
|
|
2858
|
-
return
|
|
2858
|
+
return $;
|
|
2859
2859
|
}, get StrandsUiInput() {
|
|
2860
|
-
return
|
|
2860
|
+
return ee;
|
|
2861
2861
|
}, get StrandsUiLink() {
|
|
2862
|
-
return
|
|
2863
|
-
}, StrandsSecuredFooter:
|
|
2864
|
-
return Object.defineProperty(
|
|
2862
|
+
return te;
|
|
2863
|
+
}, StrandsSecuredFooter: ie };
|
|
2864
|
+
return Object.defineProperty(I, "__isScriptSetup", { enumerable: !1, value: !0 }), I;
|
|
2865
2865
|
}
|
|
2866
|
-
}),
|
|
2866
|
+
}), Rr = { class: "w-full min-w-xl max-w-2xl mx-auto animate-slide-up" }, Gr = { class: "card-modern" }, Jr = { class: "flex flex-col items-center mb-8" }, _r = { class: "relative group" }, $r = { class: "w-24 h-24 rounded-full bg-gradient-to-r from-strands-400 to-strands-600 flex items-center justify-center text-white text-2xl font-bold shadow-large" }, es = { class: "grid grid-cols-1 md:grid-cols-2 gap-6" }, ts = { class: "space-y-4" }, rs = { class: "space-y-4" }, ss = { class: "space-y-4 p-4 bg-gray-50 rounded-xl" }, as = { class: "flex items-center justify-between" }, ns = {
|
|
2867
2867
|
key: 0,
|
|
2868
2868
|
class: "space-y-3"
|
|
2869
|
-
},
|
|
2869
|
+
}, os = { class: "p-4 bg-gray-50 rounded-xl" }, is = { class: "flex items-center justify-between" }, ls = { class: "text-sm text-gray-600" }, As = { class: "p-4 bg-gray-50 rounded-xl" }, ds = { class: "flex items-center justify-between" }, us = { class: "text-sm text-gray-600" }, cs = { class: "flex flex-col sm:flex-row gap-3 pt-6 border-t border-gray-200" }, ms = {
|
|
2870
2870
|
key: 0,
|
|
2871
2871
|
class: "mt-6 animate-fade-in"
|
|
2872
|
-
},
|
|
2872
|
+
}, fs = { class: "alert-success" }, gs = { class: "flex items-start gap-3" }, ps = { class: "font-medium" }, vs = {
|
|
2873
2873
|
key: 1,
|
|
2874
2874
|
class: "mt-6 animate-fade-in"
|
|
2875
|
-
},
|
|
2875
|
+
}, ys = { class: "alert-error" }, bs = { class: "flex items-start gap-3" }, hs = { class: "font-medium" }, ws = {
|
|
2876
2876
|
key: 2,
|
|
2877
2877
|
class: "mt-6 text-center"
|
|
2878
|
-
},
|
|
2879
|
-
function
|
|
2880
|
-
return i(), A("div",
|
|
2881
|
-
r("div",
|
|
2878
|
+
}, Ss = { class: "text-gray-400 text-sm" };
|
|
2879
|
+
function qs(o, t, a, e, l, u) {
|
|
2880
|
+
return i(), A("div", Rr, [
|
|
2881
|
+
r("div", Gr, [
|
|
2882
2882
|
n(" Header "),
|
|
2883
2883
|
t[23] || (t[23] = r(
|
|
2884
2884
|
"div",
|
|
@@ -2891,11 +2891,11 @@ function Vs(o, t, a, e, l, c) {
|
|
|
2891
2891
|
/* CACHED */
|
|
2892
2892
|
)),
|
|
2893
2893
|
n(" Profile Image Section "),
|
|
2894
|
-
r("div",
|
|
2895
|
-
r("div",
|
|
2894
|
+
r("div", Jr, [
|
|
2895
|
+
r("div", _r, [
|
|
2896
2896
|
r(
|
|
2897
2897
|
"div",
|
|
2898
|
-
|
|
2898
|
+
$r,
|
|
2899
2899
|
k(e.getInitials(e.currentUser?.firstName, e.currentUser?.lastName)),
|
|
2900
2900
|
1
|
|
2901
2901
|
/* TEXT */
|
|
@@ -2940,13 +2940,13 @@ function Vs(o, t, a, e, l, c) {
|
|
|
2940
2940
|
r(
|
|
2941
2941
|
"form",
|
|
2942
2942
|
{
|
|
2943
|
-
onSubmit:
|
|
2943
|
+
onSubmit: ae(e.handleUpdateProfile, ["prevent"]),
|
|
2944
2944
|
class: "space-y-6"
|
|
2945
2945
|
},
|
|
2946
2946
|
[
|
|
2947
|
-
r("div",
|
|
2947
|
+
r("div", es, [
|
|
2948
2948
|
n(" Personal Information "),
|
|
2949
|
-
r("div",
|
|
2949
|
+
r("div", ts, [
|
|
2950
2950
|
t[11] || (t[11] = r(
|
|
2951
2951
|
"h3",
|
|
2952
2952
|
{ class: "text-lg font-semibold text-gray-900 mb-4" },
|
|
@@ -2989,7 +2989,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
2989
2989
|
required: "",
|
|
2990
2990
|
disabled: e.loading || e.fetchingProfile,
|
|
2991
2991
|
error: e.errors.email
|
|
2992
|
-
},
|
|
2992
|
+
}, Ve({
|
|
2993
2993
|
_: 2
|
|
2994
2994
|
/* DYNAMIC */
|
|
2995
2995
|
}, [
|
|
@@ -3020,7 +3020,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3020
3020
|
}, null, 8, ["modelValue", "disabled", "error"])
|
|
3021
3021
|
]),
|
|
3022
3022
|
n(" Security Settings "),
|
|
3023
|
-
r("div",
|
|
3023
|
+
r("div", rs, [
|
|
3024
3024
|
t[17] || (t[17] = r(
|
|
3025
3025
|
"h3",
|
|
3026
3026
|
{ class: "text-lg font-semibold text-gray-900 mb-4" },
|
|
@@ -3029,8 +3029,8 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3029
3029
|
/* CACHED */
|
|
3030
3030
|
)),
|
|
3031
3031
|
n(" Password Change "),
|
|
3032
|
-
r("div",
|
|
3033
|
-
r("div",
|
|
3032
|
+
r("div", ss, [
|
|
3033
|
+
r("div", as, [
|
|
3034
3034
|
t[12] || (t[12] = r(
|
|
3035
3035
|
"div",
|
|
3036
3036
|
null,
|
|
@@ -3057,7 +3057,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3057
3057
|
/* STABLE */
|
|
3058
3058
|
})
|
|
3059
3059
|
]),
|
|
3060
|
-
e.showPasswordChange ? (i(), A("div",
|
|
3060
|
+
e.showPasswordChange ? (i(), A("div", ns, [
|
|
3061
3061
|
d(e.StrandsUiInput, {
|
|
3062
3062
|
modelValue: e.passwordForm.current,
|
|
3063
3063
|
"onUpdate:modelValue": t[5] || (t[5] = (s) => e.passwordForm.current = s),
|
|
@@ -3098,8 +3098,8 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3098
3098
|
])) : n("v-if", !0)
|
|
3099
3099
|
]),
|
|
3100
3100
|
n(" Two-Factor Authentication "),
|
|
3101
|
-
r("div",
|
|
3102
|
-
r("div",
|
|
3101
|
+
r("div", os, [
|
|
3102
|
+
r("div", is, [
|
|
3103
3103
|
r("div", null, [
|
|
3104
3104
|
t[14] || (t[14] = r(
|
|
3105
3105
|
"h4",
|
|
@@ -3110,7 +3110,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3110
3110
|
)),
|
|
3111
3111
|
r(
|
|
3112
3112
|
"p",
|
|
3113
|
-
|
|
3113
|
+
ls,
|
|
3114
3114
|
k(e.currentUser?.mfaEnabled ? "Enabled" : "Add extra security to your account"),
|
|
3115
3115
|
1
|
|
3116
3116
|
/* TEXT */
|
|
@@ -3134,8 +3134,8 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3134
3134
|
])
|
|
3135
3135
|
]),
|
|
3136
3136
|
n(" Active Sessions "),
|
|
3137
|
-
r("div",
|
|
3138
|
-
r("div",
|
|
3137
|
+
r("div", As, [
|
|
3138
|
+
r("div", ds, [
|
|
3139
3139
|
r("div", null, [
|
|
3140
3140
|
t[15] || (t[15] = r(
|
|
3141
3141
|
"h4",
|
|
@@ -3146,7 +3146,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3146
3146
|
)),
|
|
3147
3147
|
r(
|
|
3148
3148
|
"p",
|
|
3149
|
-
|
|
3149
|
+
us,
|
|
3150
3150
|
k(e.activeSessions.length) + " active device(s)",
|
|
3151
3151
|
1
|
|
3152
3152
|
/* TEXT */
|
|
@@ -3172,7 +3172,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3172
3172
|
])
|
|
3173
3173
|
]),
|
|
3174
3174
|
n(" Action Buttons "),
|
|
3175
|
-
r("div",
|
|
3175
|
+
r("div", cs, [
|
|
3176
3176
|
d(e.StrandsUiButton, {
|
|
3177
3177
|
type: "submit",
|
|
3178
3178
|
variant: "primary",
|
|
@@ -3210,9 +3210,9 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3210
3210
|
/* NEED_HYDRATION */
|
|
3211
3211
|
),
|
|
3212
3212
|
n(" Success/Error Messages "),
|
|
3213
|
-
e.successMessage ? (i(), A("div",
|
|
3214
|
-
r("div",
|
|
3215
|
-
r("div",
|
|
3213
|
+
e.successMessage ? (i(), A("div", ms, [
|
|
3214
|
+
r("div", fs, [
|
|
3215
|
+
r("div", gs, [
|
|
3216
3216
|
t[19] || (t[19] = r(
|
|
3217
3217
|
"svg",
|
|
3218
3218
|
{
|
|
@@ -3232,7 +3232,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3232
3232
|
)),
|
|
3233
3233
|
r(
|
|
3234
3234
|
"p",
|
|
3235
|
-
|
|
3235
|
+
ps,
|
|
3236
3236
|
k(e.successMessage),
|
|
3237
3237
|
1
|
|
3238
3238
|
/* TEXT */
|
|
@@ -3240,9 +3240,9 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3240
3240
|
])
|
|
3241
3241
|
])
|
|
3242
3242
|
])) : n("v-if", !0),
|
|
3243
|
-
e.errorMessage ? (i(), A("div",
|
|
3244
|
-
r("div",
|
|
3245
|
-
r("div",
|
|
3243
|
+
e.errorMessage ? (i(), A("div", vs, [
|
|
3244
|
+
r("div", ys, [
|
|
3245
|
+
r("div", bs, [
|
|
3246
3246
|
t[20] || (t[20] = r(
|
|
3247
3247
|
"svg",
|
|
3248
3248
|
{
|
|
@@ -3262,7 +3262,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3262
3262
|
)),
|
|
3263
3263
|
r(
|
|
3264
3264
|
"p",
|
|
3265
|
-
|
|
3265
|
+
hs,
|
|
3266
3266
|
k(e.errorMessage),
|
|
3267
3267
|
1
|
|
3268
3268
|
/* TEXT */
|
|
@@ -3271,8 +3271,8 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3271
3271
|
])
|
|
3272
3272
|
])) : n("v-if", !0),
|
|
3273
3273
|
n(" Need help "),
|
|
3274
|
-
e.getSupportEmail() ? (i(), A("div",
|
|
3275
|
-
r("p",
|
|
3274
|
+
e.getSupportEmail() ? (i(), A("div", ws, [
|
|
3275
|
+
r("p", Ss, [
|
|
3276
3276
|
t[22] || (t[22] = V(
|
|
3277
3277
|
" Need help? ",
|
|
3278
3278
|
-1
|
|
@@ -3301,7 +3301,7 @@ function Vs(o, t, a, e, l, c) {
|
|
|
3301
3301
|
])
|
|
3302
3302
|
]);
|
|
3303
3303
|
}
|
|
3304
|
-
const Aa = /* @__PURE__ */ D(
|
|
3304
|
+
const Aa = /* @__PURE__ */ D(Hr, [["render", qs], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsUserProfile.vue"]]), Vs = /* @__PURE__ */ X({
|
|
3305
3305
|
__name: "StrandsPasswordReset",
|
|
3306
3306
|
props: {
|
|
3307
3307
|
config: { type: Object, required: !1 }
|
|
@@ -3309,9 +3309,9 @@ const Aa = /* @__PURE__ */ D(Rr, [["render", Vs], ["__file", "/home/runner/work/
|
|
|
3309
3309
|
emits: ["success", "error", "back-to-signin"],
|
|
3310
3310
|
setup(o, { expose: t, emit: a }) {
|
|
3311
3311
|
t();
|
|
3312
|
-
const e = o, l = a, { getSupportEmail:
|
|
3312
|
+
const e = o, l = a, { getSupportEmail: u } = _(e.config), s = U(!1), g = U(""), w = U(!1), x = G({
|
|
3313
3313
|
email: ""
|
|
3314
|
-
}), m = { props: e, emit: l, getSupportEmail:
|
|
3314
|
+
}), m = { props: e, emit: l, getSupportEmail: u, loading: s, error: g, isSubmitted: w, form: x, handlePasswordReset: async () => {
|
|
3315
3315
|
s.value = !0, g.value = "";
|
|
3316
3316
|
try {
|
|
3317
3317
|
console.log("Password reset request:", { email: x.email }), await new Promise((S) => setTimeout(S, 1e3)), w.value = !0, l("success", x.email);
|
|
@@ -3321,24 +3321,24 @@ const Aa = /* @__PURE__ */ D(Rr, [["render", Vs], ["__file", "/home/runner/work/
|
|
|
3321
3321
|
s.value = !1;
|
|
3322
3322
|
}
|
|
3323
3323
|
}, get StrandsUiCard() {
|
|
3324
|
-
return
|
|
3324
|
+
return oe;
|
|
3325
3325
|
}, get StrandsUiButton() {
|
|
3326
|
-
return
|
|
3326
|
+
return $;
|
|
3327
3327
|
}, get StrandsUiInput() {
|
|
3328
|
-
return
|
|
3328
|
+
return ee;
|
|
3329
3329
|
}, get StrandsUiAlert() {
|
|
3330
3330
|
return de;
|
|
3331
3331
|
}, get StrandsUiLink() {
|
|
3332
|
-
return
|
|
3333
|
-
}, StrandsSecuredFooter:
|
|
3332
|
+
return te;
|
|
3333
|
+
}, StrandsSecuredFooter: ie };
|
|
3334
3334
|
return Object.defineProperty(m, "__isScriptSetup", { enumerable: !1, value: !0 }), m;
|
|
3335
3335
|
}
|
|
3336
|
-
}),
|
|
3336
|
+
}), Cs = { class: "w-full min-w-100 max-w-md mx-auto animate-slide-up" }, xs = { class: "mt-8 text-center" }, Us = {
|
|
3337
3337
|
key: 2,
|
|
3338
3338
|
class: "mt-6 text-center"
|
|
3339
|
-
},
|
|
3340
|
-
function
|
|
3341
|
-
return i(), A("div",
|
|
3339
|
+
}, Ws = { class: "text-neutral-400 text-sm" };
|
|
3340
|
+
function ks(o, t, a, e, l, u) {
|
|
3341
|
+
return i(), A("div", Cs, [
|
|
3342
3342
|
d(e.StrandsUiCard, { variant: "modern" }, {
|
|
3343
3343
|
default: y(() => [
|
|
3344
3344
|
n(" Header "),
|
|
@@ -3356,7 +3356,7 @@ function Ns(o, t, a, e, l, c) {
|
|
|
3356
3356
|
r(
|
|
3357
3357
|
"form",
|
|
3358
3358
|
{
|
|
3359
|
-
onSubmit:
|
|
3359
|
+
onSubmit: ae(e.handlePasswordReset, ["prevent"]),
|
|
3360
3360
|
class: "space-y-6"
|
|
3361
3361
|
},
|
|
3362
3362
|
[
|
|
@@ -3411,7 +3411,7 @@ function Ns(o, t, a, e, l, c) {
|
|
|
3411
3411
|
onDismiss: t[1] || (t[1] = (s) => e.error = "")
|
|
3412
3412
|
}, null, 8, ["message"])) : n("v-if", !0),
|
|
3413
3413
|
n(" Back to Sign In "),
|
|
3414
|
-
r("div",
|
|
3414
|
+
r("div", xs, [
|
|
3415
3415
|
d(e.StrandsUiLink, {
|
|
3416
3416
|
onClick: t[2] || (t[2] = (s) => o.$emit("back-to-signin")),
|
|
3417
3417
|
class: "inline-flex items-center gap-2"
|
|
@@ -3447,8 +3447,8 @@ function Ns(o, t, a, e, l, c) {
|
|
|
3447
3447
|
})
|
|
3448
3448
|
]),
|
|
3449
3449
|
n(" Need help "),
|
|
3450
|
-
e.getSupportEmail() ? (i(), A("div",
|
|
3451
|
-
r("p",
|
|
3450
|
+
e.getSupportEmail() ? (i(), A("div", Us, [
|
|
3451
|
+
r("p", Ws, [
|
|
3452
3452
|
t[5] || (t[5] = V(
|
|
3453
3453
|
" Need help? ",
|
|
3454
3454
|
-1
|
|
@@ -3480,7 +3480,7 @@ function Ns(o, t, a, e, l, c) {
|
|
|
3480
3480
|
})
|
|
3481
3481
|
]);
|
|
3482
3482
|
}
|
|
3483
|
-
const da = /* @__PURE__ */ D(
|
|
3483
|
+
const da = /* @__PURE__ */ D(Vs, [["render", ks], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsPasswordReset.vue"]]), Ns = /* @__PURE__ */ X({
|
|
3484
3484
|
__name: "StrandsMFASetup",
|
|
3485
3485
|
emits: ["success", "error", "back"],
|
|
3486
3486
|
setup(o, { expose: t }) {
|
|
@@ -3488,9 +3488,9 @@ const da = /* @__PURE__ */ D(Cs, [["render", Ns], ["__file", "/home/runner/work/
|
|
|
3488
3488
|
const a = {};
|
|
3489
3489
|
return Object.defineProperty(a, "__isScriptSetup", { enumerable: !1, value: !0 }), a;
|
|
3490
3490
|
}
|
|
3491
|
-
}),
|
|
3492
|
-
function Is(o, t, a, e, l,
|
|
3493
|
-
return i(), A("div",
|
|
3491
|
+
}), Ls = { class: "max-w-md mx-auto bg-white rounded-lg shadow-lg p-6" }, Ms = { class: "space-y-6" }, Ps = { class: "flex gap-3 pt-4" };
|
|
3492
|
+
function Is(o, t, a, e, l, u) {
|
|
3493
|
+
return i(), A("div", Ls, [
|
|
3494
3494
|
t[5] || (t[5] = r(
|
|
3495
3495
|
"div",
|
|
3496
3496
|
{ class: "text-center mb-6" },
|
|
@@ -3501,9 +3501,9 @@ function Is(o, t, a, e, l, c) {
|
|
|
3501
3501
|
-1
|
|
3502
3502
|
/* CACHED */
|
|
3503
3503
|
)),
|
|
3504
|
-
r("div",
|
|
3504
|
+
r("div", Ms, [
|
|
3505
3505
|
n(" QR Code Section "),
|
|
3506
|
-
t[2] || (t[2] =
|
|
3506
|
+
t[2] || (t[2] = ye('<div class="text-center"><div class="w-48 h-48 bg-gray-100 rounded-lg mx-auto mb-4 flex items-center justify-center"><div class="text-gray-400"><svg class="w-12 h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M12 12h.01M12 12v4.01"></path></svg></div></div><p class="text-sm text-gray-600">Scan this QR code with your authenticator app</p></div>', 1)),
|
|
3507
3507
|
n(" Setup Key "),
|
|
3508
3508
|
t[3] || (t[3] = r(
|
|
3509
3509
|
"div",
|
|
@@ -3533,7 +3533,7 @@ function Is(o, t, a, e, l, c) {
|
|
|
3533
3533
|
/* CACHED */
|
|
3534
3534
|
)),
|
|
3535
3535
|
n(" Actions "),
|
|
3536
|
-
r("div",
|
|
3536
|
+
r("div", Ps, [
|
|
3537
3537
|
t[1] || (t[1] = r(
|
|
3538
3538
|
"button",
|
|
3539
3539
|
{
|
|
@@ -3553,7 +3553,7 @@ function Is(o, t, a, e, l, c) {
|
|
|
3553
3553
|
])
|
|
3554
3554
|
]);
|
|
3555
3555
|
}
|
|
3556
|
-
const ua = /* @__PURE__ */ D(
|
|
3556
|
+
const ua = /* @__PURE__ */ D(Ns, [["render", Is], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsMFASetup.vue"]]), zs = /* @__PURE__ */ X({
|
|
3557
3557
|
__name: "SignedIn",
|
|
3558
3558
|
props: {
|
|
3559
3559
|
showFallback: { type: Boolean, required: !1, default: !0 }
|
|
@@ -3561,47 +3561,47 @@ const ua = /* @__PURE__ */ D(Ls, [["render", Is], ["__file", "/home/runner/work/
|
|
|
3561
3561
|
emits: ["sign-in-required"],
|
|
3562
3562
|
setup(o, { expose: t, emit: a }) {
|
|
3563
3563
|
t();
|
|
3564
|
-
const e = a, l = U(!1), { isAuthenticated:
|
|
3564
|
+
const e = a, l = U(!1), { isAuthenticated: u, isLoading: s, user: g, signOut: w } = ne(), x = C(() => s.value || !l.value);
|
|
3565
3565
|
J(() => {
|
|
3566
3566
|
setTimeout(() => {
|
|
3567
3567
|
l.value = !0;
|
|
3568
3568
|
}, 100);
|
|
3569
3569
|
});
|
|
3570
|
-
const m = { emit: e, isComponentReady: l, isAuthenticated:
|
|
3570
|
+
const m = { emit: e, isComponentReady: l, isAuthenticated: u, isLoading: s, user: g, signOut: w, showLoading: x, signIn: () => {
|
|
3571
3571
|
e("sign-in-required");
|
|
3572
3572
|
}, get StrandsUiLoader() {
|
|
3573
|
-
return
|
|
3573
|
+
return me;
|
|
3574
3574
|
} };
|
|
3575
3575
|
return Object.defineProperty(m, "__isScriptSetup", { enumerable: !1, value: !0 }), m;
|
|
3576
3576
|
}
|
|
3577
|
-
}),
|
|
3577
|
+
}), Bs = {
|
|
3578
3578
|
key: 0,
|
|
3579
3579
|
class: "animate-fade-in"
|
|
3580
|
-
},
|
|
3580
|
+
}, Fs = {
|
|
3581
3581
|
key: 1,
|
|
3582
3582
|
class: "animate-fade-in"
|
|
3583
|
-
},
|
|
3583
|
+
}, Xs = {
|
|
3584
3584
|
key: 2,
|
|
3585
3585
|
class: "animate-fade-in py-8"
|
|
3586
3586
|
};
|
|
3587
|
-
function
|
|
3588
|
-
return e.isAuthenticated && !e.showLoading ? (i(), A("div",
|
|
3587
|
+
function Ds(o, t, a, e, l, u) {
|
|
3588
|
+
return e.isAuthenticated && !e.showLoading ? (i(), A("div", Bs, [
|
|
3589
3589
|
Z(o.$slots, "default", {
|
|
3590
3590
|
user: e.user,
|
|
3591
3591
|
signOut: e.signOut
|
|
3592
3592
|
})
|
|
3593
|
-
])) : a.showFallback && !e.showLoading ? (i(), A("div",
|
|
3593
|
+
])) : a.showFallback && !e.showLoading ? (i(), A("div", Fs, [
|
|
3594
3594
|
Z(o.$slots, "fallback", { signIn: e.signIn }, () => [
|
|
3595
3595
|
n(" Default fallback content "),
|
|
3596
3596
|
r("div", { class: "text-center py-8" }, [
|
|
3597
|
-
t[0] || (t[0] =
|
|
3597
|
+
t[0] || (t[0] = ye('<div class="w-16 h-16 mx-auto mb-4 bg-neutral-100 rounded-full flex items-center justify-center"><svg class="w-8 h-8 text-neutral-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><h3 class="text-lg font-semibold text-neutral-900 mb-2">Sign in required</h3><p class="text-neutral-600 mb-4">You need to be signed in to access this content.</p>', 3)),
|
|
3598
3598
|
r("button", {
|
|
3599
3599
|
onClick: e.signIn,
|
|
3600
3600
|
class: "btn-primary !w-auto px-6 py-2"
|
|
3601
3601
|
}, " Sign in ")
|
|
3602
3602
|
])
|
|
3603
3603
|
])
|
|
3604
|
-
])) : e.showLoading ? (i(), A("div",
|
|
3604
|
+
])) : e.showLoading ? (i(), A("div", Xs, [
|
|
3605
3605
|
Z(o.$slots, "loading", {}, () => [
|
|
3606
3606
|
d(e.StrandsUiLoader, {
|
|
3607
3607
|
size: 64,
|
|
@@ -3612,7 +3612,7 @@ function js(o, t, a, e, l, c) {
|
|
|
3612
3612
|
])
|
|
3613
3613
|
])) : n("v-if", !0);
|
|
3614
3614
|
}
|
|
3615
|
-
const ca = /* @__PURE__ */ D(
|
|
3615
|
+
const ca = /* @__PURE__ */ D(zs, [["render", Ds], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedIn.vue"]]), js = /* @__PURE__ */ X({
|
|
3616
3616
|
__name: "SignedOut",
|
|
3617
3617
|
props: {
|
|
3618
3618
|
showFallback: { type: Boolean, required: !1, default: !0 }
|
|
@@ -3620,37 +3620,38 @@ const ca = /* @__PURE__ */ D(Bs, [["render", js], ["__file", "/home/runner/work/
|
|
|
3620
3620
|
emits: ["sign-in-clicked", "sign-up-clicked"],
|
|
3621
3621
|
setup(o, { expose: t, emit: a }) {
|
|
3622
3622
|
t();
|
|
3623
|
-
const e = o, l = a, { isAuthenticated:
|
|
3623
|
+
const e = o, l = a, { isAuthenticated: u, isLoading: s, user: g, signOut: w } = ne(), m = { props: e, emit: l, isAuthenticated: u, isLoading: s, user: g, signOut: w, signIn: () => {
|
|
3624
3624
|
l("sign-in-clicked");
|
|
3625
3625
|
}, signUp: () => {
|
|
3626
3626
|
l("sign-up-clicked");
|
|
3627
|
+
}, get StrandsUiLoader() {
|
|
3628
|
+
return me;
|
|
3627
3629
|
} };
|
|
3628
3630
|
return Object.defineProperty(m, "__isScriptSetup", { enumerable: !1, value: !0 }), m;
|
|
3629
3631
|
}
|
|
3630
|
-
}),
|
|
3632
|
+
}), Zs = {
|
|
3631
3633
|
key: 0,
|
|
3632
3634
|
class: "animate-fade-in"
|
|
3633
|
-
},
|
|
3635
|
+
}, Ts = {
|
|
3634
3636
|
key: 1,
|
|
3635
3637
|
class: "animate-fade-in"
|
|
3636
|
-
},
|
|
3638
|
+
}, Ys = { class: "text-center py-8" }, Os = { class: "text-neutral-600 mb-4" }, Es = {
|
|
3637
3639
|
key: 2,
|
|
3638
3640
|
class: "animate-fade-in py-8"
|
|
3639
3641
|
};
|
|
3640
|
-
function
|
|
3641
|
-
|
|
3642
|
-
return !e.isAuthenticated && !e.isLoading ? (i(), A("div", Ts, [
|
|
3642
|
+
function Qs(o, t, a, e, l, u) {
|
|
3643
|
+
return !e.isAuthenticated && !e.isLoading ? (i(), A("div", Zs, [
|
|
3643
3644
|
Z(o.$slots, "default", {
|
|
3644
3645
|
signIn: e.signIn,
|
|
3645
3646
|
signUp: e.signUp
|
|
3646
3647
|
})
|
|
3647
|
-
])) : a.showFallback && e.isAuthenticated && !e.isLoading ? (i(), A("div",
|
|
3648
|
+
])) : a.showFallback && e.isAuthenticated && !e.isLoading ? (i(), A("div", Ts, [
|
|
3648
3649
|
Z(o.$slots, "fallback", {
|
|
3649
3650
|
user: e.user,
|
|
3650
3651
|
signOut: e.signOut
|
|
3651
3652
|
}, () => [
|
|
3652
3653
|
n(" Default fallback content for signed in users "),
|
|
3653
|
-
r("div",
|
|
3654
|
+
r("div", Ys, [
|
|
3654
3655
|
t[1] || (t[1] = r(
|
|
3655
3656
|
"div",
|
|
3656
3657
|
{ class: "w-16 h-16 mx-auto mb-4 bg-strands-100 rounded-full flex items-center justify-center" },
|
|
@@ -3681,20 +3682,20 @@ function Ks(o, t, a, e, l, c) {
|
|
|
3681
3682
|
)),
|
|
3682
3683
|
r(
|
|
3683
3684
|
"p",
|
|
3684
|
-
|
|
3685
|
+
Os,
|
|
3685
3686
|
"You're currently signed in as " + k(e.user?.email) + ".",
|
|
3686
3687
|
1
|
|
3687
3688
|
/* TEXT */
|
|
3688
3689
|
),
|
|
3689
3690
|
r("button", {
|
|
3690
|
-
onClick: t[0] || (t[0] = (...
|
|
3691
|
+
onClick: t[0] || (t[0] = (...s) => e.signOut && e.signOut(...s)),
|
|
3691
3692
|
class: "btn-secondary !w-auto px-6 py-2"
|
|
3692
3693
|
}, " Sign out ")
|
|
3693
3694
|
])
|
|
3694
3695
|
])
|
|
3695
|
-
])) : e.isLoading ? (i(), A("div",
|
|
3696
|
+
])) : e.isLoading ? (i(), A("div", Es, [
|
|
3696
3697
|
Z(o.$slots, "loading", {}, () => [
|
|
3697
|
-
d(
|
|
3698
|
+
d(e.StrandsUiLoader, {
|
|
3698
3699
|
size: 64,
|
|
3699
3700
|
text: "Checking authentication...",
|
|
3700
3701
|
variant: "auto",
|
|
@@ -3703,7 +3704,7 @@ function Ks(o, t, a, e, l, c) {
|
|
|
3703
3704
|
])
|
|
3704
3705
|
])) : n("v-if", !0);
|
|
3705
3706
|
}
|
|
3706
|
-
const ma = /* @__PURE__ */ D(
|
|
3707
|
+
const ma = /* @__PURE__ */ D(js, [["render", Qs], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedOut.vue"]]), Ks = /* @__PURE__ */ X({
|
|
3707
3708
|
__name: "StrandsLogo",
|
|
3708
3709
|
props: {
|
|
3709
3710
|
class: { type: String, required: !1, default: "" }
|
|
@@ -3714,7 +3715,7 @@ const ma = /* @__PURE__ */ D(Zs, [["render", Ks], ["__file", "/home/runner/work/
|
|
|
3714
3715
|
return Object.defineProperty(a, "__isScriptSetup", { enumerable: !1, value: !0 }), a;
|
|
3715
3716
|
}
|
|
3716
3717
|
});
|
|
3717
|
-
function
|
|
3718
|
+
function Hs(o, t, a, e, l, u) {
|
|
3718
3719
|
return i(), A(
|
|
3719
3720
|
"svg",
|
|
3720
3721
|
{
|
|
@@ -3755,7 +3756,7 @@ function Rs(o, t, a, e, l, c) {
|
|
|
3755
3756
|
/* CLASS */
|
|
3756
3757
|
);
|
|
3757
3758
|
}
|
|
3758
|
-
const fa = /* @__PURE__ */ D(
|
|
3759
|
+
const fa = /* @__PURE__ */ D(Ks, [["render", Hs], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsLogo.vue"]]), Rs = /* @__PURE__ */ X({
|
|
3759
3760
|
__name: "StrandsConfigProvider",
|
|
3760
3761
|
props: {
|
|
3761
3762
|
config: { type: Object, required: !0 }
|
|
@@ -3764,16 +3765,16 @@ const fa = /* @__PURE__ */ D(Hs, [["render", Rs], ["__file", "/home/runner/work/
|
|
|
3764
3765
|
t();
|
|
3765
3766
|
const a = o;
|
|
3766
3767
|
J(() => {
|
|
3767
|
-
|
|
3768
|
-
}),
|
|
3768
|
+
ge(a.config);
|
|
3769
|
+
}), ge(a.config);
|
|
3769
3770
|
const e = { props: a };
|
|
3770
3771
|
return Object.defineProperty(e, "__isScriptSetup", { enumerable: !1, value: !0 }), e;
|
|
3771
3772
|
}
|
|
3772
3773
|
});
|
|
3773
|
-
function
|
|
3774
|
+
function Gs(o, t, a, e, l, u) {
|
|
3774
3775
|
return Z(o.$slots, "default");
|
|
3775
3776
|
}
|
|
3776
|
-
const ga = /* @__PURE__ */ D(
|
|
3777
|
+
const ga = /* @__PURE__ */ D(Rs, [["render", Gs], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsConfigProvider.vue"]]), Js = /* @__PURE__ */ X({
|
|
3777
3778
|
__name: "SvgIcon",
|
|
3778
3779
|
props: {
|
|
3779
3780
|
name: { type: String, required: !0 },
|
|
@@ -3791,43 +3792,43 @@ const ga = /* @__PURE__ */ D(Gs, [["render", Js], ["__file", "/home/runner/work/
|
|
|
3791
3792
|
md: "w-5 h-5",
|
|
3792
3793
|
lg: "w-6 h-6",
|
|
3793
3794
|
xl: "w-8 h-8"
|
|
3794
|
-
}, l = C(() => `${e[a.size]} ${a.class}`),
|
|
3795
|
-
eye: () =>
|
|
3796
|
-
|
|
3795
|
+
}, l = C(() => `${e[a.size]} ${a.class}`), u = C(() => "0 0 24 24"), s = {
|
|
3796
|
+
eye: () => z("g", [
|
|
3797
|
+
z("path", {
|
|
3797
3798
|
"stroke-linecap": "round",
|
|
3798
3799
|
"stroke-linejoin": "round",
|
|
3799
3800
|
"stroke-width": "2",
|
|
3800
3801
|
d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
|
|
3801
3802
|
}),
|
|
3802
|
-
|
|
3803
|
+
z("path", {
|
|
3803
3804
|
"stroke-linecap": "round",
|
|
3804
3805
|
"stroke-linejoin": "round",
|
|
3805
3806
|
"stroke-width": "2",
|
|
3806
3807
|
d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
|
|
3807
3808
|
})
|
|
3808
3809
|
]),
|
|
3809
|
-
"eye-slash": () =>
|
|
3810
|
-
|
|
3810
|
+
"eye-slash": () => z("g", [
|
|
3811
|
+
z("path", {
|
|
3811
3812
|
"stroke-linecap": "round",
|
|
3812
3813
|
"stroke-linejoin": "round",
|
|
3813
3814
|
"stroke-width": "2",
|
|
3814
3815
|
d: "M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.878L21 21"
|
|
3815
3816
|
})
|
|
3816
3817
|
]),
|
|
3817
|
-
camera: () =>
|
|
3818
|
+
camera: () => z("path", {
|
|
3818
3819
|
"stroke-linecap": "round",
|
|
3819
3820
|
"stroke-linejoin": "round",
|
|
3820
3821
|
"stroke-width": "2",
|
|
3821
3822
|
d: "M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"
|
|
3822
3823
|
}),
|
|
3823
|
-
"chevron-left": () =>
|
|
3824
|
+
"chevron-left": () => z("path", {
|
|
3824
3825
|
"stroke-linecap": "round",
|
|
3825
3826
|
"stroke-linejoin": "round",
|
|
3826
3827
|
"stroke-width": "2",
|
|
3827
3828
|
d: "M15 19l-7-7 7-7"
|
|
3828
3829
|
}),
|
|
3829
|
-
loading: () =>
|
|
3830
|
-
|
|
3830
|
+
loading: () => z("g", [
|
|
3831
|
+
z("circle", {
|
|
3831
3832
|
class: "opacity-25",
|
|
3832
3833
|
cx: "12",
|
|
3833
3834
|
cy: "12",
|
|
@@ -3835,65 +3836,65 @@ const ga = /* @__PURE__ */ D(Gs, [["render", Js], ["__file", "/home/runner/work/
|
|
|
3835
3836
|
stroke: "currentColor",
|
|
3836
3837
|
"stroke-width": "4"
|
|
3837
3838
|
}),
|
|
3838
|
-
|
|
3839
|
+
z("path", {
|
|
3839
3840
|
class: "opacity-75",
|
|
3840
3841
|
fill: "currentColor",
|
|
3841
3842
|
d: "m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
3842
3843
|
})
|
|
3843
3844
|
]),
|
|
3844
|
-
"check-circle": () =>
|
|
3845
|
+
"check-circle": () => z("path", {
|
|
3845
3846
|
"fill-rule": "evenodd",
|
|
3846
3847
|
d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.236 4.53L7.53 10.173a.75.75 0 00-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
|
|
3847
3848
|
"clip-rule": "evenodd"
|
|
3848
3849
|
}),
|
|
3849
|
-
"x-circle": () =>
|
|
3850
|
+
"x-circle": () => z("path", {
|
|
3850
3851
|
"fill-rule": "evenodd",
|
|
3851
3852
|
d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",
|
|
3852
3853
|
"clip-rule": "evenodd"
|
|
3853
3854
|
}),
|
|
3854
|
-
lock: () =>
|
|
3855
|
+
lock: () => z("path", {
|
|
3855
3856
|
"stroke-linecap": "round",
|
|
3856
3857
|
"stroke-linejoin": "round",
|
|
3857
3858
|
"stroke-width": "2",
|
|
3858
3859
|
d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"
|
|
3859
3860
|
}),
|
|
3860
|
-
user: () =>
|
|
3861
|
+
user: () => z("path", {
|
|
3861
3862
|
"stroke-linecap": "round",
|
|
3862
3863
|
"stroke-linejoin": "round",
|
|
3863
3864
|
"stroke-width": "2",
|
|
3864
3865
|
d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
|
|
3865
3866
|
}),
|
|
3866
|
-
google: () =>
|
|
3867
|
-
|
|
3867
|
+
google: () => z("g", { fill: "currentColor" }, [
|
|
3868
|
+
z("path", {
|
|
3868
3869
|
fill: "#4285F4",
|
|
3869
3870
|
d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
|
|
3870
3871
|
}),
|
|
3871
|
-
|
|
3872
|
+
z("path", {
|
|
3872
3873
|
fill: "#34A853",
|
|
3873
3874
|
d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
|
|
3874
3875
|
}),
|
|
3875
|
-
|
|
3876
|
+
z("path", {
|
|
3876
3877
|
fill: "#FBBC05",
|
|
3877
3878
|
d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
|
|
3878
3879
|
}),
|
|
3879
|
-
|
|
3880
|
+
z("path", {
|
|
3880
3881
|
fill: "#EA4335",
|
|
3881
3882
|
d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
|
|
3882
3883
|
})
|
|
3883
3884
|
]),
|
|
3884
|
-
github: () =>
|
|
3885
|
+
github: () => z("path", {
|
|
3885
3886
|
"fill-rule": "evenodd",
|
|
3886
3887
|
d: "M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",
|
|
3887
3888
|
"clip-rule": "evenodd"
|
|
3888
3889
|
})
|
|
3889
3890
|
}, g = C(() => {
|
|
3890
3891
|
const x = s[a.name];
|
|
3891
|
-
return x ? x() :
|
|
3892
|
-
}), w = { props: a, sizeClasses: e, iconClass: l, viewBox:
|
|
3892
|
+
return x ? x() : z("path", { d: "" });
|
|
3893
|
+
}), w = { props: a, sizeClasses: e, iconClass: l, viewBox: u, icons: s, iconComponent: g };
|
|
3893
3894
|
return Object.defineProperty(w, "__isScriptSetup", { enumerable: !1, value: !0 }), w;
|
|
3894
3895
|
}
|
|
3895
|
-
}),
|
|
3896
|
-
function
|
|
3896
|
+
}), _s = ["fill", "stroke", "viewBox", "aria-hidden"];
|
|
3897
|
+
function $s(o, t, a, e, l, u) {
|
|
3897
3898
|
return i(), A("svg", {
|
|
3898
3899
|
class: Y(e.iconClass),
|
|
3899
3900
|
fill: a.fill,
|
|
@@ -3901,24 +3902,40 @@ function ea(o, t, a, e, l, c) {
|
|
|
3901
3902
|
viewBox: e.viewBox,
|
|
3902
3903
|
"aria-hidden": a.ariaHidden
|
|
3903
3904
|
}, [
|
|
3904
|
-
(i(), E(
|
|
3905
|
-
], 10,
|
|
3905
|
+
(i(), E(pe(e.iconComponent)))
|
|
3906
|
+
], 10, _s);
|
|
3906
3907
|
}
|
|
3907
|
-
const pa = /* @__PURE__ */ D(
|
|
3908
|
+
const pa = /* @__PURE__ */ D(Js, [["render", $s], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SvgIcon.vue"]]), ea = {
|
|
3909
|
+
StrandsUiAlert: de,
|
|
3910
|
+
StrandsUiButton: $,
|
|
3911
|
+
StrandsUiCard: oe,
|
|
3912
|
+
StrandsUiInput: ee,
|
|
3913
|
+
StrandsUiLink: te,
|
|
3914
|
+
StrandsUiTabs: be,
|
|
3915
|
+
StrandsUiLoader: me
|
|
3916
|
+
}, va = {
|
|
3917
|
+
install(o, t = {}) {
|
|
3918
|
+
const { prefix: a = "" } = t;
|
|
3919
|
+
Object.entries(ea).forEach(([e, l]) => {
|
|
3920
|
+
const u = a ? `${a}${e}` : e;
|
|
3921
|
+
o.component(u, l);
|
|
3922
|
+
});
|
|
3923
|
+
}
|
|
3924
|
+
}, ya = (o) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o), ba = (o) => {
|
|
3908
3925
|
const t = [];
|
|
3909
3926
|
let a = 0;
|
|
3910
3927
|
o.length < 8 ? t.push("Password must be at least 8 characters long") : a += 1, /[A-Z]/.test(o) ? a += 1 : t.push("Password must contain at least one uppercase letter"), /[a-z]/.test(o) ? a += 1 : t.push("Password must contain at least one lowercase letter"), /\d/.test(o) ? a += 1 : t.push("Password must contain at least one number"), /[!@#$%^&*(),.?":{}|<>]/.test(o) ? a += 1 : t.push("Password must contain at least one special character");
|
|
3911
3928
|
const e = t.length === 0;
|
|
3912
3929
|
let l = "weak";
|
|
3913
3930
|
return a >= 4 ? l = "strong" : a >= 3 && (l = "medium"), { isValid: e, strength: l, errors: t };
|
|
3914
|
-
},
|
|
3931
|
+
}, ha = (o) => o.trim().length >= 2, wa = (o) => /^[\+]?[1-9][\d]{0,15}$/.test(o.replace(/[\s\-\(\)]/g, "")), Sa = (o) => o.trim().length > 0, qa = (o, t) => o === t, Va = (o, t) => {
|
|
3915
3932
|
const a = o?.charAt(0).toUpperCase() || "", e = t?.charAt(0).toUpperCase() || "";
|
|
3916
3933
|
return a + e || "U";
|
|
3917
|
-
},
|
|
3934
|
+
}, Ca = (o) => (typeof o == "string" ? new Date(o) : o).toLocaleDateString("en-US", {
|
|
3918
3935
|
year: "numeric",
|
|
3919
3936
|
month: "long",
|
|
3920
3937
|
day: "numeric"
|
|
3921
|
-
}),
|
|
3938
|
+
}), xa = (o, t) => {
|
|
3922
3939
|
let a;
|
|
3923
3940
|
return (...e) => {
|
|
3924
3941
|
clearTimeout(a), a = setTimeout(() => o(...e), t);
|
|
@@ -3933,31 +3950,32 @@ export {
|
|
|
3933
3950
|
fa as StrandsLogo,
|
|
3934
3951
|
ua as StrandsMFASetup,
|
|
3935
3952
|
da as StrandsPasswordReset,
|
|
3936
|
-
|
|
3953
|
+
ie as StrandsSecuredFooter,
|
|
3937
3954
|
oa as StrandsSignIn,
|
|
3938
3955
|
ia as StrandsSignUp,
|
|
3956
|
+
va as StrandsUIPlugin,
|
|
3939
3957
|
de as StrandsUiAlert,
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3958
|
+
$ as StrandsUiButton,
|
|
3959
|
+
oe as StrandsUiCard,
|
|
3960
|
+
ee as StrandsUiInput,
|
|
3961
|
+
te as StrandsUiLink,
|
|
3962
|
+
me as StrandsUiLoader,
|
|
3963
|
+
be as StrandsUiTabs,
|
|
3946
3964
|
Aa as StrandsUserProfile,
|
|
3947
3965
|
pa as SvgIcon,
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3966
|
+
xa as debounce,
|
|
3967
|
+
Ca as formatDate,
|
|
3968
|
+
Va as getInitials,
|
|
3969
|
+
Sa as isRequired,
|
|
3970
|
+
ya as isValidEmail,
|
|
3971
|
+
ha as isValidName,
|
|
3972
|
+
wa as isValidPhone,
|
|
3973
|
+
qa as passwordsMatch,
|
|
3974
|
+
ge as provideStrandsConfig,
|
|
3975
|
+
ka as setStrandsConfig,
|
|
3976
|
+
fe as useOAuthProviders,
|
|
3977
|
+
ne as useStrandsAuth,
|
|
3960
3978
|
_ as useStrandsConfig,
|
|
3961
|
-
|
|
3979
|
+
ba as validatePassword
|
|
3962
3980
|
};
|
|
3963
3981
|
//# sourceMappingURL=strands-auth-ui.es.js.map
|