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