@strands.gg/accui 2.2.4 → 2.2.6
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 +1 -1
- package/dist/strands-auth-ui.cjs.js +1 -1
- package/dist/strands-auth-ui.es.js +208 -160
- package/package.json +1 -1
|
@@ -7036,6 +7036,14 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7036
7036
|
isVerifyingMfa
|
|
7037
7037
|
} = useStrandsAuth();
|
|
7038
7038
|
const loading2 = computed(() => mfaLoading.value || authLoading.value);
|
|
7039
|
+
const showModal = computed({
|
|
7040
|
+
get: () => props.show,
|
|
7041
|
+
set: (value) => {
|
|
7042
|
+
if (!value) {
|
|
7043
|
+
emit("close");
|
|
7044
|
+
}
|
|
7045
|
+
}
|
|
7046
|
+
});
|
|
7039
7047
|
const selectedMethod = ref(null);
|
|
7040
7048
|
const verificationCode = ref("");
|
|
7041
7049
|
const verificationError = ref("");
|
|
@@ -7285,11 +7293,12 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7285
7293
|
return (_ctx, _cache) => {
|
|
7286
7294
|
return openBlock(), createElementBlock("div", _hoisted_1$o, [
|
|
7287
7295
|
createVNode(UiModal, {
|
|
7288
|
-
|
|
7296
|
+
modelValue: showModal.value,
|
|
7297
|
+
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => showModal.value = $event),
|
|
7289
7298
|
"card-class": "mfa-verification-modal",
|
|
7290
7299
|
class: "mfa-verification-modal-wrapper"
|
|
7291
7300
|
}, {
|
|
7292
|
-
header: withCtx(() => [..._cache[
|
|
7301
|
+
header: withCtx(() => [..._cache[7] || (_cache[7] = [
|
|
7293
7302
|
createElementVNode("div", { class: "mfa-verification-header" }, [
|
|
7294
7303
|
createElementVNode("h2", { class: "mfa-verification-title" }, "Two-Factor Authentication"),
|
|
7295
7304
|
createElementVNode("p", { class: "mfa-verification-subtitle" }, "Enter your verification code to continue")
|
|
@@ -7302,7 +7311,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7302
7311
|
onClick: closeModal,
|
|
7303
7312
|
disabled: loading2.value
|
|
7304
7313
|
}, {
|
|
7305
|
-
default: withCtx(() => [..._cache[
|
|
7314
|
+
default: withCtx(() => [..._cache[15] || (_cache[15] = [
|
|
7306
7315
|
createTextVNode(" Cancel ", -1)
|
|
7307
7316
|
])]),
|
|
7308
7317
|
_: 1
|
|
@@ -7328,7 +7337,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7328
7337
|
createElementVNode("span", _hoisted_4$j, toDisplayString(unref(isSendingMfaEmail) || unref(isVerifyingMfa) ? unref(authLoadingMessage) : "Loading..."), 1)
|
|
7329
7338
|
])) : (openBlock(), createElementBlock("div", _hoisted_5$g, [
|
|
7330
7339
|
availableMethods.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_6$e, [
|
|
7331
|
-
_cache[
|
|
7340
|
+
_cache[8] || (_cache[8] = createElementVNode("p", { class: "mfa-methods-title" }, "Choose verification method:", -1)),
|
|
7332
7341
|
createElementVNode("div", _hoisted_7$e, [
|
|
7333
7342
|
(openBlock(true), createElementBlock(Fragment, null, renderList(availableMethods.value, (method) => {
|
|
7334
7343
|
return openBlock(), createElementBlock("button", {
|
|
@@ -7366,14 +7375,14 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7366
7375
|
])
|
|
7367
7376
|
])) : createCommentVNode("", true),
|
|
7368
7377
|
selectedMethod.value?.device_type === "email" && !emailCodeSent.value ? (openBlock(), createElementBlock("div", _hoisted_17$a, [
|
|
7369
|
-
_cache[
|
|
7378
|
+
_cache[10] || (_cache[10] = createElementVNode("p", { class: "mfa-email-request-text" }, "Click below to receive your verification code", -1)),
|
|
7370
7379
|
createVNode(unref(StrandsUiButton), {
|
|
7371
7380
|
variant: "primary",
|
|
7372
7381
|
onClick: sendEmailCode,
|
|
7373
7382
|
disabled: loading2.value,
|
|
7374
7383
|
loading: loading2.value
|
|
7375
7384
|
}, {
|
|
7376
|
-
default: withCtx(() => [..._cache[
|
|
7385
|
+
default: withCtx(() => [..._cache[9] || (_cache[9] = [
|
|
7377
7386
|
createTextVNode(" Send Verification Code ", -1)
|
|
7378
7387
|
])]),
|
|
7379
7388
|
_: 1
|
|
@@ -7428,7 +7437,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7428
7437
|
size: 20,
|
|
7429
7438
|
class: "mfa-backup-warning-icon"
|
|
7430
7439
|
}),
|
|
7431
|
-
_cache[
|
|
7440
|
+
_cache[11] || (_cache[11] = createElementVNode("div", null, [
|
|
7432
7441
|
createElementVNode("p", { class: "mfa-backup-warning-title" }, "Backup Code Recovery"),
|
|
7433
7442
|
createElementVNode("p", { class: "mfa-backup-warning-description" }, " Enter one of your backup codes. Each code can only be used once. ")
|
|
7434
7443
|
], -1))
|
|
@@ -7466,7 +7475,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7466
7475
|
size: 20,
|
|
7467
7476
|
class: "mfa-email-confirmation-icon"
|
|
7468
7477
|
}),
|
|
7469
|
-
_cache[
|
|
7478
|
+
_cache[12] || (_cache[12] = createElementVNode("div", null, [
|
|
7470
7479
|
createElementVNode("p", { class: "mfa-email-confirmation-title" }, "Code Sent!"),
|
|
7471
7480
|
createElementVNode("p", { class: "mfa-email-confirmation-description" }, "Check your email for the verification code")
|
|
7472
7481
|
], -1))
|
|
@@ -7503,7 +7512,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7503
7512
|
title: "Enter 6-digit verification code"
|
|
7504
7513
|
}, null, 8, ["modelValue", "placeholder", "error", "disabled"]),
|
|
7505
7514
|
selectedMethod.value.device_type === "totp" ? (openBlock(), createElementBlock("div", _hoisted_30$3, [
|
|
7506
|
-
_cache[
|
|
7515
|
+
_cache[13] || (_cache[13] = createTextVNode(" Open your authenticator app and enter the 6-digit code for ", -1)),
|
|
7507
7516
|
createElementVNode("span", _hoisted_31$3, '"' + toDisplayString(selectedMethod.value.device_name) + '"', 1)
|
|
7508
7517
|
])) : createCommentVNode("", true),
|
|
7509
7518
|
selectedMethod.value.device_type === "email" ? (openBlock(), createElementBlock("div", _hoisted_32$3, [
|
|
@@ -7543,7 +7552,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7543
7552
|
size: 20,
|
|
7544
7553
|
class: "mfa-backup-warning-icon"
|
|
7545
7554
|
}),
|
|
7546
|
-
_cache[
|
|
7555
|
+
_cache[14] || (_cache[14] = createElementVNode("div", null, [
|
|
7547
7556
|
createElementVNode("p", { class: "mfa-backup-warning-title" }, "Backup Code Recovery"),
|
|
7548
7557
|
createElementVNode("p", { class: "mfa-backup-warning-description" }, " Enter one of your backup codes. Each code can only be used once. ")
|
|
7549
7558
|
], -1))
|
|
@@ -7572,12 +7581,12 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
7572
7581
|
])
|
|
7573
7582
|
]),
|
|
7574
7583
|
_: 1
|
|
7575
|
-
}, 8, ["
|
|
7584
|
+
}, 8, ["modelValue"])
|
|
7576
7585
|
]);
|
|
7577
7586
|
};
|
|
7578
7587
|
}
|
|
7579
7588
|
});
|
|
7580
|
-
const StrandsMfaVerification = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-
|
|
7589
|
+
const StrandsMfaVerification = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-0d8b9530"]]);
|
|
7581
7590
|
const providersCache = /* @__PURE__ */ new Map();
|
|
7582
7591
|
const CACHE_DURATION = 5 * 60 * 1e3;
|
|
7583
7592
|
function useOAuthProviders(options = {}) {
|
|
@@ -9549,6 +9558,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9549
9558
|
const props = __props;
|
|
9550
9559
|
const emit = __emit;
|
|
9551
9560
|
const { setupTotp, verifyTotpSetup, loading: loading2 } = useStrandsMfa();
|
|
9561
|
+
const showModal = computed({
|
|
9562
|
+
get: () => props.show,
|
|
9563
|
+
set: (value) => {
|
|
9564
|
+
if (!value) {
|
|
9565
|
+
emit("close");
|
|
9566
|
+
}
|
|
9567
|
+
}
|
|
9568
|
+
});
|
|
9552
9569
|
const step = ref(1);
|
|
9553
9570
|
const deviceName = ref("");
|
|
9554
9571
|
const deviceNameError = ref("");
|
|
@@ -9627,17 +9644,17 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9627
9644
|
return (_ctx, _cache) => {
|
|
9628
9645
|
return openBlock(), createElementBlock("div", _hoisted_1$g, [
|
|
9629
9646
|
createVNode(UiModal, {
|
|
9630
|
-
|
|
9631
|
-
|
|
9647
|
+
modelValue: showModal.value,
|
|
9648
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => showModal.value = $event),
|
|
9632
9649
|
"card-class": "modal-card"
|
|
9633
9650
|
}, {
|
|
9634
9651
|
header: withCtx(() => [
|
|
9635
9652
|
createElementVNode("div", { class: "modal-header" }, [
|
|
9636
|
-
_cache[
|
|
9653
|
+
_cache[7] || (_cache[7] = createElementVNode("h2", { class: "modal-title" }, "Setup Authenticator App", -1)),
|
|
9637
9654
|
createElementVNode("button", {
|
|
9638
9655
|
onClick: closeModal,
|
|
9639
9656
|
class: "modal-close-button"
|
|
9640
|
-
}, [..._cache[
|
|
9657
|
+
}, [..._cache[6] || (_cache[6] = [
|
|
9641
9658
|
createElementVNode("svg", {
|
|
9642
9659
|
class: "modal-close-icon",
|
|
9643
9660
|
fill: "none",
|
|
@@ -9656,7 +9673,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9656
9673
|
]),
|
|
9657
9674
|
default: withCtx(() => [
|
|
9658
9675
|
step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$e, [
|
|
9659
|
-
_cache[
|
|
9676
|
+
_cache[10] || (_cache[10] = createElementVNode("div", null, [
|
|
9660
9677
|
createElementVNode("h3", { class: "step-title" }, "Name Your Device"),
|
|
9661
9678
|
createElementVNode("p", { class: "step-description" }, ' Give this authenticator a memorable name (e.g., "iPhone", "Work Phone") ')
|
|
9662
9679
|
], -1)),
|
|
@@ -9674,7 +9691,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9674
9691
|
onClick: closeModal,
|
|
9675
9692
|
disabled: unref(loading2)
|
|
9676
9693
|
}, {
|
|
9677
|
-
default: withCtx(() => [..._cache[
|
|
9694
|
+
default: withCtx(() => [..._cache[8] || (_cache[8] = [
|
|
9678
9695
|
createTextVNode(" Cancel ", -1)
|
|
9679
9696
|
])]),
|
|
9680
9697
|
_: 1
|
|
@@ -9685,7 +9702,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9685
9702
|
disabled: !deviceName.value.trim() || unref(loading2),
|
|
9686
9703
|
loading: unref(loading2)
|
|
9687
9704
|
}, {
|
|
9688
|
-
default: withCtx(() => [..._cache[
|
|
9705
|
+
default: withCtx(() => [..._cache[9] || (_cache[9] = [
|
|
9689
9706
|
createTextVNode(" Continue ", -1)
|
|
9690
9707
|
])]),
|
|
9691
9708
|
_: 1
|
|
@@ -9693,7 +9710,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9693
9710
|
])
|
|
9694
9711
|
])) : createCommentVNode("", true),
|
|
9695
9712
|
step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_4$d, [
|
|
9696
|
-
_cache[
|
|
9713
|
+
_cache[15] || (_cache[15] = createElementVNode("div", null, [
|
|
9697
9714
|
createElementVNode("h3", { class: "step-title" }, "Scan QR Code"),
|
|
9698
9715
|
createElementVNode("p", { class: "step-description" }, " Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.) ")
|
|
9699
9716
|
], -1)),
|
|
@@ -9711,10 +9728,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9711
9728
|
]))
|
|
9712
9729
|
]),
|
|
9713
9730
|
createElementVNode("div", _hoisted_9$8, [
|
|
9714
|
-
_cache[
|
|
9731
|
+
_cache[11] || (_cache[11] = createElementVNode("p", { class: "manual-label" }, " Can't scan? Enter this code manually: ", -1)),
|
|
9715
9732
|
createElementVNode("code", _hoisted_10$8, toDisplayString(totpSetupData.value?.secret || "..."), 1)
|
|
9716
9733
|
]),
|
|
9717
|
-
totpSetupData.value?.backup_codes ? (openBlock(), createElementBlock("div", _hoisted_11$8, [..._cache[
|
|
9734
|
+
totpSetupData.value?.backup_codes ? (openBlock(), createElementBlock("div", _hoisted_11$8, [..._cache[12] || (_cache[12] = [
|
|
9718
9735
|
createElementVNode("div", { class: "flex items-start space-x-2" }, [
|
|
9719
9736
|
createElementVNode("svg", {
|
|
9720
9737
|
class: "w-5 h-5 text-yellow-600 mt-0.5 flex-shrink-0",
|
|
@@ -9739,7 +9756,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9739
9756
|
onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
|
|
9740
9757
|
disabled: unref(loading2)
|
|
9741
9758
|
}, {
|
|
9742
|
-
default: withCtx(() => [..._cache[
|
|
9759
|
+
default: withCtx(() => [..._cache[13] || (_cache[13] = [
|
|
9743
9760
|
createTextVNode(" Back ", -1)
|
|
9744
9761
|
])]),
|
|
9745
9762
|
_: 1
|
|
@@ -9749,7 +9766,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9749
9766
|
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 3),
|
|
9750
9767
|
disabled: unref(loading2)
|
|
9751
9768
|
}, {
|
|
9752
|
-
default: withCtx(() => [..._cache[
|
|
9769
|
+
default: withCtx(() => [..._cache[14] || (_cache[14] = [
|
|
9753
9770
|
createTextVNode(" I've Added It ", -1)
|
|
9754
9771
|
])]),
|
|
9755
9772
|
_: 1
|
|
@@ -9757,7 +9774,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9757
9774
|
])
|
|
9758
9775
|
])) : createCommentVNode("", true),
|
|
9759
9776
|
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_13$8, [
|
|
9760
|
-
_cache[
|
|
9777
|
+
_cache[18] || (_cache[18] = createElementVNode("div", null, [
|
|
9761
9778
|
createElementVNode("h3", { class: "text-lg font-semibold text-gray-900 mb-2" }, "Verify Setup"),
|
|
9762
9779
|
createElementVNode("p", { class: "text-sm text-gray-600 mb-4" }, " Enter the 6-digit code from your authenticator app to complete setup ")
|
|
9763
9780
|
], -1)),
|
|
@@ -9777,7 +9794,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9777
9794
|
onClick: _cache[4] || (_cache[4] = ($event) => step.value = 2),
|
|
9778
9795
|
disabled: unref(loading2)
|
|
9779
9796
|
}, {
|
|
9780
|
-
default: withCtx(() => [..._cache[
|
|
9797
|
+
default: withCtx(() => [..._cache[16] || (_cache[16] = [
|
|
9781
9798
|
createTextVNode(" Back ", -1)
|
|
9782
9799
|
])]),
|
|
9783
9800
|
_: 1
|
|
@@ -9788,7 +9805,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9788
9805
|
disabled: verificationCode.value.length !== 6 || unref(loading2),
|
|
9789
9806
|
loading: unref(loading2)
|
|
9790
9807
|
}, {
|
|
9791
|
-
default: withCtx(() => [..._cache[
|
|
9808
|
+
default: withCtx(() => [..._cache[17] || (_cache[17] = [
|
|
9792
9809
|
createTextVNode(" Verify & Enable ", -1)
|
|
9793
9810
|
])]),
|
|
9794
9811
|
_: 1
|
|
@@ -9796,7 +9813,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9796
9813
|
])
|
|
9797
9814
|
])) : createCommentVNode("", true),
|
|
9798
9815
|
step.value === 4 ? (openBlock(), createElementBlock("div", _hoisted_15$7, [
|
|
9799
|
-
_cache[
|
|
9816
|
+
_cache[22] || (_cache[22] = createElementVNode("div", { class: "totp-setup-success" }, [
|
|
9800
9817
|
createElementVNode("div", { class: "totp-setup-success-icon" }, [
|
|
9801
9818
|
createElementVNode("svg", {
|
|
9802
9819
|
class: "totp-setup-check-icon",
|
|
@@ -9816,7 +9833,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9816
9833
|
createElementVNode("p", { class: "totp-setup-success-description" }, " Your authenticator app is now active for two-factor authentication. ")
|
|
9817
9834
|
], -1)),
|
|
9818
9835
|
createElementVNode("div", _hoisted_16$7, [
|
|
9819
|
-
_cache[
|
|
9836
|
+
_cache[20] || (_cache[20] = createElementVNode("div", { class: "totp-setup-backup-header" }, [
|
|
9820
9837
|
createElementVNode("svg", {
|
|
9821
9838
|
class: "totp-setup-backup-warning-icon",
|
|
9822
9839
|
fill: "currentColor",
|
|
@@ -9849,7 +9866,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9849
9866
|
size: "sm",
|
|
9850
9867
|
onClick: copyBackupCodes
|
|
9851
9868
|
}, {
|
|
9852
|
-
default: withCtx(() => [..._cache[
|
|
9869
|
+
default: withCtx(() => [..._cache[19] || (_cache[19] = [
|
|
9853
9870
|
createTextVNode(" 📋 Copy Codes ", -1)
|
|
9854
9871
|
])]),
|
|
9855
9872
|
_: 1
|
|
@@ -9861,7 +9878,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9861
9878
|
variant: "primary",
|
|
9862
9879
|
onClick: finish
|
|
9863
9880
|
}, {
|
|
9864
|
-
default: withCtx(() => [..._cache[
|
|
9881
|
+
default: withCtx(() => [..._cache[21] || (_cache[21] = [
|
|
9865
9882
|
createTextVNode(" Done ", -1)
|
|
9866
9883
|
])]),
|
|
9867
9884
|
_: 1
|
|
@@ -9870,12 +9887,12 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
9870
9887
|
])) : createCommentVNode("", true)
|
|
9871
9888
|
]),
|
|
9872
9889
|
_: 1
|
|
9873
|
-
}, 8, ["
|
|
9890
|
+
}, 8, ["modelValue"])
|
|
9874
9891
|
]);
|
|
9875
9892
|
};
|
|
9876
9893
|
}
|
|
9877
9894
|
});
|
|
9878
|
-
const StrandsTotpSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-
|
|
9895
|
+
const StrandsTotpSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-435c0812"]]);
|
|
9879
9896
|
const _hoisted_1$f = { class: "accui-component-scope" };
|
|
9880
9897
|
const _hoisted_2$d = {
|
|
9881
9898
|
key: 0,
|
|
@@ -9903,6 +9920,14 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
9903
9920
|
const props = __props;
|
|
9904
9921
|
const emit = __emit;
|
|
9905
9922
|
const { setupEmailMfa, sendEmailMfaCode, verifyEmailMfaCode, loading: loading2 } = useStrandsMfa();
|
|
9923
|
+
const showModal = computed({
|
|
9924
|
+
get: () => props.show,
|
|
9925
|
+
set: (value) => {
|
|
9926
|
+
if (!value) {
|
|
9927
|
+
emit("close");
|
|
9928
|
+
}
|
|
9929
|
+
}
|
|
9930
|
+
});
|
|
9906
9931
|
const step = ref(1);
|
|
9907
9932
|
const deviceName = ref("");
|
|
9908
9933
|
const deviceNameError = ref("");
|
|
@@ -10005,17 +10030,17 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10005
10030
|
return (_ctx, _cache) => {
|
|
10006
10031
|
return openBlock(), createElementBlock("div", _hoisted_1$f, [
|
|
10007
10032
|
createVNode(UiModal, {
|
|
10008
|
-
|
|
10009
|
-
|
|
10033
|
+
modelValue: showModal.value,
|
|
10034
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => showModal.value = $event),
|
|
10010
10035
|
"card-class": "email-mfa-setup-modal"
|
|
10011
10036
|
}, {
|
|
10012
10037
|
header: withCtx(() => [
|
|
10013
10038
|
createElementVNode("div", { class: "email-mfa-setup-header" }, [
|
|
10014
|
-
_cache[
|
|
10039
|
+
_cache[5] || (_cache[5] = createElementVNode("h2", { class: "email-mfa-setup-title" }, "Setup Email 2FA", -1)),
|
|
10015
10040
|
createElementVNode("button", {
|
|
10016
10041
|
onClick: closeModal,
|
|
10017
10042
|
class: "email-mfa-setup-close-button"
|
|
10018
|
-
}, [..._cache[
|
|
10043
|
+
}, [..._cache[4] || (_cache[4] = [
|
|
10019
10044
|
createElementVNode("svg", {
|
|
10020
10045
|
class: "email-mfa-setup-close-icon",
|
|
10021
10046
|
fill: "none",
|
|
@@ -10034,7 +10059,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10034
10059
|
]),
|
|
10035
10060
|
default: withCtx(() => [
|
|
10036
10061
|
step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$d, [
|
|
10037
|
-
_cache[
|
|
10062
|
+
_cache[8] || (_cache[8] = createElementVNode("div", null, [
|
|
10038
10063
|
createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Name Your Email 2FA"),
|
|
10039
10064
|
createElementVNode("p", { class: "email-mfa-setup-step-description" }, ' Give this email 2FA method a memorable name (e.g., "Personal Email", "Work Email") ')
|
|
10040
10065
|
], -1)),
|
|
@@ -10046,7 +10071,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10046
10071
|
error: deviceNameError.value,
|
|
10047
10072
|
disabled: unref(loading2)
|
|
10048
10073
|
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
10049
|
-
_cache[
|
|
10074
|
+
_cache[9] || (_cache[9] = createElementVNode("div", { class: "email-mfa-setup-info" }, [
|
|
10050
10075
|
createElementVNode("div", { class: "email-mfa-setup-info-content" }, [
|
|
10051
10076
|
createElementVNode("svg", {
|
|
10052
10077
|
class: "email-mfa-setup-info-icon",
|
|
@@ -10071,7 +10096,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10071
10096
|
onClick: closeModal,
|
|
10072
10097
|
disabled: unref(loading2)
|
|
10073
10098
|
}, {
|
|
10074
|
-
default: withCtx(() => [..._cache[
|
|
10099
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
10075
10100
|
createTextVNode(" Cancel ", -1)
|
|
10076
10101
|
])]),
|
|
10077
10102
|
_: 1
|
|
@@ -10082,7 +10107,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10082
10107
|
disabled: !deviceName.value.trim() || unref(loading2),
|
|
10083
10108
|
loading: unref(loading2)
|
|
10084
10109
|
}, {
|
|
10085
|
-
default: withCtx(() => [..._cache[
|
|
10110
|
+
default: withCtx(() => [..._cache[7] || (_cache[7] = [
|
|
10086
10111
|
createTextVNode(" Setup Email 2FA ", -1)
|
|
10087
10112
|
])]),
|
|
10088
10113
|
_: 1
|
|
@@ -10090,11 +10115,11 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10090
10115
|
])
|
|
10091
10116
|
])) : createCommentVNode("", true),
|
|
10092
10117
|
step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_4$c, [
|
|
10093
|
-
_cache[
|
|
10118
|
+
_cache[12] || (_cache[12] = createElementVNode("div", null, [
|
|
10094
10119
|
createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Test Email 2FA"),
|
|
10095
10120
|
createElementVNode("p", { class: "email-mfa-setup-step-description" }, " We've sent a test verification code to your email. Enter it below to complete setup. ")
|
|
10096
10121
|
], -1)),
|
|
10097
|
-
_cache[
|
|
10122
|
+
_cache[13] || (_cache[13] = createElementVNode("div", { class: "email-mfa-setup-success-notification" }, [
|
|
10098
10123
|
createElementVNode("div", { class: "email-mfa-setup-success-content" }, [
|
|
10099
10124
|
createElementVNode("svg", {
|
|
10100
10125
|
class: "email-mfa-setup-success-icon",
|
|
@@ -10142,7 +10167,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10142
10167
|
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1),
|
|
10143
10168
|
disabled: unref(loading2)
|
|
10144
10169
|
}, {
|
|
10145
|
-
default: withCtx(() => [..._cache[
|
|
10170
|
+
default: withCtx(() => [..._cache[10] || (_cache[10] = [
|
|
10146
10171
|
createTextVNode(" Back ", -1)
|
|
10147
10172
|
])]),
|
|
10148
10173
|
_: 1
|
|
@@ -10153,7 +10178,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10153
10178
|
disabled: verificationCode.value.length !== 6 || unref(loading2),
|
|
10154
10179
|
loading: unref(loading2)
|
|
10155
10180
|
}, {
|
|
10156
|
-
default: withCtx(() => [..._cache[
|
|
10181
|
+
default: withCtx(() => [..._cache[11] || (_cache[11] = [
|
|
10157
10182
|
createTextVNode(" Verify & Enable ", -1)
|
|
10158
10183
|
])]),
|
|
10159
10184
|
_: 1
|
|
@@ -10161,7 +10186,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10161
10186
|
])
|
|
10162
10187
|
])) : createCommentVNode("", true),
|
|
10163
10188
|
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_7$8, [
|
|
10164
|
-
_cache[
|
|
10189
|
+
_cache[15] || (_cache[15] = createElementVNode("div", { class: "email-mfa-setup-completion" }, [
|
|
10165
10190
|
createElementVNode("div", { class: "email-mfa-setup-completion-icon" }, [
|
|
10166
10191
|
createElementVNode("svg", {
|
|
10167
10192
|
class: "email-mfa-setup-check-icon",
|
|
@@ -10180,7 +10205,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10180
10205
|
createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Email 2FA Setup Complete!"),
|
|
10181
10206
|
createElementVNode("p", { class: "email-mfa-setup-completion-description" }, " Email verification is now active for your account. You'll receive codes at your registered email address. ")
|
|
10182
10207
|
], -1)),
|
|
10183
|
-
_cache[
|
|
10208
|
+
_cache[16] || (_cache[16] = createElementVNode("div", { class: "email-mfa-setup-info" }, [
|
|
10184
10209
|
createElementVNode("div", { class: "email-mfa-setup-info-content" }, [
|
|
10185
10210
|
createElementVNode("svg", {
|
|
10186
10211
|
class: "email-mfa-setup-info-icon",
|
|
@@ -10204,7 +10229,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10204
10229
|
variant: "primary",
|
|
10205
10230
|
onClick: finish
|
|
10206
10231
|
}, {
|
|
10207
|
-
default: withCtx(() => [..._cache[
|
|
10232
|
+
default: withCtx(() => [..._cache[14] || (_cache[14] = [
|
|
10208
10233
|
createTextVNode(" Done ", -1)
|
|
10209
10234
|
])]),
|
|
10210
10235
|
_: 1
|
|
@@ -10213,12 +10238,12 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
10213
10238
|
])) : createCommentVNode("", true)
|
|
10214
10239
|
]),
|
|
10215
10240
|
_: 1
|
|
10216
|
-
}, 8, ["
|
|
10241
|
+
}, 8, ["modelValue"])
|
|
10217
10242
|
]);
|
|
10218
10243
|
};
|
|
10219
10244
|
}
|
|
10220
10245
|
});
|
|
10221
|
-
const StrandsEmailMfaSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-
|
|
10246
|
+
const StrandsEmailMfaSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-3a43cfca"]]);
|
|
10222
10247
|
const _hoisted_1$e = { class: "accui-component-scope" };
|
|
10223
10248
|
const _hoisted_2$c = {
|
|
10224
10249
|
key: 0,
|
|
@@ -10258,6 +10283,14 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10258
10283
|
const props = __props;
|
|
10259
10284
|
const emit = __emit;
|
|
10260
10285
|
const { regenerateBackupCodes, loading: loading2, getDeviceTypeName } = useStrandsMfa();
|
|
10286
|
+
const showModal = computed({
|
|
10287
|
+
get: () => props.show,
|
|
10288
|
+
set: (value) => {
|
|
10289
|
+
if (!value) {
|
|
10290
|
+
emit("close");
|
|
10291
|
+
}
|
|
10292
|
+
}
|
|
10293
|
+
});
|
|
10261
10294
|
const backupCodes = ref([]);
|
|
10262
10295
|
const showRegenerateWarning = ref(false);
|
|
10263
10296
|
watch(() => props.show, async (newShow) => {
|
|
@@ -10331,17 +10364,17 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10331
10364
|
return (_ctx, _cache) => {
|
|
10332
10365
|
return openBlock(), createElementBlock("div", _hoisted_1$e, [
|
|
10333
10366
|
createVNode(UiModal, {
|
|
10334
|
-
|
|
10335
|
-
|
|
10367
|
+
modelValue: showModal.value,
|
|
10368
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showModal.value = $event),
|
|
10336
10369
|
"card-class": "backup-codes-modal"
|
|
10337
10370
|
}, {
|
|
10338
10371
|
header: withCtx(() => [
|
|
10339
10372
|
createElementVNode("div", { class: "backup-codes-header" }, [
|
|
10340
|
-
_cache[
|
|
10373
|
+
_cache[3] || (_cache[3] = createElementVNode("h2", { class: "backup-codes-title" }, "Backup Codes", -1)),
|
|
10341
10374
|
createElementVNode("button", {
|
|
10342
10375
|
onClick: closeModal,
|
|
10343
10376
|
class: "backup-codes-close-button"
|
|
10344
|
-
}, [..._cache[
|
|
10377
|
+
}, [..._cache[2] || (_cache[2] = [
|
|
10345
10378
|
createElementVNode("svg", {
|
|
10346
10379
|
class: "backup-codes-close-icon",
|
|
10347
10380
|
fill: "none",
|
|
@@ -10361,18 +10394,18 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10361
10394
|
default: withCtx(() => [
|
|
10362
10395
|
unref(loading2) ? (openBlock(), createElementBlock("div", _hoisted_2$c, [
|
|
10363
10396
|
createVNode(unref(StrandsUiLoader), { size: 24 }),
|
|
10364
|
-
_cache[
|
|
10397
|
+
_cache[4] || (_cache[4] = createElementVNode("span", { class: "backup-codes-loading-text" }, "Loading backup codes...", -1))
|
|
10365
10398
|
])) : (openBlock(), createElementBlock("div", _hoisted_3$c, [
|
|
10366
10399
|
_ctx.device ? (openBlock(), createElementBlock("div", _hoisted_4$b, [
|
|
10367
10400
|
createElementVNode("div", _hoisted_5$9, [
|
|
10368
|
-
_cache[
|
|
10401
|
+
_cache[5] || (_cache[5] = createElementVNode("span", { class: "backup-codes-device-icon" }, "📱", -1)),
|
|
10369
10402
|
createElementVNode("div", null, [
|
|
10370
10403
|
createElementVNode("h3", _hoisted_6$7, toDisplayString(_ctx.device.device_name), 1),
|
|
10371
10404
|
createElementVNode("p", _hoisted_7$7, toDisplayString(unref(getDeviceTypeName)(_ctx.device.device_type)), 1)
|
|
10372
10405
|
])
|
|
10373
10406
|
])
|
|
10374
10407
|
])) : createCommentVNode("", true),
|
|
10375
|
-
_cache[
|
|
10408
|
+
_cache[16] || (_cache[16] = createElementVNode("div", { class: "backup-codes-warning" }, [
|
|
10376
10409
|
createElementVNode("div", { class: "backup-codes-warning-content" }, [
|
|
10377
10410
|
createElementVNode("svg", {
|
|
10378
10411
|
class: "backup-codes-warning-icon",
|
|
@@ -10397,7 +10430,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10397
10430
|
])
|
|
10398
10431
|
], -1)),
|
|
10399
10432
|
backupCodes.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_8$7, [
|
|
10400
|
-
_cache[
|
|
10433
|
+
_cache[8] || (_cache[8] = createElementVNode("h3", { class: "backup-codes-section-title" }, "Your Backup Codes", -1)),
|
|
10401
10434
|
createElementVNode("div", _hoisted_9$7, [
|
|
10402
10435
|
createElementVNode("div", _hoisted_10$7, [
|
|
10403
10436
|
(openBlock(true), createElementBlock(Fragment, null, renderList(backupCodes.value, (code, index) => {
|
|
@@ -10414,7 +10447,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10414
10447
|
size: "sm",
|
|
10415
10448
|
onClick: copyBackupCodes
|
|
10416
10449
|
}, {
|
|
10417
|
-
default: withCtx(() => [..._cache[
|
|
10450
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
10418
10451
|
createTextVNode(" 📋 Copy All Codes ", -1)
|
|
10419
10452
|
])]),
|
|
10420
10453
|
_: 1
|
|
@@ -10424,7 +10457,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10424
10457
|
size: "sm",
|
|
10425
10458
|
onClick: downloadBackupCodes
|
|
10426
10459
|
}, {
|
|
10427
|
-
default: withCtx(() => [..._cache[
|
|
10460
|
+
default: withCtx(() => [..._cache[7] || (_cache[7] = [
|
|
10428
10461
|
createTextVNode(" 💾 Download ", -1)
|
|
10429
10462
|
])]),
|
|
10430
10463
|
_: 1
|
|
@@ -10439,7 +10472,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10439
10472
|
disabled: unref(loading2),
|
|
10440
10473
|
loading: unref(loading2)
|
|
10441
10474
|
}, {
|
|
10442
|
-
default: withCtx(() => [..._cache[
|
|
10475
|
+
default: withCtx(() => [..._cache[9] || (_cache[9] = [
|
|
10443
10476
|
createTextVNode(" 🔄 Regenerate Codes ", -1)
|
|
10444
10477
|
])]),
|
|
10445
10478
|
_: 1
|
|
@@ -10448,7 +10481,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10448
10481
|
variant: "primary",
|
|
10449
10482
|
onClick: closeModal
|
|
10450
10483
|
}, {
|
|
10451
|
-
default: withCtx(() => [..._cache[
|
|
10484
|
+
default: withCtx(() => [..._cache[10] || (_cache[10] = [
|
|
10452
10485
|
createTextVNode(" Done ", -1)
|
|
10453
10486
|
])]),
|
|
10454
10487
|
_: 1
|
|
@@ -10457,7 +10490,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10457
10490
|
]),
|
|
10458
10491
|
showRegenerateWarning.value ? (openBlock(), createElementBlock("div", _hoisted_14$7, [
|
|
10459
10492
|
createElementVNode("div", _hoisted_15$6, [
|
|
10460
|
-
_cache[
|
|
10493
|
+
_cache[15] || (_cache[15] = createElementVNode("svg", {
|
|
10461
10494
|
class: "backup-codes-regenerate-icon",
|
|
10462
10495
|
fill: "currentColor",
|
|
10463
10496
|
viewBox: "0 0 20 20"
|
|
@@ -10469,8 +10502,8 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10469
10502
|
})
|
|
10470
10503
|
], -1)),
|
|
10471
10504
|
createElementVNode("div", null, [
|
|
10472
|
-
_cache[
|
|
10473
|
-
_cache[
|
|
10505
|
+
_cache[13] || (_cache[13] = createElementVNode("p", { class: "backup-codes-regenerate-title" }, "Regenerate Backup Codes?", -1)),
|
|
10506
|
+
_cache[14] || (_cache[14] = createElementVNode("p", { class: "backup-codes-regenerate-description" }, " This will invalidate all current backup codes. Make sure to save the new ones. ", -1)),
|
|
10474
10507
|
createElementVNode("div", _hoisted_16$6, [
|
|
10475
10508
|
createVNode(unref(StrandsUiButton), {
|
|
10476
10509
|
variant: "primary",
|
|
@@ -10479,7 +10512,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10479
10512
|
disabled: unref(loading2),
|
|
10480
10513
|
loading: unref(loading2)
|
|
10481
10514
|
}, {
|
|
10482
|
-
default: withCtx(() => [..._cache[
|
|
10515
|
+
default: withCtx(() => [..._cache[11] || (_cache[11] = [
|
|
10483
10516
|
createTextVNode(" Yes, Regenerate ", -1)
|
|
10484
10517
|
])]),
|
|
10485
10518
|
_: 1
|
|
@@ -10489,7 +10522,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10489
10522
|
size: "sm",
|
|
10490
10523
|
onClick: _cache[0] || (_cache[0] = ($event) => showRegenerateWarning.value = false)
|
|
10491
10524
|
}, {
|
|
10492
|
-
default: withCtx(() => [..._cache[
|
|
10525
|
+
default: withCtx(() => [..._cache[12] || (_cache[12] = [
|
|
10493
10526
|
createTextVNode(" Cancel ", -1)
|
|
10494
10527
|
])]),
|
|
10495
10528
|
_: 1
|
|
@@ -10501,12 +10534,12 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
10501
10534
|
]))
|
|
10502
10535
|
]),
|
|
10503
10536
|
_: 1
|
|
10504
|
-
}, 8, ["
|
|
10537
|
+
}, 8, ["modelValue"])
|
|
10505
10538
|
]);
|
|
10506
10539
|
};
|
|
10507
10540
|
}
|
|
10508
10541
|
});
|
|
10509
|
-
const StrandsBackupCodesModal = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-
|
|
10542
|
+
const StrandsBackupCodesModal = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-4b981c3b"]]);
|
|
10510
10543
|
const _hoisted_1$d = { class: "accui-component-scope" };
|
|
10511
10544
|
const _hoisted_2$b = { class: "confirm-modal-title" };
|
|
10512
10545
|
const _hoisted_3$b = { class: "confirm-modal-message" };
|
|
@@ -10523,8 +10556,17 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
10523
10556
|
},
|
|
10524
10557
|
emits: ["confirm", "cancel"],
|
|
10525
10558
|
setup(__props, { emit: __emit }) {
|
|
10559
|
+
const props = __props;
|
|
10526
10560
|
const emit = __emit;
|
|
10527
10561
|
const loading2 = ref(false);
|
|
10562
|
+
const showModal = computed({
|
|
10563
|
+
get: () => props.show,
|
|
10564
|
+
set: (value) => {
|
|
10565
|
+
if (!value) {
|
|
10566
|
+
emit("cancel");
|
|
10567
|
+
}
|
|
10568
|
+
}
|
|
10569
|
+
});
|
|
10528
10570
|
const handleConfirm = () => {
|
|
10529
10571
|
loading2.value = true;
|
|
10530
10572
|
emit("confirm");
|
|
@@ -10535,7 +10577,8 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
10535
10577
|
return (_ctx, _cache) => {
|
|
10536
10578
|
return openBlock(), createElementBlock("div", _hoisted_1$d, [
|
|
10537
10579
|
createVNode(UiModal, {
|
|
10538
|
-
|
|
10580
|
+
modelValue: showModal.value,
|
|
10581
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showModal.value = $event),
|
|
10539
10582
|
"card-class": "confirm-modal"
|
|
10540
10583
|
}, {
|
|
10541
10584
|
header: withCtx(() => [
|
|
@@ -10568,12 +10611,12 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
10568
10611
|
])
|
|
10569
10612
|
]),
|
|
10570
10613
|
_: 1
|
|
10571
|
-
}, 8, ["
|
|
10614
|
+
}, 8, ["modelValue"])
|
|
10572
10615
|
]);
|
|
10573
10616
|
};
|
|
10574
10617
|
}
|
|
10575
10618
|
});
|
|
10576
|
-
const StrandsConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-
|
|
10619
|
+
const StrandsConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-caf19622"]]);
|
|
10577
10620
|
const _hoisted_1$c = { class: "accui-component-scope" };
|
|
10578
10621
|
const _hoisted_2$a = {
|
|
10579
10622
|
key: 0,
|
|
@@ -11499,10 +11542,6 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
11499
11542
|
loading2.value = false;
|
|
11500
11543
|
}
|
|
11501
11544
|
};
|
|
11502
|
-
const handleClose = () => {
|
|
11503
|
-
visible.value = false;
|
|
11504
|
-
emit("update:modelValue", false);
|
|
11505
|
-
};
|
|
11506
11545
|
const handleRevokeSession = async (sessionId) => {
|
|
11507
11546
|
if (!confirm("Are you sure you want to end this session? The device will be signed out.")) {
|
|
11508
11547
|
return;
|
|
@@ -11589,13 +11628,13 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
11589
11628
|
loadSessions();
|
|
11590
11629
|
}
|
|
11591
11630
|
return (_ctx, _cache) => {
|
|
11592
|
-
return openBlock(), createBlock(
|
|
11593
|
-
|
|
11594
|
-
|
|
11631
|
+
return openBlock(), createBlock(UiModal, {
|
|
11632
|
+
modelValue: visible.value,
|
|
11633
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => visible.value = $event)
|
|
11595
11634
|
}, createSlots({
|
|
11596
11635
|
header: withCtx(() => [
|
|
11597
11636
|
createElementVNode("div", _hoisted_1$a, [
|
|
11598
|
-
_cache[
|
|
11637
|
+
_cache[1] || (_cache[1] = createElementVNode("h2", { class: "modal-title" }, "Active Sessions", -1)),
|
|
11599
11638
|
createElementVNode("p", _hoisted_2$8, "Manage your " + toDisplayString(sessions.value.length) + " active device" + toDisplayString(sessions.value.length !== 1 ? "s" : ""), 1)
|
|
11600
11639
|
])
|
|
11601
11640
|
]),
|
|
@@ -11603,8 +11642,8 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
11603
11642
|
createElementVNode("div", _hoisted_3$8, [
|
|
11604
11643
|
loading2.value ? (openBlock(), createElementBlock("div", _hoisted_4$7, [
|
|
11605
11644
|
createVNode(unref(StrandsUiLoader), { size: 40 }),
|
|
11606
|
-
_cache[
|
|
11607
|
-
])) : sessions.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_5$6, [..._cache[
|
|
11645
|
+
_cache[2] || (_cache[2] = createElementVNode("p", { class: "loading-text" }, "Loading sessions...", -1))
|
|
11646
|
+
])) : sessions.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_5$6, [..._cache[3] || (_cache[3] = [
|
|
11608
11647
|
createElementVNode("div", { class: "empty-icon" }, [
|
|
11609
11648
|
createElementVNode("svg", {
|
|
11610
11649
|
width: "48",
|
|
@@ -11640,15 +11679,15 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
11640
11679
|
])])) : (openBlock(), createElementBlock("div", _hoisted_6$4, [
|
|
11641
11680
|
stats.value ? (openBlock(), createElementBlock("div", _hoisted_7$4, [
|
|
11642
11681
|
createElementVNode("div", _hoisted_8$4, [
|
|
11643
|
-
_cache[
|
|
11682
|
+
_cache[4] || (_cache[4] = createElementVNode("span", { class: "stat-label" }, "Total Sessions", -1)),
|
|
11644
11683
|
createElementVNode("span", _hoisted_9$4, toDisplayString(stats.value.total_sessions), 1)
|
|
11645
11684
|
]),
|
|
11646
11685
|
createElementVNode("div", _hoisted_10$4, [
|
|
11647
|
-
_cache[
|
|
11686
|
+
_cache[5] || (_cache[5] = createElementVNode("span", { class: "stat-label" }, "Active Devices", -1)),
|
|
11648
11687
|
createElementVNode("span", _hoisted_11$4, toDisplayString(stats.value.active_sessions), 1)
|
|
11649
11688
|
]),
|
|
11650
11689
|
stats.value.unique_locations && stats.value.unique_locations.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_12$4, [
|
|
11651
|
-
_cache[
|
|
11690
|
+
_cache[6] || (_cache[6] = createElementVNode("span", { class: "stat-label" }, "Locations", -1)),
|
|
11652
11691
|
createElementVNode("span", _hoisted_13$4, toDisplayString(stats.value.unique_locations.length), 1)
|
|
11653
11692
|
])) : createCommentVNode("", true)
|
|
11654
11693
|
])) : createCommentVNode("", true),
|
|
@@ -11753,7 +11792,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
11753
11792
|
]),
|
|
11754
11793
|
_: 1
|
|
11755
11794
|
}, 8, ["disabled"]),
|
|
11756
|
-
_cache[
|
|
11795
|
+
_cache[7] || (_cache[7] = createElementVNode("p", { class: "bulk-actions-hint" }, " This will sign you out on all other devices ", -1))
|
|
11757
11796
|
])) : createCommentVNode("", true)
|
|
11758
11797
|
]))
|
|
11759
11798
|
])
|
|
@@ -11767,11 +11806,11 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
11767
11806
|
]),
|
|
11768
11807
|
key: "0"
|
|
11769
11808
|
} : void 0
|
|
11770
|
-
]), 1032, ["
|
|
11809
|
+
]), 1032, ["modelValue"]);
|
|
11771
11810
|
};
|
|
11772
11811
|
}
|
|
11773
11812
|
});
|
|
11774
|
-
const StrandsSessionsModal = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-
|
|
11813
|
+
const StrandsSessionsModal = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-35db4a29"]]);
|
|
11775
11814
|
const _hoisted_1$9 = { class: "accui-component-scope" };
|
|
11776
11815
|
const _hoisted_2$7 = { class: "profile-content-layout" };
|
|
11777
11816
|
const _hoisted_3$7 = { class: "profile-image-section" };
|
|
@@ -13010,7 +13049,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
13010
13049
|
};
|
|
13011
13050
|
}
|
|
13012
13051
|
});
|
|
13013
|
-
const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-
|
|
13052
|
+
const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-d12ee975"]]);
|
|
13014
13053
|
const _hoisted_1$8 = { class: "accui-component-scope" };
|
|
13015
13054
|
const _hoisted_2$6 = { class: "accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up" };
|
|
13016
13055
|
const _hoisted_3$6 = { class: "accui-mt-8 accui-text-center" };
|
|
@@ -13553,9 +13592,6 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13553
13592
|
showProfileModal.value = true;
|
|
13554
13593
|
closeDropdown();
|
|
13555
13594
|
};
|
|
13556
|
-
const closeProfile = () => {
|
|
13557
|
-
showProfileModal.value = false;
|
|
13558
|
-
};
|
|
13559
13595
|
const handleProfileUpdated = () => {
|
|
13560
13596
|
emit("profile-updated");
|
|
13561
13597
|
};
|
|
@@ -13564,11 +13600,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13564
13600
|
const openSignIn = () => {
|
|
13565
13601
|
showSignInModal.value = true;
|
|
13566
13602
|
};
|
|
13567
|
-
const closeSignIn = () => {
|
|
13568
|
-
showSignInModal.value = false;
|
|
13569
|
-
};
|
|
13570
13603
|
const handleSignedIn = () => {
|
|
13571
|
-
|
|
13604
|
+
showSignInModal.value = false;
|
|
13572
13605
|
emit("signed-in");
|
|
13573
13606
|
};
|
|
13574
13607
|
const handleSignInError = () => {
|
|
@@ -13626,7 +13659,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13626
13659
|
width: "32",
|
|
13627
13660
|
height: "32",
|
|
13628
13661
|
loading: "eager"
|
|
13629
|
-
}, null, 8, _hoisted_8$2)) : (openBlock(), createElementBlock("div", _hoisted_9$2, [..._cache[
|
|
13662
|
+
}, null, 8, _hoisted_8$2)) : (openBlock(), createElementBlock("div", _hoisted_9$2, [..._cache[2] || (_cache[2] = [
|
|
13630
13663
|
createElementVNode("svg", {
|
|
13631
13664
|
class: "avatar-icon",
|
|
13632
13665
|
fill: "currentColor",
|
|
@@ -13646,7 +13679,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13646
13679
|
fill: "none",
|
|
13647
13680
|
stroke: "currentColor",
|
|
13648
13681
|
viewBox: "0 0 24 24"
|
|
13649
|
-
}, [..._cache[
|
|
13682
|
+
}, [..._cache[3] || (_cache[3] = [
|
|
13650
13683
|
createElementVNode("path", {
|
|
13651
13684
|
"stroke-linecap": "round",
|
|
13652
13685
|
"stroke-linejoin": "round",
|
|
@@ -13693,7 +13726,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13693
13726
|
class: "dropdown-avatar-image",
|
|
13694
13727
|
width: "64",
|
|
13695
13728
|
height: "64"
|
|
13696
|
-
}, null, 8, _hoisted_14$2)) : (openBlock(), createElementBlock("div", _hoisted_15$2, [..._cache[
|
|
13729
|
+
}, null, 8, _hoisted_14$2)) : (openBlock(), createElementBlock("div", _hoisted_15$2, [..._cache[4] || (_cache[4] = [
|
|
13697
13730
|
createElementVNode("svg", {
|
|
13698
13731
|
class: "dropdown-avatar-icon",
|
|
13699
13732
|
fill: "currentColor",
|
|
@@ -13712,13 +13745,13 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13712
13745
|
createElementVNode("div", _hoisted_18$2, toDisplayString(user.value?.email), 1)
|
|
13713
13746
|
])
|
|
13714
13747
|
]),
|
|
13715
|
-
_cache[6] || (_cache[6] = createElementVNode("div", { class: "dropdown-divider" }, null, -1)),
|
|
13716
|
-
renderSlot(_ctx.$slots, "default", {}, void 0, true),
|
|
13717
13748
|
_cache[7] || (_cache[7] = createElementVNode("div", { class: "dropdown-divider" }, null, -1)),
|
|
13749
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true),
|
|
13750
|
+
_cache[8] || (_cache[8] = createElementVNode("div", { class: "dropdown-divider" }, null, -1)),
|
|
13718
13751
|
createVNode(unref(StrandsNav), null, {
|
|
13719
13752
|
default: withCtx(() => [
|
|
13720
13753
|
createVNode(unref(StrandsNav).Item, { onClick: openProfile }, {
|
|
13721
|
-
default: withCtx(() => [..._cache[
|
|
13754
|
+
default: withCtx(() => [..._cache[5] || (_cache[5] = [
|
|
13722
13755
|
createTextVNode("Profile", -1)
|
|
13723
13756
|
])]),
|
|
13724
13757
|
_: 1
|
|
@@ -13727,7 +13760,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13727
13760
|
onClick: handleSignOut,
|
|
13728
13761
|
color: "danger"
|
|
13729
13762
|
}, {
|
|
13730
|
-
default: withCtx(() => [..._cache[
|
|
13763
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
13731
13764
|
createTextVNode("Sign Out", -1)
|
|
13732
13765
|
])]),
|
|
13733
13766
|
_: 1
|
|
@@ -13742,8 +13775,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13742
13775
|
})
|
|
13743
13776
|
], 42, _hoisted_2$3),
|
|
13744
13777
|
createVNode(UiModal, {
|
|
13745
|
-
|
|
13746
|
-
|
|
13778
|
+
modelValue: showProfileModal.value,
|
|
13779
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showProfileModal.value = $event),
|
|
13747
13780
|
"fullscreen-on-mobile": false
|
|
13748
13781
|
}, {
|
|
13749
13782
|
default: withCtx(() => [
|
|
@@ -13755,13 +13788,13 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13755
13788
|
}, null, 8, ["user"])
|
|
13756
13789
|
]),
|
|
13757
13790
|
_: 1
|
|
13758
|
-
}, 8, ["
|
|
13791
|
+
}, 8, ["modelValue"])
|
|
13759
13792
|
])) : (openBlock(), createElementBlock("div", _hoisted_19$1, [
|
|
13760
13793
|
createElementVNode("button", {
|
|
13761
13794
|
onClick: openSignIn,
|
|
13762
13795
|
class: "sign-in-button",
|
|
13763
13796
|
"aria-label": "Sign in"
|
|
13764
|
-
}, [..._cache[
|
|
13797
|
+
}, [..._cache[9] || (_cache[9] = [
|
|
13765
13798
|
createElementVNode("svg", {
|
|
13766
13799
|
class: "sign-in-icon",
|
|
13767
13800
|
fill: "none",
|
|
@@ -13779,8 +13812,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13779
13812
|
])]),
|
|
13780
13813
|
createVNode(UiModal, {
|
|
13781
13814
|
modelValue: showSignInModal.value,
|
|
13782
|
-
"onUpdate:modelValue": _cache[
|
|
13783
|
-
onClose: closeSignIn,
|
|
13815
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showSignInModal.value = $event),
|
|
13784
13816
|
"fullscreen-on-mobile": false
|
|
13785
13817
|
}, {
|
|
13786
13818
|
default: withCtx(() => [
|
|
@@ -13800,7 +13832,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
13800
13832
|
};
|
|
13801
13833
|
}
|
|
13802
13834
|
});
|
|
13803
|
-
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-
|
|
13835
|
+
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-cfd0512b"]]);
|
|
13804
13836
|
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
13805
13837
|
__name: "StrandsNav",
|
|
13806
13838
|
props: {
|
|
@@ -14195,6 +14227,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14195
14227
|
const { registerHardwareKey, completeHardwareKeyRegistration, currentSession } = useStrandsAuth();
|
|
14196
14228
|
const internalLoading = ref(false);
|
|
14197
14229
|
const loading2 = computed(() => mfaLoading.value || internalLoading.value);
|
|
14230
|
+
const showModal = computed({
|
|
14231
|
+
get: () => props.show,
|
|
14232
|
+
set: (value) => {
|
|
14233
|
+
if (!value) {
|
|
14234
|
+
emit("close");
|
|
14235
|
+
}
|
|
14236
|
+
}
|
|
14237
|
+
});
|
|
14198
14238
|
const step = ref(1);
|
|
14199
14239
|
const deviceName = ref("");
|
|
14200
14240
|
const deviceNameError = ref("");
|
|
@@ -14420,17 +14460,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14420
14460
|
return (_ctx, _cache) => {
|
|
14421
14461
|
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
14422
14462
|
createVNode(UiModal, {
|
|
14423
|
-
|
|
14424
|
-
|
|
14463
|
+
modelValue: showModal.value,
|
|
14464
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => showModal.value = $event),
|
|
14425
14465
|
"card-class": "hardware-key-setup-modal"
|
|
14426
14466
|
}, {
|
|
14427
14467
|
header: withCtx(() => [
|
|
14428
14468
|
createElementVNode("div", { class: "hardware-key-setup-header" }, [
|
|
14429
|
-
_cache[
|
|
14469
|
+
_cache[5] || (_cache[5] = createElementVNode("h2", { class: "hardware-key-setup-title" }, "Setup Hardware Key", -1)),
|
|
14430
14470
|
createElementVNode("button", {
|
|
14431
14471
|
onClick: closeModal,
|
|
14432
14472
|
class: "hardware-key-setup-close"
|
|
14433
|
-
}, [..._cache[
|
|
14473
|
+
}, [..._cache[4] || (_cache[4] = [
|
|
14434
14474
|
createElementVNode("svg", {
|
|
14435
14475
|
class: "hardware-key-setup-close-icon",
|
|
14436
14476
|
fill: "none",
|
|
@@ -14449,7 +14489,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14449
14489
|
]),
|
|
14450
14490
|
default: withCtx(() => [
|
|
14451
14491
|
step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
|
|
14452
|
-
_cache[
|
|
14492
|
+
_cache[8] || (_cache[8] = createElementVNode("div", null, [
|
|
14453
14493
|
createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Name Your Hardware Key"),
|
|
14454
14494
|
createElementVNode("p", { class: "hardware-key-setup-step-description" }, ' Give your hardware key a memorable name (e.g., "YubiKey 5", "Work Security Key") ')
|
|
14455
14495
|
], -1)),
|
|
@@ -14467,7 +14507,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14467
14507
|
onClick: closeModal,
|
|
14468
14508
|
disabled: loading2.value
|
|
14469
14509
|
}, {
|
|
14470
|
-
default: withCtx(() => [..._cache[
|
|
14510
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
14471
14511
|
createTextVNode(" Cancel ", -1)
|
|
14472
14512
|
])]),
|
|
14473
14513
|
_: 1
|
|
@@ -14478,7 +14518,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14478
14518
|
disabled: !deviceName.value.trim() || loading2.value,
|
|
14479
14519
|
loading: loading2.value
|
|
14480
14520
|
}, {
|
|
14481
|
-
default: withCtx(() => [..._cache[
|
|
14521
|
+
default: withCtx(() => [..._cache[7] || (_cache[7] = [
|
|
14482
14522
|
createTextVNode(" Continue ", -1)
|
|
14483
14523
|
])]),
|
|
14484
14524
|
_: 1
|
|
@@ -14486,11 +14526,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14486
14526
|
])
|
|
14487
14527
|
])) : createCommentVNode("", true),
|
|
14488
14528
|
step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
|
|
14489
|
-
_cache[
|
|
14529
|
+
_cache[19] || (_cache[19] = createElementVNode("div", null, [
|
|
14490
14530
|
createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Register Hardware Key"),
|
|
14491
14531
|
createElementVNode("p", { class: "hardware-key-setup-step-description" }, " Insert your hardware key and follow your browser's prompts to complete registration. ")
|
|
14492
14532
|
], -1)),
|
|
14493
|
-
_cache[
|
|
14533
|
+
_cache[20] || (_cache[20] = createElementVNode("div", { class: "hardware-key-setup-illustration" }, [
|
|
14494
14534
|
createElementVNode("div", { class: "hardware-key-setup-illustration-content" }, [
|
|
14495
14535
|
createElementVNode("div", { class: "hardware-key-setup-icon-container" }, [
|
|
14496
14536
|
createElementVNode("svg", {
|
|
@@ -14513,7 +14553,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14513
14553
|
], -1)),
|
|
14514
14554
|
createElementVNode("div", _hoisted_5$1, [
|
|
14515
14555
|
createElementVNode("div", _hoisted_6$1, [
|
|
14516
|
-
_cache[
|
|
14556
|
+
_cache[16] || (_cache[16] = createElementVNode("svg", {
|
|
14517
14557
|
class: "hardware-key-setup-info-icon",
|
|
14518
14558
|
fill: "currentColor",
|
|
14519
14559
|
viewBox: "0 0 20 20"
|
|
@@ -14525,16 +14565,16 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14525
14565
|
})
|
|
14526
14566
|
], -1)),
|
|
14527
14567
|
createElementVNode("div", null, [
|
|
14528
|
-
_cache[
|
|
14568
|
+
_cache[15] || (_cache[15] = createElementVNode("p", { class: "hardware-key-setup-instructions-title" }, "Setup Instructions", -1)),
|
|
14529
14569
|
createElementVNode("ul", _hoisted_7$1, [
|
|
14530
14570
|
props.deviceType === "passkey" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
14531
|
-
_cache[
|
|
14532
|
-
_cache[
|
|
14533
|
-
_cache[
|
|
14571
|
+
_cache[9] || (_cache[9] = createElementVNode("li", null, "• Your browser will prompt you to create a passkey", -1)),
|
|
14572
|
+
_cache[10] || (_cache[10] = createElementVNode("li", null, "• Use Touch ID, Face ID, Windows Hello, or PIN", -1)),
|
|
14573
|
+
_cache[11] || (_cache[11] = createElementVNode("li", null, "• Follow the prompts to complete setup", -1))
|
|
14534
14574
|
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
14535
|
-
_cache[
|
|
14536
|
-
_cache[
|
|
14537
|
-
_cache[
|
|
14575
|
+
_cache[12] || (_cache[12] = createElementVNode("li", null, "• Insert your hardware key into a USB port", -1)),
|
|
14576
|
+
_cache[13] || (_cache[13] = createElementVNode("li", null, "• Your browser will prompt you to interact with the key", -1)),
|
|
14577
|
+
_cache[14] || (_cache[14] = createElementVNode("li", null, "• Touch the key's button or sensor when prompted", -1))
|
|
14538
14578
|
], 64))
|
|
14539
14579
|
])
|
|
14540
14580
|
])
|
|
@@ -14546,7 +14586,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14546
14586
|
onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
|
|
14547
14587
|
disabled: loading2.value
|
|
14548
14588
|
}, {
|
|
14549
|
-
default: withCtx(() => [..._cache[
|
|
14589
|
+
default: withCtx(() => [..._cache[17] || (_cache[17] = [
|
|
14550
14590
|
createTextVNode(" Back ", -1)
|
|
14551
14591
|
])]),
|
|
14552
14592
|
_: 1
|
|
@@ -14557,7 +14597,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14557
14597
|
disabled: loading2.value,
|
|
14558
14598
|
loading: loading2.value
|
|
14559
14599
|
}, {
|
|
14560
|
-
default: withCtx(() => [..._cache[
|
|
14600
|
+
default: withCtx(() => [..._cache[18] || (_cache[18] = [
|
|
14561
14601
|
createTextVNode(" Register Key ", -1)
|
|
14562
14602
|
])]),
|
|
14563
14603
|
_: 1
|
|
@@ -14572,10 +14612,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14572
14612
|
class: "hardware-key-setup-loader"
|
|
14573
14613
|
})
|
|
14574
14614
|
]),
|
|
14575
|
-
_cache[
|
|
14615
|
+
_cache[21] || (_cache[21] = createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registering Hardware Key", -1)),
|
|
14576
14616
|
createElementVNode("p", _hoisted_12$1, toDisplayString(registrationMessage.value), 1)
|
|
14577
14617
|
]),
|
|
14578
|
-
_cache[
|
|
14618
|
+
_cache[22] || (_cache[22] = createElementVNode("div", { class: "hardware-key-setup-progress-indicator" }, [
|
|
14579
14619
|
createElementVNode("div", { class: "hardware-key-setup-progress-content" }, [
|
|
14580
14620
|
createElementVNode("div", { class: "hardware-key-setup-progress-check" }, [
|
|
14581
14621
|
createElementVNode("div", { class: "hardware-key-setup-check-icon" }, [
|
|
@@ -14599,7 +14639,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14599
14639
|
], -1))
|
|
14600
14640
|
])) : createCommentVNode("", true),
|
|
14601
14641
|
step.value === 4 ? (openBlock(), createElementBlock("div", _hoisted_13$1, [
|
|
14602
|
-
_cache[
|
|
14642
|
+
_cache[26] || (_cache[26] = createElementVNode("div", { class: "hardware-key-setup-success" }, [
|
|
14603
14643
|
createElementVNode("div", { class: "hardware-key-setup-success-icon" }, [
|
|
14604
14644
|
createElementVNode("svg", {
|
|
14605
14645
|
class: "hardware-key-setup-success-check",
|
|
@@ -14619,7 +14659,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14619
14659
|
createElementVNode("p", { class: "hardware-key-setup-success-message" }, " Your hardware key is now active for two-factor authentication. ")
|
|
14620
14660
|
], -1)),
|
|
14621
14661
|
createElementVNode("div", _hoisted_14$1, [
|
|
14622
|
-
_cache[
|
|
14662
|
+
_cache[24] || (_cache[24] = createElementVNode("div", { class: "hardware-key-setup-backup-codes-header" }, [
|
|
14623
14663
|
createElementVNode("svg", {
|
|
14624
14664
|
class: "hardware-key-setup-warning-icon",
|
|
14625
14665
|
fill: "currentColor",
|
|
@@ -14652,7 +14692,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14652
14692
|
size: "sm",
|
|
14653
14693
|
onClick: copyBackupCodes
|
|
14654
14694
|
}, {
|
|
14655
|
-
default: withCtx(() => [..._cache[
|
|
14695
|
+
default: withCtx(() => [..._cache[23] || (_cache[23] = [
|
|
14656
14696
|
createTextVNode(" 📋 Copy Codes ", -1)
|
|
14657
14697
|
])]),
|
|
14658
14698
|
_: 1
|
|
@@ -14664,7 +14704,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14664
14704
|
variant: "primary",
|
|
14665
14705
|
onClick: finish
|
|
14666
14706
|
}, {
|
|
14667
|
-
default: withCtx(() => [..._cache[
|
|
14707
|
+
default: withCtx(() => [..._cache[25] || (_cache[25] = [
|
|
14668
14708
|
createTextVNode(" Done ", -1)
|
|
14669
14709
|
])]),
|
|
14670
14710
|
_: 1
|
|
@@ -14673,7 +14713,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14673
14713
|
])) : createCommentVNode("", true),
|
|
14674
14714
|
step.value === 5 ? (openBlock(), createElementBlock("div", _hoisted_19, [
|
|
14675
14715
|
createElementVNode("div", _hoisted_20, [
|
|
14676
|
-
_cache[
|
|
14716
|
+
_cache[27] || (_cache[27] = createElementVNode("div", { class: "hardware-key-setup-error-icon" }, [
|
|
14677
14717
|
createElementVNode("svg", {
|
|
14678
14718
|
class: "hardware-key-setup-error-x",
|
|
14679
14719
|
fill: "none",
|
|
@@ -14688,7 +14728,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14688
14728
|
})
|
|
14689
14729
|
])
|
|
14690
14730
|
], -1)),
|
|
14691
|
-
_cache[
|
|
14731
|
+
_cache[28] || (_cache[28] = createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registration Failed", -1)),
|
|
14692
14732
|
createElementVNode("p", _hoisted_21, toDisplayString(errorMessage.value), 1)
|
|
14693
14733
|
]),
|
|
14694
14734
|
createElementVNode("div", _hoisted_22, [
|
|
@@ -14696,7 +14736,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14696
14736
|
variant: "secondary",
|
|
14697
14737
|
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1)
|
|
14698
14738
|
}, {
|
|
14699
|
-
default: withCtx(() => [..._cache[
|
|
14739
|
+
default: withCtx(() => [..._cache[29] || (_cache[29] = [
|
|
14700
14740
|
createTextVNode(" Start Over ", -1)
|
|
14701
14741
|
])]),
|
|
14702
14742
|
_: 1
|
|
@@ -14705,7 +14745,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14705
14745
|
variant: "primary",
|
|
14706
14746
|
onClick: closeModal
|
|
14707
14747
|
}, {
|
|
14708
|
-
default: withCtx(() => [..._cache[
|
|
14748
|
+
default: withCtx(() => [..._cache[30] || (_cache[30] = [
|
|
14709
14749
|
createTextVNode(" Close ", -1)
|
|
14710
14750
|
])]),
|
|
14711
14751
|
_: 1
|
|
@@ -14714,12 +14754,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
14714
14754
|
])) : createCommentVNode("", true)
|
|
14715
14755
|
]),
|
|
14716
14756
|
_: 1
|
|
14717
|
-
}, 8, ["
|
|
14757
|
+
}, 8, ["modelValue"])
|
|
14718
14758
|
]);
|
|
14719
14759
|
};
|
|
14720
14760
|
}
|
|
14721
14761
|
});
|
|
14722
|
-
const StrandsHardwareKeySetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-
|
|
14762
|
+
const StrandsHardwareKeySetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-db74941b"]]);
|
|
14723
14763
|
const _hoisted_1 = { class: "accui-component-scope" };
|
|
14724
14764
|
const _hoisted_2 = { class: "mfa-setup-header" };
|
|
14725
14765
|
const _hoisted_3 = { class: "mfa-setup-status-container" };
|
|
@@ -14844,6 +14884,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14844
14884
|
activeMfaDevices,
|
|
14845
14885
|
fetchMfaDevices
|
|
14846
14886
|
} = useStrandsMfa();
|
|
14887
|
+
const showModal = computed({
|
|
14888
|
+
get: () => props.show,
|
|
14889
|
+
set: (value) => {
|
|
14890
|
+
if (!value) {
|
|
14891
|
+
emit("close");
|
|
14892
|
+
}
|
|
14893
|
+
}
|
|
14894
|
+
});
|
|
14847
14895
|
const showTotpSetup = ref(false);
|
|
14848
14896
|
const showEmailMfaSetup = ref(false);
|
|
14849
14897
|
const showHardwareKeySetup = ref(false);
|
|
@@ -14883,13 +14931,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14883
14931
|
return (_ctx, _cache) => {
|
|
14884
14932
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
14885
14933
|
createVNode(UiModal, {
|
|
14886
|
-
|
|
14887
|
-
|
|
14934
|
+
modelValue: showModal.value,
|
|
14935
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showModal.value = $event),
|
|
14888
14936
|
"card-class": "mfa-setup-modal"
|
|
14889
14937
|
}, {
|
|
14890
14938
|
header: withCtx(() => [
|
|
14891
14939
|
createElementVNode("div", _hoisted_2, [
|
|
14892
|
-
_cache[
|
|
14940
|
+
_cache[5] || (_cache[5] = createElementVNode("div", null, [
|
|
14893
14941
|
createElementVNode("h2", { class: "mfa-setup-title" }, "Two-Factor Authentication"),
|
|
14894
14942
|
createElementVNode("p", { class: "mfa-setup-subtitle" }, "Add extra security to your account")
|
|
14895
14943
|
], -1)),
|
|
@@ -14907,7 +14955,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14907
14955
|
onClick: closeModal,
|
|
14908
14956
|
disabled: unref(loading2)
|
|
14909
14957
|
}, {
|
|
14910
|
-
default: withCtx(() => [..._cache[
|
|
14958
|
+
default: withCtx(() => [..._cache[15] || (_cache[15] = [
|
|
14911
14959
|
createTextVNode(" Cancel ", -1)
|
|
14912
14960
|
])]),
|
|
14913
14961
|
_: 1
|
|
@@ -14918,7 +14966,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14918
14966
|
createElementVNode("div", _hoisted_4, [
|
|
14919
14967
|
unref(loading2) ? (openBlock(), createElementBlock("div", _hoisted_5, [
|
|
14920
14968
|
createVNode(unref(StrandsUiLoader), { size: 32 }),
|
|
14921
|
-
_cache[
|
|
14969
|
+
_cache[6] || (_cache[6] = createElementVNode("span", { class: "mfa-setup-loading-text" }, "Loading MFA settings...", -1))
|
|
14922
14970
|
])) : (openBlock(), createElementBlock("div", _hoisted_6, [
|
|
14923
14971
|
unref(mfaEnabled2) || unref(activeMfaDevices).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_7, [
|
|
14924
14972
|
createElementVNode("div", _hoisted_8, [
|
|
@@ -14928,14 +14976,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14928
14976
|
class: "mfa-setup-shield-icon"
|
|
14929
14977
|
})
|
|
14930
14978
|
]),
|
|
14931
|
-
_cache[
|
|
14979
|
+
_cache[7] || (_cache[7] = createElementVNode("div", null, [
|
|
14932
14980
|
createElementVNode("span", { class: "mfa-setup-status-title" }, "2FA is currently enabled on your account"),
|
|
14933
14981
|
createElementVNode("p", { class: "mfa-setup-status-description" }, "Your account has additional security protection")
|
|
14934
14982
|
], -1))
|
|
14935
14983
|
])
|
|
14936
14984
|
])) : createCommentVNode("", true),
|
|
14937
14985
|
createElementVNode("div", null, [
|
|
14938
|
-
_cache[
|
|
14986
|
+
_cache[12] || (_cache[12] = createElementVNode("h3", { class: "mfa-setup-methods-title" }, "Choose Your Authentication Method", -1)),
|
|
14939
14987
|
createElementVNode("div", _hoisted_10, [
|
|
14940
14988
|
createElementVNode("div", {
|
|
14941
14989
|
class: "mfa-setup-method-card",
|
|
@@ -14948,7 +14996,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14948
14996
|
class: "mfa-setup-icon-svg"
|
|
14949
14997
|
})
|
|
14950
14998
|
]),
|
|
14951
|
-
_cache[
|
|
14999
|
+
_cache[9] || (_cache[9] = createElementVNode("div", { class: "mfa-setup-method-info" }, [
|
|
14952
15000
|
createElementVNode("h4", { class: "mfa-setup-method-title" }, "Authenticator App"),
|
|
14953
15001
|
createElementVNode("p", { class: "mfa-setup-method-description" }, "Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes")
|
|
14954
15002
|
], -1)),
|
|
@@ -14959,7 +15007,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14959
15007
|
disabled: unref(loading2),
|
|
14960
15008
|
class: "mfa-setup-method-button"
|
|
14961
15009
|
}, {
|
|
14962
|
-
default: withCtx(() => [..._cache[
|
|
15010
|
+
default: withCtx(() => [..._cache[8] || (_cache[8] = [
|
|
14963
15011
|
createTextVNode(" Setup Authenticator ", -1)
|
|
14964
15012
|
])]),
|
|
14965
15013
|
_: 1
|
|
@@ -14977,7 +15025,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14977
15025
|
class: "mfa-setup-icon-svg"
|
|
14978
15026
|
})
|
|
14979
15027
|
]),
|
|
14980
|
-
_cache[
|
|
15028
|
+
_cache[11] || (_cache[11] = createElementVNode("div", { class: "mfa-setup-method-info" }, [
|
|
14981
15029
|
createElementVNode("h4", { class: "mfa-setup-method-title" }, "Email Verification"),
|
|
14982
15030
|
createElementVNode("p", { class: "mfa-setup-method-description" }, "Receive verification codes directly in your email inbox for easy access")
|
|
14983
15031
|
], -1)),
|
|
@@ -14988,7 +15036,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14988
15036
|
disabled: unref(loading2),
|
|
14989
15037
|
class: "mfa-setup-method-button"
|
|
14990
15038
|
}, {
|
|
14991
|
-
default: withCtx(() => [..._cache[
|
|
15039
|
+
default: withCtx(() => [..._cache[10] || (_cache[10] = [
|
|
14992
15040
|
createTextVNode(" Setup Email 2FA ", -1)
|
|
14993
15041
|
])]),
|
|
14994
15042
|
_: 1
|
|
@@ -15000,7 +15048,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15000
15048
|
unref(activeMfaDevices).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_15, [
|
|
15001
15049
|
createElementVNode("div", _hoisted_16, [
|
|
15002
15050
|
createElementVNode("div", null, [
|
|
15003
|
-
_cache[
|
|
15051
|
+
_cache[13] || (_cache[13] = createElementVNode("h3", { class: "mfa-setup-manage-title" }, "Manage Existing Methods", -1)),
|
|
15004
15052
|
createElementVNode("p", _hoisted_17, toDisplayString(unref(activeMfaDevices).length) + " device(s) currently active", 1)
|
|
15005
15053
|
]),
|
|
15006
15054
|
createVNode(unref(StrandsUiButton), {
|
|
@@ -15014,7 +15062,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15014
15062
|
size: 16,
|
|
15015
15063
|
class: "mfa-setup-manage-icon"
|
|
15016
15064
|
}),
|
|
15017
|
-
_cache[
|
|
15065
|
+
_cache[14] || (_cache[14] = createTextVNode(" Manage Devices ", -1))
|
|
15018
15066
|
]),
|
|
15019
15067
|
_: 1
|
|
15020
15068
|
}, 8, ["disabled"])
|
|
@@ -15024,36 +15072,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15024
15072
|
])
|
|
15025
15073
|
]),
|
|
15026
15074
|
_: 1
|
|
15027
|
-
}, 8, ["
|
|
15075
|
+
}, 8, ["modelValue"]),
|
|
15028
15076
|
showTotpSetup.value ? (openBlock(), createBlock(StrandsTotpSetupModal, {
|
|
15029
15077
|
key: 0,
|
|
15030
15078
|
show: showTotpSetup.value,
|
|
15031
|
-
onClose: _cache[
|
|
15079
|
+
onClose: _cache[1] || (_cache[1] = ($event) => showTotpSetup.value = false),
|
|
15032
15080
|
onSuccess: handleSetupSuccess
|
|
15033
15081
|
}, null, 8, ["show"])) : createCommentVNode("", true),
|
|
15034
15082
|
showEmailMfaSetup.value ? (openBlock(), createBlock(StrandsEmailMfaSetupModal, {
|
|
15035
15083
|
key: 1,
|
|
15036
15084
|
show: showEmailMfaSetup.value,
|
|
15037
|
-
onClose: _cache[
|
|
15085
|
+
onClose: _cache[2] || (_cache[2] = ($event) => showEmailMfaSetup.value = false),
|
|
15038
15086
|
onSuccess: handleSetupSuccess
|
|
15039
15087
|
}, null, 8, ["show"])) : createCommentVNode("", true),
|
|
15040
15088
|
showHardwareKeySetup.value ? (openBlock(), createBlock(StrandsHardwareKeySetupModal, {
|
|
15041
15089
|
key: 2,
|
|
15042
15090
|
show: showHardwareKeySetup.value,
|
|
15043
|
-
onClose: _cache[
|
|
15091
|
+
onClose: _cache[3] || (_cache[3] = ($event) => showHardwareKeySetup.value = false),
|
|
15044
15092
|
onSuccess: handleSetupSuccess
|
|
15045
15093
|
}, null, 8, ["show"])) : createCommentVNode("", true),
|
|
15046
15094
|
showMfaModal.value ? (openBlock(), createBlock(StrandsMfaModal, {
|
|
15047
15095
|
key: 3,
|
|
15048
15096
|
show: showMfaModal.value,
|
|
15049
|
-
onClose: _cache[
|
|
15097
|
+
onClose: _cache[4] || (_cache[4] = ($event) => showMfaModal.value = false),
|
|
15050
15098
|
onMfaUpdated: handleMfaUpdated
|
|
15051
15099
|
}, null, 8, ["show"])) : createCommentVNode("", true)
|
|
15052
15100
|
]);
|
|
15053
15101
|
};
|
|
15054
15102
|
}
|
|
15055
15103
|
});
|
|
15056
|
-
const StrandsMFASetup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
15104
|
+
const StrandsMFASetup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5e4af8e5"]]);
|
|
15057
15105
|
const components = {
|
|
15058
15106
|
StrandsUiAlert,
|
|
15059
15107
|
StrandsUiButton,
|