@strands.gg/accui 1.7.2 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accui.css +651 -225
- package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js +1 -1
- package/dist/nuxt/runtime/composables/useStrandsAuth.es.js +1 -1
- package/dist/nuxt/runtime/plugin.client.cjs.js +1 -1
- package/dist/nuxt/runtime/plugin.client.es.js +1 -1
- package/dist/nuxt/runtime/plugin.server.cjs.js +1 -1
- package/dist/nuxt/runtime/plugin.server.es.js +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js +1 -1
- package/dist/nuxt-v4/runtime/plugin.client.cjs.js +1 -1
- package/dist/nuxt-v4/runtime/plugin.client.es.js +1 -1
- package/dist/nuxt-v4/runtime/plugin.server.cjs.js +1 -1
- package/dist/nuxt-v4/runtime/plugin.server.es.js +1 -1
- package/dist/strands-auth-ui.cjs.js +1162 -741
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +1163 -742
- package/dist/strands-auth-ui.es.js.map +1 -1
- package/dist/{useStrandsAuth-CO9JEdxM.js → useStrandsAuth-Beee__9G.js} +90 -27
- package/dist/useStrandsAuth-Beee__9G.js.map +1 -0
- package/dist/{useStrandsAuth-z4jAu9Uv.cjs → useStrandsAuth-JfbGH2c-.cjs} +90 -27
- package/dist/useStrandsAuth-JfbGH2c-.cjs.map +1 -0
- package/dist/{useStrandsConfig-Bdk-g0jS.js → useStrandsConfig-Cxb360Os.js} +13 -3
- package/dist/useStrandsConfig-Cxb360Os.js.map +1 -0
- package/dist/{useStrandsConfig-CtmQtE7Y.cjs → useStrandsConfig-Dms13Zd0.cjs} +13 -3
- package/dist/useStrandsConfig-Dms13Zd0.cjs.map +1 -0
- package/package.json +5 -1
- package/dist/useStrandsAuth-CO9JEdxM.js.map +0 -1
- package/dist/useStrandsAuth-z4jAu9Uv.cjs.map +0 -1
- package/dist/useStrandsConfig-Bdk-g0jS.js.map +0 -1
- package/dist/useStrandsConfig-CtmQtE7Y.cjs.map +0 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const useStrandsConfig = require("./useStrandsConfig-
|
|
5
|
-
const useStrandsAuth = require("./useStrandsAuth-
|
|
6
|
-
const _hoisted_1$
|
|
7
|
-
const _hoisted_2$
|
|
8
|
-
const _hoisted_3$
|
|
9
|
-
const _hoisted_4$
|
|
4
|
+
const useStrandsConfig = require("./useStrandsConfig-Dms13Zd0.cjs");
|
|
5
|
+
const useStrandsAuth = require("./useStrandsAuth-JfbGH2c-.cjs");
|
|
6
|
+
const _hoisted_1$v = { class: "accui-component-scope" };
|
|
7
|
+
const _hoisted_2$s = { class: "alert-content" };
|
|
8
|
+
const _hoisted_3$s = { class: "alert-icon-container" };
|
|
9
|
+
const _hoisted_4$o = {
|
|
10
10
|
class: "alert-main-icon",
|
|
11
11
|
fill: "currentColor",
|
|
12
12
|
viewBox: "0 0 20 20",
|
|
13
13
|
"aria-hidden": "true"
|
|
14
14
|
};
|
|
15
|
-
const _hoisted_5$
|
|
16
|
-
const _hoisted_6$
|
|
17
|
-
const _hoisted_7$
|
|
15
|
+
const _hoisted_5$l = ["d"];
|
|
16
|
+
const _hoisted_6$i = { class: "alert-text-container" };
|
|
17
|
+
const _hoisted_7$i = {
|
|
18
18
|
key: 0,
|
|
19
19
|
class: "alert-dismiss-container"
|
|
20
20
|
};
|
|
21
|
-
const _sfc_main$
|
|
21
|
+
const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
|
|
22
22
|
__name: "UiAlert",
|
|
23
23
|
props: {
|
|
24
24
|
variant: { default: "info" },
|
|
@@ -54,22 +54,22 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
|
54
54
|
return icons[props.variant];
|
|
55
55
|
});
|
|
56
56
|
return (_ctx, _cache) => {
|
|
57
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
57
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$v, [
|
|
58
58
|
vue.createElementVNode("div", {
|
|
59
59
|
class: vue.normalizeClass(alertClasses.value),
|
|
60
60
|
role: "alert"
|
|
61
61
|
}, [
|
|
62
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
63
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
64
|
-
(vue.openBlock(), vue.createElementBlock("svg", _hoisted_4$
|
|
62
|
+
vue.createElementVNode("div", _hoisted_2$s, [
|
|
63
|
+
vue.createElementVNode("div", _hoisted_3$s, [
|
|
64
|
+
(vue.openBlock(), vue.createElementBlock("svg", _hoisted_4$o, [
|
|
65
65
|
vue.createElementVNode("path", {
|
|
66
66
|
"fill-rule": "evenodd",
|
|
67
67
|
d: iconPath.value,
|
|
68
68
|
"clip-rule": "evenodd"
|
|
69
|
-
}, null, 8, _hoisted_5$
|
|
69
|
+
}, null, 8, _hoisted_5$l)
|
|
70
70
|
]))
|
|
71
71
|
]),
|
|
72
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
72
|
+
vue.createElementVNode("div", _hoisted_6$i, [
|
|
73
73
|
_ctx.title ? (vue.openBlock(), vue.createElementBlock("h3", {
|
|
74
74
|
key: 0,
|
|
75
75
|
class: vue.normalizeClass(titleClasses.value)
|
|
@@ -82,7 +82,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
|
82
82
|
], true)
|
|
83
83
|
], 2)
|
|
84
84
|
]),
|
|
85
|
-
_ctx.dismissible ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$
|
|
85
|
+
_ctx.dismissible ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$i, [
|
|
86
86
|
vue.createElementVNode("button", {
|
|
87
87
|
type: "button",
|
|
88
88
|
class: "alert-dismiss-button",
|
|
@@ -115,7 +115,7 @@ const _export_sfc = (sfc, props) => {
|
|
|
115
115
|
}
|
|
116
116
|
return target;
|
|
117
117
|
};
|
|
118
|
-
const StrandsUiAlert = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
118
|
+
const StrandsUiAlert = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-a396f50a"]]);
|
|
119
119
|
const mainTRC = 2.4;
|
|
120
120
|
const sRco = 0.2126729, sGco = 0.7151522, sBco = 0.072175;
|
|
121
121
|
const normBG = 0.56, normTXT = 0.57, revTXT = 0.62, revBG = 0.65;
|
|
@@ -270,16 +270,16 @@ const getColorValue = (color) => {
|
|
|
270
270
|
}
|
|
271
271
|
return colorMap[color] || `var(--color-${color}, ${color})`;
|
|
272
272
|
};
|
|
273
|
-
const _hoisted_1$
|
|
274
|
-
const _hoisted_2$
|
|
273
|
+
const _hoisted_1$u = ["type", "disabled"];
|
|
274
|
+
const _hoisted_2$r = {
|
|
275
275
|
key: 0,
|
|
276
276
|
class: "button-loading-content"
|
|
277
277
|
};
|
|
278
|
-
const _hoisted_3$
|
|
278
|
+
const _hoisted_3$r = {
|
|
279
279
|
key: 1,
|
|
280
280
|
class: "button-content"
|
|
281
281
|
};
|
|
282
|
-
const _sfc_main$
|
|
282
|
+
const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
283
283
|
__name: "UiButton",
|
|
284
284
|
props: {
|
|
285
285
|
variant: { default: "primary" },
|
|
@@ -400,7 +400,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
|
400
400
|
style: vue.normalizeStyle(buttonStyles.value),
|
|
401
401
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
|
|
402
402
|
}, [
|
|
403
|
-
_ctx.loading ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$
|
|
403
|
+
_ctx.loading ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$r, [
|
|
404
404
|
_cache[1] || (_cache[1] = vue.createElementVNode("svg", {
|
|
405
405
|
class: "button-loading-icon",
|
|
406
406
|
fill: "none",
|
|
@@ -421,25 +421,25 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
|
421
421
|
})
|
|
422
422
|
], -1)),
|
|
423
423
|
vue.createElementVNode("span", null, vue.toDisplayString(_ctx.loadingText || "Loading..."), 1)
|
|
424
|
-
])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
424
|
+
])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$r, [
|
|
425
425
|
vue.renderSlot(_ctx.$slots, "icon", {}, void 0, true),
|
|
426
426
|
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
427
427
|
]))
|
|
428
|
-
], 14, _hoisted_1$
|
|
428
|
+
], 14, _hoisted_1$u);
|
|
429
429
|
};
|
|
430
430
|
}
|
|
431
431
|
});
|
|
432
|
-
const StrandsUiButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
433
|
-
const _hoisted_1$
|
|
432
|
+
const StrandsUiButton = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-9eb74e0b"]]);
|
|
433
|
+
const _hoisted_1$t = {
|
|
434
434
|
key: 0,
|
|
435
435
|
class: "ui-card-header"
|
|
436
436
|
};
|
|
437
|
-
const _hoisted_2$
|
|
438
|
-
const _hoisted_3$
|
|
437
|
+
const _hoisted_2$q = { class: "ui-card-content" };
|
|
438
|
+
const _hoisted_3$q = {
|
|
439
439
|
key: 1,
|
|
440
440
|
class: "ui-card-footer"
|
|
441
441
|
};
|
|
442
|
-
const _sfc_main$
|
|
442
|
+
const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
443
443
|
__name: "UiCard",
|
|
444
444
|
props: {
|
|
445
445
|
variant: { default: "default" },
|
|
@@ -455,56 +455,56 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
|
|
|
455
455
|
`ui-card-shadow-${_ctx.shadow}`
|
|
456
456
|
]])
|
|
457
457
|
}, [
|
|
458
|
-
_ctx.$slots["header"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
458
|
+
_ctx.$slots["header"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$t, [
|
|
459
459
|
vue.renderSlot(_ctx.$slots, "header", {}, void 0, true)
|
|
460
460
|
])) : vue.createCommentVNode("", true),
|
|
461
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
461
|
+
vue.createElementVNode("div", _hoisted_2$q, [
|
|
462
462
|
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
463
463
|
]),
|
|
464
|
-
_ctx.$slots["footer"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
464
|
+
_ctx.$slots["footer"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$q, [
|
|
465
465
|
vue.renderSlot(_ctx.$slots, "footer", {}, void 0, true)
|
|
466
466
|
])) : vue.createCommentVNode("", true)
|
|
467
467
|
], 2);
|
|
468
468
|
};
|
|
469
469
|
}
|
|
470
470
|
});
|
|
471
|
-
const StrandsUiCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
472
|
-
const _hoisted_1$
|
|
473
|
-
const _hoisted_2$
|
|
474
|
-
const _hoisted_3$
|
|
475
|
-
const _hoisted_4$
|
|
471
|
+
const StrandsUiCard = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-c8b506ee"]]);
|
|
472
|
+
const _hoisted_1$s = { class: "accui-component-scope" };
|
|
473
|
+
const _hoisted_2$p = { class: "input-container" };
|
|
474
|
+
const _hoisted_3$p = ["for"];
|
|
475
|
+
const _hoisted_4$n = {
|
|
476
476
|
key: 0,
|
|
477
477
|
class: "input-required"
|
|
478
478
|
};
|
|
479
|
-
const _hoisted_5$
|
|
480
|
-
const _hoisted_6$
|
|
481
|
-
const _hoisted_7$
|
|
479
|
+
const _hoisted_5$k = { class: "input-wrapper" };
|
|
480
|
+
const _hoisted_6$h = ["id", "type", "value", "placeholder", "disabled", "required", "autocomplete", "name", "inputmode", "maxlength"];
|
|
481
|
+
const _hoisted_7$h = {
|
|
482
482
|
key: 0,
|
|
483
483
|
class: "input-toggle-icon",
|
|
484
484
|
fill: "none",
|
|
485
485
|
stroke: "currentColor",
|
|
486
486
|
viewBox: "0 0 24 24"
|
|
487
487
|
};
|
|
488
|
-
const _hoisted_8$
|
|
488
|
+
const _hoisted_8$h = {
|
|
489
489
|
key: 1,
|
|
490
490
|
class: "input-toggle-icon",
|
|
491
491
|
fill: "none",
|
|
492
492
|
stroke: "currentColor",
|
|
493
493
|
viewBox: "0 0 24 24"
|
|
494
494
|
};
|
|
495
|
-
const _hoisted_9$
|
|
495
|
+
const _hoisted_9$g = {
|
|
496
496
|
key: 1,
|
|
497
497
|
class: "input-icon-container"
|
|
498
498
|
};
|
|
499
|
-
const _hoisted_10$
|
|
499
|
+
const _hoisted_10$f = {
|
|
500
500
|
key: 1,
|
|
501
501
|
class: "input-error-text"
|
|
502
502
|
};
|
|
503
|
-
const _hoisted_11$
|
|
503
|
+
const _hoisted_11$f = {
|
|
504
504
|
key: 2,
|
|
505
505
|
class: "input-help-text"
|
|
506
506
|
};
|
|
507
|
-
const _sfc_main$
|
|
507
|
+
const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
|
|
508
508
|
__name: "UiInput",
|
|
509
509
|
props: {
|
|
510
510
|
modelValue: {},
|
|
@@ -563,17 +563,17 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
|
563
563
|
showPassword.value = !showPassword.value;
|
|
564
564
|
};
|
|
565
565
|
return (_ctx, _cache) => {
|
|
566
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
567
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
566
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [
|
|
567
|
+
vue.createElementVNode("div", _hoisted_2$p, [
|
|
568
568
|
_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
|
|
569
569
|
key: 0,
|
|
570
570
|
for: inputId.value,
|
|
571
571
|
class: "input-label"
|
|
572
572
|
}, [
|
|
573
573
|
vue.createTextVNode(vue.toDisplayString(_ctx.label) + " ", 1),
|
|
574
|
-
_ctx.required ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$
|
|
575
|
-
], 8, _hoisted_3$
|
|
576
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
574
|
+
_ctx.required ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$n, "*")) : vue.createCommentVNode("", true)
|
|
575
|
+
], 8, _hoisted_3$p)) : vue.createCommentVNode("", true),
|
|
576
|
+
vue.createElementVNode("div", _hoisted_5$k, [
|
|
577
577
|
vue.createElementVNode("input", {
|
|
578
578
|
id: inputId.value,
|
|
579
579
|
type: computedType.value,
|
|
@@ -590,21 +590,21 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
|
590
590
|
onBlur: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("blur", $event)),
|
|
591
591
|
onFocus: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("focus", $event)),
|
|
592
592
|
onKeydown: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("keydown", $event))
|
|
593
|
-
}, null, 42, _hoisted_6$
|
|
593
|
+
}, null, 42, _hoisted_6$h),
|
|
594
594
|
_ctx.type === "password" ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
595
595
|
key: 0,
|
|
596
596
|
type: "button",
|
|
597
597
|
class: "input-password-toggle",
|
|
598
598
|
onClick: togglePasswordVisibility
|
|
599
599
|
}, [
|
|
600
|
-
showPassword.value ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_7$
|
|
600
|
+
showPassword.value ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_7$h, _cache[3] || (_cache[3] = [
|
|
601
601
|
vue.createElementVNode("path", {
|
|
602
602
|
"stroke-linecap": "round",
|
|
603
603
|
"stroke-linejoin": "round",
|
|
604
604
|
"stroke-width": "2",
|
|
605
605
|
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"
|
|
606
606
|
}, null, -1)
|
|
607
|
-
]))) : (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$
|
|
607
|
+
]))) : (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$h, _cache[4] || (_cache[4] = [
|
|
608
608
|
vue.createElementVNode("path", {
|
|
609
609
|
"stroke-linecap": "round",
|
|
610
610
|
"stroke-linejoin": "round",
|
|
@@ -619,18 +619,18 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
|
619
619
|
}, null, -1)
|
|
620
620
|
])))
|
|
621
621
|
])) : vue.createCommentVNode("", true),
|
|
622
|
-
_ctx.$slots["icon"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$
|
|
622
|
+
_ctx.$slots["icon"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$g, [
|
|
623
623
|
vue.renderSlot(_ctx.$slots, "icon", {}, void 0, true)
|
|
624
624
|
])) : vue.createCommentVNode("", true)
|
|
625
625
|
]),
|
|
626
|
-
_ctx.error ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_10$
|
|
626
|
+
_ctx.error ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_10$f, vue.toDisplayString(typeof _ctx.error === "string" ? _ctx.error : _ctx.error.message), 1)) : _ctx.helpText ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_11$f, vue.toDisplayString(_ctx.helpText), 1)) : vue.createCommentVNode("", true)
|
|
627
627
|
])
|
|
628
628
|
]);
|
|
629
629
|
};
|
|
630
630
|
}
|
|
631
631
|
});
|
|
632
|
-
const StrandsUiInput = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
633
|
-
const _sfc_main$
|
|
632
|
+
const StrandsUiInput = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-1fccfe97"]]);
|
|
633
|
+
const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
634
634
|
__name: "UiLink",
|
|
635
635
|
props: {
|
|
636
636
|
href: {},
|
|
@@ -713,15 +713,15 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
|
|
|
713
713
|
};
|
|
714
714
|
}
|
|
715
715
|
});
|
|
716
|
-
const StrandsUiLink = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
717
|
-
const _hoisted_1$
|
|
718
|
-
const _hoisted_2$
|
|
719
|
-
const _hoisted_3$
|
|
716
|
+
const StrandsUiLink = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-878f97a6"]]);
|
|
717
|
+
const _hoisted_1$r = { class: "tabs-container" };
|
|
718
|
+
const _hoisted_2$o = { class: "tabs-wrapper" };
|
|
719
|
+
const _hoisted_3$o = {
|
|
720
720
|
class: "tabs-list",
|
|
721
721
|
role: "tablist"
|
|
722
722
|
};
|
|
723
|
-
const _hoisted_4$
|
|
724
|
-
const _sfc_main$
|
|
723
|
+
const _hoisted_4$m = ["aria-selected", "aria-controls", "id", "onClick"];
|
|
724
|
+
const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
|
|
725
725
|
__name: "UiTabs",
|
|
726
726
|
props: {
|
|
727
727
|
modelValue: {},
|
|
@@ -808,9 +808,9 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
|
|
|
808
808
|
}
|
|
809
809
|
});
|
|
810
810
|
return (_ctx, _cache) => {
|
|
811
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
812
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
813
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
811
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$r, [
|
|
812
|
+
vue.createElementVNode("div", _hoisted_2$o, [
|
|
813
|
+
vue.createElementVNode("div", _hoisted_3$o, [
|
|
814
814
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs, (tab, index) => {
|
|
815
815
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
816
816
|
key: tab.value,
|
|
@@ -823,7 +823,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
|
|
|
823
823
|
id: `tab-${tab.value}`,
|
|
824
824
|
role: "tab",
|
|
825
825
|
onClick: ($event) => handleTabClick(tab.value, index)
|
|
826
|
-
}, vue.toDisplayString(tab.label), 11, _hoisted_4$
|
|
826
|
+
}, vue.toDisplayString(tab.label), 11, _hoisted_4$m);
|
|
827
827
|
}), 128)),
|
|
828
828
|
vue.createElementVNode("div", {
|
|
829
829
|
class: "tab-underline",
|
|
@@ -835,13 +835,13 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
|
|
|
835
835
|
};
|
|
836
836
|
}
|
|
837
837
|
});
|
|
838
|
-
const StrandsUiTabs = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
838
|
+
const StrandsUiTabs = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-c14b9ef2"]]);
|
|
839
839
|
const logo = '<svg width="302" height="438" viewBox="0 0 302 438" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M71.5001 96C71.5001 96 132 106 137 61.5C142 17 117.5 3.50005 94.5001 1.50003C71.5001 -0.499996 16.0001 8.5 2.00014 72.5C-6.5 130.5 71.5003 227.5 165 218C258.5 208.5 280.758 148.5 283.5 121C286.242 93.5 277.5 61.5 238.5 61.5C153 61.5 150.501 185 170.5 235C190.5 285 199 279 213 314C227.001 349 217.296 411.458 183 427C129.456 450.65 92 426 78.5 407.5C65 389 68.0003 357 94.5001 344.5C121 332 212.41 393.5 301.5 361" stroke="black"/>\n</svg>\n';
|
|
840
|
-
const _hoisted_1$
|
|
841
|
-
const _hoisted_2$
|
|
842
|
-
const _hoisted_3$
|
|
843
|
-
const _hoisted_4$
|
|
844
|
-
const _sfc_main$
|
|
840
|
+
const _hoisted_1$q = { class: "loader-icon" };
|
|
841
|
+
const _hoisted_2$n = ["width", "height"];
|
|
842
|
+
const _hoisted_3$n = ["d", "stroke", "stroke-width"];
|
|
843
|
+
const _hoisted_4$l = ["d", "stroke", "stroke-width"];
|
|
844
|
+
const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
|
|
845
845
|
__name: "UiLoader",
|
|
846
846
|
props: {
|
|
847
847
|
size: { default: 80 },
|
|
@@ -864,7 +864,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
864
864
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
865
865
|
class: vue.normalizeClass(["loader-container", { "loader-centered": _ctx.centered }])
|
|
866
866
|
}, [
|
|
867
|
-
vue.createElementVNode("div", _hoisted_1$
|
|
867
|
+
vue.createElementVNode("div", _hoisted_1$q, [
|
|
868
868
|
(vue.openBlock(), vue.createElementBlock("svg", {
|
|
869
869
|
width: _ctx.size,
|
|
870
870
|
height: _ctx.size,
|
|
@@ -878,7 +878,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
878
878
|
"stroke-linecap": "round",
|
|
879
879
|
"stroke-linejoin": "round",
|
|
880
880
|
transform: "translate(81, 13) scale(1.0)"
|
|
881
|
-
}, null, 8, _hoisted_3$
|
|
881
|
+
}, null, 8, _hoisted_3$n),
|
|
882
882
|
vue.createElementVNode("path", {
|
|
883
883
|
d: vue.unref(d),
|
|
884
884
|
fill: "none",
|
|
@@ -888,8 +888,8 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
888
888
|
"stroke-linejoin": "round",
|
|
889
889
|
class: "loader-animated-path",
|
|
890
890
|
transform: "translate(81, 13) scale(1.0)"
|
|
891
|
-
}, null, 8, _hoisted_4$
|
|
892
|
-
], 8, _hoisted_2$
|
|
891
|
+
}, null, 8, _hoisted_4$l)
|
|
892
|
+
], 8, _hoisted_2$n))
|
|
893
893
|
]),
|
|
894
894
|
_ctx.text ? (vue.openBlock(), vue.createElementBlock("p", {
|
|
895
895
|
key: 0,
|
|
@@ -899,9 +899,9 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
899
899
|
};
|
|
900
900
|
}
|
|
901
901
|
});
|
|
902
|
-
const StrandsUiLoader = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
903
|
-
const _hoisted_1$
|
|
904
|
-
const _sfc_main$
|
|
902
|
+
const StrandsUiLoader = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-1e521ef1"]]);
|
|
903
|
+
const _hoisted_1$p = ["aria-pressed", "aria-labelledby"];
|
|
904
|
+
const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
905
905
|
__name: "UiToggle",
|
|
906
906
|
props: {
|
|
907
907
|
modelValue: { type: Boolean, default: false },
|
|
@@ -941,36 +941,36 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
|
941
941
|
vue.createElementVNode("span", {
|
|
942
942
|
class: vue.normalizeClass(["ui-toggle-thumb", thumbClasses.value])
|
|
943
943
|
}, null, 2)
|
|
944
|
-
], 10, _hoisted_1$
|
|
944
|
+
], 10, _hoisted_1$p);
|
|
945
945
|
};
|
|
946
946
|
}
|
|
947
947
|
});
|
|
948
|
-
const UiToggle = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
949
|
-
const _hoisted_1$
|
|
950
|
-
const _hoisted_2$
|
|
951
|
-
const _hoisted_3$
|
|
948
|
+
const UiToggle = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-b790ecf9"]]);
|
|
949
|
+
const _hoisted_1$o = { class: "accui-component-scope" };
|
|
950
|
+
const _hoisted_2$m = { class: "avatar-editor-simple" };
|
|
951
|
+
const _hoisted_3$m = {
|
|
952
952
|
key: 1,
|
|
953
953
|
class: "editor-container"
|
|
954
954
|
};
|
|
955
|
-
const _hoisted_4$
|
|
956
|
-
const _hoisted_5$
|
|
957
|
-
const _hoisted_6$
|
|
958
|
-
const _hoisted_7$
|
|
959
|
-
const _hoisted_8$
|
|
960
|
-
const _hoisted_9$
|
|
961
|
-
const _hoisted_10$
|
|
962
|
-
const _hoisted_11$
|
|
963
|
-
const _hoisted_12$
|
|
964
|
-
const _hoisted_13$
|
|
965
|
-
const _hoisted_14$
|
|
966
|
-
const _hoisted_15$
|
|
967
|
-
const _hoisted_16$
|
|
968
|
-
const _hoisted_17$
|
|
969
|
-
const _hoisted_18$
|
|
970
|
-
const _hoisted_19$
|
|
971
|
-
const _hoisted_20$
|
|
972
|
-
const _hoisted_21$
|
|
973
|
-
const _sfc_main$
|
|
955
|
+
const _hoisted_4$k = { class: "editor-main" };
|
|
956
|
+
const _hoisted_5$j = { class: "canvas-container" };
|
|
957
|
+
const _hoisted_6$g = ["width", "height"];
|
|
958
|
+
const _hoisted_7$g = { class: "crop-overlay" };
|
|
959
|
+
const _hoisted_8$g = { class: "crop-svg" };
|
|
960
|
+
const _hoisted_9$f = { id: "circle-mask" };
|
|
961
|
+
const _hoisted_10$e = ["width", "height"];
|
|
962
|
+
const _hoisted_11$e = ["cx", "cy", "r"];
|
|
963
|
+
const _hoisted_12$e = ["width", "height"];
|
|
964
|
+
const _hoisted_13$d = ["cx", "cy", "r"];
|
|
965
|
+
const _hoisted_14$d = { class: "controls" };
|
|
966
|
+
const _hoisted_15$c = { class: "zoom-control" };
|
|
967
|
+
const _hoisted_16$c = ["min", "max"];
|
|
968
|
+
const _hoisted_17$b = { class: "action-buttons" };
|
|
969
|
+
const _hoisted_18$b = ["disabled"];
|
|
970
|
+
const _hoisted_19$8 = { class: "preview-section" };
|
|
971
|
+
const _hoisted_20$7 = { class: "preview-container" };
|
|
972
|
+
const _hoisted_21$6 = ["width", "height"];
|
|
973
|
+
const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
974
974
|
__name: "UiAvatarEditor",
|
|
975
975
|
props: {
|
|
976
976
|
size: { default: 300 },
|
|
@@ -1253,8 +1253,8 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1253
1253
|
}
|
|
1254
1254
|
}, { immediate: true });
|
|
1255
1255
|
return (_ctx, _cache) => {
|
|
1256
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1257
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
1256
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
|
|
1257
|
+
vue.createElementVNode("div", _hoisted_2$m, [
|
|
1258
1258
|
!imageData.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
1259
1259
|
key: 0,
|
|
1260
1260
|
class: "upload-area",
|
|
@@ -1274,9 +1274,9 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1274
1274
|
class: "hidden-input",
|
|
1275
1275
|
onChange: handleFileSelect
|
|
1276
1276
|
}, null, 544)
|
|
1277
|
-
], 32)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
1278
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
1279
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
1277
|
+
], 32)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$m, [
|
|
1278
|
+
vue.createElementVNode("div", _hoisted_4$k, [
|
|
1279
|
+
vue.createElementVNode("div", _hoisted_5$j, [
|
|
1280
1280
|
vue.createElementVNode("canvas", {
|
|
1281
1281
|
ref_key: "canvas",
|
|
1282
1282
|
ref: canvas,
|
|
@@ -1285,24 +1285,24 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1285
1285
|
class: "canvas",
|
|
1286
1286
|
onMousedown: startDrag,
|
|
1287
1287
|
onWheel: handleWheel
|
|
1288
|
-
}, null, 40, _hoisted_6$
|
|
1289
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
1290
|
-
(vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$
|
|
1288
|
+
}, null, 40, _hoisted_6$g),
|
|
1289
|
+
vue.createElementVNode("div", _hoisted_7$g, [
|
|
1290
|
+
(vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$g, [
|
|
1291
1291
|
vue.createElementVNode("defs", null, [
|
|
1292
|
-
vue.createElementVNode("mask", _hoisted_9$
|
|
1292
|
+
vue.createElementVNode("mask", _hoisted_9$f, [
|
|
1293
1293
|
vue.createElementVNode("rect", {
|
|
1294
1294
|
x: "0",
|
|
1295
1295
|
y: "0",
|
|
1296
1296
|
width: canvasSize.value,
|
|
1297
1297
|
height: canvasSize.value,
|
|
1298
1298
|
fill: "white"
|
|
1299
|
-
}, null, 8, _hoisted_10$
|
|
1299
|
+
}, null, 8, _hoisted_10$e),
|
|
1300
1300
|
vue.createElementVNode("circle", {
|
|
1301
1301
|
cx: canvasSize.value / 2,
|
|
1302
1302
|
cy: canvasSize.value / 2,
|
|
1303
1303
|
r: cropRadius.value,
|
|
1304
1304
|
fill: "black"
|
|
1305
|
-
}, null, 8, _hoisted_11$
|
|
1305
|
+
}, null, 8, _hoisted_11$e)
|
|
1306
1306
|
])
|
|
1307
1307
|
]),
|
|
1308
1308
|
vue.createElementVNode("rect", {
|
|
@@ -1313,7 +1313,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1313
1313
|
fill: "black",
|
|
1314
1314
|
opacity: "0.5",
|
|
1315
1315
|
mask: "url(#circle-mask)"
|
|
1316
|
-
}, null, 8, _hoisted_12$
|
|
1316
|
+
}, null, 8, _hoisted_12$e),
|
|
1317
1317
|
vue.createElementVNode("circle", {
|
|
1318
1318
|
cx: canvasSize.value / 2,
|
|
1319
1319
|
cy: canvasSize.value / 2,
|
|
@@ -1322,12 +1322,12 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1322
1322
|
stroke: "white",
|
|
1323
1323
|
"stroke-width": "2",
|
|
1324
1324
|
class: "crop-circle"
|
|
1325
|
-
}, null, 8, _hoisted_13$
|
|
1325
|
+
}, null, 8, _hoisted_13$d)
|
|
1326
1326
|
]))
|
|
1327
1327
|
])
|
|
1328
1328
|
]),
|
|
1329
|
-
vue.createElementVNode("div", _hoisted_14$
|
|
1330
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
1329
|
+
vue.createElementVNode("div", _hoisted_14$d, [
|
|
1330
|
+
vue.createElementVNode("div", _hoisted_15$c, [
|
|
1331
1331
|
vue.createElementVNode("button", {
|
|
1332
1332
|
onClick: _cache[2] || (_cache[2] = ($event) => {
|
|
1333
1333
|
zoom.value = Math.max(minZoom.value, zoom.value - 0.1);
|
|
@@ -1361,7 +1361,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1361
1361
|
constrainImagePosition();
|
|
1362
1362
|
updateCanvas();
|
|
1363
1363
|
})
|
|
1364
|
-
}, null, 40, _hoisted_16$
|
|
1364
|
+
}, null, 40, _hoisted_16$c), [
|
|
1365
1365
|
[
|
|
1366
1366
|
vue.vModelText,
|
|
1367
1367
|
zoom.value,
|
|
@@ -1392,7 +1392,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1392
1392
|
], -1)
|
|
1393
1393
|
]))
|
|
1394
1394
|
]),
|
|
1395
|
-
vue.createElementVNode("div", _hoisted_17$
|
|
1395
|
+
vue.createElementVNode("div", _hoisted_17$b, [
|
|
1396
1396
|
vue.createElementVNode("button", {
|
|
1397
1397
|
onClick: resetImage,
|
|
1398
1398
|
class: "btn-secondary"
|
|
@@ -1405,20 +1405,20 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1405
1405
|
onClick: cropAndUpload,
|
|
1406
1406
|
disabled: _ctx.uploading,
|
|
1407
1407
|
class: "btn-primary"
|
|
1408
|
-
}, vue.toDisplayString(_ctx.uploading ? "Saving..." : "Save Avatar"), 9, _hoisted_18$
|
|
1408
|
+
}, vue.toDisplayString(_ctx.uploading ? "Saving..." : "Save Avatar"), 9, _hoisted_18$b)
|
|
1409
1409
|
])
|
|
1410
1410
|
])
|
|
1411
1411
|
]),
|
|
1412
|
-
vue.createElementVNode("div", _hoisted_19$
|
|
1412
|
+
vue.createElementVNode("div", _hoisted_19$8, [
|
|
1413
1413
|
_cache[9] || (_cache[9] = vue.createElementVNode("h3", { class: "preview-title" }, "Preview", -1)),
|
|
1414
|
-
vue.createElementVNode("div", _hoisted_20$
|
|
1414
|
+
vue.createElementVNode("div", _hoisted_20$7, [
|
|
1415
1415
|
vue.createElementVNode("canvas", {
|
|
1416
1416
|
ref_key: "previewCanvas",
|
|
1417
1417
|
ref: previewCanvas,
|
|
1418
1418
|
width: previewSize.value,
|
|
1419
1419
|
height: previewSize.value,
|
|
1420
1420
|
class: "preview-canvas"
|
|
1421
|
-
}, null, 8, _hoisted_21$
|
|
1421
|
+
}, null, 8, _hoisted_21$6)
|
|
1422
1422
|
]),
|
|
1423
1423
|
_cache[10] || (_cache[10] = vue.createElementVNode("p", { class: "preview-instructions" }, [
|
|
1424
1424
|
vue.createTextVNode(" Drag image to reposition"),
|
|
@@ -1691,22 +1691,22 @@ class SoundEffects {
|
|
|
1691
1691
|
}
|
|
1692
1692
|
}
|
|
1693
1693
|
const playLevelUp = (level, userSettings) => SoundEffects.playLevelUp(level, userSettings);
|
|
1694
|
-
const _hoisted_1$
|
|
1695
|
-
const _hoisted_2$
|
|
1696
|
-
const _hoisted_3$
|
|
1697
|
-
const _hoisted_4$
|
|
1698
|
-
const _hoisted_5$
|
|
1699
|
-
const _hoisted_6$
|
|
1700
|
-
const _hoisted_7$
|
|
1701
|
-
const _hoisted_8$
|
|
1702
|
-
const _hoisted_9$
|
|
1703
|
-
const _hoisted_10$
|
|
1694
|
+
const _hoisted_1$n = { class: "level-progress-container" };
|
|
1695
|
+
const _hoisted_2$l = ["width", "height", "viewBox"];
|
|
1696
|
+
const _hoisted_3$l = { key: 0 };
|
|
1697
|
+
const _hoisted_4$j = ["r"];
|
|
1698
|
+
const _hoisted_5$i = ["y"];
|
|
1699
|
+
const _hoisted_6$f = ["d", "stroke-width"];
|
|
1700
|
+
const _hoisted_7$f = ["d", "stroke", "stroke-width"];
|
|
1701
|
+
const _hoisted_8$f = ["d"];
|
|
1702
|
+
const _hoisted_9$e = ["d", "stroke", "stroke-width"];
|
|
1703
|
+
const _hoisted_10$d = {
|
|
1704
1704
|
"font-size": "30",
|
|
1705
1705
|
"font-weight": "bold",
|
|
1706
1706
|
fill: "var(--purple-100)",
|
|
1707
1707
|
style: { "font-family": "'Montserrat', sans-serif", "letter-spacing": "8px" }
|
|
1708
1708
|
};
|
|
1709
|
-
const _hoisted_11$
|
|
1709
|
+
const _hoisted_11$d = {
|
|
1710
1710
|
"xlink:href": "#labelTextArc",
|
|
1711
1711
|
startOffset: "50%",
|
|
1712
1712
|
"text-anchor": "middle",
|
|
@@ -1714,14 +1714,14 @@ const _hoisted_11$c = {
|
|
|
1714
1714
|
"dominant-baseline": "hanging",
|
|
1715
1715
|
"text-length": "100%"
|
|
1716
1716
|
};
|
|
1717
|
-
const _hoisted_12$
|
|
1717
|
+
const _hoisted_12$d = ["x1", "y1", "x2", "y2"];
|
|
1718
1718
|
const VIEW_BOX_SIZE = 400;
|
|
1719
1719
|
const ARC_PADDING = 18;
|
|
1720
1720
|
const INNER_GAP = 18;
|
|
1721
1721
|
const ANIMATION_DURATION = 600;
|
|
1722
1722
|
const LABEL_EXTRA_DEGREES = 12;
|
|
1723
1723
|
const LABEL_CHAR_DEGREES = 8;
|
|
1724
|
-
const _sfc_main$
|
|
1724
|
+
const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
1725
1725
|
__name: "UiLevelProgress",
|
|
1726
1726
|
props: {
|
|
1727
1727
|
value: {},
|
|
@@ -1872,21 +1872,21 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
1872
1872
|
prevLevel = newLevel;
|
|
1873
1873
|
});
|
|
1874
1874
|
return (_ctx, _cache) => {
|
|
1875
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1875
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
|
|
1876
1876
|
(vue.openBlock(), vue.createElementBlock("svg", {
|
|
1877
1877
|
width: vue.unref(size),
|
|
1878
1878
|
height: vue.unref(size),
|
|
1879
1879
|
viewBox: `0 0 ${vue.unref(viewBox)} ${vue.unref(viewBox)}`,
|
|
1880
1880
|
style: { "position": "relative" }
|
|
1881
1881
|
}, [
|
|
1882
|
-
levelUpActive.value ? (vue.openBlock(), vue.createElementBlock("g", _hoisted_3$
|
|
1882
|
+
levelUpActive.value ? (vue.openBlock(), vue.createElementBlock("g", _hoisted_3$l, [
|
|
1883
1883
|
vue.createElementVNode("circle", {
|
|
1884
1884
|
cx: center,
|
|
1885
1885
|
cy: center,
|
|
1886
1886
|
r: innerCircleRadius.value,
|
|
1887
1887
|
fill: "#a800ff",
|
|
1888
1888
|
opacity: "0.92"
|
|
1889
|
-
}, null, 8, _hoisted_4$
|
|
1889
|
+
}, null, 8, _hoisted_4$j),
|
|
1890
1890
|
vue.createElementVNode("text", {
|
|
1891
1891
|
x: center,
|
|
1892
1892
|
y: center + 15,
|
|
@@ -1895,7 +1895,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
1895
1895
|
"font-weight": "bold",
|
|
1896
1896
|
fill: "#fff",
|
|
1897
1897
|
style: { "font-family": "'Montserrat', sans-serif" }
|
|
1898
|
-
}, "Level Up", 8, _hoisted_5$
|
|
1898
|
+
}, "Level Up", 8, _hoisted_5$i)
|
|
1899
1899
|
])) : vue.createCommentVNode("", true),
|
|
1900
1900
|
animatedValue.value >= 0 && animatedValue.value < props.max ? (vue.openBlock(), vue.createElementBlock("path", {
|
|
1901
1901
|
key: 1,
|
|
@@ -1904,21 +1904,21 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
1904
1904
|
"stroke-width": thickness.value,
|
|
1905
1905
|
fill: "none",
|
|
1906
1906
|
"stroke-linecap": "round"
|
|
1907
|
-
}, null, 8, _hoisted_6$
|
|
1907
|
+
}, null, 8, _hoisted_6$f)) : vue.createCommentVNode("", true),
|
|
1908
1908
|
vue.createElementVNode("path", {
|
|
1909
1909
|
d: staticArcPath.value,
|
|
1910
1910
|
stroke: staticArcGradient.value,
|
|
1911
1911
|
"stroke-width": labelThickness.value,
|
|
1912
1912
|
fill: "none",
|
|
1913
1913
|
"stroke-linecap": "round"
|
|
1914
|
-
}, null, 8, _hoisted_7$
|
|
1914
|
+
}, null, 8, _hoisted_7$f),
|
|
1915
1915
|
vue.createElementVNode("path", {
|
|
1916
1916
|
id: "labelTextArc",
|
|
1917
1917
|
d: labelTextArcPath.value,
|
|
1918
1918
|
stroke: "transparent",
|
|
1919
1919
|
fill: "none",
|
|
1920
1920
|
transform: "scale(-1, 1) translate(-400, 0)"
|
|
1921
|
-
}, null, 8, _hoisted_8$
|
|
1921
|
+
}, null, 8, _hoisted_8$f),
|
|
1922
1922
|
animatedValue.value > 0 && animatedValue.value < props.max ? (vue.openBlock(), vue.createElementBlock("path", {
|
|
1923
1923
|
key: 2,
|
|
1924
1924
|
d: progressArcPath.value,
|
|
@@ -1926,9 +1926,9 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
1926
1926
|
"stroke-width": thickness.value,
|
|
1927
1927
|
fill: "none",
|
|
1928
1928
|
"stroke-linecap": "round"
|
|
1929
|
-
}, null, 8, _hoisted_9$
|
|
1930
|
-
vue.createElementVNode("text", _hoisted_10$
|
|
1931
|
-
vue.createElementVNode("textPath", _hoisted_11$
|
|
1929
|
+
}, null, 8, _hoisted_9$e)) : vue.createCommentVNode("", true),
|
|
1930
|
+
vue.createElementVNode("text", _hoisted_10$d, [
|
|
1931
|
+
vue.createElementVNode("textPath", _hoisted_11$d, vue.toDisplayString(_ctx.levelLabel), 1)
|
|
1932
1932
|
]),
|
|
1933
1933
|
vue.createElementVNode("defs", null, [
|
|
1934
1934
|
_cache[1] || (_cache[1] = vue.createElementVNode("linearGradient", {
|
|
@@ -1963,26 +1963,26 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
1963
1963
|
offset: "100%",
|
|
1964
1964
|
"stop-color": "var(--strands-400)"
|
|
1965
1965
|
}, null, -1)
|
|
1966
|
-
]), 8, _hoisted_12$
|
|
1966
|
+
]), 8, _hoisted_12$d)
|
|
1967
1967
|
])
|
|
1968
|
-
], 8, _hoisted_2$
|
|
1968
|
+
], 8, _hoisted_2$l))
|
|
1969
1969
|
]);
|
|
1970
1970
|
};
|
|
1971
1971
|
}
|
|
1972
1972
|
});
|
|
1973
|
-
const StrandsUiLevelProgress = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1974
|
-
const _hoisted_1$
|
|
1975
|
-
const _hoisted_2$
|
|
1976
|
-
const _hoisted_3$
|
|
1973
|
+
const StrandsUiLevelProgress = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-09b7355c"]]);
|
|
1974
|
+
const _hoisted_1$m = { class: "accui-component-scope" };
|
|
1975
|
+
const _hoisted_2$k = { class: "modal-card" };
|
|
1976
|
+
const _hoisted_3$k = {
|
|
1977
1977
|
key: 0,
|
|
1978
1978
|
class: "modal-header"
|
|
1979
1979
|
};
|
|
1980
|
-
const _hoisted_4$
|
|
1981
|
-
const _hoisted_5$
|
|
1980
|
+
const _hoisted_4$i = { class: "modal-content" };
|
|
1981
|
+
const _hoisted_5$h = {
|
|
1982
1982
|
key: 1,
|
|
1983
1983
|
class: "modal-footer"
|
|
1984
1984
|
};
|
|
1985
|
-
const _sfc_main$
|
|
1985
|
+
const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
1986
1986
|
__name: "UiModal",
|
|
1987
1987
|
props: {
|
|
1988
1988
|
open: { type: Boolean, default: false },
|
|
@@ -1999,7 +1999,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
1999
1999
|
}
|
|
2000
2000
|
};
|
|
2001
2001
|
return (_ctx, _cache) => {
|
|
2002
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
2002
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
|
|
2003
2003
|
(vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
|
|
2004
2004
|
_ctx.open ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
2005
2005
|
key: 0,
|
|
@@ -2011,14 +2011,14 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
2011
2011
|
onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
|
|
2012
2012
|
}, ["stop"]))
|
|
2013
2013
|
}, [
|
|
2014
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
2015
|
-
_ctx.$slots["header"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
2014
|
+
vue.createElementVNode("div", _hoisted_2$k, [
|
|
2015
|
+
_ctx.$slots["header"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$k, [
|
|
2016
2016
|
vue.renderSlot(_ctx.$slots, "header", {}, void 0, true)
|
|
2017
2017
|
])) : vue.createCommentVNode("", true),
|
|
2018
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
2018
|
+
vue.createElementVNode("div", _hoisted_4$i, [
|
|
2019
2019
|
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
2020
2020
|
]),
|
|
2021
|
-
_ctx.$slots["footer"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$
|
|
2021
|
+
_ctx.$slots["footer"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$h, [
|
|
2022
2022
|
vue.renderSlot(_ctx.$slots, "footer", {}, void 0, true)
|
|
2023
2023
|
])) : vue.createCommentVNode("", true)
|
|
2024
2024
|
])
|
|
@@ -2029,8 +2029,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
2029
2029
|
};
|
|
2030
2030
|
}
|
|
2031
2031
|
});
|
|
2032
|
-
const StrandsUiModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2033
|
-
const _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABVgAAAHgCAYAAABQLAbaAAAEt2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNDgwIgogICB0aWZmOkltYWdlV2lkdGg9IjEzNjgiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLzEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIxMzY4IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iNDgwIgogICBleGlmOkNvbG9yU3BhY2U9IjEiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOk1vZGlmeURhdGU9IjIw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rYdCFBEBYXQHawB8r7uGOCph1YlP9yoKH2PS1V0EEREREREREZlFW8B6BZN5xLgbTELOcR5rdATEp7prOIeru4A4qiAxjZh0rwYAxwMQERERERER0Xu0BawAUIWc0vn4nZIQ66UY7G7fDSSk0R2sYMDasnr36ozuOpqVhNzQXQMRERERERERmUdrwFpfbrv4/7N3P8lNJGvb/79Z5l/E+/ziyBEHA6MuVoBYAWIF2JPGGiFWgFmBzQqAFWBGkj2xWYHFClCvgOoRjdwd0om3z/NiZFX+BlUC4baxZEvKzKrrE8HpPnRj3w1SqerKO+90WcMlVQaYPR16tRCx6wJ+5gomcV1DaAaYN65rmEI/77oXEREREREREfmB04AV4CrXt4C+6zouoTrg6KXrIkogdl3Az1jSkF/DC9el2QBqjsuYhrpXRURERERERORUzgPWZdb6KYR84BVAQ4delduxRgRMrEczNpigFiUizDvXNYiIiIiIiIiIn4zrAka6tA4Iq6PtH1J4fpv1V67rKJpPNOMlzEfXdfzMCuvevJd816X1Aai6rmMK/RXWl10XISIiIiIiIiJ+ct7BOmKwoXexEsHLQ5o113UUzRXPxwMQ9oiLhco7vUMKV0HjAURERERERETkJ7wJWPMDZEI+8AoAi9nr0Yxd1yELlbguIASHNGsWu+W6jmkZ7FvXNYiIiIiIiIiIv7wJWKEQB14BVAaYA4Wss2OIKq5rOEfor9m569GMLeaN6zouIMkXf0RERERERERETuVVwLrMWj/CPHVdxwzECllnJyX1OmBN4T+ua/BZj73KAHOA/6MeThH+6BIRERERERERmS+vAlaAf/N4H2i7rmMG8pB1z+twMAQG4/XvYQQ91zX47JivbwgyXIVhMa5FIiIiIiIiIjJH3gWsAEPsU4qx7ToecKSQ9ZJSrNe/fxb7u+safHXIzkuLXXVdxwVt36GeuC5CRERERERERPzmZcB6h3qSQlG25lYVskoZHbKzabEbruu4qKHGA4iIiIiIiIjIBLwMWAFus/6K4mzPVch6Cb6PCLCYInRbz1Qerm65ruMS2upeFREREREREZFJeBuwQqFGBYBC1guzno8IiLBFeY3ORAHCVYy6V0VERERERERkQl4HrAUbFQAKWaXgihCuAu2b1NuuixARERERERGRMHgdsEI2KsBg9l3XMUPV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";
|
|
2032
|
+
const StrandsUiModal = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-8a7cf999"]]);
|
|
2034
2033
|
const slotHasContent = (slotName, slots) => {
|
|
2035
2034
|
const slot = slots[slotName];
|
|
2036
2035
|
if (!slot) return false;
|
|
@@ -2040,12 +2039,14 @@ const slotHasContent = (slotName, slots) => {
|
|
|
2040
2039
|
}
|
|
2041
2040
|
return Array.isArray(slot) && slot.length > 0;
|
|
2042
2041
|
};
|
|
2043
|
-
const _hoisted_1$k = { class: "accui-component-scope" };
|
|
2044
|
-
const
|
|
2042
|
+
const securedByLogo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABVgAAAHgCAYAAABQLAbaAAAEt2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNDgwIgogICB0aWZmOkltYWdlV2lkdGg9IjEzNjgiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLzEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIxMzY4IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iNDgwIgogICBleGlmOkNvbG9yU3BhY2U9IjEiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOk1vZGlmeURhdGU9IjIw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rYdCFBEBYXQHawB8r7uGOCph1YlP9yoKH2PS1V0EEREREREREZlFW8B6BZN5xLgbTELOcR5rdATEp7prOIeru4A4qiAxjZh0rwYAxwMQERERERER0Xu0BawAUIWc0vn4nZIQ66UY7G7fDSSk0R2sYMDasnr36ozuOpqVhNzQXQMRERERERERmUdrwFpfbrv4/7N3P8lNJGvb/79Z5l/E+/ziyBEHA6MuVoBYAWIF2JPGGiFWgFmBzQqAFWBGkj2xWYHFClCvgOoRjdwd0om3z/NiZFX+BlUC4baxZEvKzKrrE8HpPnRj3w1SqerKO+90WcMlVQaYPR16tRCx6wJ+5gomcV1DaAaYN65rmEI/77oXEREREREREfmB04AV4CrXt4C+6zouoTrg6KXrIkogdl3Az1jSkF/DC9el2QBqjsuYhrpXRURERERERORUzgPWZdb6KYR84BVAQ4delduxRgRMrEczNpigFiUizDvXNYiIiIiIiIiIn4zrAka6tA4Iq6PtH1J4fpv1V67rKJpPNOMlzEfXdfzMCuvevJd816X1Aai6rmMK/RXWl10XISIiIiIiIiJ+ct7BOmKwoXexEsHLQ5o113UUzRXPxwMQ9oiLhco7vUMKV0HjAURERERERETkJ7wJWPMDZEI+8AoAi9nr0Yxd1yELlbguIASHNGsWu+W6jmkZ7FvXNYiIiIiIiIiIv7wJWKEQB14BVAaYA4Wss2OIKq5rOEfor9m569GMLeaN6zouIMkXf0RERERERERETuVVwLrMWj/CPHVdxwzECllnJyX1OmBN4T+ua/BZj73KAHOA/6MeThH+6BIRERERERERmS+vAlaAf/N4H2i7rmMG8pB1z+twMAQG4/XvYQQ91zX47JivbwgyXIVhMa5FIiIiIiIiIjJH3gWsAEPsU4qx7ToecKSQ9ZJSrNe/fxb7u+safHXIzkuLXXVdxwVt36GeuC5CRERERERERPzmZcB6h3qSQlG25lYVskoZHbKzabEbruu4qKHGA4iIiIiIiIjIBLwMWAFus/6K4mzPVch6Cb6PCLCYInRbz1Qerm65ruMS2upeFREREREREZFJeBuwQqFGBYBC1guzno8IiLBFeY3ORAHCVYy6V0VERERERERkQl4HrAUbFQAKWaXgihCuAu2b1NuuixARERERERGRMHgdsEI2KsBg9l3XMUPV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";
|
|
2043
|
+
const _hoisted_1$l = { class: "accui-component-scope" };
|
|
2044
|
+
const _hoisted_2$j = {
|
|
2045
2045
|
key: 0,
|
|
2046
2046
|
class: "secured-logo"
|
|
2047
2047
|
};
|
|
2048
|
-
const
|
|
2048
|
+
const _hoisted_3$j = ["src"];
|
|
2049
|
+
const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
2049
2050
|
__name: "StrandsSecuredFooter",
|
|
2050
2051
|
props: {
|
|
2051
2052
|
config: {}
|
|
@@ -2060,24 +2061,24 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
2060
2061
|
const slots = vue.useSlots();
|
|
2061
2062
|
const hasDefaultSlot = vue.computed(() => slotHasContent("default", slots));
|
|
2062
2063
|
return (_ctx, _cache) => {
|
|
2063
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
2064
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
|
|
2064
2065
|
shouldShowSecuredBy.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
2065
2066
|
key: 0,
|
|
2066
2067
|
class: vue.normalizeClass(["secured-footer", { "secured-footer-with-content": hasDefaultSlot.value, "secured-footer-centered": !hasDefaultSlot.value }])
|
|
2067
2068
|
}, [
|
|
2068
2069
|
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true),
|
|
2069
|
-
shouldShowSecuredBy.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
2070
|
+
shouldShowSecuredBy.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$j, [
|
|
2070
2071
|
vue.createElementVNode("img", {
|
|
2071
|
-
src:
|
|
2072
|
+
src: vue.unref(securedByLogo),
|
|
2072
2073
|
class: "secured-logo-image"
|
|
2073
|
-
}, null,
|
|
2074
|
-
]))
|
|
2074
|
+
}, null, 8, _hoisted_3$j)
|
|
2075
|
+
])) : vue.createCommentVNode("", true)
|
|
2075
2076
|
], 2)) : vue.createCommentVNode("", true)
|
|
2076
2077
|
]);
|
|
2077
2078
|
};
|
|
2078
2079
|
}
|
|
2079
2080
|
});
|
|
2080
|
-
const StrandsSecuredFooter = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2081
|
+
const StrandsSecuredFooter = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-6dfcdb8c"]]);
|
|
2081
2082
|
const mfaDevices = vue.ref([]);
|
|
2082
2083
|
const mfaEnabled = vue.ref(false);
|
|
2083
2084
|
const loading = vue.ref(false);
|
|
@@ -2286,83 +2287,83 @@ function useStrandsMfa() {
|
|
|
2286
2287
|
formatLastUsed
|
|
2287
2288
|
};
|
|
2288
2289
|
}
|
|
2289
|
-
const _hoisted_1$
|
|
2290
|
-
const _hoisted_2$
|
|
2291
|
-
const _hoisted_3$
|
|
2290
|
+
const _hoisted_1$k = { class: "accui-component-scope" };
|
|
2291
|
+
const _hoisted_2$i = { class: "mfa-verification-content" };
|
|
2292
|
+
const _hoisted_3$i = {
|
|
2292
2293
|
key: 0,
|
|
2293
2294
|
class: "mfa-verification-loading"
|
|
2294
2295
|
};
|
|
2295
|
-
const _hoisted_4$
|
|
2296
|
-
const _hoisted_5$
|
|
2296
|
+
const _hoisted_4$h = { class: "mfa-verification-loading-text" };
|
|
2297
|
+
const _hoisted_5$g = {
|
|
2297
2298
|
key: 1,
|
|
2298
2299
|
class: "mfa-verification-form"
|
|
2299
2300
|
};
|
|
2300
|
-
const _hoisted_6$
|
|
2301
|
+
const _hoisted_6$e = {
|
|
2301
2302
|
key: 0,
|
|
2302
2303
|
class: "mfa-methods-section"
|
|
2303
2304
|
};
|
|
2304
|
-
const _hoisted_7$
|
|
2305
|
-
const _hoisted_8$
|
|
2306
|
-
const _hoisted_9$
|
|
2307
|
-
const _hoisted_10$
|
|
2308
|
-
const _hoisted_11$
|
|
2309
|
-
const _hoisted_12$
|
|
2305
|
+
const _hoisted_7$e = { class: "mfa-methods-grid" };
|
|
2306
|
+
const _hoisted_8$e = ["onClick"];
|
|
2307
|
+
const _hoisted_9$d = { class: "mfa-method-info" };
|
|
2308
|
+
const _hoisted_10$c = { class: "mfa-method-name" };
|
|
2309
|
+
const _hoisted_11$c = { class: "mfa-method-type" };
|
|
2310
|
+
const _hoisted_12$c = {
|
|
2310
2311
|
key: 0,
|
|
2311
2312
|
class: "mfa-method-check"
|
|
2312
2313
|
};
|
|
2313
|
-
const _hoisted_13$
|
|
2314
|
+
const _hoisted_13$c = {
|
|
2314
2315
|
key: 1,
|
|
2315
2316
|
class: "mfa-single-method"
|
|
2316
2317
|
};
|
|
2317
|
-
const _hoisted_14$
|
|
2318
|
-
const _hoisted_15$
|
|
2319
|
-
const _hoisted_16$
|
|
2320
|
-
const _hoisted_17$
|
|
2318
|
+
const _hoisted_14$c = { class: "mfa-single-method-content" };
|
|
2319
|
+
const _hoisted_15$b = { class: "mfa-single-method-name" };
|
|
2320
|
+
const _hoisted_16$b = { class: "mfa-single-method-type" };
|
|
2321
|
+
const _hoisted_17$a = {
|
|
2321
2322
|
key: 2,
|
|
2322
2323
|
class: "mfa-email-request"
|
|
2323
2324
|
};
|
|
2324
|
-
const _hoisted_18$
|
|
2325
|
+
const _hoisted_18$a = {
|
|
2325
2326
|
key: 3,
|
|
2326
2327
|
class: "mfa-hardware-section"
|
|
2327
2328
|
};
|
|
2328
|
-
const _hoisted_19$
|
|
2329
|
-
const _hoisted_20$
|
|
2330
|
-
const _hoisted_21$
|
|
2331
|
-
const _hoisted_22$
|
|
2332
|
-
const _hoisted_23$
|
|
2333
|
-
const _hoisted_24$
|
|
2334
|
-
const _hoisted_25$
|
|
2335
|
-
const _hoisted_26$
|
|
2329
|
+
const _hoisted_19$7 = { class: "mfa-hardware-prompt" };
|
|
2330
|
+
const _hoisted_20$6 = { class: "mfa-hardware-prompt-content" };
|
|
2331
|
+
const _hoisted_21$5 = { class: "mfa-hardware-prompt-icon" };
|
|
2332
|
+
const _hoisted_22$5 = { class: "mfa-hardware-prompt-text" };
|
|
2333
|
+
const _hoisted_23$4 = { class: "mfa-hardware-prompt-title" };
|
|
2334
|
+
const _hoisted_24$4 = { class: "mfa-hardware-prompt-description" };
|
|
2335
|
+
const _hoisted_25$3 = { class: "mfa-backup-option" };
|
|
2336
|
+
const _hoisted_26$3 = {
|
|
2336
2337
|
key: 0,
|
|
2337
2338
|
class: "mfa-backup-input-section"
|
|
2338
2339
|
};
|
|
2339
|
-
const _hoisted_27$
|
|
2340
|
-
const _hoisted_28$
|
|
2340
|
+
const _hoisted_27$3 = { class: "mfa-backup-warning" };
|
|
2341
|
+
const _hoisted_28$3 = {
|
|
2341
2342
|
key: 4,
|
|
2342
2343
|
class: "mfa-code-section"
|
|
2343
2344
|
};
|
|
2344
|
-
const _hoisted_29$
|
|
2345
|
+
const _hoisted_29$2 = {
|
|
2345
2346
|
key: 0,
|
|
2346
2347
|
class: "mfa-email-confirmation"
|
|
2347
2348
|
};
|
|
2348
|
-
const _hoisted_30$
|
|
2349
|
-
const _hoisted_31$
|
|
2349
|
+
const _hoisted_30$2 = { class: "mfa-email-confirmation-content" };
|
|
2350
|
+
const _hoisted_31$2 = {
|
|
2350
2351
|
key: 1,
|
|
2351
2352
|
class: "mfa-totp-help"
|
|
2352
2353
|
};
|
|
2353
|
-
const _hoisted_32$
|
|
2354
|
-
const _hoisted_33$
|
|
2354
|
+
const _hoisted_32$2 = { class: "mfa-device-name-text" };
|
|
2355
|
+
const _hoisted_33$2 = {
|
|
2355
2356
|
key: 2,
|
|
2356
2357
|
class: "mfa-email-resend"
|
|
2357
2358
|
};
|
|
2358
|
-
const _hoisted_34$
|
|
2359
|
-
const _hoisted_35$
|
|
2359
|
+
const _hoisted_34$2 = { class: "mfa-backup-option" };
|
|
2360
|
+
const _hoisted_35$2 = {
|
|
2360
2361
|
key: 3,
|
|
2361
2362
|
class: "mfa-backup-input-section"
|
|
2362
2363
|
};
|
|
2363
|
-
const _hoisted_36$
|
|
2364
|
-
const _hoisted_37$
|
|
2365
|
-
const _sfc_main$
|
|
2364
|
+
const _hoisted_36$2 = { class: "mfa-backup-warning" };
|
|
2365
|
+
const _hoisted_37$2 = { class: "mfa-verification-footer" };
|
|
2366
|
+
const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
2366
2367
|
__name: "StrandsMfaVerification",
|
|
2367
2368
|
props: {
|
|
2368
2369
|
show: { type: Boolean },
|
|
@@ -2639,7 +2640,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2639
2640
|
}
|
|
2640
2641
|
};
|
|
2641
2642
|
return (_ctx, _cache) => {
|
|
2642
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
2643
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
|
|
2643
2644
|
vue.createVNode(StrandsUiModal, {
|
|
2644
2645
|
open: _ctx.show,
|
|
2645
2646
|
"card-class": "mfa-verification-modal",
|
|
@@ -2652,7 +2653,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2652
2653
|
], -1)
|
|
2653
2654
|
])),
|
|
2654
2655
|
footer: vue.withCtx(() => [
|
|
2655
|
-
vue.createElementVNode("div", _hoisted_37$
|
|
2656
|
+
vue.createElementVNode("div", _hoisted_37$2, [
|
|
2656
2657
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
2657
2658
|
variant: "secondary",
|
|
2658
2659
|
onClick: closeModal,
|
|
@@ -2679,14 +2680,14 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2679
2680
|
])
|
|
2680
2681
|
]),
|
|
2681
2682
|
default: vue.withCtx(() => [
|
|
2682
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
2683
|
-
loading2.value && !emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
2683
|
+
vue.createElementVNode("div", _hoisted_2$i, [
|
|
2684
|
+
loading2.value && !emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$i, [
|
|
2684
2685
|
vue.createVNode(vue.unref(StrandsUiLoader), { size: 24 }),
|
|
2685
|
-
vue.createElementVNode("span", _hoisted_4$
|
|
2686
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$
|
|
2687
|
-
availableMethods.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$
|
|
2686
|
+
vue.createElementVNode("span", _hoisted_4$h, vue.toDisplayString(vue.unref(isSendingMfaEmail) || vue.unref(isVerifyingMfa) ? vue.unref(authLoadingMessage) : "Loading..."), 1)
|
|
2687
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$g, [
|
|
2688
|
+
availableMethods.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$e, [
|
|
2688
2689
|
_cache[7] || (_cache[7] = vue.createElementVNode("p", { class: "mfa-methods-title" }, "Choose verification method:", -1)),
|
|
2689
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
2690
|
+
vue.createElementVNode("div", _hoisted_7$e, [
|
|
2690
2691
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(availableMethods.value, (method) => {
|
|
2691
2692
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
2692
2693
|
key: method.id,
|
|
@@ -2700,29 +2701,29 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2700
2701
|
size: 20,
|
|
2701
2702
|
class: "mfa-method-icon"
|
|
2702
2703
|
})),
|
|
2703
|
-
vue.createElementVNode("div", _hoisted_9$
|
|
2704
|
-
vue.createElementVNode("p", _hoisted_10$
|
|
2705
|
-
vue.createElementVNode("p", _hoisted_11$
|
|
2704
|
+
vue.createElementVNode("div", _hoisted_9$d, [
|
|
2705
|
+
vue.createElementVNode("p", _hoisted_10$c, vue.toDisplayString(method.device_name), 1),
|
|
2706
|
+
vue.createElementVNode("p", _hoisted_11$c, vue.toDisplayString(vue.unref(getDeviceTypeName)(method.device_type)), 1)
|
|
2706
2707
|
]),
|
|
2707
|
-
selectedMethod.value?.id === method.id ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$
|
|
2708
|
+
selectedMethod.value?.id === method.id ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$c, [
|
|
2708
2709
|
vue.createVNode(IconCheckCircle, { size: 20 })
|
|
2709
2710
|
])) : vue.createCommentVNode("", true)
|
|
2710
|
-
], 10, _hoisted_8$
|
|
2711
|
+
], 10, _hoisted_8$e);
|
|
2711
2712
|
}), 128))
|
|
2712
2713
|
])
|
|
2713
|
-
])) : selectedMethod.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$
|
|
2714
|
-
vue.createElementVNode("div", _hoisted_14$
|
|
2714
|
+
])) : selectedMethod.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$c, [
|
|
2715
|
+
vue.createElementVNode("div", _hoisted_14$c, [
|
|
2715
2716
|
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getDeviceIconComponent(selectedMethod.value.device_type)), {
|
|
2716
2717
|
size: 24,
|
|
2717
2718
|
class: "mfa-single-method-icon"
|
|
2718
2719
|
})),
|
|
2719
2720
|
vue.createElementVNode("div", null, [
|
|
2720
|
-
vue.createElementVNode("h3", _hoisted_15$
|
|
2721
|
-
vue.createElementVNode("p", _hoisted_16$
|
|
2721
|
+
vue.createElementVNode("h3", _hoisted_15$b, vue.toDisplayString(selectedMethod.value.device_name), 1),
|
|
2722
|
+
vue.createElementVNode("p", _hoisted_16$b, vue.toDisplayString(vue.unref(getDeviceTypeName)(selectedMethod.value.device_type)), 1)
|
|
2722
2723
|
])
|
|
2723
2724
|
])
|
|
2724
2725
|
])) : vue.createCommentVNode("", true),
|
|
2725
|
-
selectedMethod.value?.device_type === "email" && !emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$
|
|
2726
|
+
selectedMethod.value?.device_type === "email" && !emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$a, [
|
|
2726
2727
|
_cache[9] || (_cache[9] = vue.createElementVNode("p", { class: "mfa-email-request-text" }, "Click below to receive your verification code", -1)),
|
|
2727
2728
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
2728
2729
|
variant: "primary",
|
|
@@ -2737,18 +2738,18 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2737
2738
|
__: [8]
|
|
2738
2739
|
}, 8, ["disabled", "loading"])
|
|
2739
2740
|
])) : vue.createCommentVNode("", true),
|
|
2740
|
-
selectedMethod.value?.device_type === "hardware" || selectedMethod.value?.device_type === "passkey" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$
|
|
2741
|
-
vue.createElementVNode("div", _hoisted_19$
|
|
2742
|
-
vue.createElementVNode("div", _hoisted_20$
|
|
2743
|
-
vue.createElementVNode("div", _hoisted_21$
|
|
2741
|
+
selectedMethod.value?.device_type === "hardware" || selectedMethod.value?.device_type === "passkey" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$a, [
|
|
2742
|
+
vue.createElementVNode("div", _hoisted_19$7, [
|
|
2743
|
+
vue.createElementVNode("div", _hoisted_20$6, [
|
|
2744
|
+
vue.createElementVNode("div", _hoisted_21$5, [
|
|
2744
2745
|
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(selectedMethod.value.device_type === "passkey" ? IconShield : IconKeyRound), {
|
|
2745
2746
|
size: 24,
|
|
2746
2747
|
class: "mfa-hardware-icon-svg"
|
|
2747
2748
|
}))
|
|
2748
2749
|
]),
|
|
2749
|
-
vue.createElementVNode("div", _hoisted_22$
|
|
2750
|
-
vue.createElementVNode("h4", _hoisted_23$
|
|
2751
|
-
vue.createElementVNode("p", _hoisted_24$
|
|
2750
|
+
vue.createElementVNode("div", _hoisted_22$5, [
|
|
2751
|
+
vue.createElementVNode("h4", _hoisted_23$4, vue.toDisplayString(selectedMethod.value.device_type === "passkey" ? "Use your passkey" : "Touch your hardware key"), 1),
|
|
2752
|
+
vue.createElementVNode("p", _hoisted_24$4, vue.toDisplayString(selectedMethod.value.device_type === "passkey" ? "Use biometrics, PIN, or device security to authenticate" : "Insert and touch your hardware key to authenticate"), 1)
|
|
2752
2753
|
])
|
|
2753
2754
|
])
|
|
2754
2755
|
]),
|
|
@@ -2763,7 +2764,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2763
2764
|
]),
|
|
2764
2765
|
_: 1
|
|
2765
2766
|
}, 8, ["disabled", "loading"]),
|
|
2766
|
-
vue.createElementVNode("div", _hoisted_25$
|
|
2767
|
+
vue.createElementVNode("div", _hoisted_25$3, [
|
|
2767
2768
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
2768
2769
|
variant: "ghost",
|
|
2769
2770
|
size: "sm",
|
|
@@ -2780,8 +2781,8 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2780
2781
|
_: 1
|
|
2781
2782
|
})
|
|
2782
2783
|
]),
|
|
2783
|
-
showBackupCodeInput.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_26$
|
|
2784
|
-
vue.createElementVNode("div", _hoisted_27$
|
|
2784
|
+
showBackupCodeInput.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_26$3, [
|
|
2785
|
+
vue.createElementVNode("div", _hoisted_27$3, [
|
|
2785
2786
|
vue.createVNode(IconAlertTriangle, {
|
|
2786
2787
|
size: 20,
|
|
2787
2788
|
class: "mfa-backup-warning-icon"
|
|
@@ -2804,9 +2805,9 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2804
2805
|
}, null, 8, ["modelValue", "error", "disabled"])
|
|
2805
2806
|
])) : vue.createCommentVNode("", true)
|
|
2806
2807
|
])) : vue.createCommentVNode("", true),
|
|
2807
|
-
selectedMethod.value && selectedMethod.value.device_type !== "hardware" && selectedMethod.value.device_type !== "passkey" && (selectedMethod.value.device_type !== "email" || emailCodeSent.value) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_28$
|
|
2808
|
-
selectedMethod.value.device_type === "email" && emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_29$
|
|
2809
|
-
vue.createElementVNode("div", _hoisted_30$
|
|
2808
|
+
selectedMethod.value && selectedMethod.value.device_type !== "hardware" && selectedMethod.value.device_type !== "passkey" && (selectedMethod.value.device_type !== "email" || emailCodeSent.value) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_28$3, [
|
|
2809
|
+
selectedMethod.value.device_type === "email" && emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_29$2, [
|
|
2810
|
+
vue.createElementVNode("div", _hoisted_30$2, [
|
|
2810
2811
|
vue.createVNode(IconCheckCircle, {
|
|
2811
2812
|
size: 20,
|
|
2812
2813
|
class: "mfa-email-confirmation-icon"
|
|
@@ -2832,11 +2833,11 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2832
2833
|
autocomplete: selectedMethod.value.device_type === "totp" ? "one-time-code" : "one-time-code",
|
|
2833
2834
|
inputmode: "numeric"
|
|
2834
2835
|
}, null, 8, ["modelValue", "placeholder", "error", "disabled", "name", "autocomplete"]),
|
|
2835
|
-
selectedMethod.value.device_type === "totp" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_31$
|
|
2836
|
+
selectedMethod.value.device_type === "totp" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_31$2, [
|
|
2836
2837
|
_cache[12] || (_cache[12] = vue.createTextVNode(" Open your authenticator app and enter the 6-digit code for ", -1)),
|
|
2837
|
-
vue.createElementVNode("span", _hoisted_32$
|
|
2838
|
+
vue.createElementVNode("span", _hoisted_32$2, '"' + vue.toDisplayString(selectedMethod.value.device_name) + '"', 1)
|
|
2838
2839
|
])) : vue.createCommentVNode("", true),
|
|
2839
|
-
selectedMethod.value.device_type === "email" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_33$
|
|
2840
|
+
selectedMethod.value.device_type === "email" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_33$2, [
|
|
2840
2841
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
2841
2842
|
variant: "ghost",
|
|
2842
2843
|
size: "sm",
|
|
@@ -2850,7 +2851,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2850
2851
|
_: 1
|
|
2851
2852
|
}, 8, ["disabled"])
|
|
2852
2853
|
])) : vue.createCommentVNode("", true),
|
|
2853
|
-
vue.createElementVNode("div", _hoisted_34$
|
|
2854
|
+
vue.createElementVNode("div", _hoisted_34$2, [
|
|
2854
2855
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
2855
2856
|
variant: "ghost",
|
|
2856
2857
|
size: "sm",
|
|
@@ -2867,8 +2868,8 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2867
2868
|
_: 1
|
|
2868
2869
|
})
|
|
2869
2870
|
]),
|
|
2870
|
-
showBackupCodeInput.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_35$
|
|
2871
|
-
vue.createElementVNode("div", _hoisted_36$
|
|
2871
|
+
showBackupCodeInput.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_35$2, [
|
|
2872
|
+
vue.createElementVNode("div", _hoisted_36$2, [
|
|
2872
2873
|
vue.createVNode(IconAlertTriangle, {
|
|
2873
2874
|
size: 20,
|
|
2874
2875
|
class: "mfa-backup-warning-icon"
|
|
@@ -2900,7 +2901,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
2900
2901
|
};
|
|
2901
2902
|
}
|
|
2902
2903
|
});
|
|
2903
|
-
const StrandsMfaVerification = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2904
|
+
const StrandsMfaVerification = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-d95e0731"]]);
|
|
2904
2905
|
function useOAuthProviders(options = {}) {
|
|
2905
2906
|
const { getUrl, config } = useStrandsConfig.useStrandsConfig();
|
|
2906
2907
|
const providers = vue.ref([]);
|
|
@@ -3030,54 +3031,54 @@ function useOAuthProviders(options = {}) {
|
|
|
3030
3031
|
getProviderIcon
|
|
3031
3032
|
};
|
|
3032
3033
|
}
|
|
3033
|
-
const _hoisted_1$
|
|
3034
|
-
const _hoisted_2$
|
|
3035
|
-
const _hoisted_3$
|
|
3034
|
+
const _hoisted_1$j = { class: "accui-component-scope" };
|
|
3035
|
+
const _hoisted_2$h = { class: "auth-header" };
|
|
3036
|
+
const _hoisted_3$h = {
|
|
3036
3037
|
key: 0,
|
|
3037
3038
|
class: "auth-tabs-container"
|
|
3038
3039
|
};
|
|
3039
|
-
const _hoisted_4$
|
|
3040
|
+
const _hoisted_4$g = {
|
|
3040
3041
|
key: 0,
|
|
3041
3042
|
class: "auth-oauth-providers"
|
|
3042
3043
|
};
|
|
3043
|
-
const _hoisted_5$
|
|
3044
|
-
const _hoisted_6$
|
|
3044
|
+
const _hoisted_5$f = { class: "auth-oauth-icon-container" };
|
|
3045
|
+
const _hoisted_6$d = {
|
|
3045
3046
|
key: 0,
|
|
3046
3047
|
class: "auth-oauth-icon"
|
|
3047
3048
|
};
|
|
3048
|
-
const _hoisted_7$
|
|
3049
|
-
const _hoisted_8$
|
|
3049
|
+
const _hoisted_7$d = ["src", "alt"];
|
|
3050
|
+
const _hoisted_8$d = {
|
|
3050
3051
|
key: 1,
|
|
3051
3052
|
viewBox: "0 0 24 24",
|
|
3052
3053
|
class: "auth-oauth-icon"
|
|
3053
3054
|
};
|
|
3054
|
-
const _hoisted_9$
|
|
3055
|
+
const _hoisted_9$c = {
|
|
3055
3056
|
key: 2,
|
|
3056
3057
|
class: "auth-oauth-icon auth-oauth-github",
|
|
3057
3058
|
viewBox: "0 0 24 24"
|
|
3058
3059
|
};
|
|
3059
|
-
const _hoisted_10$
|
|
3060
|
+
const _hoisted_10$b = {
|
|
3060
3061
|
key: 3,
|
|
3061
3062
|
class: "auth-oauth-generic-icon"
|
|
3062
3063
|
};
|
|
3063
|
-
const _hoisted_11$
|
|
3064
|
-
const _hoisted_12$
|
|
3065
|
-
const _hoisted_13$
|
|
3064
|
+
const _hoisted_11$b = { class: "auth-oauth-generic-text" };
|
|
3065
|
+
const _hoisted_12$b = { class: "auth-oauth-text" };
|
|
3066
|
+
const _hoisted_13$b = {
|
|
3066
3067
|
key: 0,
|
|
3067
3068
|
class: "auth-divider"
|
|
3068
3069
|
};
|
|
3069
|
-
const _hoisted_14$
|
|
3070
|
-
const _hoisted_15$
|
|
3070
|
+
const _hoisted_14$b = { class: "auth-divider-text" };
|
|
3071
|
+
const _hoisted_15$a = {
|
|
3071
3072
|
key: 0,
|
|
3072
3073
|
class: "auth-password-field"
|
|
3073
3074
|
};
|
|
3074
|
-
const _hoisted_16$
|
|
3075
|
-
const _hoisted_17$
|
|
3075
|
+
const _hoisted_16$a = { class: "auth-password-header" };
|
|
3076
|
+
const _hoisted_17$9 = {
|
|
3076
3077
|
key: 0,
|
|
3077
3078
|
class: "auth-back-link-container"
|
|
3078
3079
|
};
|
|
3079
|
-
const _hoisted_18$
|
|
3080
|
-
const _sfc_main$
|
|
3080
|
+
const _hoisted_18$9 = { class: "auth-support-text" };
|
|
3081
|
+
const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
3081
3082
|
__name: "StrandsAuth",
|
|
3082
3083
|
props: {
|
|
3083
3084
|
mode: { default: "signin" },
|
|
@@ -3338,14 +3339,14 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3338
3339
|
element.style.overflow = "";
|
|
3339
3340
|
};
|
|
3340
3341
|
return (_ctx, _cache) => {
|
|
3341
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
3342
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
|
|
3342
3343
|
vue.createElementVNode("div", {
|
|
3343
3344
|
class: vue.normalizeClass(props.inModal ? "auth-container-modal auth-full-width auth-min-width" : "auth-container auth-full-width auth-min-width auth-max-width auth-center auth-slide-up")
|
|
3344
3345
|
}, [
|
|
3345
3346
|
vue.createElementVNode("div", {
|
|
3346
3347
|
class: vue.normalizeClass(props.inModal ? "auth-content-modal" : "auth-content auth-card-modern")
|
|
3347
3348
|
}, [
|
|
3348
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
3349
|
+
vue.createElementVNode("div", _hoisted_2$h, [
|
|
3349
3350
|
vue.createVNode(vue.Transition, {
|
|
3350
3351
|
name: "fade",
|
|
3351
3352
|
mode: "out-in"
|
|
@@ -3380,7 +3381,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3380
3381
|
onAfterLeave
|
|
3381
3382
|
}, {
|
|
3382
3383
|
default: vue.withCtx(() => [
|
|
3383
|
-
!isPasswordReset.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
3384
|
+
!isPasswordReset.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$h, [
|
|
3384
3385
|
vue.createVNode(vue.unref(StrandsUiTabs), {
|
|
3385
3386
|
modelValue: currentMode.value,
|
|
3386
3387
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => currentMode.value = $event),
|
|
@@ -3402,7 +3403,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3402
3403
|
onAfterLeave
|
|
3403
3404
|
}, {
|
|
3404
3405
|
default: vue.withCtx(() => [
|
|
3405
|
-
!isPasswordReset.value && displayProviders.value?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
3406
|
+
!isPasswordReset.value && displayProviders.value?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$g, [
|
|
3406
3407
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayProviders.value, (provider) => {
|
|
3407
3408
|
return vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
3408
3409
|
key: provider.id,
|
|
@@ -3413,14 +3414,14 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3413
3414
|
class: "auth-oauth-button"
|
|
3414
3415
|
}, {
|
|
3415
3416
|
default: vue.withCtx(() => [
|
|
3416
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
3417
|
-
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$
|
|
3417
|
+
vue.createElementVNode("div", _hoisted_5$f, [
|
|
3418
|
+
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$d, [
|
|
3418
3419
|
vue.createElementVNode("img", {
|
|
3419
3420
|
src: provider.icon || provider.iconUrl,
|
|
3420
3421
|
alt: `${provider.displayName || provider.name} icon`,
|
|
3421
3422
|
class: "auth-oauth-icon"
|
|
3422
|
-
}, null, 8, _hoisted_7$
|
|
3423
|
-
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$
|
|
3423
|
+
}, null, 8, _hoisted_7$d)
|
|
3424
|
+
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$d, _cache[6] || (_cache[6] = [
|
|
3424
3425
|
vue.createElementVNode("path", {
|
|
3425
3426
|
fill: "#4285F4",
|
|
3426
3427
|
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"
|
|
@@ -3437,13 +3438,13 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3437
3438
|
fill: "#EA4335",
|
|
3438
3439
|
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"
|
|
3439
3440
|
}, null, -1)
|
|
3440
|
-
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$
|
|
3441
|
+
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$c, _cache[7] || (_cache[7] = [
|
|
3441
3442
|
vue.createElementVNode("path", { 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" }, null, -1)
|
|
3442
|
-
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$
|
|
3443
|
-
vue.createElementVNode("span", _hoisted_11$
|
|
3443
|
+
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$b, [
|
|
3444
|
+
vue.createElementVNode("span", _hoisted_11$b, vue.toDisplayString((provider.displayName || provider.name).charAt(0).toUpperCase()), 1)
|
|
3444
3445
|
]))
|
|
3445
3446
|
]),
|
|
3446
|
-
vue.createElementVNode("span", _hoisted_12$
|
|
3447
|
+
vue.createElementVNode("span", _hoisted_12$b, " Continue with " + vue.toDisplayString(provider.displayName || provider.name.charAt(0).toUpperCase() + provider.name.slice(1)), 1)
|
|
3447
3448
|
]),
|
|
3448
3449
|
_: 2
|
|
3449
3450
|
}, 1032, ["disabled", "onClick"]);
|
|
@@ -3461,8 +3462,8 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3461
3462
|
onAfterLeave
|
|
3462
3463
|
}, {
|
|
3463
3464
|
default: vue.withCtx(() => [
|
|
3464
|
-
!isPasswordReset.value && displayProviders.value?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$
|
|
3465
|
-
vue.createElementVNode("span", _hoisted_14$
|
|
3465
|
+
!isPasswordReset.value && displayProviders.value?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$b, [
|
|
3466
|
+
vue.createElementVNode("span", _hoisted_14$b, "Or " + vue.toDisplayString(isSignUp.value ? "create account" : "sign in") + " with email", 1)
|
|
3466
3467
|
])) : vue.createCommentVNode("", true)
|
|
3467
3468
|
]),
|
|
3468
3469
|
_: 1
|
|
@@ -3495,8 +3496,8 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3495
3496
|
onAfterLeave
|
|
3496
3497
|
}, {
|
|
3497
3498
|
default: vue.withCtx(() => [
|
|
3498
|
-
!isPasswordReset.value && !isSignUp.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$
|
|
3499
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
3499
|
+
!isPasswordReset.value && !isSignUp.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$a, [
|
|
3500
|
+
vue.createElementVNode("div", _hoisted_16$a, [
|
|
3500
3501
|
_cache[9] || (_cache[9] = vue.createElementVNode("span", { class: "auth-password-label" }, "Password", -1)),
|
|
3501
3502
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
3502
3503
|
variant: "primary",
|
|
@@ -3561,7 +3562,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3561
3562
|
onAfterLeave
|
|
3562
3563
|
}, {
|
|
3563
3564
|
default: vue.withCtx(() => [
|
|
3564
|
-
isPasswordReset.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$
|
|
3565
|
+
isPasswordReset.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$9, [
|
|
3565
3566
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
3566
3567
|
onClick: _cache[4] || (_cache[4] = ($event) => currentMode.value = "signin"),
|
|
3567
3568
|
class: "auth-back-link"
|
|
@@ -3606,7 +3607,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3606
3607
|
name: "support-fade"
|
|
3607
3608
|
}, {
|
|
3608
3609
|
default: vue.withCtx(() => [
|
|
3609
|
-
vue.createElementVNode("p", _hoisted_18$
|
|
3610
|
+
vue.createElementVNode("p", _hoisted_18$9, [
|
|
3610
3611
|
_cache[12] || (_cache[12] = vue.createTextVNode(" Need help? ", -1)),
|
|
3611
3612
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
3612
3613
|
variant: "primary",
|
|
@@ -3638,47 +3639,47 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
3638
3639
|
};
|
|
3639
3640
|
}
|
|
3640
3641
|
});
|
|
3641
|
-
const StrandsAuth = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
3642
|
-
const _hoisted_1$
|
|
3643
|
-
const _hoisted_2$
|
|
3644
|
-
const _hoisted_3$
|
|
3642
|
+
const StrandsAuth = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-ba0feb8a"]]);
|
|
3643
|
+
const _hoisted_1$i = { class: "accui-component-scope" };
|
|
3644
|
+
const _hoisted_2$g = { class: "accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up" };
|
|
3645
|
+
const _hoisted_3$g = {
|
|
3645
3646
|
key: 0,
|
|
3646
3647
|
class: "accui-space-y-3 accui-mb-6"
|
|
3647
3648
|
};
|
|
3648
|
-
const _hoisted_4$
|
|
3649
|
-
const _hoisted_5$
|
|
3649
|
+
const _hoisted_4$f = { class: "accui-w-5 accui-h-5 accui-flex accui-items-center accui-justify-center" };
|
|
3650
|
+
const _hoisted_5$e = {
|
|
3650
3651
|
key: 0,
|
|
3651
3652
|
class: "accui-w-5 accui-h-5"
|
|
3652
3653
|
};
|
|
3653
|
-
const _hoisted_6$
|
|
3654
|
-
const _hoisted_7$
|
|
3654
|
+
const _hoisted_6$c = ["src", "alt"];
|
|
3655
|
+
const _hoisted_7$c = {
|
|
3655
3656
|
key: 1,
|
|
3656
3657
|
viewBox: "0 0 24 24",
|
|
3657
3658
|
class: "accui-w-5 accui-h-5"
|
|
3658
3659
|
};
|
|
3659
|
-
const _hoisted_8$
|
|
3660
|
+
const _hoisted_8$c = {
|
|
3660
3661
|
key: 2,
|
|
3661
3662
|
class: "accui-w-5 accui-h-5 accui-fill-current",
|
|
3662
3663
|
viewBox: "0 0 24 24"
|
|
3663
3664
|
};
|
|
3664
|
-
const _hoisted_9$
|
|
3665
|
+
const _hoisted_9$b = {
|
|
3665
3666
|
key: 3,
|
|
3666
3667
|
class: "accui-w-5 accui-h-5 accui-rounded-full accui-bg-neutral-300 accui-flex accui-items-center accui-justify-center"
|
|
3667
3668
|
};
|
|
3668
|
-
const _hoisted_10$
|
|
3669
|
-
const _hoisted_11$
|
|
3670
|
-
const _hoisted_12$
|
|
3669
|
+
const _hoisted_10$a = { class: "accui-text-xs accui-font-semibold accui-text-neutral-600" };
|
|
3670
|
+
const _hoisted_11$a = { class: "accui-font-medium" };
|
|
3671
|
+
const _hoisted_12$a = {
|
|
3671
3672
|
key: 1,
|
|
3672
3673
|
class: "divider-with-text"
|
|
3673
3674
|
};
|
|
3674
|
-
const _hoisted_13$
|
|
3675
|
-
const _hoisted_14$
|
|
3676
|
-
const _hoisted_15$
|
|
3677
|
-
const _hoisted_16$
|
|
3678
|
-
const _hoisted_17$
|
|
3679
|
-
const _hoisted_18$
|
|
3680
|
-
const _hoisted_19$
|
|
3681
|
-
const _sfc_main$
|
|
3675
|
+
const _hoisted_13$a = { class: "email-field-spacing has-password" };
|
|
3676
|
+
const _hoisted_14$a = { class: "accui-mb-4" };
|
|
3677
|
+
const _hoisted_15$9 = { class: "accui-text-center accui-mt-4" };
|
|
3678
|
+
const _hoisted_16$9 = { class: "accui-mt-8 accui-text-center" };
|
|
3679
|
+
const _hoisted_17$8 = { class: "accui-text-sm accui-text-neutral-600" };
|
|
3680
|
+
const _hoisted_18$8 = { key: 0 };
|
|
3681
|
+
const _hoisted_19$6 = { class: "accui-text-neutral-400 accui-text-sm" };
|
|
3682
|
+
const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
3682
3683
|
__name: "StrandsSignIn",
|
|
3683
3684
|
props: {
|
|
3684
3685
|
redirectUrl: {},
|
|
@@ -3766,15 +3767,15 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3766
3767
|
}
|
|
3767
3768
|
};
|
|
3768
3769
|
return (_ctx, _cache) => {
|
|
3769
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
3770
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
3770
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
|
|
3771
|
+
vue.createElementVNode("div", _hoisted_2$g, [
|
|
3771
3772
|
vue.createVNode(vue.unref(StrandsUiCard), { variant: "modern" }, {
|
|
3772
3773
|
default: vue.withCtx(() => [
|
|
3773
3774
|
_cache[15] || (_cache[15] = vue.createElementVNode("div", { class: "accui-text-center accui-mb-8" }, [
|
|
3774
3775
|
vue.createElementVNode("h1", { class: "accui-text-3xl accui-font-bold accui-text-gradient accui-mb-2" }, "Welcome back"),
|
|
3775
3776
|
vue.createElementVNode("p", { class: "accui-text-neutral-600" }, "Sign in to your account to continue")
|
|
3776
3777
|
], -1)),
|
|
3777
|
-
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
3778
|
+
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$g, [
|
|
3778
3779
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(enabledProviders), (provider) => {
|
|
3779
3780
|
return vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
3780
3781
|
key: provider.id,
|
|
@@ -3785,14 +3786,14 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3785
3786
|
class: "btn-oauth accui-group"
|
|
3786
3787
|
}, {
|
|
3787
3788
|
default: vue.withCtx(() => [
|
|
3788
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
3789
|
-
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$
|
|
3789
|
+
vue.createElementVNode("div", _hoisted_4$f, [
|
|
3790
|
+
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$e, [
|
|
3790
3791
|
vue.createElementVNode("img", {
|
|
3791
3792
|
src: provider.icon || provider.iconUrl,
|
|
3792
3793
|
alt: `${provider.displayName || provider.name} icon`,
|
|
3793
3794
|
class: "accui-w-5 accui-h-5"
|
|
3794
|
-
}, null, 8, _hoisted_6$
|
|
3795
|
-
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_7$
|
|
3795
|
+
}, null, 8, _hoisted_6$c)
|
|
3796
|
+
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_7$c, _cache[5] || (_cache[5] = [
|
|
3796
3797
|
vue.createElementVNode("path", {
|
|
3797
3798
|
fill: "#4285F4",
|
|
3798
3799
|
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"
|
|
@@ -3809,19 +3810,19 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3809
3810
|
fill: "#EA4335",
|
|
3810
3811
|
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"
|
|
3811
3812
|
}, null, -1)
|
|
3812
|
-
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$
|
|
3813
|
+
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$c, _cache[6] || (_cache[6] = [
|
|
3813
3814
|
vue.createElementVNode("path", { 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" }, null, -1)
|
|
3814
|
-
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$
|
|
3815
|
-
vue.createElementVNode("span", _hoisted_10$
|
|
3815
|
+
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$b, [
|
|
3816
|
+
vue.createElementVNode("span", _hoisted_10$a, vue.toDisplayString((provider.displayName || provider.name).charAt(0).toUpperCase()), 1)
|
|
3816
3817
|
]))
|
|
3817
3818
|
]),
|
|
3818
|
-
vue.createElementVNode("span", _hoisted_11$
|
|
3819
|
+
vue.createElementVNode("span", _hoisted_11$a, "Continue with " + vue.toDisplayString(provider.displayName || provider.name), 1)
|
|
3819
3820
|
]),
|
|
3820
3821
|
_: 2
|
|
3821
3822
|
}, 1032, ["disabled", "onClick"]);
|
|
3822
3823
|
}), 128))
|
|
3823
3824
|
])) : vue.createCommentVNode("", true),
|
|
3824
|
-
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$
|
|
3825
|
+
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$a, _cache[7] || (_cache[7] = [
|
|
3825
3826
|
vue.createElementVNode("span", { class: "divider-text" }, "Or sign in with email", -1)
|
|
3826
3827
|
]))) : vue.createCommentVNode("", true),
|
|
3827
3828
|
vue.createElementVNode("form", {
|
|
@@ -3829,7 +3830,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3829
3830
|
class: "accui-gap-6 accui-flex accui-flex-col"
|
|
3830
3831
|
}, [
|
|
3831
3832
|
vue.createElementVNode("div", null, [
|
|
3832
|
-
vue.createElementVNode("div", _hoisted_13$
|
|
3833
|
+
vue.createElementVNode("div", _hoisted_13$a, [
|
|
3833
3834
|
vue.createVNode(vue.unref(StrandsUiInput), {
|
|
3834
3835
|
id: "email",
|
|
3835
3836
|
modelValue: form.email,
|
|
@@ -3842,7 +3843,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3842
3843
|
error: error.value ? "Invalid email or password" : void 0
|
|
3843
3844
|
}, null, 8, ["modelValue", "error"])
|
|
3844
3845
|
]),
|
|
3845
|
-
vue.createElementVNode("div", _hoisted_14$
|
|
3846
|
+
vue.createElementVNode("div", _hoisted_14$a, [
|
|
3846
3847
|
_cache[8] || (_cache[8] = vue.createElementVNode("span", { class: "accui-text-sm accui-font-medium accui-text-neutral-700 accui-block accui-mb-2" }, "Password", -1)),
|
|
3847
3848
|
vue.createVNode(vue.unref(StrandsUiInput), {
|
|
3848
3849
|
id: "password",
|
|
@@ -3871,7 +3872,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3871
3872
|
__: [9]
|
|
3872
3873
|
}, 8, ["disabled", "loading"])
|
|
3873
3874
|
], 32),
|
|
3874
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
3875
|
+
vue.createElementVNode("div", _hoisted_15$9, [
|
|
3875
3876
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
3876
3877
|
onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("forgot-password")),
|
|
3877
3878
|
class: "accui-text-sm"
|
|
@@ -3891,8 +3892,8 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3891
3892
|
dismissible: "",
|
|
3892
3893
|
onDismiss: _cache[3] || (_cache[3] = ($event) => error.value = "")
|
|
3893
3894
|
}, null, 8, ["message"])) : vue.createCommentVNode("", true),
|
|
3894
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
3895
|
-
vue.createElementVNode("p", _hoisted_17$
|
|
3895
|
+
vue.createElementVNode("div", _hoisted_16$9, [
|
|
3896
|
+
vue.createElementVNode("p", _hoisted_17$8, [
|
|
3896
3897
|
_cache[12] || (_cache[12] = vue.createTextVNode(" Don't have an account? ", -1)),
|
|
3897
3898
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
3898
3899
|
onClick: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("switch-to-signup"))
|
|
@@ -3909,8 +3910,8 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3909
3910
|
config: props.config
|
|
3910
3911
|
}, {
|
|
3911
3912
|
default: vue.withCtx(() => [
|
|
3912
|
-
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$
|
|
3913
|
-
vue.createElementVNode("p", _hoisted_19$
|
|
3913
|
+
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$8, [
|
|
3914
|
+
vue.createElementVNode("p", _hoisted_19$6, [
|
|
3914
3915
|
_cache[14] || (_cache[14] = vue.createTextVNode(" Need help? ", -1)),
|
|
3915
3916
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
3916
3917
|
variant: "primary",
|
|
@@ -3944,58 +3945,58 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
3944
3945
|
};
|
|
3945
3946
|
}
|
|
3946
3947
|
});
|
|
3947
|
-
const StrandsSignIn = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
3948
|
-
const _hoisted_1$
|
|
3949
|
-
const _hoisted_2$
|
|
3950
|
-
const _hoisted_3$
|
|
3951
|
-
const _hoisted_4$
|
|
3952
|
-
const _hoisted_5$
|
|
3953
|
-
const _hoisted_6$
|
|
3948
|
+
const StrandsSignIn = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-87adc9ee"]]);
|
|
3949
|
+
const _hoisted_1$h = { class: "accui-component-scope" };
|
|
3950
|
+
const _hoisted_2$f = { class: "signup-container" };
|
|
3951
|
+
const _hoisted_3$f = { class: "signup-success" };
|
|
3952
|
+
const _hoisted_4$e = { class: "signup-success-title" };
|
|
3953
|
+
const _hoisted_5$d = { class: "signup-success-message" };
|
|
3954
|
+
const _hoisted_6$b = {
|
|
3954
3955
|
key: 0,
|
|
3955
3956
|
class: "signup-success-email"
|
|
3956
3957
|
};
|
|
3957
|
-
const _hoisted_7$
|
|
3958
|
+
const _hoisted_7$b = {
|
|
3958
3959
|
key: 0,
|
|
3959
3960
|
class: "oauth-providers"
|
|
3960
3961
|
};
|
|
3961
|
-
const _hoisted_8$
|
|
3962
|
-
const _hoisted_9$
|
|
3962
|
+
const _hoisted_8$b = { class: "oauth-icon-container" };
|
|
3963
|
+
const _hoisted_9$a = {
|
|
3963
3964
|
key: 0,
|
|
3964
3965
|
class: "oauth-icon"
|
|
3965
3966
|
};
|
|
3966
|
-
const _hoisted_10$
|
|
3967
|
-
const _hoisted_11$
|
|
3967
|
+
const _hoisted_10$9 = ["src", "alt"];
|
|
3968
|
+
const _hoisted_11$9 = {
|
|
3968
3969
|
key: 1,
|
|
3969
3970
|
viewBox: "0 0 24 24",
|
|
3970
3971
|
class: "oauth-icon"
|
|
3971
3972
|
};
|
|
3972
|
-
const _hoisted_12$
|
|
3973
|
+
const _hoisted_12$9 = {
|
|
3973
3974
|
key: 2,
|
|
3974
3975
|
class: "oauth-icon oauth-icon-github",
|
|
3975
3976
|
viewBox: "0 0 24 24"
|
|
3976
3977
|
};
|
|
3977
|
-
const _hoisted_13$
|
|
3978
|
+
const _hoisted_13$9 = {
|
|
3978
3979
|
key: 3,
|
|
3979
3980
|
class: "oauth-icon-fallback"
|
|
3980
3981
|
};
|
|
3981
|
-
const _hoisted_14$
|
|
3982
|
-
const _hoisted_15$
|
|
3983
|
-
const _hoisted_16$
|
|
3982
|
+
const _hoisted_14$9 = { class: "oauth-icon-fallback-text" };
|
|
3983
|
+
const _hoisted_15$8 = { class: "oauth-button-text" };
|
|
3984
|
+
const _hoisted_16$8 = {
|
|
3984
3985
|
key: 1,
|
|
3985
3986
|
class: "divider-with-text"
|
|
3986
3987
|
};
|
|
3987
|
-
const _hoisted_17$
|
|
3988
|
+
const _hoisted_17$7 = {
|
|
3988
3989
|
key: 2,
|
|
3989
3990
|
class: "signup-error"
|
|
3990
3991
|
};
|
|
3991
|
-
const _hoisted_18$
|
|
3992
|
-
const _hoisted_19$
|
|
3993
|
-
const _hoisted_20$
|
|
3994
|
-
const _hoisted_21$
|
|
3995
|
-
const _hoisted_22$
|
|
3996
|
-
const _hoisted_23$
|
|
3997
|
-
const _hoisted_24$
|
|
3998
|
-
const _sfc_main$
|
|
3992
|
+
const _hoisted_18$7 = { class: "signup-error-content" };
|
|
3993
|
+
const _hoisted_19$5 = { class: "signup-error-icon-container" };
|
|
3994
|
+
const _hoisted_20$5 = { class: "signup-error-message" };
|
|
3995
|
+
const _hoisted_21$4 = { class: "signup-signin-link" };
|
|
3996
|
+
const _hoisted_22$4 = { class: "signup-signin-text" };
|
|
3997
|
+
const _hoisted_23$3 = { key: 0 };
|
|
3998
|
+
const _hoisted_24$3 = { class: "signup-support-text" };
|
|
3999
|
+
const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
3999
4000
|
__name: "StrandsSignUp",
|
|
4000
4001
|
props: {
|
|
4001
4002
|
redirectUrl: {},
|
|
@@ -4121,18 +4122,18 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4121
4122
|
}
|
|
4122
4123
|
};
|
|
4123
4124
|
return (_ctx, _cache) => {
|
|
4124
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
4125
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
4125
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
|
|
4126
|
+
vue.createElementVNode("div", _hoisted_2$f, [
|
|
4126
4127
|
signupSuccess.value ? (vue.openBlock(), vue.createBlock(vue.unref(StrandsUiCard), {
|
|
4127
4128
|
key: 0,
|
|
4128
4129
|
variant: "modern"
|
|
4129
4130
|
}, {
|
|
4130
4131
|
default: vue.withCtx(() => [
|
|
4131
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
4132
|
+
vue.createElementVNode("div", _hoisted_3$f, [
|
|
4132
4133
|
_cache[3] || (_cache[3] = vue.createElementVNode("div", { class: "signup-success-icon" }, "📧", -1)),
|
|
4133
|
-
vue.createElementVNode("h1", _hoisted_4$
|
|
4134
|
-
vue.createElementVNode("p", _hoisted_5$
|
|
4135
|
-
successEmail.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$
|
|
4134
|
+
vue.createElementVNode("h1", _hoisted_4$e, vue.toDisplayString(successTitle.value), 1),
|
|
4135
|
+
vue.createElementVNode("p", _hoisted_5$d, vue.toDisplayString(successMessage.value), 1),
|
|
4136
|
+
successEmail.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$b, [
|
|
4136
4137
|
vue.createElementVNode("strong", null, vue.toDisplayString(successEmail.value), 1)
|
|
4137
4138
|
])) : vue.createCommentVNode("", true),
|
|
4138
4139
|
_cache[4] || (_cache[4] = vue.createElementVNode("p", { class: "signup-success-instructions" }, " Click the link in your email to complete your account setup. The link will expire in 24 hours. ", -1)),
|
|
@@ -4159,7 +4160,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4159
4160
|
vue.createElementVNode("h1", { class: "signup-title" }, "Create account"),
|
|
4160
4161
|
vue.createElementVNode("p", { class: "signup-subtitle" }, "We'll send you a magic link to get started")
|
|
4161
4162
|
], -1)),
|
|
4162
|
-
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$
|
|
4163
|
+
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$b, [
|
|
4163
4164
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(enabledProviders), (provider) => {
|
|
4164
4165
|
return vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
4165
4166
|
key: provider.id,
|
|
@@ -4170,14 +4171,14 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4170
4171
|
class: "btn-oauth group"
|
|
4171
4172
|
}, {
|
|
4172
4173
|
default: vue.withCtx(() => [
|
|
4173
|
-
vue.createElementVNode("div", _hoisted_8$
|
|
4174
|
-
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$
|
|
4174
|
+
vue.createElementVNode("div", _hoisted_8$b, [
|
|
4175
|
+
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$a, [
|
|
4175
4176
|
vue.createElementVNode("img", {
|
|
4176
4177
|
src: provider.icon || provider.iconUrl,
|
|
4177
4178
|
alt: `${provider.displayName || provider.name} icon`,
|
|
4178
4179
|
class: "oauth-icon-image"
|
|
4179
|
-
}, null, 8, _hoisted_10$
|
|
4180
|
-
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_11$
|
|
4180
|
+
}, null, 8, _hoisted_10$9)
|
|
4181
|
+
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_11$9, _cache[5] || (_cache[5] = [
|
|
4181
4182
|
vue.createElementVNode("path", {
|
|
4182
4183
|
fill: "#4285F4",
|
|
4183
4184
|
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"
|
|
@@ -4194,19 +4195,19 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4194
4195
|
fill: "#EA4335",
|
|
4195
4196
|
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"
|
|
4196
4197
|
}, null, -1)
|
|
4197
|
-
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_12$
|
|
4198
|
+
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_12$9, _cache[6] || (_cache[6] = [
|
|
4198
4199
|
vue.createElementVNode("path", { 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" }, null, -1)
|
|
4199
|
-
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$
|
|
4200
|
-
vue.createElementVNode("span", _hoisted_14$
|
|
4200
|
+
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$9, [
|
|
4201
|
+
vue.createElementVNode("span", _hoisted_14$9, vue.toDisplayString((provider.displayName || provider.name).charAt(0).toUpperCase()), 1)
|
|
4201
4202
|
]))
|
|
4202
4203
|
]),
|
|
4203
|
-
vue.createElementVNode("span", _hoisted_15$
|
|
4204
|
+
vue.createElementVNode("span", _hoisted_15$8, "Continue with " + vue.toDisplayString(provider.displayName || provider.name), 1)
|
|
4204
4205
|
]),
|
|
4205
4206
|
_: 2
|
|
4206
4207
|
}, 1032, ["disabled", "onClick"]);
|
|
4207
4208
|
}), 128))
|
|
4208
4209
|
])) : vue.createCommentVNode("", true),
|
|
4209
|
-
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$
|
|
4210
|
+
vue.unref(enabledProviders)?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$8, _cache[7] || (_cache[7] = [
|
|
4210
4211
|
vue.createElementVNode("span", { class: "divider-text" }, "Or create account with email", -1)
|
|
4211
4212
|
]))) : vue.createCommentVNode("", true),
|
|
4212
4213
|
vue.createElementVNode("form", {
|
|
@@ -4241,9 +4242,9 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4241
4242
|
__: [8]
|
|
4242
4243
|
}, 8, ["disabled", "loading"])
|
|
4243
4244
|
], 32),
|
|
4244
|
-
error.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$
|
|
4245
|
-
vue.createElementVNode("div", _hoisted_18$
|
|
4246
|
-
vue.createElementVNode("div", _hoisted_19$
|
|
4245
|
+
error.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$7, [
|
|
4246
|
+
vue.createElementVNode("div", _hoisted_18$7, [
|
|
4247
|
+
vue.createElementVNode("div", _hoisted_19$5, [
|
|
4247
4248
|
_cache[9] || (_cache[9] = vue.createElementVNode("svg", {
|
|
4248
4249
|
class: "signup-error-icon",
|
|
4249
4250
|
fill: "currentColor",
|
|
@@ -4255,12 +4256,12 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4255
4256
|
"clip-rule": "evenodd"
|
|
4256
4257
|
})
|
|
4257
4258
|
], -1)),
|
|
4258
|
-
vue.createElementVNode("p", _hoisted_20$
|
|
4259
|
+
vue.createElementVNode("p", _hoisted_20$5, vue.toDisplayString(error.value), 1)
|
|
4259
4260
|
])
|
|
4260
4261
|
])
|
|
4261
4262
|
])) : vue.createCommentVNode("", true),
|
|
4262
|
-
vue.createElementVNode("div", _hoisted_21$
|
|
4263
|
-
vue.createElementVNode("p", _hoisted_22$
|
|
4263
|
+
vue.createElementVNode("div", _hoisted_21$4, [
|
|
4264
|
+
vue.createElementVNode("p", _hoisted_22$4, [
|
|
4264
4265
|
_cache[10] || (_cache[10] = vue.createTextVNode(" Already have an account? ", -1)),
|
|
4265
4266
|
vue.createElementVNode("button", {
|
|
4266
4267
|
type: "button",
|
|
@@ -4273,8 +4274,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4273
4274
|
config: props.config
|
|
4274
4275
|
}, {
|
|
4275
4276
|
default: vue.withCtx(() => [
|
|
4276
|
-
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_23$
|
|
4277
|
-
vue.createElementVNode("p", _hoisted_24$
|
|
4277
|
+
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_23$3, [
|
|
4278
|
+
vue.createElementVNode("p", _hoisted_24$3, [
|
|
4278
4279
|
_cache[12] || (_cache[12] = vue.createTextVNode(" Need help? ", -1)),
|
|
4279
4280
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
4280
4281
|
variant: "primary",
|
|
@@ -4300,40 +4301,40 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
4300
4301
|
};
|
|
4301
4302
|
}
|
|
4302
4303
|
});
|
|
4303
|
-
const StrandsSignUp = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4304
|
-
const _hoisted_1$
|
|
4305
|
-
const _hoisted_2$
|
|
4304
|
+
const StrandsSignUp = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-ab42f1ba"]]);
|
|
4305
|
+
const _hoisted_1$g = { class: "accui-component-scope" };
|
|
4306
|
+
const _hoisted_2$e = {
|
|
4306
4307
|
key: 0,
|
|
4307
4308
|
class: "complete-signup-container"
|
|
4308
4309
|
};
|
|
4309
|
-
const _hoisted_3$
|
|
4310
|
-
const _hoisted_4$
|
|
4310
|
+
const _hoisted_3$e = { class: "complete-signup-success" };
|
|
4311
|
+
const _hoisted_4$d = {
|
|
4311
4312
|
key: 1,
|
|
4312
4313
|
class: "complete-signup-container"
|
|
4313
4314
|
};
|
|
4314
|
-
const _hoisted_5$
|
|
4315
|
-
const _hoisted_6$
|
|
4315
|
+
const _hoisted_5$c = { class: "complete-signup-error" };
|
|
4316
|
+
const _hoisted_6$a = {
|
|
4316
4317
|
key: 2,
|
|
4317
4318
|
class: "complete-signup-container"
|
|
4318
4319
|
};
|
|
4319
|
-
const _hoisted_7$
|
|
4320
|
-
const _hoisted_8$
|
|
4320
|
+
const _hoisted_7$a = { class: "complete-signup-header" };
|
|
4321
|
+
const _hoisted_8$a = {
|
|
4321
4322
|
key: 0,
|
|
4322
4323
|
class: "complete-signup-email-info"
|
|
4323
4324
|
};
|
|
4324
|
-
const _hoisted_9$
|
|
4325
|
-
const _hoisted_10$
|
|
4326
|
-
const _hoisted_11$
|
|
4325
|
+
const _hoisted_9$9 = { class: "complete-signup-email-text" };
|
|
4326
|
+
const _hoisted_10$8 = { class: "complete-signup-email-highlight" };
|
|
4327
|
+
const _hoisted_11$8 = {
|
|
4327
4328
|
key: 0,
|
|
4328
4329
|
class: "complete-signup-support"
|
|
4329
4330
|
};
|
|
4330
|
-
const _hoisted_12$
|
|
4331
|
-
const _hoisted_13$
|
|
4331
|
+
const _hoisted_12$8 = { class: "complete-signup-support-text" };
|
|
4332
|
+
const _hoisted_13$8 = {
|
|
4332
4333
|
key: 3,
|
|
4333
4334
|
class: "complete-signup-container"
|
|
4334
4335
|
};
|
|
4335
|
-
const _hoisted_14$
|
|
4336
|
-
const _sfc_main$
|
|
4336
|
+
const _hoisted_14$8 = { class: "complete-signup-warning" };
|
|
4337
|
+
const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
4337
4338
|
__name: "StrandsCompleteSignUp",
|
|
4338
4339
|
props: {
|
|
4339
4340
|
token: {},
|
|
@@ -4463,11 +4464,11 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
4463
4464
|
}
|
|
4464
4465
|
};
|
|
4465
4466
|
return (_ctx, _cache) => {
|
|
4466
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
4467
|
-
registrationComplete.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
4467
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
|
|
4468
|
+
registrationComplete.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$e, [
|
|
4468
4469
|
vue.createVNode(vue.unref(StrandsUiCard), { variant: "modern" }, {
|
|
4469
4470
|
default: vue.withCtx(() => [
|
|
4470
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
4471
|
+
vue.createElementVNode("div", _hoisted_3$e, [
|
|
4471
4472
|
_cache[7] || (_cache[7] = vue.createElementVNode("div", { class: "complete-signup-success-icon" }, "🎉", -1)),
|
|
4472
4473
|
_cache[8] || (_cache[8] = vue.createElementVNode("h1", { class: "complete-signup-success-title" }, "Welcome to Strands!", -1)),
|
|
4473
4474
|
_cache[9] || (_cache[9] = vue.createElementVNode("p", { class: "complete-signup-success-message" }, " Your account has been created successfully. ", -1)),
|
|
@@ -4488,10 +4489,10 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
4488
4489
|
]),
|
|
4489
4490
|
_: 1
|
|
4490
4491
|
})
|
|
4491
|
-
])) : invalidToken.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
4492
|
+
])) : invalidToken.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$d, [
|
|
4492
4493
|
vue.createVNode(vue.unref(StrandsUiCard), { variant: "modern" }, {
|
|
4493
4494
|
default: vue.withCtx(() => [
|
|
4494
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
4495
|
+
vue.createElementVNode("div", _hoisted_5$c, [
|
|
4495
4496
|
_cache[12] || (_cache[12] = vue.createElementVNode("div", { class: "complete-signup-error-icon" }, "❌", -1)),
|
|
4496
4497
|
_cache[13] || (_cache[13] = vue.createElementVNode("h1", { class: "complete-signup-error-title" }, "Invalid Link", -1)),
|
|
4497
4498
|
_cache[14] || (_cache[14] = vue.createElementVNode("p", { class: "complete-signup-error-message" }, " This registration link is invalid or has expired. ", -1)),
|
|
@@ -4512,16 +4513,16 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
4512
4513
|
]),
|
|
4513
4514
|
_: 1
|
|
4514
4515
|
})
|
|
4515
|
-
])) : _ctx.token ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$
|
|
4516
|
+
])) : _ctx.token ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$a, [
|
|
4516
4517
|
vue.createVNode(vue.unref(StrandsUiCard), { variant: "modern" }, {
|
|
4517
4518
|
default: vue.withCtx(() => [
|
|
4518
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
4519
|
+
vue.createElementVNode("div", _hoisted_7$a, [
|
|
4519
4520
|
_cache[17] || (_cache[17] = vue.createElementVNode("h1", { class: "complete-signup-title" }, "Complete Your Registration", -1)),
|
|
4520
4521
|
_cache[18] || (_cache[18] = vue.createElementVNode("p", { class: "complete-signup-subtitle" }, "Set up your account details to finish registration", -1)),
|
|
4521
|
-
email.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$
|
|
4522
|
-
vue.createElementVNode("p", _hoisted_9$
|
|
4522
|
+
email.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$a, [
|
|
4523
|
+
vue.createElementVNode("p", _hoisted_9$9, [
|
|
4523
4524
|
_cache[16] || (_cache[16] = vue.createTextVNode("Creating account for: ", -1)),
|
|
4524
|
-
vue.createElementVNode("span", _hoisted_10$
|
|
4525
|
+
vue.createElementVNode("span", _hoisted_10$8, vue.toDisplayString(email.value), 1)
|
|
4525
4526
|
])
|
|
4526
4527
|
])) : vue.createCommentVNode("", true)
|
|
4527
4528
|
]),
|
|
@@ -4595,8 +4596,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
4595
4596
|
config: props.config
|
|
4596
4597
|
}, {
|
|
4597
4598
|
default: vue.withCtx(() => [
|
|
4598
|
-
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$
|
|
4599
|
-
vue.createElementVNode("p", _hoisted_12$
|
|
4599
|
+
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$8, [
|
|
4600
|
+
vue.createElementVNode("p", _hoisted_12$8, [
|
|
4600
4601
|
_cache[22] || (_cache[22] = vue.createTextVNode(" Need help? ", -1)),
|
|
4601
4602
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
4602
4603
|
variant: "primary",
|
|
@@ -4616,10 +4617,10 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
4616
4617
|
]),
|
|
4617
4618
|
_: 1
|
|
4618
4619
|
})
|
|
4619
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$
|
|
4620
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$8, [
|
|
4620
4621
|
vue.createVNode(vue.unref(StrandsUiCard), { variant: "modern" }, {
|
|
4621
4622
|
default: vue.withCtx(() => [
|
|
4622
|
-
vue.createElementVNode("div", _hoisted_14$
|
|
4623
|
+
vue.createElementVNode("div", _hoisted_14$8, [
|
|
4623
4624
|
_cache[24] || (_cache[24] = vue.createElementVNode("div", { class: "complete-signup-warning-icon" }, "⚠️", -1)),
|
|
4624
4625
|
_cache[25] || (_cache[25] = vue.createElementVNode("h1", { class: "complete-signup-warning-title" }, "Missing Token", -1)),
|
|
4625
4626
|
_cache[26] || (_cache[26] = vue.createElementVNode("p", { class: "complete-signup-warning-message" }, " No registration token was provided. ", -1)),
|
|
@@ -4645,49 +4646,49 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
4645
4646
|
};
|
|
4646
4647
|
}
|
|
4647
4648
|
});
|
|
4648
|
-
const StrandsCompleteSignUp = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4649
|
-
const _hoisted_1$
|
|
4650
|
-
const _hoisted_2$
|
|
4649
|
+
const StrandsCompleteSignUp = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-b08a9ea5"]]);
|
|
4650
|
+
const _hoisted_1$f = { class: "accui-component-scope" };
|
|
4651
|
+
const _hoisted_2$d = {
|
|
4651
4652
|
key: 0,
|
|
4652
4653
|
class: "step-container"
|
|
4653
4654
|
};
|
|
4654
|
-
const _hoisted_3$
|
|
4655
|
-
const _hoisted_4$
|
|
4655
|
+
const _hoisted_3$d = { class: "step-actions" };
|
|
4656
|
+
const _hoisted_4$c = {
|
|
4656
4657
|
key: 1,
|
|
4657
4658
|
class: "step-container"
|
|
4658
4659
|
};
|
|
4659
|
-
const _hoisted_5$
|
|
4660
|
-
const _hoisted_6$
|
|
4660
|
+
const _hoisted_5$b = { class: "qr-container" };
|
|
4661
|
+
const _hoisted_6$9 = {
|
|
4661
4662
|
key: 0,
|
|
4662
4663
|
class: "qr-wrapper"
|
|
4663
4664
|
};
|
|
4664
|
-
const _hoisted_7$
|
|
4665
|
-
const _hoisted_8$
|
|
4665
|
+
const _hoisted_7$9 = ["src"];
|
|
4666
|
+
const _hoisted_8$9 = {
|
|
4666
4667
|
key: 1,
|
|
4667
4668
|
class: "qr-loading"
|
|
4668
4669
|
};
|
|
4669
|
-
const _hoisted_9$
|
|
4670
|
-
const _hoisted_10$
|
|
4671
|
-
const _hoisted_11$
|
|
4670
|
+
const _hoisted_9$8 = { class: "manual-entry" };
|
|
4671
|
+
const _hoisted_10$7 = { class: "manual-code" };
|
|
4672
|
+
const _hoisted_11$7 = {
|
|
4672
4673
|
key: 0,
|
|
4673
4674
|
class: "bg-yellow-50 border border-yellow-200 rounded-lg p-4"
|
|
4674
4675
|
};
|
|
4675
|
-
const _hoisted_12$
|
|
4676
|
-
const _hoisted_13$
|
|
4676
|
+
const _hoisted_12$7 = { class: "flex justify-end space-x-3 pt-4" };
|
|
4677
|
+
const _hoisted_13$7 = {
|
|
4677
4678
|
key: 2,
|
|
4678
4679
|
class: "space-y-4"
|
|
4679
4680
|
};
|
|
4680
|
-
const _hoisted_14$
|
|
4681
|
-
const _hoisted_15$
|
|
4681
|
+
const _hoisted_14$7 = { class: "totp-setup-step-actions" };
|
|
4682
|
+
const _hoisted_15$7 = {
|
|
4682
4683
|
key: 3,
|
|
4683
4684
|
class: "totp-setup-step"
|
|
4684
4685
|
};
|
|
4685
|
-
const _hoisted_16$
|
|
4686
|
-
const _hoisted_17$
|
|
4687
|
-
const _hoisted_18$
|
|
4688
|
-
const _hoisted_19$
|
|
4689
|
-
const _hoisted_20$
|
|
4690
|
-
const _sfc_main$
|
|
4686
|
+
const _hoisted_16$7 = { class: "totp-setup-backup-codes" };
|
|
4687
|
+
const _hoisted_17$6 = { class: "totp-setup-backup-grid-wrapper" };
|
|
4688
|
+
const _hoisted_18$6 = { class: "totp-setup-backup-grid" };
|
|
4689
|
+
const _hoisted_19$4 = { class: "totp-setup-backup-actions" };
|
|
4690
|
+
const _hoisted_20$4 = { class: "totp-setup-final-actions" };
|
|
4691
|
+
const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
4691
4692
|
__name: "StrandsTotpSetupModal",
|
|
4692
4693
|
props: {
|
|
4693
4694
|
show: { type: Boolean }
|
|
@@ -4772,7 +4773,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4772
4773
|
emit("success");
|
|
4773
4774
|
};
|
|
4774
4775
|
return (_ctx, _cache) => {
|
|
4775
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
4776
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
|
|
4776
4777
|
vue.createVNode(StrandsUiModal, {
|
|
4777
4778
|
open: _ctx.show,
|
|
4778
4779
|
onClose: closeModal,
|
|
@@ -4802,7 +4803,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4802
4803
|
])
|
|
4803
4804
|
]),
|
|
4804
4805
|
default: vue.withCtx(() => [
|
|
4805
|
-
step.value === 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
4806
|
+
step.value === 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$d, [
|
|
4806
4807
|
_cache[9] || (_cache[9] = vue.createElementVNode("div", null, [
|
|
4807
4808
|
vue.createElementVNode("h3", { class: "step-title" }, "Name Your Device"),
|
|
4808
4809
|
vue.createElementVNode("p", { class: "step-description" }, ' Give this authenticator a memorable name (e.g., "iPhone", "Work Phone") ')
|
|
@@ -4815,7 +4816,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4815
4816
|
error: deviceNameError.value,
|
|
4816
4817
|
disabled: vue.unref(loading2)
|
|
4817
4818
|
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
4818
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
4819
|
+
vue.createElementVNode("div", _hoisted_3$d, [
|
|
4819
4820
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
4820
4821
|
variant: "secondary",
|
|
4821
4822
|
onClick: closeModal,
|
|
@@ -4841,27 +4842,27 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4841
4842
|
}, 8, ["disabled", "loading"])
|
|
4842
4843
|
])
|
|
4843
4844
|
])) : vue.createCommentVNode("", true),
|
|
4844
|
-
step.value === 2 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
4845
|
+
step.value === 2 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$c, [
|
|
4845
4846
|
_cache[14] || (_cache[14] = vue.createElementVNode("div", null, [
|
|
4846
4847
|
vue.createElementVNode("h3", { class: "step-title" }, "Scan QR Code"),
|
|
4847
4848
|
vue.createElementVNode("p", { class: "step-description" }, " Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.) ")
|
|
4848
4849
|
], -1)),
|
|
4849
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
4850
|
-
qrCodeDataUrl.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$
|
|
4850
|
+
vue.createElementVNode("div", _hoisted_5$b, [
|
|
4851
|
+
qrCodeDataUrl.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$9, [
|
|
4851
4852
|
vue.createElementVNode("img", {
|
|
4852
4853
|
src: qrCodeDataUrl.value,
|
|
4853
4854
|
alt: "TOTP QR Code",
|
|
4854
4855
|
class: "qr-image"
|
|
4855
|
-
}, null, 8, _hoisted_7$
|
|
4856
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$
|
|
4856
|
+
}, null, 8, _hoisted_7$9)
|
|
4857
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$9, [
|
|
4857
4858
|
vue.createVNode(vue.unref(StrandsUiLoader), { size: 24 })
|
|
4858
4859
|
]))
|
|
4859
4860
|
]),
|
|
4860
|
-
vue.createElementVNode("div", _hoisted_9$
|
|
4861
|
+
vue.createElementVNode("div", _hoisted_9$8, [
|
|
4861
4862
|
_cache[10] || (_cache[10] = vue.createElementVNode("p", { class: "manual-label" }, " Can't scan? Enter this code manually: ", -1)),
|
|
4862
|
-
vue.createElementVNode("code", _hoisted_10$
|
|
4863
|
+
vue.createElementVNode("code", _hoisted_10$7, vue.toDisplayString(totpSetupData.value?.secret || "..."), 1)
|
|
4863
4864
|
]),
|
|
4864
|
-
totpSetupData.value?.backup_codes ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$
|
|
4865
|
+
totpSetupData.value?.backup_codes ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$7, _cache[11] || (_cache[11] = [
|
|
4865
4866
|
vue.createElementVNode("div", { class: "flex items-start space-x-2" }, [
|
|
4866
4867
|
vue.createElementVNode("svg", {
|
|
4867
4868
|
class: "w-5 h-5 text-yellow-600 mt-0.5 flex-shrink-0",
|
|
@@ -4880,7 +4881,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4880
4881
|
])
|
|
4881
4882
|
], -1)
|
|
4882
4883
|
]))) : vue.createCommentVNode("", true),
|
|
4883
|
-
vue.createElementVNode("div", _hoisted_12$
|
|
4884
|
+
vue.createElementVNode("div", _hoisted_12$7, [
|
|
4884
4885
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
4885
4886
|
variant: "secondary",
|
|
4886
4887
|
onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
|
|
@@ -4905,7 +4906,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4905
4906
|
}, 8, ["disabled"])
|
|
4906
4907
|
])
|
|
4907
4908
|
])) : vue.createCommentVNode("", true),
|
|
4908
|
-
step.value === 3 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$
|
|
4909
|
+
step.value === 3 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$7, [
|
|
4909
4910
|
_cache[17] || (_cache[17] = vue.createElementVNode("div", null, [
|
|
4910
4911
|
vue.createElementVNode("h3", { class: "text-lg font-semibold text-gray-900 mb-2" }, "Verify Setup"),
|
|
4911
4912
|
vue.createElementVNode("p", { class: "text-sm text-gray-600 mb-4" }, " Enter the 6-digit code from your authenticator app to complete setup ")
|
|
@@ -4920,7 +4921,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4920
4921
|
disabled: vue.unref(loading2),
|
|
4921
4922
|
onInput: onVerificationCodeInput
|
|
4922
4923
|
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
4923
|
-
vue.createElementVNode("div", _hoisted_14$
|
|
4924
|
+
vue.createElementVNode("div", _hoisted_14$7, [
|
|
4924
4925
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
4925
4926
|
variant: "secondary",
|
|
4926
4927
|
onClick: _cache[4] || (_cache[4] = ($event) => step.value = 2),
|
|
@@ -4946,7 +4947,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4946
4947
|
}, 8, ["disabled", "loading"])
|
|
4947
4948
|
])
|
|
4948
4949
|
])) : vue.createCommentVNode("", true),
|
|
4949
|
-
step.value === 4 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$
|
|
4950
|
+
step.value === 4 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$7, [
|
|
4950
4951
|
_cache[21] || (_cache[21] = vue.createElementVNode("div", { class: "totp-setup-success" }, [
|
|
4951
4952
|
vue.createElementVNode("div", { class: "totp-setup-success-icon" }, [
|
|
4952
4953
|
vue.createElementVNode("svg", {
|
|
@@ -4966,7 +4967,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4966
4967
|
vue.createElementVNode("h3", { class: "totp-setup-step-title" }, "TOTP Setup Complete!"),
|
|
4967
4968
|
vue.createElementVNode("p", { class: "totp-setup-success-description" }, " Your authenticator app is now active for two-factor authentication. ")
|
|
4968
4969
|
], -1)),
|
|
4969
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
4970
|
+
vue.createElementVNode("div", _hoisted_16$7, [
|
|
4970
4971
|
_cache[19] || (_cache[19] = vue.createElementVNode("div", { class: "totp-setup-backup-header" }, [
|
|
4971
4972
|
vue.createElementVNode("svg", {
|
|
4972
4973
|
class: "totp-setup-backup-warning-icon",
|
|
@@ -4984,8 +4985,8 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4984
4985
|
vue.createElementVNode("p", { class: "totp-setup-backup-header-description" }, " Store these codes in a safe place. Each code can only be used once. ")
|
|
4985
4986
|
])
|
|
4986
4987
|
], -1)),
|
|
4987
|
-
vue.createElementVNode("div", _hoisted_17$
|
|
4988
|
-
vue.createElementVNode("div", _hoisted_18$
|
|
4988
|
+
vue.createElementVNode("div", _hoisted_17$6, [
|
|
4989
|
+
vue.createElementVNode("div", _hoisted_18$6, [
|
|
4989
4990
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(totpSetupData.value?.backup_codes, (code, index) => {
|
|
4990
4991
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
4991
4992
|
key: index,
|
|
@@ -4994,7 +4995,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
4994
4995
|
}), 128))
|
|
4995
4996
|
])
|
|
4996
4997
|
]),
|
|
4997
|
-
vue.createElementVNode("div", _hoisted_19$
|
|
4998
|
+
vue.createElementVNode("div", _hoisted_19$4, [
|
|
4998
4999
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
4999
5000
|
variant: "secondary",
|
|
5000
5001
|
size: "sm",
|
|
@@ -5008,7 +5009,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
5008
5009
|
})
|
|
5009
5010
|
])
|
|
5010
5011
|
]),
|
|
5011
|
-
vue.createElementVNode("div", _hoisted_20$
|
|
5012
|
+
vue.createElementVNode("div", _hoisted_20$4, [
|
|
5012
5013
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5013
5014
|
variant: "primary",
|
|
5014
5015
|
onClick: finish
|
|
@@ -5028,25 +5029,25 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
5028
5029
|
};
|
|
5029
5030
|
}
|
|
5030
5031
|
});
|
|
5031
|
-
const StrandsTotpSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5032
|
-
const _hoisted_1$
|
|
5033
|
-
const _hoisted_2$
|
|
5032
|
+
const StrandsTotpSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-d3ba73e3"]]);
|
|
5033
|
+
const _hoisted_1$e = { class: "accui-component-scope" };
|
|
5034
|
+
const _hoisted_2$c = {
|
|
5034
5035
|
key: 0,
|
|
5035
5036
|
class: "email-mfa-setup-step"
|
|
5036
5037
|
};
|
|
5037
|
-
const _hoisted_3$
|
|
5038
|
-
const _hoisted_4$
|
|
5038
|
+
const _hoisted_3$c = { class: "email-mfa-setup-step-actions" };
|
|
5039
|
+
const _hoisted_4$b = {
|
|
5039
5040
|
key: 1,
|
|
5040
5041
|
class: "email-mfa-setup-step"
|
|
5041
5042
|
};
|
|
5042
|
-
const _hoisted_5$
|
|
5043
|
-
const _hoisted_6$
|
|
5044
|
-
const _hoisted_7$
|
|
5043
|
+
const _hoisted_5$a = { class: "email-mfa-setup-resend-section" };
|
|
5044
|
+
const _hoisted_6$8 = { class: "email-mfa-setup-step-actions" };
|
|
5045
|
+
const _hoisted_7$8 = {
|
|
5045
5046
|
key: 2,
|
|
5046
5047
|
class: "email-mfa-setup-step"
|
|
5047
5048
|
};
|
|
5048
|
-
const _hoisted_8$
|
|
5049
|
-
const _sfc_main$
|
|
5049
|
+
const _hoisted_8$8 = { class: "email-mfa-setup-final-actions" };
|
|
5050
|
+
const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
5050
5051
|
__name: "StrandsEmailMfaSetupModal",
|
|
5051
5052
|
props: {
|
|
5052
5053
|
show: { type: Boolean }
|
|
@@ -5154,7 +5155,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5154
5155
|
emit("success");
|
|
5155
5156
|
};
|
|
5156
5157
|
return (_ctx, _cache) => {
|
|
5157
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5158
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
|
|
5158
5159
|
vue.createVNode(StrandsUiModal, {
|
|
5159
5160
|
open: _ctx.show,
|
|
5160
5161
|
onClose: closeModal,
|
|
@@ -5184,7 +5185,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5184
5185
|
])
|
|
5185
5186
|
]),
|
|
5186
5187
|
default: vue.withCtx(() => [
|
|
5187
|
-
step.value === 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
5188
|
+
step.value === 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$c, [
|
|
5188
5189
|
_cache[7] || (_cache[7] = vue.createElementVNode("div", null, [
|
|
5189
5190
|
vue.createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Name Your Email 2FA"),
|
|
5190
5191
|
vue.createElementVNode("p", { class: "email-mfa-setup-step-description" }, ' Give this email 2FA method a memorable name (e.g., "Personal Email", "Work Email") ')
|
|
@@ -5216,7 +5217,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5216
5217
|
])
|
|
5217
5218
|
])
|
|
5218
5219
|
], -1)),
|
|
5219
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
5220
|
+
vue.createElementVNode("div", _hoisted_3$c, [
|
|
5220
5221
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5221
5222
|
variant: "secondary",
|
|
5222
5223
|
onClick: closeModal,
|
|
@@ -5242,7 +5243,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5242
5243
|
}, 8, ["disabled", "loading"])
|
|
5243
5244
|
])
|
|
5244
5245
|
])) : vue.createCommentVNode("", true),
|
|
5245
|
-
step.value === 2 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
5246
|
+
step.value === 2 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$b, [
|
|
5246
5247
|
_cache[11] || (_cache[11] = vue.createElementVNode("div", null, [
|
|
5247
5248
|
vue.createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Test Email 2FA"),
|
|
5248
5249
|
vue.createElementVNode("p", { class: "email-mfa-setup-step-description" }, " We've sent a test verification code to your email. Enter it below to complete setup. ")
|
|
@@ -5276,7 +5277,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5276
5277
|
disabled: vue.unref(loading2),
|
|
5277
5278
|
onInput: onVerificationCodeInput
|
|
5278
5279
|
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
5279
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
5280
|
+
vue.createElementVNode("div", _hoisted_5$a, [
|
|
5280
5281
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5281
5282
|
variant: "secondary",
|
|
5282
5283
|
size: "sm",
|
|
@@ -5289,7 +5290,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5289
5290
|
_: 1
|
|
5290
5291
|
}, 8, ["disabled"])
|
|
5291
5292
|
]),
|
|
5292
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
5293
|
+
vue.createElementVNode("div", _hoisted_6$8, [
|
|
5293
5294
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5294
5295
|
variant: "secondary",
|
|
5295
5296
|
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1),
|
|
@@ -5315,7 +5316,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5315
5316
|
}, 8, ["disabled", "loading"])
|
|
5316
5317
|
])
|
|
5317
5318
|
])) : vue.createCommentVNode("", true),
|
|
5318
|
-
step.value === 3 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$
|
|
5319
|
+
step.value === 3 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$8, [
|
|
5319
5320
|
_cache[14] || (_cache[14] = vue.createElementVNode("div", { class: "email-mfa-setup-completion" }, [
|
|
5320
5321
|
vue.createElementVNode("div", { class: "email-mfa-setup-completion-icon" }, [
|
|
5321
5322
|
vue.createElementVNode("svg", {
|
|
@@ -5354,7 +5355,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5354
5355
|
])
|
|
5355
5356
|
])
|
|
5356
5357
|
], -1)),
|
|
5357
|
-
vue.createElementVNode("div", _hoisted_8$
|
|
5358
|
+
vue.createElementVNode("div", _hoisted_8$8, [
|
|
5358
5359
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5359
5360
|
variant: "primary",
|
|
5360
5361
|
onClick: finish
|
|
@@ -5374,45 +5375,45 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
5374
5375
|
};
|
|
5375
5376
|
}
|
|
5376
5377
|
});
|
|
5377
|
-
const StrandsEmailMfaSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5378
|
-
const _hoisted_1$
|
|
5379
|
-
const _hoisted_2$
|
|
5378
|
+
const StrandsEmailMfaSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-188dcefe"]]);
|
|
5379
|
+
const _hoisted_1$d = { class: "accui-component-scope" };
|
|
5380
|
+
const _hoisted_2$b = {
|
|
5380
5381
|
key: 0,
|
|
5381
5382
|
class: "hardware-key-setup-step"
|
|
5382
5383
|
};
|
|
5383
|
-
const _hoisted_3$
|
|
5384
|
-
const _hoisted_4$
|
|
5384
|
+
const _hoisted_3$b = { class: "hardware-key-setup-actions" };
|
|
5385
|
+
const _hoisted_4$a = {
|
|
5385
5386
|
key: 1,
|
|
5386
5387
|
class: "hardware-key-setup-step"
|
|
5387
5388
|
};
|
|
5388
|
-
const _hoisted_5$
|
|
5389
|
-
const _hoisted_6$
|
|
5390
|
-
const _hoisted_7$
|
|
5391
|
-
const _hoisted_8$
|
|
5392
|
-
const _hoisted_9$
|
|
5389
|
+
const _hoisted_5$9 = { class: "hardware-key-setup-instructions" };
|
|
5390
|
+
const _hoisted_6$7 = { class: "hardware-key-setup-instructions-header" };
|
|
5391
|
+
const _hoisted_7$7 = { class: "hardware-key-setup-instructions-list" };
|
|
5392
|
+
const _hoisted_8$7 = { class: "hardware-key-setup-actions" };
|
|
5393
|
+
const _hoisted_9$7 = {
|
|
5393
5394
|
key: 2,
|
|
5394
5395
|
class: "hardware-key-setup-step"
|
|
5395
5396
|
};
|
|
5396
|
-
const _hoisted_10$
|
|
5397
|
-
const _hoisted_11$
|
|
5398
|
-
const _hoisted_12$
|
|
5399
|
-
const _hoisted_13$
|
|
5397
|
+
const _hoisted_10$6 = { class: "hardware-key-setup-progress" };
|
|
5398
|
+
const _hoisted_11$6 = { class: "hardware-key-setup-progress-icon" };
|
|
5399
|
+
const _hoisted_12$6 = { class: "hardware-key-setup-progress-message" };
|
|
5400
|
+
const _hoisted_13$6 = {
|
|
5400
5401
|
key: 3,
|
|
5401
5402
|
class: "hardware-key-setup-step"
|
|
5402
5403
|
};
|
|
5403
|
-
const _hoisted_14$
|
|
5404
|
-
const _hoisted_15$
|
|
5405
|
-
const _hoisted_16$
|
|
5406
|
-
const _hoisted_17$
|
|
5407
|
-
const _hoisted_18$
|
|
5408
|
-
const _hoisted_19$
|
|
5404
|
+
const _hoisted_14$6 = { class: "hardware-key-setup-backup-codes" };
|
|
5405
|
+
const _hoisted_15$6 = { class: "hardware-key-setup-codes-container" };
|
|
5406
|
+
const _hoisted_16$6 = { class: "hardware-key-setup-codes-grid" };
|
|
5407
|
+
const _hoisted_17$5 = { class: "hardware-key-setup-copy-action" };
|
|
5408
|
+
const _hoisted_18$5 = { class: "hardware-key-setup-final-action" };
|
|
5409
|
+
const _hoisted_19$3 = {
|
|
5409
5410
|
key: 4,
|
|
5410
5411
|
class: "hardware-key-setup-step"
|
|
5411
5412
|
};
|
|
5412
|
-
const _hoisted_20$
|
|
5413
|
-
const _hoisted_21$
|
|
5414
|
-
const _hoisted_22$
|
|
5415
|
-
const _sfc_main$
|
|
5413
|
+
const _hoisted_20$3 = { class: "hardware-key-setup-error" };
|
|
5414
|
+
const _hoisted_21$3 = { class: "hardware-key-setup-error-message" };
|
|
5415
|
+
const _hoisted_22$3 = { class: "hardware-key-setup-actions" };
|
|
5416
|
+
const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
5416
5417
|
__name: "StrandsHardwareKeySetupModal",
|
|
5417
5418
|
props: {
|
|
5418
5419
|
show: { type: Boolean },
|
|
@@ -5677,7 +5678,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5677
5678
|
emit("success");
|
|
5678
5679
|
};
|
|
5679
5680
|
return (_ctx, _cache) => {
|
|
5680
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5681
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [
|
|
5681
5682
|
vue.createVNode(StrandsUiModal, {
|
|
5682
5683
|
open: _ctx.show,
|
|
5683
5684
|
onClose: closeModal,
|
|
@@ -5707,7 +5708,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5707
5708
|
])
|
|
5708
5709
|
]),
|
|
5709
5710
|
default: vue.withCtx(() => [
|
|
5710
|
-
step.value === 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
5711
|
+
step.value === 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$b, [
|
|
5711
5712
|
_cache[7] || (_cache[7] = vue.createElementVNode("div", null, [
|
|
5712
5713
|
vue.createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Name Your Hardware Key"),
|
|
5713
5714
|
vue.createElementVNode("p", { class: "hardware-key-setup-step-description" }, ' Give your hardware key a memorable name (e.g., "YubiKey 5", "Work Security Key") ')
|
|
@@ -5720,7 +5721,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5720
5721
|
error: deviceNameError.value,
|
|
5721
5722
|
disabled: loading2.value
|
|
5722
5723
|
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
5723
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
5724
|
+
vue.createElementVNode("div", _hoisted_3$b, [
|
|
5724
5725
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5725
5726
|
variant: "secondary",
|
|
5726
5727
|
onClick: closeModal,
|
|
@@ -5746,7 +5747,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5746
5747
|
}, 8, ["disabled", "loading"])
|
|
5747
5748
|
])
|
|
5748
5749
|
])) : vue.createCommentVNode("", true),
|
|
5749
|
-
step.value === 2 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
5750
|
+
step.value === 2 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$a, [
|
|
5750
5751
|
_cache[18] || (_cache[18] = vue.createElementVNode("div", null, [
|
|
5751
5752
|
vue.createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Register Hardware Key"),
|
|
5752
5753
|
vue.createElementVNode("p", { class: "hardware-key-setup-step-description" }, " Insert your hardware key and follow your browser's prompts to complete registration. ")
|
|
@@ -5772,8 +5773,8 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5772
5773
|
vue.createElementVNode("p", { class: "hardware-key-setup-substatus" }, 'Click "Register Key" when ready')
|
|
5773
5774
|
])
|
|
5774
5775
|
], -1)),
|
|
5775
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
5776
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
5776
|
+
vue.createElementVNode("div", _hoisted_5$9, [
|
|
5777
|
+
vue.createElementVNode("div", _hoisted_6$7, [
|
|
5777
5778
|
_cache[15] || (_cache[15] = vue.createElementVNode("svg", {
|
|
5778
5779
|
class: "hardware-key-setup-info-icon",
|
|
5779
5780
|
fill: "currentColor",
|
|
@@ -5787,7 +5788,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5787
5788
|
], -1)),
|
|
5788
5789
|
vue.createElementVNode("div", null, [
|
|
5789
5790
|
_cache[14] || (_cache[14] = vue.createElementVNode("p", { class: "hardware-key-setup-instructions-title" }, "Setup Instructions", -1)),
|
|
5790
|
-
vue.createElementVNode("ul", _hoisted_7$
|
|
5791
|
+
vue.createElementVNode("ul", _hoisted_7$7, [
|
|
5791
5792
|
props.deviceType === "passkey" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
5792
5793
|
_cache[8] || (_cache[8] = vue.createElementVNode("li", null, "• Your browser will prompt you to create a passkey", -1)),
|
|
5793
5794
|
_cache[9] || (_cache[9] = vue.createElementVNode("li", null, "• Use Touch ID, Face ID, Windows Hello, or PIN", -1)),
|
|
@@ -5801,7 +5802,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5801
5802
|
])
|
|
5802
5803
|
])
|
|
5803
5804
|
]),
|
|
5804
|
-
vue.createElementVNode("div", _hoisted_8$
|
|
5805
|
+
vue.createElementVNode("div", _hoisted_8$7, [
|
|
5805
5806
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5806
5807
|
variant: "secondary",
|
|
5807
5808
|
onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
|
|
@@ -5827,16 +5828,16 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5827
5828
|
}, 8, ["disabled", "loading"])
|
|
5828
5829
|
])
|
|
5829
5830
|
])) : vue.createCommentVNode("", true),
|
|
5830
|
-
step.value === 3 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$
|
|
5831
|
-
vue.createElementVNode("div", _hoisted_10$
|
|
5832
|
-
vue.createElementVNode("div", _hoisted_11$
|
|
5831
|
+
step.value === 3 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$7, [
|
|
5832
|
+
vue.createElementVNode("div", _hoisted_10$6, [
|
|
5833
|
+
vue.createElementVNode("div", _hoisted_11$6, [
|
|
5833
5834
|
vue.createVNode(vue.unref(StrandsUiLoader), {
|
|
5834
5835
|
size: 24,
|
|
5835
5836
|
class: "hardware-key-setup-loader"
|
|
5836
5837
|
})
|
|
5837
5838
|
]),
|
|
5838
5839
|
_cache[20] || (_cache[20] = vue.createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registering Hardware Key", -1)),
|
|
5839
|
-
vue.createElementVNode("p", _hoisted_12$
|
|
5840
|
+
vue.createElementVNode("p", _hoisted_12$6, vue.toDisplayString(registrationMessage.value), 1)
|
|
5840
5841
|
]),
|
|
5841
5842
|
_cache[21] || (_cache[21] = vue.createElementVNode("div", { class: "hardware-key-setup-progress-indicator" }, [
|
|
5842
5843
|
vue.createElementVNode("div", { class: "hardware-key-setup-progress-content" }, [
|
|
@@ -5861,7 +5862,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5861
5862
|
])
|
|
5862
5863
|
], -1))
|
|
5863
5864
|
])) : vue.createCommentVNode("", true),
|
|
5864
|
-
step.value === 4 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$
|
|
5865
|
+
step.value === 4 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$6, [
|
|
5865
5866
|
_cache[25] || (_cache[25] = vue.createElementVNode("div", { class: "hardware-key-setup-success" }, [
|
|
5866
5867
|
vue.createElementVNode("div", { class: "hardware-key-setup-success-icon" }, [
|
|
5867
5868
|
vue.createElementVNode("svg", {
|
|
@@ -5881,7 +5882,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5881
5882
|
vue.createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Hardware Key Setup Complete!"),
|
|
5882
5883
|
vue.createElementVNode("p", { class: "hardware-key-setup-success-message" }, " Your hardware key is now active for two-factor authentication. ")
|
|
5883
5884
|
], -1)),
|
|
5884
|
-
vue.createElementVNode("div", _hoisted_14$
|
|
5885
|
+
vue.createElementVNode("div", _hoisted_14$6, [
|
|
5885
5886
|
_cache[23] || (_cache[23] = vue.createElementVNode("div", { class: "hardware-key-setup-backup-codes-header" }, [
|
|
5886
5887
|
vue.createElementVNode("svg", {
|
|
5887
5888
|
class: "hardware-key-setup-warning-icon",
|
|
@@ -5899,8 +5900,8 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5899
5900
|
vue.createElementVNode("p", { class: "hardware-key-setup-backup-codes-description" }, " Store these codes in a safe place. Each code can only be used once if you lose your hardware key. ")
|
|
5900
5901
|
])
|
|
5901
5902
|
], -1)),
|
|
5902
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
5903
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
5903
|
+
vue.createElementVNode("div", _hoisted_15$6, [
|
|
5904
|
+
vue.createElementVNode("div", _hoisted_16$6, [
|
|
5904
5905
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(backupCodes.value, (code, index) => {
|
|
5905
5906
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
5906
5907
|
key: index,
|
|
@@ -5909,7 +5910,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5909
5910
|
}), 128))
|
|
5910
5911
|
])
|
|
5911
5912
|
]),
|
|
5912
|
-
vue.createElementVNode("div", _hoisted_17$
|
|
5913
|
+
vue.createElementVNode("div", _hoisted_17$5, [
|
|
5913
5914
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5914
5915
|
variant: "secondary",
|
|
5915
5916
|
size: "sm",
|
|
@@ -5923,7 +5924,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5923
5924
|
})
|
|
5924
5925
|
])
|
|
5925
5926
|
]),
|
|
5926
|
-
vue.createElementVNode("div", _hoisted_18$
|
|
5927
|
+
vue.createElementVNode("div", _hoisted_18$5, [
|
|
5927
5928
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5928
5929
|
variant: "primary",
|
|
5929
5930
|
onClick: finish
|
|
@@ -5936,8 +5937,8 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5936
5937
|
})
|
|
5937
5938
|
])
|
|
5938
5939
|
])) : vue.createCommentVNode("", true),
|
|
5939
|
-
step.value === 5 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_19$
|
|
5940
|
-
vue.createElementVNode("div", _hoisted_20$
|
|
5940
|
+
step.value === 5 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_19$3, [
|
|
5941
|
+
vue.createElementVNode("div", _hoisted_20$3, [
|
|
5941
5942
|
_cache[26] || (_cache[26] = vue.createElementVNode("div", { class: "hardware-key-setup-error-icon" }, [
|
|
5942
5943
|
vue.createElementVNode("svg", {
|
|
5943
5944
|
class: "hardware-key-setup-error-x",
|
|
@@ -5954,9 +5955,9 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5954
5955
|
])
|
|
5955
5956
|
], -1)),
|
|
5956
5957
|
_cache[27] || (_cache[27] = vue.createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registration Failed", -1)),
|
|
5957
|
-
vue.createElementVNode("p", _hoisted_21$
|
|
5958
|
+
vue.createElementVNode("p", _hoisted_21$3, vue.toDisplayString(errorMessage.value), 1)
|
|
5958
5959
|
]),
|
|
5959
|
-
vue.createElementVNode("div", _hoisted_22$
|
|
5960
|
+
vue.createElementVNode("div", _hoisted_22$3, [
|
|
5960
5961
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
5961
5962
|
variant: "secondary",
|
|
5962
5963
|
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1)
|
|
@@ -5986,36 +5987,36 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
5986
5987
|
};
|
|
5987
5988
|
}
|
|
5988
5989
|
});
|
|
5989
|
-
const StrandsHardwareKeySetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5990
|
-
const _hoisted_1$
|
|
5991
|
-
const _hoisted_2$
|
|
5990
|
+
const StrandsHardwareKeySetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-4bb5b430"]]);
|
|
5991
|
+
const _hoisted_1$c = { class: "accui-component-scope" };
|
|
5992
|
+
const _hoisted_2$a = {
|
|
5992
5993
|
key: 0,
|
|
5993
5994
|
class: "backup-codes-loading"
|
|
5994
5995
|
};
|
|
5995
|
-
const _hoisted_3$
|
|
5996
|
+
const _hoisted_3$a = {
|
|
5996
5997
|
key: 1,
|
|
5997
5998
|
class: "backup-codes-content"
|
|
5998
5999
|
};
|
|
5999
|
-
const _hoisted_4$
|
|
6000
|
+
const _hoisted_4$9 = {
|
|
6000
6001
|
key: 0,
|
|
6001
6002
|
class: "backup-codes-device-info"
|
|
6002
6003
|
};
|
|
6003
|
-
const _hoisted_5$
|
|
6004
|
-
const _hoisted_6$
|
|
6005
|
-
const _hoisted_7$
|
|
6006
|
-
const _hoisted_8$
|
|
6007
|
-
const _hoisted_9$
|
|
6008
|
-
const _hoisted_10$
|
|
6009
|
-
const _hoisted_11$
|
|
6010
|
-
const _hoisted_12$
|
|
6011
|
-
const _hoisted_13$
|
|
6012
|
-
const _hoisted_14$
|
|
6004
|
+
const _hoisted_5$8 = { class: "backup-codes-device-content" };
|
|
6005
|
+
const _hoisted_6$6 = { class: "backup-codes-device-name" };
|
|
6006
|
+
const _hoisted_7$6 = { class: "backup-codes-device-type" };
|
|
6007
|
+
const _hoisted_8$6 = { key: 1 };
|
|
6008
|
+
const _hoisted_9$6 = { class: "backup-codes-grid-wrapper" };
|
|
6009
|
+
const _hoisted_10$5 = { class: "backup-codes-grid" };
|
|
6010
|
+
const _hoisted_11$5 = { class: "backup-codes-actions" };
|
|
6011
|
+
const _hoisted_12$5 = { class: "backup-codes-main-actions" };
|
|
6012
|
+
const _hoisted_13$5 = { class: "backup-codes-main-actions-content" };
|
|
6013
|
+
const _hoisted_14$5 = {
|
|
6013
6014
|
key: 2,
|
|
6014
6015
|
class: "backup-codes-regenerate-warning"
|
|
6015
6016
|
};
|
|
6016
|
-
const _hoisted_15$
|
|
6017
|
-
const _hoisted_16$
|
|
6018
|
-
const _sfc_main$
|
|
6017
|
+
const _hoisted_15$5 = { class: "backup-codes-regenerate-content" };
|
|
6018
|
+
const _hoisted_16$5 = { class: "backup-codes-regenerate-actions" };
|
|
6019
|
+
const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
6019
6020
|
__name: "StrandsBackupCodesModal",
|
|
6020
6021
|
props: {
|
|
6021
6022
|
show: { type: Boolean },
|
|
@@ -6098,7 +6099,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6098
6099
|
URL.revokeObjectURL(url);
|
|
6099
6100
|
};
|
|
6100
6101
|
return (_ctx, _cache) => {
|
|
6101
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
6102
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
|
|
6102
6103
|
vue.createVNode(StrandsUiModal, {
|
|
6103
6104
|
open: _ctx.show,
|
|
6104
6105
|
onClose: closeModal,
|
|
@@ -6128,16 +6129,16 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6128
6129
|
])
|
|
6129
6130
|
]),
|
|
6130
6131
|
default: vue.withCtx(() => [
|
|
6131
|
-
vue.unref(loading2) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
6132
|
+
vue.unref(loading2) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$a, [
|
|
6132
6133
|
vue.createVNode(vue.unref(StrandsUiLoader), { size: 24 }),
|
|
6133
6134
|
_cache[3] || (_cache[3] = vue.createElementVNode("span", { class: "backup-codes-loading-text" }, "Loading backup codes...", -1))
|
|
6134
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
6135
|
-
_ctx.device ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
6136
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
6135
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$a, [
|
|
6136
|
+
_ctx.device ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$9, [
|
|
6137
|
+
vue.createElementVNode("div", _hoisted_5$8, [
|
|
6137
6138
|
_cache[4] || (_cache[4] = vue.createElementVNode("span", { class: "backup-codes-device-icon" }, "📱", -1)),
|
|
6138
6139
|
vue.createElementVNode("div", null, [
|
|
6139
|
-
vue.createElementVNode("h3", _hoisted_6$
|
|
6140
|
-
vue.createElementVNode("p", _hoisted_7$
|
|
6140
|
+
vue.createElementVNode("h3", _hoisted_6$6, vue.toDisplayString(_ctx.device.device_name), 1),
|
|
6141
|
+
vue.createElementVNode("p", _hoisted_7$6, vue.toDisplayString(vue.unref(getDeviceTypeName)(_ctx.device.device_type)), 1)
|
|
6141
6142
|
])
|
|
6142
6143
|
])
|
|
6143
6144
|
])) : vue.createCommentVNode("", true),
|
|
@@ -6165,10 +6166,10 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6165
6166
|
])
|
|
6166
6167
|
])
|
|
6167
6168
|
], -1)),
|
|
6168
|
-
backupCodes.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$
|
|
6169
|
+
backupCodes.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$6, [
|
|
6169
6170
|
_cache[7] || (_cache[7] = vue.createElementVNode("h3", { class: "backup-codes-section-title" }, "Your Backup Codes", -1)),
|
|
6170
|
-
vue.createElementVNode("div", _hoisted_9$
|
|
6171
|
-
vue.createElementVNode("div", _hoisted_10$
|
|
6171
|
+
vue.createElementVNode("div", _hoisted_9$6, [
|
|
6172
|
+
vue.createElementVNode("div", _hoisted_10$5, [
|
|
6172
6173
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(backupCodes.value, (code, index) => {
|
|
6173
6174
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
6174
6175
|
key: index,
|
|
@@ -6177,7 +6178,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6177
6178
|
}), 128))
|
|
6178
6179
|
])
|
|
6179
6180
|
]),
|
|
6180
|
-
vue.createElementVNode("div", _hoisted_11$
|
|
6181
|
+
vue.createElementVNode("div", _hoisted_11$5, [
|
|
6181
6182
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
6182
6183
|
variant: "secondary",
|
|
6183
6184
|
size: "sm",
|
|
@@ -6202,8 +6203,8 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6202
6203
|
})
|
|
6203
6204
|
])
|
|
6204
6205
|
])) : vue.createCommentVNode("", true),
|
|
6205
|
-
vue.createElementVNode("div", _hoisted_12$
|
|
6206
|
-
vue.createElementVNode("div", _hoisted_13$
|
|
6206
|
+
vue.createElementVNode("div", _hoisted_12$5, [
|
|
6207
|
+
vue.createElementVNode("div", _hoisted_13$5, [
|
|
6207
6208
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
6208
6209
|
variant: "secondary",
|
|
6209
6210
|
onClick: regenerateCodes,
|
|
@@ -6228,8 +6229,8 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6228
6229
|
})
|
|
6229
6230
|
])
|
|
6230
6231
|
]),
|
|
6231
|
-
showRegenerateWarning.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$
|
|
6232
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
6232
|
+
showRegenerateWarning.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$5, [
|
|
6233
|
+
vue.createElementVNode("div", _hoisted_15$5, [
|
|
6233
6234
|
_cache[14] || (_cache[14] = vue.createElementVNode("svg", {
|
|
6234
6235
|
class: "backup-codes-regenerate-icon",
|
|
6235
6236
|
fill: "currentColor",
|
|
@@ -6244,7 +6245,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6244
6245
|
vue.createElementVNode("div", null, [
|
|
6245
6246
|
_cache[12] || (_cache[12] = vue.createElementVNode("p", { class: "backup-codes-regenerate-title" }, "Regenerate Backup Codes?", -1)),
|
|
6246
6247
|
_cache[13] || (_cache[13] = vue.createElementVNode("p", { class: "backup-codes-regenerate-description" }, " This will invalidate all current backup codes. Make sure to save the new ones. ", -1)),
|
|
6247
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
6248
|
+
vue.createElementVNode("div", _hoisted_16$5, [
|
|
6248
6249
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
6249
6250
|
variant: "primary",
|
|
6250
6251
|
size: "sm",
|
|
@@ -6281,12 +6282,12 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
6281
6282
|
};
|
|
6282
6283
|
}
|
|
6283
6284
|
});
|
|
6284
|
-
const StrandsBackupCodesModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6285
|
-
const _hoisted_1$
|
|
6286
|
-
const _hoisted_2$
|
|
6287
|
-
const _hoisted_3$
|
|
6288
|
-
const _hoisted_4$
|
|
6289
|
-
const _sfc_main$
|
|
6285
|
+
const StrandsBackupCodesModal = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-ab2930f9"]]);
|
|
6286
|
+
const _hoisted_1$b = { class: "accui-component-scope" };
|
|
6287
|
+
const _hoisted_2$9 = { class: "confirm-modal-title" };
|
|
6288
|
+
const _hoisted_3$9 = { class: "confirm-modal-message" };
|
|
6289
|
+
const _hoisted_4$8 = { class: "confirm-modal-actions" };
|
|
6290
|
+
const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
6290
6291
|
__name: "StrandsConfirmModal",
|
|
6291
6292
|
props: {
|
|
6292
6293
|
show: { type: Boolean },
|
|
@@ -6308,17 +6309,17 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
6308
6309
|
emit("cancel");
|
|
6309
6310
|
};
|
|
6310
6311
|
return (_ctx, _cache) => {
|
|
6311
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
6312
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
|
|
6312
6313
|
vue.createVNode(StrandsUiModal, {
|
|
6313
6314
|
open: _ctx.show,
|
|
6314
6315
|
"card-class": "confirm-modal"
|
|
6315
6316
|
}, {
|
|
6316
6317
|
header: vue.withCtx(() => [
|
|
6317
|
-
vue.createElementVNode("h2", _hoisted_2$
|
|
6318
|
+
vue.createElementVNode("h2", _hoisted_2$9, vue.toDisplayString(_ctx.title), 1)
|
|
6318
6319
|
]),
|
|
6319
6320
|
default: vue.withCtx(() => [
|
|
6320
|
-
vue.createElementVNode("p", _hoisted_3$
|
|
6321
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
6321
|
+
vue.createElementVNode("p", _hoisted_3$9, vue.toDisplayString(_ctx.message), 1),
|
|
6322
|
+
vue.createElementVNode("div", _hoisted_4$8, [
|
|
6322
6323
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
6323
6324
|
variant: "secondary",
|
|
6324
6325
|
onClick: handleCancel,
|
|
@@ -6348,57 +6349,57 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
6348
6349
|
};
|
|
6349
6350
|
}
|
|
6350
6351
|
});
|
|
6351
|
-
const StrandsConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6352
|
-
const _hoisted_1$
|
|
6353
|
-
const _hoisted_2$
|
|
6352
|
+
const StrandsConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-22fcdfc7"]]);
|
|
6353
|
+
const _hoisted_1$a = { class: "accui-component-scope" };
|
|
6354
|
+
const _hoisted_2$8 = {
|
|
6354
6355
|
key: 0,
|
|
6355
6356
|
class: "mfa-loading"
|
|
6356
6357
|
};
|
|
6357
|
-
const _hoisted_3$
|
|
6358
|
+
const _hoisted_3$8 = {
|
|
6358
6359
|
key: 1,
|
|
6359
6360
|
class: "mfa-content"
|
|
6360
6361
|
};
|
|
6361
|
-
const _hoisted_4$
|
|
6362
|
-
const _hoisted_5$
|
|
6363
|
-
const _hoisted_6$
|
|
6364
|
-
const _hoisted_7$
|
|
6365
|
-
const _hoisted_8$
|
|
6362
|
+
const _hoisted_4$7 = { class: "mfa-status-overview" };
|
|
6363
|
+
const _hoisted_5$7 = { class: "mfa-status-content" };
|
|
6364
|
+
const _hoisted_6$5 = { class: "mfa-status-subtitle" };
|
|
6365
|
+
const _hoisted_7$5 = { class: "mfa-status-badges" };
|
|
6366
|
+
const _hoisted_8$5 = {
|
|
6366
6367
|
key: 0,
|
|
6367
6368
|
class: "mfa-status-badge mfa-status-badge-enabled"
|
|
6368
6369
|
};
|
|
6369
|
-
const _hoisted_9$
|
|
6370
|
+
const _hoisted_9$5 = {
|
|
6370
6371
|
key: 1,
|
|
6371
6372
|
class: "mfa-status-badge mfa-status-badge-disabled"
|
|
6372
6373
|
};
|
|
6373
|
-
const _hoisted_10$
|
|
6374
|
-
const _hoisted_11$
|
|
6374
|
+
const _hoisted_10$4 = { class: "mfa-tabs-container" };
|
|
6375
|
+
const _hoisted_11$4 = {
|
|
6375
6376
|
class: "mfa-tabs-nav",
|
|
6376
6377
|
"aria-label": "Tabs"
|
|
6377
6378
|
};
|
|
6378
|
-
const _hoisted_12$
|
|
6379
|
+
const _hoisted_12$4 = {
|
|
6379
6380
|
key: 0,
|
|
6380
6381
|
class: "mfa-add-devices"
|
|
6381
6382
|
};
|
|
6382
|
-
const _hoisted_13$
|
|
6383
|
-
const _hoisted_14$
|
|
6384
|
-
const _hoisted_15$
|
|
6385
|
-
const _hoisted_16$
|
|
6386
|
-
const _hoisted_17$
|
|
6387
|
-
const _hoisted_18$
|
|
6388
|
-
const _hoisted_19$
|
|
6389
|
-
const _hoisted_20$
|
|
6383
|
+
const _hoisted_13$4 = { class: "mfa-device-options" };
|
|
6384
|
+
const _hoisted_14$4 = { class: "mfa-device-layout" };
|
|
6385
|
+
const _hoisted_15$4 = { class: "mfa-device-icon-container mfa-device-icon-totp" };
|
|
6386
|
+
const _hoisted_16$4 = { class: "mfa-device-action" };
|
|
6387
|
+
const _hoisted_17$4 = { class: "mfa-device-layout" };
|
|
6388
|
+
const _hoisted_18$4 = { class: "mfa-device-icon-container mfa-device-icon-email" };
|
|
6389
|
+
const _hoisted_19$2 = { class: "mfa-device-action" };
|
|
6390
|
+
const _hoisted_20$2 = {
|
|
6390
6391
|
key: 1,
|
|
6391
6392
|
class: "mfa-manage-devices"
|
|
6392
6393
|
};
|
|
6393
|
-
const _hoisted_21$
|
|
6394
|
-
const _hoisted_22$
|
|
6395
|
-
const _hoisted_23$
|
|
6396
|
-
const _hoisted_24$
|
|
6397
|
-
const _hoisted_25$
|
|
6398
|
-
const _hoisted_26$
|
|
6399
|
-
const _hoisted_27$
|
|
6400
|
-
const _hoisted_28$
|
|
6401
|
-
const _sfc_main$
|
|
6394
|
+
const _hoisted_21$2 = { class: "mfa-devices-list" };
|
|
6395
|
+
const _hoisted_22$2 = { class: "mfa-device-card-content" };
|
|
6396
|
+
const _hoisted_23$2 = { class: "mfa-device-card-info" };
|
|
6397
|
+
const _hoisted_24$2 = { class: "mfa-device-card-details" };
|
|
6398
|
+
const _hoisted_25$2 = { class: "mfa-device-card-name" };
|
|
6399
|
+
const _hoisted_26$2 = { class: "mfa-device-card-type" };
|
|
6400
|
+
const _hoisted_27$2 = { class: "mfa-device-card-last-used" };
|
|
6401
|
+
const _hoisted_28$2 = { class: "mfa-device-card-actions" };
|
|
6402
|
+
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
6402
6403
|
__name: "StrandsMfaModal",
|
|
6403
6404
|
props: {
|
|
6404
6405
|
show: { type: Boolean }
|
|
@@ -6531,7 +6532,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6531
6532
|
}
|
|
6532
6533
|
};
|
|
6533
6534
|
return (_ctx, _cache) => {
|
|
6534
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
6535
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
|
|
6535
6536
|
vue.createVNode(StrandsUiModal, {
|
|
6536
6537
|
open: showModal.value,
|
|
6537
6538
|
onClose: closeModal,
|
|
@@ -6561,29 +6562,29 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6561
6562
|
])
|
|
6562
6563
|
]),
|
|
6563
6564
|
default: vue.withCtx(() => [
|
|
6564
|
-
vue.unref(mfaLoading) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
6565
|
+
vue.unref(mfaLoading) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$8, [
|
|
6565
6566
|
vue.createVNode(vue.unref(StrandsUiLoader), { size: 32 }),
|
|
6566
6567
|
_cache[10] || (_cache[10] = vue.createElementVNode("span", { class: "mfa-loading-text" }, "Loading MFA settings...", -1))
|
|
6567
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
6568
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
6569
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
6568
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$8, [
|
|
6569
|
+
vue.createElementVNode("div", _hoisted_4$7, [
|
|
6570
|
+
vue.createElementVNode("div", _hoisted_5$7, [
|
|
6570
6571
|
vue.createElementVNode("div", null, [
|
|
6571
6572
|
_cache[11] || (_cache[11] = vue.createElementVNode("h3", { class: "mfa-status-title" }, "Two-Factor Authentication", -1)),
|
|
6572
|
-
vue.createElementVNode("p", _hoisted_6$
|
|
6573
|
+
vue.createElementVNode("p", _hoisted_6$5, vue.toDisplayString(vue.unref(mfaEnabled2) ? "Enabled" : "Add extra security to your account"), 1)
|
|
6573
6574
|
]),
|
|
6574
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
6575
|
-
vue.unref(mfaEnabled2) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_8$
|
|
6575
|
+
vue.createElementVNode("div", _hoisted_7$5, [
|
|
6576
|
+
vue.unref(mfaEnabled2) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_8$5, [
|
|
6576
6577
|
vue.createVNode(Shield, {
|
|
6577
6578
|
size: 12,
|
|
6578
6579
|
class: "mfa-badge-icon"
|
|
6579
6580
|
}),
|
|
6580
6581
|
_cache[12] || (_cache[12] = vue.createTextVNode(" Enabled ", -1))
|
|
6581
|
-
])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_9$
|
|
6582
|
+
])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_9$5, " Not Enabled "))
|
|
6582
6583
|
])
|
|
6583
6584
|
])
|
|
6584
6585
|
]),
|
|
6585
|
-
vue.createElementVNode("div", _hoisted_10$
|
|
6586
|
-
vue.createElementVNode("nav", _hoisted_11$
|
|
6586
|
+
vue.createElementVNode("div", _hoisted_10$4, [
|
|
6587
|
+
vue.createElementVNode("nav", _hoisted_11$4, [
|
|
6587
6588
|
vue.createElementVNode("button", {
|
|
6588
6589
|
onClick: _cache[0] || (_cache[0] = ($event) => activeTab.value = "add"),
|
|
6589
6590
|
class: vue.normalizeClass([
|
|
@@ -6601,16 +6602,16 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6601
6602
|
}, " Active Devices (" + vue.toDisplayString(vue.unref(activeMfaDevices).length) + ") ", 3)) : vue.createCommentVNode("", true)
|
|
6602
6603
|
])
|
|
6603
6604
|
]),
|
|
6604
|
-
activeTab.value === "add" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$
|
|
6605
|
+
activeTab.value === "add" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$4, [
|
|
6605
6606
|
vue.createElementVNode("div", null, [
|
|
6606
6607
|
_cache[17] || (_cache[17] = vue.createElementVNode("h3", { class: "mfa-section-title" }, "Choose Your Authentication Method", -1)),
|
|
6607
|
-
vue.createElementVNode("div", _hoisted_13$
|
|
6608
|
+
vue.createElementVNode("div", _hoisted_13$4, [
|
|
6608
6609
|
vue.createElementVNode("div", {
|
|
6609
6610
|
class: "mfa-device-option",
|
|
6610
6611
|
onClick: startTotpSetup
|
|
6611
6612
|
}, [
|
|
6612
|
-
vue.createElementVNode("div", _hoisted_14$
|
|
6613
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
6613
|
+
vue.createElementVNode("div", _hoisted_14$4, [
|
|
6614
|
+
vue.createElementVNode("div", _hoisted_15$4, [
|
|
6614
6615
|
vue.createVNode(Smartphone, {
|
|
6615
6616
|
size: 24,
|
|
6616
6617
|
class: "mfa-device-icon"
|
|
@@ -6622,7 +6623,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6622
6623
|
vue.createElementVNode("p", { class: "mfa-device-description" }, " Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes ")
|
|
6623
6624
|
])
|
|
6624
6625
|
], -1)),
|
|
6625
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
6626
|
+
vue.createElementVNode("div", _hoisted_16$4, [
|
|
6626
6627
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
6627
6628
|
variant: "primary",
|
|
6628
6629
|
size: "md",
|
|
@@ -6642,8 +6643,8 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6642
6643
|
class: "mfa-device-option",
|
|
6643
6644
|
onClick: startEmailMfaSetup
|
|
6644
6645
|
}, [
|
|
6645
|
-
vue.createElementVNode("div", _hoisted_17$
|
|
6646
|
-
vue.createElementVNode("div", _hoisted_18$
|
|
6646
|
+
vue.createElementVNode("div", _hoisted_17$4, [
|
|
6647
|
+
vue.createElementVNode("div", _hoisted_18$4, [
|
|
6647
6648
|
vue.createVNode(Mail, {
|
|
6648
6649
|
size: 24,
|
|
6649
6650
|
class: "mfa-device-icon"
|
|
@@ -6655,7 +6656,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6655
6656
|
vue.createElementVNode("p", { class: "mfa-device-description" }, " Receive verification codes directly in your email inbox for easy access ")
|
|
6656
6657
|
])
|
|
6657
6658
|
], -1)),
|
|
6658
|
-
vue.createElementVNode("div", _hoisted_19$
|
|
6659
|
+
vue.createElementVNode("div", _hoisted_19$2, [
|
|
6659
6660
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
6660
6661
|
variant: "primary",
|
|
6661
6662
|
size: "md",
|
|
@@ -6673,17 +6674,17 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6673
6674
|
])
|
|
6674
6675
|
])
|
|
6675
6676
|
])
|
|
6676
|
-
])) : activeTab.value === "manage" && vue.unref(activeMfaDevices).length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_20$
|
|
6677
|
+
])) : activeTab.value === "manage" && vue.unref(activeMfaDevices).length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_20$2, [
|
|
6677
6678
|
vue.createElementVNode("div", null, [
|
|
6678
6679
|
_cache[21] || (_cache[21] = vue.createElementVNode("h3", { class: "mfa-section-title" }, "Manage Your Active Devices", -1)),
|
|
6679
|
-
vue.createElementVNode("div", _hoisted_21$
|
|
6680
|
+
vue.createElementVNode("div", _hoisted_21$2, [
|
|
6680
6681
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(activeMfaDevices), (device) => {
|
|
6681
6682
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
6682
6683
|
key: device.id,
|
|
6683
6684
|
class: "mfa-device-card"
|
|
6684
6685
|
}, [
|
|
6685
|
-
vue.createElementVNode("div", _hoisted_22$
|
|
6686
|
-
vue.createElementVNode("div", _hoisted_23$
|
|
6686
|
+
vue.createElementVNode("div", _hoisted_22$2, [
|
|
6687
|
+
vue.createElementVNode("div", _hoisted_23$2, [
|
|
6687
6688
|
vue.createElementVNode("div", {
|
|
6688
6689
|
class: vue.normalizeClass(["mfa-device-card-icon-container", getDeviceIconBackground(device.device_type)])
|
|
6689
6690
|
}, [
|
|
@@ -6692,13 +6693,13 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6692
6693
|
class: "mfa-device-card-icon"
|
|
6693
6694
|
}))
|
|
6694
6695
|
], 2),
|
|
6695
|
-
vue.createElementVNode("div", _hoisted_24$
|
|
6696
|
-
vue.createElementVNode("h4", _hoisted_25$
|
|
6697
|
-
vue.createElementVNode("p", _hoisted_26$
|
|
6698
|
-
vue.createElementVNode("p", _hoisted_27$
|
|
6696
|
+
vue.createElementVNode("div", _hoisted_24$2, [
|
|
6697
|
+
vue.createElementVNode("h4", _hoisted_25$2, vue.toDisplayString(device.device_name), 1),
|
|
6698
|
+
vue.createElementVNode("p", _hoisted_26$2, vue.toDisplayString(vue.unref(getDeviceTypeName)(device.device_type)), 1),
|
|
6699
|
+
vue.createElementVNode("p", _hoisted_27$2, " Last used " + vue.toDisplayString(vue.unref(formatLastUsed)(device.last_used_at)), 1)
|
|
6699
6700
|
])
|
|
6700
6701
|
]),
|
|
6701
|
-
vue.createElementVNode("div", _hoisted_28$
|
|
6702
|
+
vue.createElementVNode("div", _hoisted_28$2, [
|
|
6702
6703
|
device.device_type === "totp" || device.device_type === "hardware" || device.device_type === "passkey" ? (vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
6703
6704
|
key: 0,
|
|
6704
6705
|
variant: "secondary",
|
|
@@ -6808,17 +6809,17 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
6808
6809
|
};
|
|
6809
6810
|
}
|
|
6810
6811
|
});
|
|
6811
|
-
const StrandsMfaModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6812
|
-
const _hoisted_1$
|
|
6813
|
-
const _hoisted_2$
|
|
6814
|
-
const _hoisted_3$
|
|
6815
|
-
const _hoisted_4$
|
|
6816
|
-
const _hoisted_5$
|
|
6817
|
-
const _hoisted_6$
|
|
6818
|
-
const _hoisted_7$
|
|
6819
|
-
const _hoisted_8$
|
|
6820
|
-
const _hoisted_9$
|
|
6821
|
-
const _sfc_main$
|
|
6812
|
+
const StrandsMfaModal = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-7b615ace"]]);
|
|
6813
|
+
const _hoisted_1$9 = { class: "accui-component-scope" };
|
|
6814
|
+
const _hoisted_2$7 = { class: "settings-header" };
|
|
6815
|
+
const _hoisted_3$7 = { class: "settings-content" };
|
|
6816
|
+
const _hoisted_4$6 = { class: "settings-section" };
|
|
6817
|
+
const _hoisted_5$6 = { class: "settings-option" };
|
|
6818
|
+
const _hoisted_6$4 = { class: "settings-option-content" };
|
|
6819
|
+
const _hoisted_7$4 = { class: "settings-option" };
|
|
6820
|
+
const _hoisted_8$4 = { class: "settings-option-content" };
|
|
6821
|
+
const _hoisted_9$4 = { class: "settings-footer" };
|
|
6822
|
+
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
6822
6823
|
__name: "StrandsSettingsModal",
|
|
6823
6824
|
props: {
|
|
6824
6825
|
open: { type: Boolean, default: false }
|
|
@@ -6858,14 +6859,14 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6858
6859
|
}
|
|
6859
6860
|
};
|
|
6860
6861
|
return (_ctx, _cache) => {
|
|
6861
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
6862
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
|
|
6862
6863
|
vue.createVNode(StrandsUiModal, {
|
|
6863
6864
|
open: true,
|
|
6864
6865
|
onClose: _cache[6] || (_cache[6] = ($event) => _ctx.$emit("close")),
|
|
6865
6866
|
"card-class": "max-w-lg"
|
|
6866
6867
|
}, {
|
|
6867
6868
|
header: vue.withCtx(() => [
|
|
6868
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
6869
|
+
vue.createElementVNode("div", _hoisted_2$7, [
|
|
6869
6870
|
_cache[8] || (_cache[8] = vue.createElementVNode("h2", { class: "settings-title" }, "Settings", -1)),
|
|
6870
6871
|
vue.createElementVNode("button", {
|
|
6871
6872
|
class: "settings-close-button",
|
|
@@ -6889,7 +6890,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6889
6890
|
])
|
|
6890
6891
|
]),
|
|
6891
6892
|
footer: vue.withCtx(() => [
|
|
6892
|
-
vue.createElementVNode("div", _hoisted_9$
|
|
6893
|
+
vue.createElementVNode("div", _hoisted_9$4, [
|
|
6893
6894
|
vue.createVNode(StrandsUiButton, {
|
|
6894
6895
|
variant: "secondary",
|
|
6895
6896
|
onClick: _cache[5] || (_cache[5] = ($event) => _ctx.$emit("close"))
|
|
@@ -6913,11 +6914,11 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6913
6914
|
])
|
|
6914
6915
|
]),
|
|
6915
6916
|
default: vue.withCtx(() => [
|
|
6916
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
6917
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
6917
|
+
vue.createElementVNode("div", _hoisted_3$7, [
|
|
6918
|
+
vue.createElementVNode("div", _hoisted_4$6, [
|
|
6918
6919
|
_cache[11] || (_cache[11] = vue.createElementVNode("h3", { class: "settings-section-title" }, "Audio Preferences", -1)),
|
|
6919
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
6920
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
6920
|
+
vue.createElementVNode("div", _hoisted_5$6, [
|
|
6921
|
+
vue.createElementVNode("div", _hoisted_6$4, [
|
|
6921
6922
|
_cache[9] || (_cache[9] = vue.createElementVNode("div", { class: "settings-option-info" }, [
|
|
6922
6923
|
vue.createElementVNode("label", {
|
|
6923
6924
|
for: "level-up-sounds",
|
|
@@ -6935,8 +6936,8 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6935
6936
|
}, null, 8, ["modelValue"])
|
|
6936
6937
|
])
|
|
6937
6938
|
]),
|
|
6938
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
6939
|
-
vue.createElementVNode("div", _hoisted_8$
|
|
6939
|
+
vue.createElementVNode("div", _hoisted_7$4, [
|
|
6940
|
+
vue.createElementVNode("div", _hoisted_8$4, [
|
|
6940
6941
|
_cache[10] || (_cache[10] = vue.createElementVNode("div", { class: "settings-option-info" }, [
|
|
6941
6942
|
vue.createElementVNode("label", {
|
|
6942
6943
|
for: "milestone-sounds",
|
|
@@ -6963,18 +6964,393 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6963
6964
|
};
|
|
6964
6965
|
}
|
|
6965
6966
|
});
|
|
6966
|
-
const StrandsSettingsModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6967
|
+
const StrandsSettingsModal = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f0e4ff21"]]);
|
|
6968
|
+
const _hoisted_1$8 = { class: "modal-header-content" };
|
|
6969
|
+
const _hoisted_2$6 = { class: "modal-subtitle" };
|
|
6970
|
+
const _hoisted_3$6 = { class: "strands-sessions-modal" };
|
|
6971
|
+
const _hoisted_4$5 = {
|
|
6972
|
+
key: 0,
|
|
6973
|
+
class: "sessions-loading"
|
|
6974
|
+
};
|
|
6975
|
+
const _hoisted_5$5 = {
|
|
6976
|
+
key: 1,
|
|
6977
|
+
class: "sessions-empty"
|
|
6978
|
+
};
|
|
6979
|
+
const _hoisted_6$3 = {
|
|
6980
|
+
key: 2,
|
|
6981
|
+
class: "sessions-container"
|
|
6982
|
+
};
|
|
6983
|
+
const _hoisted_7$3 = {
|
|
6984
|
+
key: 0,
|
|
6985
|
+
class: "session-stats"
|
|
6986
|
+
};
|
|
6987
|
+
const _hoisted_8$3 = { class: "stat-card" };
|
|
6988
|
+
const _hoisted_9$3 = { class: "stat-value" };
|
|
6989
|
+
const _hoisted_10$3 = { class: "stat-card" };
|
|
6990
|
+
const _hoisted_11$3 = { class: "stat-value" };
|
|
6991
|
+
const _hoisted_12$3 = {
|
|
6992
|
+
key: 0,
|
|
6993
|
+
class: "stat-card"
|
|
6994
|
+
};
|
|
6995
|
+
const _hoisted_13$3 = { class: "stat-value" };
|
|
6996
|
+
const _hoisted_14$3 = { class: "sessions-list" };
|
|
6997
|
+
const _hoisted_15$3 = { class: "session-header" };
|
|
6998
|
+
const _hoisted_16$3 = { class: "session-device" };
|
|
6999
|
+
const _hoisted_17$3 = { class: "device-icon" };
|
|
7000
|
+
const _hoisted_18$3 = { class: "device-info" };
|
|
7001
|
+
const _hoisted_19$1 = { class: "device-name" };
|
|
7002
|
+
const _hoisted_20$1 = {
|
|
7003
|
+
key: 0,
|
|
7004
|
+
class: "current-badge"
|
|
7005
|
+
};
|
|
7006
|
+
const _hoisted_21$1 = { class: "device-type" };
|
|
7007
|
+
const _hoisted_22$1 = { key: 1 };
|
|
7008
|
+
const _hoisted_23$1 = { key: 1 };
|
|
7009
|
+
const _hoisted_24$1 = { class: "session-details" };
|
|
7010
|
+
const _hoisted_25$1 = { class: "detail-row" };
|
|
7011
|
+
const _hoisted_26$1 = { class: "detail-icon" };
|
|
7012
|
+
const _hoisted_27$1 = { class: "detail-text" };
|
|
7013
|
+
const _hoisted_28$1 = {
|
|
7014
|
+
key: 0,
|
|
7015
|
+
class: "detail-row"
|
|
7016
|
+
};
|
|
7017
|
+
const _hoisted_29$1 = { class: "detail-icon" };
|
|
7018
|
+
const _hoisted_30$1 = { class: "detail-text" };
|
|
7019
|
+
const _hoisted_31$1 = { class: "detail-row" };
|
|
7020
|
+
const _hoisted_32$1 = { class: "detail-icon" };
|
|
7021
|
+
const _hoisted_33$1 = { class: "detail-text" };
|
|
7022
|
+
const _hoisted_34$1 = { class: "detail-row" };
|
|
7023
|
+
const _hoisted_35$1 = { class: "detail-icon" };
|
|
7024
|
+
const _hoisted_36$1 = { class: "detail-text" };
|
|
7025
|
+
const _hoisted_37$1 = {
|
|
7026
|
+
key: 1,
|
|
7027
|
+
class: "bulk-actions"
|
|
7028
|
+
};
|
|
7029
|
+
const _hoisted_38$1 = { key: 1 };
|
|
7030
|
+
const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
7031
|
+
__name: "StrandsSessionsModal",
|
|
7032
|
+
props: {
|
|
7033
|
+
modelValue: { type: Boolean }
|
|
7034
|
+
},
|
|
7035
|
+
emits: ["update:modelValue", "sessionsUpdated", "currentSessionRevoked"],
|
|
7036
|
+
setup(__props, { emit: __emit }) {
|
|
7037
|
+
const Monitor = { template: `<svg :width="size" :height="size" fill="none" stroke="currentColor" viewBox="0 0 24 24"><rect x="2" y="7" width="20" height="10" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>`, props: ["size"] };
|
|
7038
|
+
const Smartphone = { template: `<svg :width="size" :height="size" fill="none" stroke="currentColor" viewBox="0 0 24 24"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>`, props: ["size"] };
|
|
7039
|
+
const Tablet = { template: `<svg :width="size" :height="size" fill="none" stroke="currentColor" viewBox="0 0 24 24"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>`, props: ["size"] };
|
|
7040
|
+
const MapPin = { template: `<svg :width="size" :height="size" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"/><circle cx="12" cy="10" r="3"/></svg>`, props: ["size"] };
|
|
7041
|
+
const Globe = { template: `<svg :width="size" :height="size" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/></svg>`, props: ["size"] };
|
|
7042
|
+
const Clock = { template: `<svg :width="size" :height="size" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>`, props: ["size"] };
|
|
7043
|
+
const Calendar = { template: `<svg :width="size" :height="size" fill="none" stroke="currentColor" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>`, props: ["size"] };
|
|
7044
|
+
const props = __props;
|
|
7045
|
+
const emit = __emit;
|
|
7046
|
+
const { getUserSessions, getSessionStats, revokeSession, revokeAllOtherSessions, signOut } = useStrandsAuth.useStrandsAuth();
|
|
7047
|
+
const visible = vue.ref(props.modelValue);
|
|
7048
|
+
const loading2 = vue.ref(false);
|
|
7049
|
+
const sessions = vue.ref([]);
|
|
7050
|
+
const stats = vue.ref(null);
|
|
7051
|
+
const revokingSession = vue.ref(null);
|
|
7052
|
+
const revokingAll = vue.ref(false);
|
|
7053
|
+
const error = vue.ref(null);
|
|
7054
|
+
vue.watch(() => props.modelValue, (newVal) => {
|
|
7055
|
+
visible.value = newVal;
|
|
7056
|
+
if (newVal) {
|
|
7057
|
+
loadSessions();
|
|
7058
|
+
}
|
|
7059
|
+
});
|
|
7060
|
+
const loadSessions = async () => {
|
|
7061
|
+
loading2.value = true;
|
|
7062
|
+
error.value = null;
|
|
7063
|
+
try {
|
|
7064
|
+
const [sessionsData, statsData] = await Promise.all([
|
|
7065
|
+
getUserSessions(),
|
|
7066
|
+
getSessionStats()
|
|
7067
|
+
]);
|
|
7068
|
+
sessions.value = sessionsData || [];
|
|
7069
|
+
stats.value = statsData || null;
|
|
7070
|
+
} catch (err) {
|
|
7071
|
+
console.error("Failed to load sessions:", err);
|
|
7072
|
+
error.value = "Failed to load sessions. Please try again.";
|
|
7073
|
+
sessions.value = [];
|
|
7074
|
+
} finally {
|
|
7075
|
+
loading2.value = false;
|
|
7076
|
+
}
|
|
7077
|
+
};
|
|
7078
|
+
const handleClose = () => {
|
|
7079
|
+
visible.value = false;
|
|
7080
|
+
emit("update:modelValue", false);
|
|
7081
|
+
};
|
|
7082
|
+
const handleRevokeSession = async (sessionId) => {
|
|
7083
|
+
if (!confirm("Are you sure you want to end this session? The device will be signed out.")) {
|
|
7084
|
+
return;
|
|
7085
|
+
}
|
|
7086
|
+
revokingSession.value = sessionId;
|
|
7087
|
+
try {
|
|
7088
|
+
await revokeSession(sessionId);
|
|
7089
|
+
await loadSessions();
|
|
7090
|
+
emit("sessionsUpdated");
|
|
7091
|
+
} catch (err) {
|
|
7092
|
+
console.error("Failed to revoke session:", err);
|
|
7093
|
+
alert("Failed to end session. Please try again.");
|
|
7094
|
+
} finally {
|
|
7095
|
+
revokingSession.value = null;
|
|
7096
|
+
}
|
|
7097
|
+
};
|
|
7098
|
+
const handleRevokeAllOther = async () => {
|
|
7099
|
+
if (!confirm("Are you sure you want to end all other sessions? You will be signed out on all other devices.")) {
|
|
7100
|
+
return;
|
|
7101
|
+
}
|
|
7102
|
+
revokingAll.value = true;
|
|
7103
|
+
try {
|
|
7104
|
+
await revokeAllOtherSessions();
|
|
7105
|
+
await loadSessions();
|
|
7106
|
+
emit("sessionsUpdated");
|
|
7107
|
+
} catch (err) {
|
|
7108
|
+
console.error("Failed to revoke sessions:", err);
|
|
7109
|
+
alert("Failed to end sessions. Please try again.");
|
|
7110
|
+
} finally {
|
|
7111
|
+
revokingAll.value = false;
|
|
7112
|
+
}
|
|
7113
|
+
};
|
|
7114
|
+
const handleRevokeCurrentSession = async (sessionId) => {
|
|
7115
|
+
if (!confirm("Are you sure you want to sign out? You will need to sign in again to access your account.")) {
|
|
7116
|
+
return;
|
|
7117
|
+
}
|
|
7118
|
+
revokingSession.value = sessionId;
|
|
7119
|
+
try {
|
|
7120
|
+
await revokeSession(sessionId);
|
|
7121
|
+
await signOut();
|
|
7122
|
+
visible.value = false;
|
|
7123
|
+
emit("update:modelValue", false);
|
|
7124
|
+
emit("sessionsUpdated");
|
|
7125
|
+
emit("currentSessionRevoked");
|
|
7126
|
+
} catch (err) {
|
|
7127
|
+
console.error("Failed to revoke current session:", err);
|
|
7128
|
+
alert("Failed to sign out. Please try again.");
|
|
7129
|
+
} finally {
|
|
7130
|
+
revokingSession.value = null;
|
|
7131
|
+
}
|
|
7132
|
+
};
|
|
7133
|
+
const getDeviceIcon = (deviceType) => {
|
|
7134
|
+
switch (deviceType?.toLowerCase()) {
|
|
7135
|
+
case "mobile":
|
|
7136
|
+
return Smartphone;
|
|
7137
|
+
case "tablet":
|
|
7138
|
+
return Tablet;
|
|
7139
|
+
default:
|
|
7140
|
+
return Monitor;
|
|
7141
|
+
}
|
|
7142
|
+
};
|
|
7143
|
+
const formatTimeAgo = (date) => {
|
|
7144
|
+
if (!date) return "Unknown";
|
|
7145
|
+
const now = /* @__PURE__ */ new Date();
|
|
7146
|
+
const then = new Date(date);
|
|
7147
|
+
const seconds = Math.floor((now.getTime() - then.getTime()) / 1e3);
|
|
7148
|
+
if (seconds < 60) return "just now";
|
|
7149
|
+
if (seconds < 3600) return `${Math.floor(seconds / 60)} minutes ago`;
|
|
7150
|
+
if (seconds < 86400) return `${Math.floor(seconds / 3600)} hours ago`;
|
|
7151
|
+
if (seconds < 604800) return `${Math.floor(seconds / 86400)} days ago`;
|
|
7152
|
+
return then.toLocaleDateString();
|
|
7153
|
+
};
|
|
7154
|
+
const formatDate2 = (date) => {
|
|
7155
|
+
if (!date) return "Unknown";
|
|
7156
|
+
return new Date(date).toLocaleDateString("en-US", {
|
|
7157
|
+
month: "short",
|
|
7158
|
+
day: "numeric",
|
|
7159
|
+
year: "numeric",
|
|
7160
|
+
hour: "2-digit",
|
|
7161
|
+
minute: "2-digit"
|
|
7162
|
+
});
|
|
7163
|
+
};
|
|
7164
|
+
if (visible.value) {
|
|
7165
|
+
loadSessions();
|
|
7166
|
+
}
|
|
7167
|
+
return (_ctx, _cache) => {
|
|
7168
|
+
return vue.openBlock(), vue.createBlock(vue.unref(StrandsUiModal), {
|
|
7169
|
+
open: visible.value,
|
|
7170
|
+
onClose: handleClose
|
|
7171
|
+
}, {
|
|
7172
|
+
header: vue.withCtx(() => [
|
|
7173
|
+
vue.createElementVNode("div", _hoisted_1$8, [
|
|
7174
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("h2", { class: "modal-title" }, "Active Sessions", -1)),
|
|
7175
|
+
vue.createElementVNode("p", _hoisted_2$6, "Manage your " + vue.toDisplayString(sessions.value.length) + " active device" + vue.toDisplayString(sessions.value.length !== 1 ? "s" : ""), 1)
|
|
7176
|
+
])
|
|
7177
|
+
]),
|
|
7178
|
+
default: vue.withCtx(() => [
|
|
7179
|
+
vue.createElementVNode("div", _hoisted_3$6, [
|
|
7180
|
+
loading2.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$5, [
|
|
7181
|
+
vue.createVNode(vue.unref(StrandsUiLoader), { size: 40 }),
|
|
7182
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("p", { class: "loading-text" }, "Loading sessions...", -1))
|
|
7183
|
+
])) : sessions.value.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$5, _cache[2] || (_cache[2] = [
|
|
7184
|
+
vue.createElementVNode("div", { class: "empty-icon" }, [
|
|
7185
|
+
vue.createElementVNode("svg", {
|
|
7186
|
+
width: "48",
|
|
7187
|
+
height: "48",
|
|
7188
|
+
viewBox: "0 0 24 24",
|
|
7189
|
+
fill: "none",
|
|
7190
|
+
stroke: "currentColor",
|
|
7191
|
+
"stroke-width": "1.5"
|
|
7192
|
+
}, [
|
|
7193
|
+
vue.createElementVNode("rect", {
|
|
7194
|
+
x: "2",
|
|
7195
|
+
y: "4",
|
|
7196
|
+
width: "20",
|
|
7197
|
+
height: "16",
|
|
7198
|
+
rx: "2"
|
|
7199
|
+
}),
|
|
7200
|
+
vue.createElementVNode("line", {
|
|
7201
|
+
x1: "8",
|
|
7202
|
+
y1: "10",
|
|
7203
|
+
x2: "16",
|
|
7204
|
+
y2: "10"
|
|
7205
|
+
}),
|
|
7206
|
+
vue.createElementVNode("line", {
|
|
7207
|
+
x1: "8",
|
|
7208
|
+
y1: "14",
|
|
7209
|
+
x2: "12",
|
|
7210
|
+
y2: "14"
|
|
7211
|
+
})
|
|
7212
|
+
])
|
|
7213
|
+
], -1),
|
|
7214
|
+
vue.createElementVNode("h3", { class: "empty-title" }, "No Active Sessions", -1),
|
|
7215
|
+
vue.createElementVNode("p", { class: "empty-description" }, "You don't have any active sessions at the moment.", -1)
|
|
7216
|
+
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$3, [
|
|
7217
|
+
stats.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, [
|
|
7218
|
+
vue.createElementVNode("div", _hoisted_8$3, [
|
|
7219
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("span", { class: "stat-label" }, "Total Sessions", -1)),
|
|
7220
|
+
vue.createElementVNode("span", _hoisted_9$3, vue.toDisplayString(stats.value.total_sessions), 1)
|
|
7221
|
+
]),
|
|
7222
|
+
vue.createElementVNode("div", _hoisted_10$3, [
|
|
7223
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("span", { class: "stat-label" }, "Active Devices", -1)),
|
|
7224
|
+
vue.createElementVNode("span", _hoisted_11$3, vue.toDisplayString(stats.value.active_sessions), 1)
|
|
7225
|
+
]),
|
|
7226
|
+
stats.value.unique_locations && stats.value.unique_locations.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$3, [
|
|
7227
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("span", { class: "stat-label" }, "Locations", -1)),
|
|
7228
|
+
vue.createElementVNode("span", _hoisted_13$3, vue.toDisplayString(stats.value.unique_locations.length), 1)
|
|
7229
|
+
])) : vue.createCommentVNode("", true)
|
|
7230
|
+
])) : vue.createCommentVNode("", true),
|
|
7231
|
+
vue.createElementVNode("div", _hoisted_14$3, [
|
|
7232
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(sessions.value, (session) => {
|
|
7233
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
7234
|
+
key: session.id,
|
|
7235
|
+
class: vue.normalizeClass(["session-card", { "current-session": session.is_current }])
|
|
7236
|
+
}, [
|
|
7237
|
+
vue.createElementVNode("div", _hoisted_15$3, [
|
|
7238
|
+
vue.createElementVNode("div", _hoisted_16$3, [
|
|
7239
|
+
vue.createElementVNode("div", _hoisted_17$3, [
|
|
7240
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getDeviceIcon(session.device_type)), { size: 20 }))
|
|
7241
|
+
]),
|
|
7242
|
+
vue.createElementVNode("div", _hoisted_18$3, [
|
|
7243
|
+
vue.createElementVNode("h4", _hoisted_19$1, [
|
|
7244
|
+
vue.createTextVNode(vue.toDisplayString(session.device_name || "Unknown Device") + " ", 1),
|
|
7245
|
+
session.is_current ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_20$1, "Current")) : vue.createCommentVNode("", true)
|
|
7246
|
+
]),
|
|
7247
|
+
vue.createElementVNode("p", _hoisted_21$1, vue.toDisplayString(session.device_type || "Unknown type"), 1)
|
|
7248
|
+
])
|
|
7249
|
+
]),
|
|
7250
|
+
session.is_current ? (vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
7251
|
+
key: 0,
|
|
7252
|
+
variant: "outline",
|
|
7253
|
+
size: "sm",
|
|
7254
|
+
onClick: ($event) => handleRevokeCurrentSession(session.id),
|
|
7255
|
+
disabled: revokingSession.value === session.id,
|
|
7256
|
+
class: "current-session-button"
|
|
7257
|
+
}, {
|
|
7258
|
+
default: vue.withCtx(() => [
|
|
7259
|
+
revokingSession.value === session.id ? (vue.openBlock(), vue.createBlock(vue.unref(StrandsUiLoader), {
|
|
7260
|
+
key: 0,
|
|
7261
|
+
size: 16
|
|
7262
|
+
})) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_22$1, "Sign Out"))
|
|
7263
|
+
]),
|
|
7264
|
+
_: 2
|
|
7265
|
+
}, 1032, ["onClick", "disabled"])) : (vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
7266
|
+
key: 1,
|
|
7267
|
+
variant: "outline",
|
|
7268
|
+
size: "sm",
|
|
7269
|
+
onClick: ($event) => handleRevokeSession(session.id),
|
|
7270
|
+
disabled: revokingSession.value === session.id
|
|
7271
|
+
}, {
|
|
7272
|
+
default: vue.withCtx(() => [
|
|
7273
|
+
revokingSession.value === session.id ? (vue.openBlock(), vue.createBlock(vue.unref(StrandsUiLoader), {
|
|
7274
|
+
key: 0,
|
|
7275
|
+
size: 16
|
|
7276
|
+
})) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_23$1, "End Session"))
|
|
7277
|
+
]),
|
|
7278
|
+
_: 2
|
|
7279
|
+
}, 1032, ["onClick", "disabled"]))
|
|
7280
|
+
]),
|
|
7281
|
+
vue.createElementVNode("div", _hoisted_24$1, [
|
|
7282
|
+
vue.createElementVNode("div", _hoisted_25$1, [
|
|
7283
|
+
vue.createElementVNode("span", _hoisted_26$1, [
|
|
7284
|
+
vue.createVNode(MapPin, { size: 14 })
|
|
7285
|
+
]),
|
|
7286
|
+
vue.createElementVNode("span", _hoisted_27$1, [
|
|
7287
|
+
session.city && session.country ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
7288
|
+
vue.createTextVNode(vue.toDisplayString(session.city) + ", " + vue.toDisplayString(session.country), 1)
|
|
7289
|
+
], 64)) : session.country ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
7290
|
+
vue.createTextVNode(vue.toDisplayString(session.country), 1)
|
|
7291
|
+
], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
|
|
7292
|
+
vue.createTextVNode(" Location unknown ")
|
|
7293
|
+
], 64))
|
|
7294
|
+
])
|
|
7295
|
+
]),
|
|
7296
|
+
session.ip_address ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_28$1, [
|
|
7297
|
+
vue.createElementVNode("span", _hoisted_29$1, [
|
|
7298
|
+
vue.createVNode(Globe, { size: 14 })
|
|
7299
|
+
]),
|
|
7300
|
+
vue.createElementVNode("span", _hoisted_30$1, vue.toDisplayString(session.ip_address), 1)
|
|
7301
|
+
])) : vue.createCommentVNode("", true),
|
|
7302
|
+
vue.createElementVNode("div", _hoisted_31$1, [
|
|
7303
|
+
vue.createElementVNode("span", _hoisted_32$1, [
|
|
7304
|
+
vue.createVNode(Clock, { size: 14 })
|
|
7305
|
+
]),
|
|
7306
|
+
vue.createElementVNode("span", _hoisted_33$1, " Last active " + vue.toDisplayString(formatTimeAgo(session.last_activity_at || session.created_at)), 1)
|
|
7307
|
+
]),
|
|
7308
|
+
vue.createElementVNode("div", _hoisted_34$1, [
|
|
7309
|
+
vue.createElementVNode("span", _hoisted_35$1, [
|
|
7310
|
+
vue.createVNode(Calendar, { size: 14 })
|
|
7311
|
+
]),
|
|
7312
|
+
vue.createElementVNode("span", _hoisted_36$1, " Started " + vue.toDisplayString(formatDate2(session.created_at)), 1)
|
|
7313
|
+
])
|
|
7314
|
+
])
|
|
7315
|
+
], 2);
|
|
7316
|
+
}), 128))
|
|
7317
|
+
]),
|
|
7318
|
+
sessions.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_37$1, [
|
|
7319
|
+
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
7320
|
+
variant: "outline",
|
|
7321
|
+
onClick: handleRevokeAllOther,
|
|
7322
|
+
disabled: revokingAll.value
|
|
7323
|
+
}, {
|
|
7324
|
+
default: vue.withCtx(() => [
|
|
7325
|
+
revokingAll.value ? (vue.openBlock(), vue.createBlock(vue.unref(StrandsUiLoader), {
|
|
7326
|
+
key: 0,
|
|
7327
|
+
size: 16
|
|
7328
|
+
})) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_38$1, "End All Other Sessions"))
|
|
7329
|
+
]),
|
|
7330
|
+
_: 1
|
|
7331
|
+
}, 8, ["disabled"]),
|
|
7332
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "bulk-actions-hint" }, " This will sign you out on all other devices ", -1))
|
|
7333
|
+
])) : vue.createCommentVNode("", true)
|
|
7334
|
+
]))
|
|
7335
|
+
])
|
|
7336
|
+
]),
|
|
7337
|
+
_: 1
|
|
7338
|
+
}, 8, ["open"]);
|
|
7339
|
+
};
|
|
7340
|
+
}
|
|
7341
|
+
});
|
|
7342
|
+
const StrandsSessionsModal = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-60345e8c"]]);
|
|
6967
7343
|
const _hoisted_1$7 = { class: "accui-component-scope" };
|
|
6968
7344
|
const _hoisted_2$5 = { class: "profile-image-section" };
|
|
6969
7345
|
const _hoisted_3$5 = { class: "profile-image-container" };
|
|
6970
7346
|
const _hoisted_4$4 = { class: "profile-image-wrapper" };
|
|
6971
7347
|
const _hoisted_5$4 = {
|
|
6972
|
-
key:
|
|
7348
|
+
key: 0,
|
|
6973
7349
|
class: "profile-avatar profile-avatar-with-image"
|
|
6974
7350
|
};
|
|
6975
7351
|
const _hoisted_6$2 = ["src", "alt"];
|
|
6976
7352
|
const _hoisted_7$2 = {
|
|
6977
|
-
key:
|
|
7353
|
+
key: 1,
|
|
6978
7354
|
class: "profile-avatar profile-avatar-initials"
|
|
6979
7355
|
};
|
|
6980
7356
|
const _hoisted_8$2 = ["disabled"];
|
|
@@ -7020,33 +7396,35 @@ const _hoisted_29 = {
|
|
|
7020
7396
|
const _hoisted_30 = { class: "profile-field-section" };
|
|
7021
7397
|
const _hoisted_31 = { class: "profile-field-header" };
|
|
7022
7398
|
const _hoisted_32 = { class: "profile-field-subtitle" };
|
|
7023
|
-
const _hoisted_33 = {
|
|
7399
|
+
const _hoisted_33 = { key: 0 };
|
|
7400
|
+
const _hoisted_34 = { key: 1 };
|
|
7401
|
+
const _hoisted_35 = {
|
|
7024
7402
|
key: 0,
|
|
7025
7403
|
class: "profile-actions-section"
|
|
7026
7404
|
};
|
|
7027
|
-
const
|
|
7405
|
+
const _hoisted_36 = {
|
|
7028
7406
|
key: 0,
|
|
7029
7407
|
class: "animate-fade-in"
|
|
7030
7408
|
};
|
|
7031
|
-
const
|
|
7032
|
-
const
|
|
7033
|
-
const
|
|
7034
|
-
const
|
|
7409
|
+
const _hoisted_37 = { class: "alert-success" };
|
|
7410
|
+
const _hoisted_38 = { class: "profile-help-item" };
|
|
7411
|
+
const _hoisted_39 = { class: "profile-alert-message" };
|
|
7412
|
+
const _hoisted_40 = {
|
|
7035
7413
|
key: 1,
|
|
7036
7414
|
class: "animate-fade-in"
|
|
7037
7415
|
};
|
|
7038
|
-
const
|
|
7039
|
-
const
|
|
7040
|
-
const
|
|
7041
|
-
const
|
|
7042
|
-
const
|
|
7043
|
-
const
|
|
7044
|
-
const
|
|
7416
|
+
const _hoisted_41 = { class: "alert-error" };
|
|
7417
|
+
const _hoisted_42 = { class: "profile-help-item" };
|
|
7418
|
+
const _hoisted_43 = { class: "profile-alert-message" };
|
|
7419
|
+
const _hoisted_44 = { class: "profile-footer-actions" };
|
|
7420
|
+
const _hoisted_45 = { key: 0 };
|
|
7421
|
+
const _hoisted_46 = { class: "profile-footer-text" };
|
|
7422
|
+
const _hoisted_47 = {
|
|
7045
7423
|
key: 1,
|
|
7046
7424
|
class: "profile-avatar-modal-overlay"
|
|
7047
7425
|
};
|
|
7048
|
-
const
|
|
7049
|
-
const
|
|
7426
|
+
const _hoisted_48 = { class: "profile-avatar-modal" };
|
|
7427
|
+
const _hoisted_49 = { class: "profile-avatar-modal-content" };
|
|
7050
7428
|
const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
7051
7429
|
__name: "StrandsUserProfile",
|
|
7052
7430
|
props: {
|
|
@@ -7063,7 +7441,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7063
7441
|
const props = __props;
|
|
7064
7442
|
const emit = __emit;
|
|
7065
7443
|
const { getSupportEmail, getUrl } = useStrandsConfig.useStrandsConfig(props.config);
|
|
7066
|
-
const { fetchProfile, updateProfile, changeEmail, changeUsername, getUsernameCooldown, checkUsernameAvailability, currentUser: authUser, currentSession, isAuthenticated, refreshToken, signOut } = useStrandsAuth.useStrandsAuth();
|
|
7444
|
+
const { fetchProfile, updateProfile, changeEmail, changeUsername, getUsernameCooldown, checkUsernameAvailability, getUserSessions, currentUser: authUser, currentSession, isAuthenticated, refreshToken, signOut } = useStrandsAuth.useStrandsAuth();
|
|
7067
7445
|
const { activeMfaDevices, fetchMfaDevices } = useStrandsMfa();
|
|
7068
7446
|
const internalUser = vue.ref(null);
|
|
7069
7447
|
const fetchingProfile = vue.ref(false);
|
|
@@ -7093,6 +7471,8 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7093
7471
|
const successMessage = vue.ref("");
|
|
7094
7472
|
const errorMessage = vue.ref("");
|
|
7095
7473
|
const activeSessions = vue.ref([]);
|
|
7474
|
+
const loadingSessions = vue.ref(false);
|
|
7475
|
+
const showSessionsModal = vue.ref(false);
|
|
7096
7476
|
const usernameChangeData = vue.reactive({
|
|
7097
7477
|
canChange: true,
|
|
7098
7478
|
cooldownEnd: null,
|
|
@@ -7191,7 +7571,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7191
7571
|
count: counts.totp,
|
|
7192
7572
|
label: counts.totp === 1 ? "Auth app" : "Auth apps",
|
|
7193
7573
|
icon: Smartphone,
|
|
7194
|
-
color: "
|
|
7574
|
+
color: "chip-blue"
|
|
7195
7575
|
});
|
|
7196
7576
|
}
|
|
7197
7577
|
if (counts.email > 0) {
|
|
@@ -7200,7 +7580,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7200
7580
|
count: counts.email,
|
|
7201
7581
|
label: "Email",
|
|
7202
7582
|
icon: Mail,
|
|
7203
|
-
color: "
|
|
7583
|
+
color: "chip-green"
|
|
7204
7584
|
});
|
|
7205
7585
|
}
|
|
7206
7586
|
if (counts.hardware > 0 || counts.passkey > 0) {
|
|
@@ -7210,7 +7590,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7210
7590
|
count: totalHardware,
|
|
7211
7591
|
label: totalHardware === 1 ? "Key" : "Keys",
|
|
7212
7592
|
icon: KeyRound,
|
|
7213
|
-
color: "
|
|
7593
|
+
color: "chip-purple"
|
|
7214
7594
|
});
|
|
7215
7595
|
}
|
|
7216
7596
|
return chips;
|
|
@@ -7285,6 +7665,18 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7285
7665
|
fetchingProfile.value = false;
|
|
7286
7666
|
}
|
|
7287
7667
|
};
|
|
7668
|
+
const loadUserSessions = async () => {
|
|
7669
|
+
if (!isAuthenticated.value) return;
|
|
7670
|
+
loadingSessions.value = true;
|
|
7671
|
+
try {
|
|
7672
|
+
const sessions = await getUserSessions();
|
|
7673
|
+
activeSessions.value = sessions || [];
|
|
7674
|
+
} catch (err) {
|
|
7675
|
+
console.error("Failed to load sessions:", err);
|
|
7676
|
+
} finally {
|
|
7677
|
+
loadingSessions.value = false;
|
|
7678
|
+
}
|
|
7679
|
+
};
|
|
7288
7680
|
vue.watch(() => currentUser.value, (user) => {
|
|
7289
7681
|
if (user) {
|
|
7290
7682
|
form.firstName = user.firstName || "";
|
|
@@ -7294,6 +7686,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7294
7686
|
}, { immediate: true });
|
|
7295
7687
|
vue.onMounted(() => {
|
|
7296
7688
|
fetchUserProfile();
|
|
7689
|
+
loadUserSessions();
|
|
7297
7690
|
});
|
|
7298
7691
|
const clearMessages = () => {
|
|
7299
7692
|
successMessage.value = "";
|
|
@@ -7594,6 +7987,9 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7594
7987
|
const handleSettingsUpdated = (settings) => {
|
|
7595
7988
|
successMessage.value = "Settings updated successfully";
|
|
7596
7989
|
};
|
|
7990
|
+
const handleSessionsUpdated = () => {
|
|
7991
|
+
loadUserSessions();
|
|
7992
|
+
};
|
|
7597
7993
|
const handleCancel = () => {
|
|
7598
7994
|
const user = currentUser.value;
|
|
7599
7995
|
if (user) {
|
|
@@ -7646,23 +8042,22 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7646
8042
|
vue.createElementVNode("div", {
|
|
7647
8043
|
class: vue.normalizeClass(_ctx.inModal ? "profile-content-modal profile-content-layout" : "profile-content profile-card-modern profile-content-layout")
|
|
7648
8044
|
}, [
|
|
7649
|
-
_cache[
|
|
8045
|
+
_cache[32] || (_cache[32] = vue.createElementVNode("div", { class: "profile-header" }, [
|
|
7650
8046
|
vue.createElementVNode("h1", { class: "profile-title" }, "Profile Settings"),
|
|
7651
8047
|
vue.createElementVNode("p", { class: "profile-subtitle" }, "Manage your account information and preferences")
|
|
7652
8048
|
], -1)),
|
|
7653
8049
|
vue.createElementVNode("div", _hoisted_2$5, [
|
|
7654
8050
|
vue.createElementVNode("div", _hoisted_3$5, [
|
|
7655
8051
|
vue.createElementVNode("div", _hoisted_4$4, [
|
|
7656
|
-
|
|
7657
|
-
key: 0,
|
|
8052
|
+
vue.createVNode(vue.unref(StrandsUiLevelProgress), {
|
|
7658
8053
|
size: 140,
|
|
7659
|
-
value: currentUser.value
|
|
7660
|
-
max: currentUser.value
|
|
7661
|
-
level: currentUser.value
|
|
7662
|
-
"level-label": `LEVEL ${currentUser.value
|
|
7663
|
-
"user-settings": currentUser.value
|
|
8054
|
+
value: currentUser.value?.xp || 0,
|
|
8055
|
+
max: currentUser.value?.next_level_xp || 1,
|
|
8056
|
+
level: currentUser.value?.level || 0,
|
|
8057
|
+
"level-label": `LEVEL ${currentUser.value?.level || 0}`,
|
|
8058
|
+
"user-settings": currentUser.value?.settings,
|
|
7664
8059
|
class: "profile-progress-ring"
|
|
7665
|
-
}, null, 8, ["value", "max", "level", "level-label", "user-settings"])
|
|
8060
|
+
}, null, 8, ["value", "max", "level", "level-label", "user-settings"]),
|
|
7666
8061
|
currentUser.value?.avatar ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$4, [
|
|
7667
8062
|
vue.createElementVNode("img", {
|
|
7668
8063
|
src: currentUser.value.avatar,
|
|
@@ -7679,7 +8074,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7679
8074
|
key: 0,
|
|
7680
8075
|
size: 24,
|
|
7681
8076
|
variant: "dark"
|
|
7682
|
-
})) : (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$2, _cache[
|
|
8077
|
+
})) : (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$2, _cache[16] || (_cache[16] = [
|
|
7683
8078
|
vue.createElementVNode("path", {
|
|
7684
8079
|
"stroke-linecap": "round",
|
|
7685
8080
|
"stroke-linejoin": "round",
|
|
@@ -7711,7 +8106,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7711
8106
|
}, [
|
|
7712
8107
|
vue.createElementVNode("div", _hoisted_10$2, [
|
|
7713
8108
|
vue.createElementVNode("div", _hoisted_11$2, [
|
|
7714
|
-
_cache[
|
|
8109
|
+
_cache[19] || (_cache[19] = vue.createElementVNode("h3", { class: "profile-section-title" }, "Personal Information", -1)),
|
|
7715
8110
|
vue.createVNode(vue.unref(StrandsUiInput), {
|
|
7716
8111
|
id: "firstName",
|
|
7717
8112
|
modelValue: form.firstName,
|
|
@@ -7737,7 +8132,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7737
8132
|
vue.createElementVNode("div", _hoisted_12$2, [
|
|
7738
8133
|
vue.createElementVNode("div", _hoisted_13$2, [
|
|
7739
8134
|
vue.createElementVNode("div", null, [
|
|
7740
|
-
_cache[
|
|
8135
|
+
_cache[17] || (_cache[17] = vue.createElementVNode("h4", { class: "profile-setting-title" }, "Email Address", -1)),
|
|
7741
8136
|
vue.createElementVNode("p", _hoisted_14$2, vue.toDisplayString(currentUser.value?.email), 1)
|
|
7742
8137
|
]),
|
|
7743
8138
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
@@ -7789,7 +8184,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7789
8184
|
vue.createElementVNode("div", _hoisted_16$2, [
|
|
7790
8185
|
vue.createElementVNode("div", _hoisted_17$2, [
|
|
7791
8186
|
vue.createElementVNode("div", null, [
|
|
7792
|
-
_cache[
|
|
8187
|
+
_cache[18] || (_cache[18] = vue.createElementVNode("h4", { class: "profile-field-title" }, "Username", -1)),
|
|
7793
8188
|
vue.createElementVNode("p", _hoisted_18$2, vue.toDisplayString(currentUser.value?.username || "No username set"), 1)
|
|
7794
8189
|
]),
|
|
7795
8190
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
@@ -7799,7 +8194,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7799
8194
|
onClick: handleToggleUsernameChange
|
|
7800
8195
|
}, {
|
|
7801
8196
|
default: vue.withCtx(() => [
|
|
7802
|
-
vue.createTextVNode(vue.toDisplayString(usernameChangeData.cooldownEnd ? `Wait ${usernameChangeData.daysRemaining} day${usernameChangeData.daysRemaining === 1 ? "" : "s"}` : showUsernameChange.value ? "Cancel" : currentUser.value?.username ? "Change" : "Set Username"), 1)
|
|
8197
|
+
vue.createTextVNode(vue.toDisplayString(usernameChangeData.cooldownEnd ? `Wait ${usernameChangeData.daysRemaining} day${usernameChangeData.daysRemaining === 1 ? "" : "s"} to change` : showUsernameChange.value ? "Cancel" : currentUser.value?.username ? "Change" : "Set Username"), 1)
|
|
7803
8198
|
]),
|
|
7804
8199
|
_: 1
|
|
7805
8200
|
}, 8, ["disabled"])
|
|
@@ -7837,11 +8232,11 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7837
8232
|
])
|
|
7838
8233
|
]),
|
|
7839
8234
|
vue.createElementVNode("div", _hoisted_20, [
|
|
7840
|
-
_cache[
|
|
8235
|
+
_cache[25] || (_cache[25] = vue.createElementVNode("h3", { class: "profile-section-title" }, "Security Settings", -1)),
|
|
7841
8236
|
vue.createElementVNode("div", _hoisted_21, [
|
|
7842
8237
|
vue.createElementVNode("div", _hoisted_22, [
|
|
7843
8238
|
vue.createElementVNode("div", null, [
|
|
7844
|
-
_cache[
|
|
8239
|
+
_cache[20] || (_cache[20] = vue.createElementVNode("h4", { class: "profile-field-title" }, "Password", -1)),
|
|
7845
8240
|
vue.createElementVNode("p", _hoisted_23, "Last updated " + vue.toDisplayString(passwordLastUpdated.value), 1)
|
|
7846
8241
|
]),
|
|
7847
8242
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
@@ -7885,11 +8280,11 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7885
8280
|
onClick: handlePasswordChange,
|
|
7886
8281
|
disabled: !isPasswordFormValid.value
|
|
7887
8282
|
}, {
|
|
7888
|
-
default: vue.withCtx(() => _cache[
|
|
8283
|
+
default: vue.withCtx(() => _cache[21] || (_cache[21] = [
|
|
7889
8284
|
vue.createTextVNode(" Update Password ", -1)
|
|
7890
8285
|
])),
|
|
7891
8286
|
_: 1,
|
|
7892
|
-
__: [
|
|
8287
|
+
__: [21]
|
|
7893
8288
|
}, 8, ["disabled"])
|
|
7894
8289
|
])) : vue.createCommentVNode("", true)
|
|
7895
8290
|
]),
|
|
@@ -7900,7 +8295,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7900
8295
|
vue.createElementVNode("div", _hoisted_26, [
|
|
7901
8296
|
vue.createElementVNode("div", _hoisted_27, [
|
|
7902
8297
|
vue.createElementVNode("div", null, [
|
|
7903
|
-
_cache[
|
|
8298
|
+
_cache[22] || (_cache[22] = vue.createElementVNode("h4", { class: "profile-field-title" }, "Two-Factor Authentication", -1)),
|
|
7904
8299
|
vue.createElementVNode("p", _hoisted_28, vue.toDisplayString(currentUser.value?.mfaEnabled ? "Enabled" : "Add extra security to your account"), 1)
|
|
7905
8300
|
]),
|
|
7906
8301
|
mfaDeviceChips.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_29, [
|
|
@@ -7935,26 +8330,28 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7935
8330
|
vue.createElementVNode("div", _hoisted_30, [
|
|
7936
8331
|
vue.createElementVNode("div", _hoisted_31, [
|
|
7937
8332
|
vue.createElementVNode("div", null, [
|
|
7938
|
-
_cache[
|
|
7939
|
-
vue.createElementVNode("p", _hoisted_32,
|
|
8333
|
+
_cache[23] || (_cache[23] = vue.createElementVNode("h4", { class: "profile-field-title" }, "Active Sessions", -1)),
|
|
8334
|
+
vue.createElementVNode("p", _hoisted_32, [
|
|
8335
|
+
loadingSessions.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_33, "Loading sessions...")) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_34, vue.toDisplayString(activeSessions.value.length) + " active device" + vue.toDisplayString(activeSessions.value.length !== 1 ? "s" : ""), 1))
|
|
8336
|
+
])
|
|
7940
8337
|
]),
|
|
7941
8338
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
7942
8339
|
variant: "secondary",
|
|
7943
8340
|
size: "sm",
|
|
7944
|
-
onClick: _cache[11] || (_cache[11] = ($event) =>
|
|
7945
|
-
disabled:
|
|
8341
|
+
onClick: _cache[11] || (_cache[11] = ($event) => showSessionsModal.value = true),
|
|
8342
|
+
disabled: loadingSessions.value
|
|
7946
8343
|
}, {
|
|
7947
|
-
default: vue.withCtx(() => _cache[
|
|
7948
|
-
vue.createTextVNode("
|
|
8344
|
+
default: vue.withCtx(() => _cache[24] || (_cache[24] = [
|
|
8345
|
+
vue.createTextVNode(" Manage ", -1)
|
|
7949
8346
|
])),
|
|
7950
8347
|
_: 1,
|
|
7951
|
-
__: [
|
|
7952
|
-
})
|
|
8348
|
+
__: [24]
|
|
8349
|
+
}, 8, ["disabled"])
|
|
7953
8350
|
])
|
|
7954
8351
|
])
|
|
7955
8352
|
])
|
|
7956
8353
|
]),
|
|
7957
|
-
hasChanges.value ? (vue.openBlock(), vue.createElementBlock("div",
|
|
8354
|
+
hasChanges.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_35, [
|
|
7958
8355
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
7959
8356
|
type: "submit",
|
|
7960
8357
|
variant: "primary",
|
|
@@ -7971,18 +8368,18 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7971
8368
|
onClick: handleCancel,
|
|
7972
8369
|
disabled: loading2.value
|
|
7973
8370
|
}, {
|
|
7974
|
-
default: vue.withCtx(() => _cache[
|
|
8371
|
+
default: vue.withCtx(() => _cache[26] || (_cache[26] = [
|
|
7975
8372
|
vue.createTextVNode(" Cancel ", -1)
|
|
7976
8373
|
])),
|
|
7977
8374
|
_: 1,
|
|
7978
|
-
__: [
|
|
8375
|
+
__: [26]
|
|
7979
8376
|
}, 8, ["disabled"])
|
|
7980
8377
|
])) : vue.createCommentVNode("", true)
|
|
7981
8378
|
], 32),
|
|
7982
|
-
successMessage.value ? (vue.openBlock(), vue.createElementBlock("div",
|
|
7983
|
-
vue.createElementVNode("div",
|
|
7984
|
-
vue.createElementVNode("div",
|
|
7985
|
-
_cache[
|
|
8379
|
+
successMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_36, [
|
|
8380
|
+
vue.createElementVNode("div", _hoisted_37, [
|
|
8381
|
+
vue.createElementVNode("div", _hoisted_38, [
|
|
8382
|
+
_cache[27] || (_cache[27] = vue.createElementVNode("svg", {
|
|
7986
8383
|
class: "profile-help-icon",
|
|
7987
8384
|
fill: "currentColor",
|
|
7988
8385
|
viewBox: "0 0 20 20"
|
|
@@ -7993,14 +8390,14 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7993
8390
|
"clip-rule": "evenodd"
|
|
7994
8391
|
})
|
|
7995
8392
|
], -1)),
|
|
7996
|
-
vue.createElementVNode("p",
|
|
8393
|
+
vue.createElementVNode("p", _hoisted_39, vue.toDisplayString(successMessage.value), 1)
|
|
7997
8394
|
])
|
|
7998
8395
|
])
|
|
7999
8396
|
])) : vue.createCommentVNode("", true),
|
|
8000
|
-
errorMessage.value ? (vue.openBlock(), vue.createElementBlock("div",
|
|
8001
|
-
vue.createElementVNode("div",
|
|
8002
|
-
vue.createElementVNode("div",
|
|
8003
|
-
_cache[
|
|
8397
|
+
errorMessage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_40, [
|
|
8398
|
+
vue.createElementVNode("div", _hoisted_41, [
|
|
8399
|
+
vue.createElementVNode("div", _hoisted_42, [
|
|
8400
|
+
_cache[28] || (_cache[28] = vue.createElementVNode("svg", {
|
|
8004
8401
|
class: "profile-help-icon",
|
|
8005
8402
|
fill: "currentColor",
|
|
8006
8403
|
viewBox: "0 0 20 20"
|
|
@@ -8011,7 +8408,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8011
8408
|
"clip-rule": "evenodd"
|
|
8012
8409
|
})
|
|
8013
8410
|
], -1)),
|
|
8014
|
-
vue.createElementVNode("p",
|
|
8411
|
+
vue.createElementVNode("p", _hoisted_43, vue.toDisplayString(errorMessage.value), 1)
|
|
8015
8412
|
])
|
|
8016
8413
|
])
|
|
8017
8414
|
])) : vue.createCommentVNode("", true),
|
|
@@ -8019,7 +8416,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8019
8416
|
config: props.config
|
|
8020
8417
|
}, {
|
|
8021
8418
|
default: vue.withCtx(() => [
|
|
8022
|
-
vue.createElementVNode("div",
|
|
8419
|
+
vue.createElementVNode("div", _hoisted_44, [
|
|
8023
8420
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
8024
8421
|
color: "red",
|
|
8025
8422
|
onClick: handleSignOut,
|
|
@@ -8036,7 +8433,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8036
8433
|
onClick: _cache[12] || (_cache[12] = ($event) => showSettingsModal.value = true),
|
|
8037
8434
|
class: "profile-sign-out-button"
|
|
8038
8435
|
}, {
|
|
8039
|
-
default: vue.withCtx(() => _cache[
|
|
8436
|
+
default: vue.withCtx(() => _cache[29] || (_cache[29] = [
|
|
8040
8437
|
vue.createElementVNode("svg", {
|
|
8041
8438
|
class: "profile-action-icon",
|
|
8042
8439
|
fill: "none",
|
|
@@ -8058,21 +8455,21 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8058
8455
|
], -1)
|
|
8059
8456
|
])),
|
|
8060
8457
|
_: 1,
|
|
8061
|
-
__: [
|
|
8458
|
+
__: [29]
|
|
8062
8459
|
})
|
|
8063
8460
|
]),
|
|
8064
|
-
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div",
|
|
8065
|
-
vue.createElementVNode("p",
|
|
8066
|
-
_cache[
|
|
8461
|
+
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_45, [
|
|
8462
|
+
vue.createElementVNode("p", _hoisted_46, [
|
|
8463
|
+
_cache[31] || (_cache[31] = vue.createTextVNode(" Need help? ", -1)),
|
|
8067
8464
|
vue.createVNode(vue.unref(StrandsUiLink), {
|
|
8068
8465
|
variant: "primary",
|
|
8069
8466
|
href: `mailto:${vue.unref(getSupportEmail)()}`
|
|
8070
8467
|
}, {
|
|
8071
|
-
default: vue.withCtx(() => _cache[
|
|
8468
|
+
default: vue.withCtx(() => _cache[30] || (_cache[30] = [
|
|
8072
8469
|
vue.createTextVNode(" Contact Support ", -1)
|
|
8073
8470
|
])),
|
|
8074
8471
|
_: 1,
|
|
8075
|
-
__: [
|
|
8472
|
+
__: [30]
|
|
8076
8473
|
}, 8, ["href"])
|
|
8077
8474
|
])
|
|
8078
8475
|
])) : vue.createCommentVNode("", true)
|
|
@@ -8090,15 +8487,20 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8090
8487
|
onClose: _cache[14] || (_cache[14] = ($event) => showSettingsModal.value = false),
|
|
8091
8488
|
onSettingsUpdated: handleSettingsUpdated
|
|
8092
8489
|
})) : vue.createCommentVNode("", true),
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8490
|
+
vue.createVNode(StrandsSessionsModal, {
|
|
8491
|
+
modelValue: showSessionsModal.value,
|
|
8492
|
+
"onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => showSessionsModal.value = $event),
|
|
8493
|
+
onSessionsUpdated: handleSessionsUpdated
|
|
8494
|
+
}, null, 8, ["modelValue"]),
|
|
8495
|
+
showAvatarEditor.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_47, [
|
|
8496
|
+
vue.createElementVNode("div", _hoisted_48, [
|
|
8497
|
+
vue.createElementVNode("div", _hoisted_49, [
|
|
8096
8498
|
vue.createElementVNode("div", { class: "profile-avatar-modal-header" }, [
|
|
8097
|
-
_cache[
|
|
8499
|
+
_cache[34] || (_cache[34] = vue.createElementVNode("h2", { class: "profile-modal-title" }, "Edit Avatar", -1)),
|
|
8098
8500
|
vue.createElementVNode("button", {
|
|
8099
8501
|
onClick: handleAvatarEditorClose,
|
|
8100
8502
|
class: "profile-avatar-modal-close"
|
|
8101
|
-
}, _cache[
|
|
8503
|
+
}, _cache[33] || (_cache[33] = [
|
|
8102
8504
|
vue.createElementVNode("svg", {
|
|
8103
8505
|
class: "profile-avatar-modal-close-icon",
|
|
8104
8506
|
fill: "none",
|
|
@@ -8128,7 +8530,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8128
8530
|
};
|
|
8129
8531
|
}
|
|
8130
8532
|
});
|
|
8131
|
-
const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-
|
|
8533
|
+
const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-dcc0db9b"]]);
|
|
8132
8534
|
const _hoisted_1$6 = { class: "accui-component-scope" };
|
|
8133
8535
|
const _hoisted_2$4 = { class: "accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up" };
|
|
8134
8536
|
const _hoisted_3$4 = { class: "accui-mt-8 accui-text-center" };
|
|
@@ -8556,10 +8958,15 @@ const _hoisted_3$2 = {
|
|
|
8556
8958
|
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
8557
8959
|
__name: "SignedIn",
|
|
8558
8960
|
props: {
|
|
8559
|
-
showFallback: { type: Boolean, default: true }
|
|
8961
|
+
showFallback: { type: Boolean, default: true },
|
|
8962
|
+
invert: { type: Boolean, default: false }
|
|
8560
8963
|
},
|
|
8561
8964
|
emits: ["sign-in-required"],
|
|
8562
8965
|
setup(__props, { emit: __emit }) {
|
|
8966
|
+
const props = __props;
|
|
8967
|
+
const invert = props.invert ?? false;
|
|
8968
|
+
const signedInOrInverted = vue.computed(() => (isAuthenticated.value && !invert || !isAuthenticated.value && invert) && !showLoading.value);
|
|
8969
|
+
const signedOutOrInverted = vue.computed(() => (isAuthenticated.value && invert || !isAuthenticated.value && !invert) && props.showFallback && !showLoading.value);
|
|
8563
8970
|
const emit = __emit;
|
|
8564
8971
|
const isComponentReady = vue.ref(false);
|
|
8565
8972
|
const { isAuthenticated, isInitializing, isSigningIn, user, signOut } = useStrandsAuth.useStrandsAuth();
|
|
@@ -8573,15 +8980,16 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8573
8980
|
emit("sign-in-required");
|
|
8574
8981
|
};
|
|
8575
8982
|
return (_ctx, _cache) => {
|
|
8576
|
-
return
|
|
8983
|
+
return signedInOrInverted.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
|
|
8577
8984
|
vue.renderSlot(_ctx.$slots, "default", {
|
|
8578
8985
|
user: vue.unref(user),
|
|
8579
|
-
signOut: vue.unref(signOut)
|
|
8986
|
+
signOut: vue.unref(signOut),
|
|
8987
|
+
invert: vue.unref(invert)
|
|
8580
8988
|
}, void 0, true)
|
|
8581
|
-
])) :
|
|
8989
|
+
])) : signedOutOrInverted.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2, [
|
|
8582
8990
|
vue.renderSlot(_ctx.$slots, "fallback", { signIn }, () => [
|
|
8583
8991
|
vue.createElementVNode("div", { class: "signed-in-fallback" }, [
|
|
8584
|
-
_cache[0] || (_cache[0] = vue.createStaticVNode('<div class="signed-in-icon-container" data-v-
|
|
8992
|
+
_cache[0] || (_cache[0] = vue.createStaticVNode('<div class="signed-in-icon-container" data-v-669fa3b4><svg class="signed-in-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-669fa3b4><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" data-v-669fa3b4></path></svg></div><h3 class="signed-in-title" data-v-669fa3b4>Sign in required</h3><p class="signed-in-subtitle" data-v-669fa3b4>You need to be signed in to access this content.</p>', 3)),
|
|
8585
8993
|
vue.createElementVNode("button", {
|
|
8586
8994
|
onClick: signIn,
|
|
8587
8995
|
class: "signed-in-button"
|
|
@@ -8601,7 +9009,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
8601
9009
|
};
|
|
8602
9010
|
}
|
|
8603
9011
|
});
|
|
8604
|
-
const SignedIn = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-
|
|
9012
|
+
const SignedIn = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-669fa3b4"]]);
|
|
8605
9013
|
const _hoisted_1$3 = {
|
|
8606
9014
|
key: 0,
|
|
8607
9015
|
class: "animate-fade-in"
|
|
@@ -8901,17 +9309,22 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
8901
9309
|
props: {
|
|
8902
9310
|
hideUser: { type: Boolean, default: false },
|
|
8903
9311
|
variant: { default: "minimal" },
|
|
8904
|
-
redirectUrl: { default: "/" }
|
|
9312
|
+
redirectUrl: { default: "/" },
|
|
9313
|
+
user: { default: void 0 },
|
|
9314
|
+
menuAlign: { default: "right" },
|
|
9315
|
+
menuVerticalAlign: { default: "bottom" }
|
|
8905
9316
|
},
|
|
8906
9317
|
emits: ["profile-updated", "signed-out", "signed-in"],
|
|
8907
9318
|
setup(__props, { emit: __emit }) {
|
|
9319
|
+
const props = __props;
|
|
8908
9320
|
const emit = __emit;
|
|
8909
|
-
const { currentUser
|
|
9321
|
+
const { currentUser, signOut } = useStrandsAuth.useStrandsAuth();
|
|
8910
9322
|
const showDropdown = vue.ref(false);
|
|
8911
9323
|
const showProfileModal = vue.ref(false);
|
|
8912
9324
|
const showSignInModal = vue.ref(false);
|
|
8913
9325
|
const containerRef = vue.ref();
|
|
8914
9326
|
const profileButtonRef = vue.ref();
|
|
9327
|
+
const user = vue.computed(() => props.user || currentUser.value);
|
|
8915
9328
|
const displayName = vue.computed(() => {
|
|
8916
9329
|
if (!user.value) return "User";
|
|
8917
9330
|
if (user.value.username) {
|
|
@@ -9003,7 +9416,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
9003
9416
|
ref_key: "containerRef",
|
|
9004
9417
|
ref: containerRef
|
|
9005
9418
|
}, [
|
|
9006
|
-
vue.createVNode(vue.unref(SignedIn),
|
|
9419
|
+
vue.createVNode(vue.unref(SignedIn), {
|
|
9420
|
+
invert: !!props.user
|
|
9421
|
+
}, {
|
|
9007
9422
|
fallback: vue.withCtx(() => [
|
|
9008
9423
|
vue.createElementVNode("button", {
|
|
9009
9424
|
onClick: openSignIn,
|
|
@@ -9085,10 +9500,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
9085
9500
|
])) : vue.createCommentVNode("", true),
|
|
9086
9501
|
vue.createElementVNode("div", _hoisted_5, [
|
|
9087
9502
|
vue.createElementVNode("div", _hoisted_6, [
|
|
9088
|
-
|
|
9503
|
+
user.value?.avatar ? (vue.openBlock(), vue.createElementBlock("img", {
|
|
9089
9504
|
key: 0,
|
|
9090
|
-
src:
|
|
9091
|
-
alt: `${
|
|
9505
|
+
src: user.value.avatar,
|
|
9506
|
+
alt: `${user.value.firstName || user.value.email}'s avatar`,
|
|
9092
9507
|
class: "avatar-image"
|
|
9093
9508
|
}, null, 8, _hoisted_7)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, _cache[0] || (_cache[0] = [
|
|
9094
9509
|
vue.createElementVNode("svg", {
|
|
@@ -9123,7 +9538,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
9123
9538
|
default: vue.withCtx(() => [
|
|
9124
9539
|
showDropdown.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
9125
9540
|
key: 0,
|
|
9126
|
-
class:
|
|
9541
|
+
class: vue.normalizeClass([
|
|
9542
|
+
"dropdown-menu",
|
|
9543
|
+
`dropdown-menu-align-${props.menuAlign}`,
|
|
9544
|
+
`dropdown-menu-vertical-${props.menuVerticalAlign}`
|
|
9545
|
+
]),
|
|
9127
9546
|
role: "menu",
|
|
9128
9547
|
"aria-orientation": "vertical",
|
|
9129
9548
|
onKeydown: [
|
|
@@ -9136,20 +9555,20 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
9136
9555
|
}, [
|
|
9137
9556
|
vue.createElementVNode("div", _hoisted_10, [
|
|
9138
9557
|
vue.createElementVNode("div", _hoisted_11, [
|
|
9139
|
-
|
|
9558
|
+
user.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12, [
|
|
9140
9559
|
vue.createVNode(vue.unref(StrandsUiLevelProgress), {
|
|
9141
9560
|
size: 80,
|
|
9142
|
-
value:
|
|
9143
|
-
max:
|
|
9144
|
-
level:
|
|
9145
|
-
"level-label": `LEVEL ${
|
|
9146
|
-
"user-settings":
|
|
9561
|
+
value: user.value.xp,
|
|
9562
|
+
max: user.value.next_level_xp,
|
|
9563
|
+
level: user.value.level,
|
|
9564
|
+
"level-label": `LEVEL ${user.value.level}`,
|
|
9565
|
+
"user-settings": user.value.settings,
|
|
9147
9566
|
class: "level-progress-overlay"
|
|
9148
9567
|
}, null, 8, ["value", "max", "level", "level-label", "user-settings"]),
|
|
9149
|
-
|
|
9568
|
+
user.value?.avatar ? (vue.openBlock(), vue.createElementBlock("img", {
|
|
9150
9569
|
key: 0,
|
|
9151
|
-
src:
|
|
9152
|
-
alt: `${
|
|
9570
|
+
src: user.value.avatar,
|
|
9571
|
+
alt: `${user.value.firstName || user.value.email}'s avatar`,
|
|
9153
9572
|
class: "dropdown-avatar-image"
|
|
9154
9573
|
}, null, 8, _hoisted_13)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_14, _cache[2] || (_cache[2] = [
|
|
9155
9574
|
vue.createElementVNode("svg", {
|
|
@@ -9167,7 +9586,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
9167
9586
|
])) : vue.createCommentVNode("", true),
|
|
9168
9587
|
vue.createElementVNode("div", _hoisted_15, [
|
|
9169
9588
|
vue.createElementVNode("div", _hoisted_16, vue.toDisplayString(displayName.value), 1),
|
|
9170
|
-
vue.createElementVNode("div", _hoisted_17, vue.toDisplayString(
|
|
9589
|
+
vue.createElementVNode("div", _hoisted_17, vue.toDisplayString(user.value?.email), 1)
|
|
9171
9590
|
])
|
|
9172
9591
|
]),
|
|
9173
9592
|
_cache[5] || (_cache[5] = vue.createElementVNode("div", { class: "dropdown-divider" }, null, -1)),
|
|
@@ -9218,7 +9637,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
9218
9637
|
]))
|
|
9219
9638
|
])
|
|
9220
9639
|
])
|
|
9221
|
-
],
|
|
9640
|
+
], 42, _hoisted_9)) : vue.createCommentVNode("", true)
|
|
9222
9641
|
]),
|
|
9223
9642
|
_: 1
|
|
9224
9643
|
})
|
|
@@ -9254,21 +9673,22 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
9254
9673
|
]),
|
|
9255
9674
|
default: vue.withCtx(() => [
|
|
9256
9675
|
vue.createVNode(vue.unref(StrandsUserProfile), {
|
|
9676
|
+
user: user.value,
|
|
9257
9677
|
onProfileUpdated: handleProfileUpdated,
|
|
9258
9678
|
onError: handleProfileError,
|
|
9259
9679
|
"in-modal": ""
|
|
9260
|
-
})
|
|
9680
|
+
}, null, 8, ["user"])
|
|
9261
9681
|
]),
|
|
9262
9682
|
_: 1
|
|
9263
9683
|
}, 8, ["open"])
|
|
9264
9684
|
]),
|
|
9265
9685
|
_: 1
|
|
9266
|
-
})
|
|
9686
|
+
}, 8, ["invert"])
|
|
9267
9687
|
], 512);
|
|
9268
9688
|
};
|
|
9269
9689
|
}
|
|
9270
9690
|
});
|
|
9271
|
-
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
9691
|
+
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9e187d2c"]]);
|
|
9272
9692
|
const components = {
|
|
9273
9693
|
StrandsUiAlert,
|
|
9274
9694
|
StrandsUiButton,
|
|
@@ -9376,13 +9796,14 @@ exports.StrandsMfaModal = StrandsMfaModal;
|
|
|
9376
9796
|
exports.StrandsMfaVerification = StrandsMfaVerification;
|
|
9377
9797
|
exports.StrandsPasswordReset = StrandsPasswordReset;
|
|
9378
9798
|
exports.StrandsSecuredFooter = StrandsSecuredFooter;
|
|
9799
|
+
exports.StrandsSessionsModal = StrandsSessionsModal;
|
|
9379
9800
|
exports.StrandsSettingsModal = StrandsSettingsModal;
|
|
9380
9801
|
exports.StrandsSignIn = StrandsSignIn;
|
|
9381
9802
|
exports.StrandsSignUp = StrandsSignUp;
|
|
9382
9803
|
exports.StrandsTotpSetupModal = StrandsTotpSetupModal;
|
|
9383
9804
|
exports.StrandsUIPlugin = StrandsUIPlugin;
|
|
9384
9805
|
exports.StrandsUiAlert = StrandsUiAlert;
|
|
9385
|
-
exports.StrandsUiAvatarEditor = _sfc_main$
|
|
9806
|
+
exports.StrandsUiAvatarEditor = _sfc_main$p;
|
|
9386
9807
|
exports.StrandsUiButton = StrandsUiButton;
|
|
9387
9808
|
exports.StrandsUiCard = StrandsUiCard;
|
|
9388
9809
|
exports.StrandsUiInput = StrandsUiInput;
|
|
@@ -9396,8 +9817,8 @@ exports.StrandsUserButton = StrandsUserButton;
|
|
|
9396
9817
|
exports.StrandsUserProfile = StrandsUserProfile;
|
|
9397
9818
|
exports.SvgIcon = _sfc_main$1;
|
|
9398
9819
|
exports.UiAlert = StrandsUiAlert;
|
|
9399
|
-
exports.UiAvatarEditor = _sfc_main$
|
|
9400
|
-
exports.UiAvatarEditorSimple = _sfc_main$
|
|
9820
|
+
exports.UiAvatarEditor = _sfc_main$p;
|
|
9821
|
+
exports.UiAvatarEditorSimple = _sfc_main$p;
|
|
9401
9822
|
exports.UiButton = StrandsUiButton;
|
|
9402
9823
|
exports.UiCard = StrandsUiCard;
|
|
9403
9824
|
exports.UiInput = StrandsUiInput;
|