@strands.gg/accui 1.3.3 → 1.4.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 +6 -0
- package/dist/strands-auth-ui.cjs.js +108 -167
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +108 -167
- package/dist/strands-auth-ui.es.js.map +1 -1
- package/dist/vue/components/StrandsMFASetup.vue.d.ts.map +1 -1
- package/dist/vue/components/StrandsMfaModal.vue.d.ts.map +1 -1
- package/dist/vue/components/StrandsMfaVerification.vue.d.ts.map +1 -1
- package/dist/vue/composables/useStrandsMfa.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1030,7 +1030,11 @@ function useStrandsMfa() {
|
|
|
1030
1030
|
const { getUrl } = useStrandsConfig();
|
|
1031
1031
|
const { currentSession } = useStrandsAuth();
|
|
1032
1032
|
const hasMfaDevices = computed(() => mfaDevices.value.length > 0);
|
|
1033
|
-
const activeMfaDevices = computed(
|
|
1033
|
+
const activeMfaDevices = computed(
|
|
1034
|
+
() => mfaDevices.value.filter(
|
|
1035
|
+
(d) => d.is_active && d.device_type !== "hardware" && d.device_type !== "passkey"
|
|
1036
|
+
)
|
|
1037
|
+
);
|
|
1034
1038
|
const makeAuthenticatedRequest = async (url, options = {}) => {
|
|
1035
1039
|
if (!currentSession.value?.accessToken) {
|
|
1036
1040
|
throw new Error("No access token available");
|
|
@@ -1265,7 +1269,12 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1265
1269
|
const cooldownActive = ref(false);
|
|
1266
1270
|
const cooldownSeconds = ref(0);
|
|
1267
1271
|
let cooldownInterval = null;
|
|
1268
|
-
const availableMethods = computed(() =>
|
|
1272
|
+
const availableMethods = computed(() => {
|
|
1273
|
+
const methods = props.availableMfaMethods || [];
|
|
1274
|
+
return methods.filter(
|
|
1275
|
+
(method) => method.device_type !== "hardware" && method.device_type !== "passkey"
|
|
1276
|
+
);
|
|
1277
|
+
});
|
|
1269
1278
|
watch(() => availableMethods.value, (methods) => {
|
|
1270
1279
|
if (methods.length === 1) {
|
|
1271
1280
|
selectedMethod.value = methods[0];
|
|
@@ -1511,7 +1520,7 @@ const _hoisted_19$6 = {
|
|
|
1511
1520
|
key: 3,
|
|
1512
1521
|
class: "text-center space-y-4"
|
|
1513
1522
|
};
|
|
1514
|
-
const _hoisted_20$
|
|
1523
|
+
const _hoisted_20$5 = { class: "bg-blue-50 border border-blue-200 rounded-lg p-4" };
|
|
1515
1524
|
const _hoisted_21$4 = { class: "flex items-center space-x-3" };
|
|
1516
1525
|
const _hoisted_22$3 = { class: "text-left" };
|
|
1517
1526
|
const _hoisted_23$2 = { class: "font-medium text-blue-900" };
|
|
@@ -1525,21 +1534,21 @@ const _hoisted_27$2 = {
|
|
|
1525
1534
|
key: 4,
|
|
1526
1535
|
class: "space-y-4"
|
|
1527
1536
|
};
|
|
1528
|
-
const _hoisted_28$
|
|
1537
|
+
const _hoisted_28$1 = {
|
|
1529
1538
|
key: 0,
|
|
1530
1539
|
class: "bg-green-50 border border-green-200 rounded-lg p-4"
|
|
1531
1540
|
};
|
|
1532
|
-
const _hoisted_29$
|
|
1541
|
+
const _hoisted_29$1 = {
|
|
1533
1542
|
key: 1,
|
|
1534
1543
|
class: "text-sm text-gray-600"
|
|
1535
1544
|
};
|
|
1536
|
-
const _hoisted_30$
|
|
1545
|
+
const _hoisted_30$1 = {
|
|
1537
1546
|
key: 2,
|
|
1538
1547
|
class: "flex justify-between text-sm"
|
|
1539
1548
|
};
|
|
1540
|
-
const _hoisted_31$
|
|
1541
|
-
const _hoisted_32$
|
|
1542
|
-
const _hoisted_33$
|
|
1549
|
+
const _hoisted_31$1 = ["disabled"];
|
|
1550
|
+
const _hoisted_32$1 = { class: "pt-4 border-t border-gray-200" };
|
|
1551
|
+
const _hoisted_33$1 = {
|
|
1543
1552
|
key: 3,
|
|
1544
1553
|
class: "space-y-4 bg-amber-50 border border-amber-200 rounded-lg p-4"
|
|
1545
1554
|
};
|
|
@@ -1748,7 +1757,7 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1748
1757
|
])) : createCommentVNode("v-if", true),
|
|
1749
1758
|
createCommentVNode(" Hardware Key & Passkey Authentication "),
|
|
1750
1759
|
$setup.selectedMethod?.device_type === "hardware" || $setup.selectedMethod?.device_type === "passkey" ? (openBlock(), createElementBlock("div", _hoisted_19$6, [
|
|
1751
|
-
createElementVNode("div", _hoisted_20$
|
|
1760
|
+
createElementVNode("div", _hoisted_20$5, [
|
|
1752
1761
|
createElementVNode("div", _hoisted_21$4, [
|
|
1753
1762
|
_cache[11] || (_cache[11] = createElementVNode(
|
|
1754
1763
|
"div",
|
|
@@ -1878,7 +1887,7 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1878
1887
|
createCommentVNode(" Code Input "),
|
|
1879
1888
|
$setup.selectedMethod && $setup.selectedMethod.device_type !== "hardware" && $setup.selectedMethod.device_type !== "passkey" && ($setup.selectedMethod.device_type !== "email" || $setup.emailCodeSent) ? (openBlock(), createElementBlock("div", _hoisted_27$2, [
|
|
1880
1889
|
createCommentVNode(" Email confirmation "),
|
|
1881
|
-
$setup.selectedMethod.device_type === "email" && $setup.emailCodeSent ? (openBlock(), createElementBlock("div", _hoisted_28$
|
|
1890
|
+
$setup.selectedMethod.device_type === "email" && $setup.emailCodeSent ? (openBlock(), createElementBlock("div", _hoisted_28$1, _cache[14] || (_cache[14] = [
|
|
1882
1891
|
createElementVNode(
|
|
1883
1892
|
"div",
|
|
1884
1893
|
{ class: "flex items-start space-x-2" },
|
|
@@ -1919,21 +1928,21 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1919
1928
|
createCommentVNode(" TOTP Help "),
|
|
1920
1929
|
$setup.selectedMethod.device_type === "totp" ? (openBlock(), createElementBlock(
|
|
1921
1930
|
"div",
|
|
1922
|
-
_hoisted_29$
|
|
1931
|
+
_hoisted_29$1,
|
|
1923
1932
|
' Open your authenticator app and enter the 6-digit code for "' + toDisplayString($setup.selectedMethod.device_name) + '" ',
|
|
1924
1933
|
1
|
|
1925
1934
|
/* TEXT */
|
|
1926
1935
|
)) : createCommentVNode("v-if", true),
|
|
1927
1936
|
createCommentVNode(" Email Resend "),
|
|
1928
|
-
$setup.selectedMethod.device_type === "email" ? (openBlock(), createElementBlock("div", _hoisted_30$
|
|
1937
|
+
$setup.selectedMethod.device_type === "email" ? (openBlock(), createElementBlock("div", _hoisted_30$1, [
|
|
1929
1938
|
createElementVNode("button", {
|
|
1930
1939
|
onClick: $setup.sendEmailCode,
|
|
1931
1940
|
disabled: $setup.loading || $setup.cooldownActive,
|
|
1932
1941
|
class: "text-strands-600 hover:text-strands-800 disabled:text-gray-400 disabled:cursor-not-allowed"
|
|
1933
|
-
}, toDisplayString($setup.cooldownActive ? `Resend in ${$setup.cooldownSeconds}s` : "Resend Code"), 9, _hoisted_31$
|
|
1942
|
+
}, toDisplayString($setup.cooldownActive ? `Resend in ${$setup.cooldownSeconds}s` : "Resend Code"), 9, _hoisted_31$1)
|
|
1934
1943
|
])) : createCommentVNode("v-if", true),
|
|
1935
1944
|
createCommentVNode(" Backup Codes Option "),
|
|
1936
|
-
createElementVNode("div", _hoisted_32$
|
|
1945
|
+
createElementVNode("div", _hoisted_32$1, [
|
|
1937
1946
|
createElementVNode("button", {
|
|
1938
1947
|
onClick: _cache[3] || (_cache[3] = ($event) => $setup.showBackupCodeInput = !$setup.showBackupCodeInput),
|
|
1939
1948
|
class: "flex items-center text-sm text-gray-600 hover:text-gray-800 transition-colors"
|
|
@@ -1965,7 +1974,7 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1965
1974
|
])
|
|
1966
1975
|
]),
|
|
1967
1976
|
createCommentVNode(" Backup Code Input "),
|
|
1968
|
-
$setup.showBackupCodeInput ? (openBlock(), createElementBlock("div", _hoisted_33$
|
|
1977
|
+
$setup.showBackupCodeInput ? (openBlock(), createElementBlock("div", _hoisted_33$1, [
|
|
1969
1978
|
_cache[16] || (_cache[16] = createElementVNode(
|
|
1970
1979
|
"div",
|
|
1971
1980
|
{ class: "flex items-start space-x-2 mb-3" },
|
|
@@ -3407,7 +3416,7 @@ const _hoisted_16$5 = { class: "alert-error" };
|
|
|
3407
3416
|
const _hoisted_17$5 = { class: "flex items-start gap-3" };
|
|
3408
3417
|
const _hoisted_18$5 = { class: "font-medium" };
|
|
3409
3418
|
const _hoisted_19$5 = { class: "mt-8 text-center" };
|
|
3410
|
-
const _hoisted_20$
|
|
3419
|
+
const _hoisted_20$4 = { class: "text-sm text-neutral-600" };
|
|
3411
3420
|
const _hoisted_21$3 = { key: 0 };
|
|
3412
3421
|
const _hoisted_22$2 = { class: "text-neutral-400 text-sm" };
|
|
3413
3422
|
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
@@ -3672,7 +3681,7 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3672
3681
|
])) : createCommentVNode("v-if", true),
|
|
3673
3682
|
createCommentVNode(" Sign in link "),
|
|
3674
3683
|
createElementVNode("div", _hoisted_19$5, [
|
|
3675
|
-
createElementVNode("p", _hoisted_20$
|
|
3684
|
+
createElementVNode("p", _hoisted_20$4, [
|
|
3676
3685
|
_cache[10] || (_cache[10] = createTextVNode(
|
|
3677
3686
|
" Already have an account? ",
|
|
3678
3687
|
-1
|
|
@@ -7822,7 +7831,7 @@ const _hoisted_18$3 = {
|
|
|
7822
7831
|
class: "space-y-4"
|
|
7823
7832
|
};
|
|
7824
7833
|
const _hoisted_19$3 = { class: "text-center" };
|
|
7825
|
-
const _hoisted_20$
|
|
7834
|
+
const _hoisted_20$3 = { class: "text-sm text-gray-600 mb-6" };
|
|
7826
7835
|
const _hoisted_21$2 = { class: "flex justify-end space-x-3 pt-4" };
|
|
7827
7836
|
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7828
7837
|
return openBlock(), createBlock($setup["UiModal"], {
|
|
@@ -8275,7 +8284,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8275
8284
|
)),
|
|
8276
8285
|
createElementVNode(
|
|
8277
8286
|
"p",
|
|
8278
|
-
_hoisted_20$
|
|
8287
|
+
_hoisted_20$3,
|
|
8279
8288
|
toDisplayString($setup.errorMessage),
|
|
8280
8289
|
1
|
|
8281
8290
|
/* TEXT */
|
|
@@ -9008,21 +9017,15 @@ const _hoisted_15$2 = { class: "flex flex-col space-y-2 ml-4" };
|
|
|
9008
9017
|
const _hoisted_16$2 = { class: "flex items-center justify-between" };
|
|
9009
9018
|
const _hoisted_17$2 = { class: "flex-shrink-0 w-14 h-14 bg-[var(--strands-primary)] bg-opacity-10 rounded-xl flex items-center justify-center group-hover:bg-[var(--strands-primary)] group-hover:bg-opacity-15 transition-colors" };
|
|
9010
9019
|
const _hoisted_18$2 = { class: "flex flex-col space-y-2 ml-4" };
|
|
9011
|
-
const _hoisted_19$2 = { class: "
|
|
9012
|
-
const _hoisted_20$
|
|
9013
|
-
const _hoisted_21$1 = { class: "flex
|
|
9014
|
-
const _hoisted_22$1 = { class: "flex items-
|
|
9015
|
-
const _hoisted_23$1 = { class: "
|
|
9016
|
-
const _hoisted_24$1 = { class: "
|
|
9017
|
-
const _hoisted_25$1 = { class: "
|
|
9018
|
-
const _hoisted_26$1 = { class: "
|
|
9019
|
-
const _hoisted_27$1 = { class: "flex
|
|
9020
|
-
const _hoisted_28$1 = { class: "flex items-start space-x-4" };
|
|
9021
|
-
const _hoisted_29$1 = { class: "min-w-0 flex-1" };
|
|
9022
|
-
const _hoisted_30$1 = { class: "font-semibold text-gray-900 text-lg" };
|
|
9023
|
-
const _hoisted_31$1 = { class: "text-sm text-gray-600 mt-1" };
|
|
9024
|
-
const _hoisted_32$1 = { class: "text-xs text-gray-500 mt-2" };
|
|
9025
|
-
const _hoisted_33$1 = { class: "flex flex-col space-y-2 ml-4" };
|
|
9020
|
+
const _hoisted_19$2 = { class: "space-y-6" };
|
|
9021
|
+
const _hoisted_20$2 = { class: "max-h-96 overflow-y-auto space-y-4 pr-2" };
|
|
9022
|
+
const _hoisted_21$1 = { class: "flex items-start justify-between" };
|
|
9023
|
+
const _hoisted_22$1 = { class: "flex items-start space-x-4" };
|
|
9024
|
+
const _hoisted_23$1 = { class: "min-w-0 flex-1" };
|
|
9025
|
+
const _hoisted_24$1 = { class: "font-semibold text-gray-900 text-lg" };
|
|
9026
|
+
const _hoisted_25$1 = { class: "text-sm text-gray-600 mt-1" };
|
|
9027
|
+
const _hoisted_26$1 = { class: "text-xs text-gray-500 mt-2" };
|
|
9028
|
+
const _hoisted_27$1 = { class: "flex flex-col space-y-2 ml-4" };
|
|
9026
9029
|
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9027
9030
|
return openBlock(), createElementBlock(
|
|
9028
9031
|
Fragment,
|
|
@@ -9153,7 +9156,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9153
9156
|
createCommentVNode(" Tab Content: Add New Device "),
|
|
9154
9157
|
$setup.activeTab === "add" ? (openBlock(), createElementBlock("div", _hoisted_11$2, [
|
|
9155
9158
|
createElementVNode("div", null, [
|
|
9156
|
-
_cache[
|
|
9159
|
+
_cache[17] || (_cache[17] = createElementVNode(
|
|
9157
9160
|
"h3",
|
|
9158
9161
|
{ class: "text-xl font-semibold text-gray-900 mb-6" },
|
|
9159
9162
|
"Choose Your Authentication Method",
|
|
@@ -9249,94 +9252,35 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9249
9252
|
])
|
|
9250
9253
|
])
|
|
9251
9254
|
]),
|
|
9252
|
-
createCommentVNode(" Hardware Key Setup "),
|
|
9253
|
-
|
|
9254
|
-
|
|
9255
|
-
|
|
9256
|
-
|
|
9257
|
-
|
|
9258
|
-
|
|
9259
|
-
|
|
9260
|
-
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9272
|
-
|
|
9273
|
-
|
|
9274
|
-
|
|
9275
|
-
|
|
9276
|
-
|
|
9277
|
-
|
|
9278
|
-
|
|
9279
|
-
|
|
9280
|
-
|
|
9281
|
-
disabled: $setup.mfaLoading
|
|
9282
|
-
}, {
|
|
9283
|
-
default: withCtx(() => _cache[17] || (_cache[17] = [
|
|
9284
|
-
createTextVNode(
|
|
9285
|
-
" Setup ",
|
|
9286
|
-
-1
|
|
9287
|
-
/* CACHED */
|
|
9288
|
-
)
|
|
9289
|
-
])),
|
|
9290
|
-
_: 1,
|
|
9291
|
-
__: [17]
|
|
9292
|
-
}, 8, ["disabled"])
|
|
9293
|
-
])
|
|
9294
|
-
])
|
|
9295
|
-
]),
|
|
9296
|
-
createCommentVNode(" Passkey Setup "),
|
|
9297
|
-
createElementVNode("div", {
|
|
9298
|
-
class: "group p-6 bg-white border border-gray-200 rounded-xl hover:border-gray-300 hover:shadow-md transition-all duration-200 cursor-pointer",
|
|
9299
|
-
onClick: $setup.startPasskeySetup
|
|
9300
|
-
}, [
|
|
9301
|
-
createElementVNode("div", _hoisted_22$1, [
|
|
9302
|
-
createElementVNode("div", _hoisted_23$1, [
|
|
9303
|
-
createVNode($setup["Shield"], {
|
|
9304
|
-
size: 24,
|
|
9305
|
-
class: "text-[var(--strands-primary)]"
|
|
9306
|
-
})
|
|
9307
|
-
]),
|
|
9308
|
-
_cache[20] || (_cache[20] = createElementVNode(
|
|
9309
|
-
"div",
|
|
9310
|
-
{ class: "flex items-start space-x-4" },
|
|
9311
|
-
[
|
|
9312
|
-
createElementVNode("div", { class: "min-w-0 flex-1" }, [
|
|
9313
|
-
createElementVNode("h4", { class: "font-semibold text-gray-900 text-lg" }, "Passkey"),
|
|
9314
|
-
createElementVNode("p", { class: "text-xs text-gray-500 mt-2" }, " Use your device's built-in biometrics, PIN, or cross-device passkeys ")
|
|
9315
|
-
])
|
|
9316
|
-
],
|
|
9317
|
-
-1
|
|
9318
|
-
/* CACHED */
|
|
9319
|
-
)),
|
|
9320
|
-
createElementVNode("div", _hoisted_24$1, [
|
|
9321
|
-
createVNode($setup["StrandsUiButton"], {
|
|
9322
|
-
variant: "primary",
|
|
9323
|
-
size: "md",
|
|
9324
|
-
onClick: withModifiers($setup.startPasskeySetup, ["stop"]),
|
|
9325
|
-
disabled: $setup.mfaLoading
|
|
9326
|
-
}, {
|
|
9327
|
-
default: withCtx(() => _cache[19] || (_cache[19] = [
|
|
9328
|
-
createTextVNode(
|
|
9329
|
-
" Setup ",
|
|
9330
|
-
-1
|
|
9331
|
-
/* CACHED */
|
|
9332
|
-
)
|
|
9333
|
-
])),
|
|
9334
|
-
_: 1,
|
|
9335
|
-
__: [19]
|
|
9336
|
-
}, 8, ["disabled"])
|
|
9337
|
-
])
|
|
9338
|
-
])
|
|
9339
|
-
])
|
|
9255
|
+
createCommentVNode(" Hardware Key Setup - Temporarily Disabled "),
|
|
9256
|
+
createCommentVNode(' \n <div class="group p-6 bg-white border border-gray-200 rounded-xl hover:border-gray-300 hover:shadow-md transition-all duration-200 cursor-pointer" @click="startHardwareKeySetup">\n <div class="flex items-center justify-between">\n <div class="flex-shrink-0 w-14 h-14 bg-[var(--strands-primary)] bg-opacity-10 rounded-xl flex items-center justify-center group-hover:bg-[var(--strands-primary)] group-hover:bg-opacity-15 transition-colors">\n <KeyRound :size="24" class="text-[var(--strands-primary)]" />\n </div>\n <div class="flex items-start space-x-4">\n <div class="min-w-0 flex-1">\n <h4 class="font-semibold text-gray-900 text-lg">Hardware Security Key</h4>\n <p class="text-xs text-gray-500 mt-2">\n Use YubiKey, FIDO2, or other physical security keys for ultimate protection\n </p>\n </div>\n </div>\n <div class="flex flex-col space-y-2 ml-4">\n <StrandsUiButton\n variant="primary"\n size="md"\n @click.stop="startHardwareKeySetup"\n :disabled="mfaLoading"\n >\n Setup\n </StrandsUiButton>\n </div>\n </div>\n </div>\n\n <-- Passkey Setup - Temporarily Disabled '),
|
|
9257
|
+
createCommentVNode(`
|
|
9258
|
+
<div class="group p-6 bg-white border border-gray-200 rounded-xl hover:border-gray-300 hover:shadow-md transition-all duration-200 cursor-pointer" @click="startPasskeySetup">
|
|
9259
|
+
<div class="flex items-center justify-between">
|
|
9260
|
+
<div class="flex-shrink-0 w-14 h-14 bg-[var(--strands-primary)] bg-opacity-10 rounded-xl flex items-center justify-center group-hover:bg-[var(--strands-primary)] group-hover:bg-opacity-15 transition-colors">
|
|
9261
|
+
<Shield :size="24" class="text-[var(--strands-primary)]" />
|
|
9262
|
+
</div>
|
|
9263
|
+
<div class="flex items-start space-x-4">
|
|
9264
|
+
<div class="min-w-0 flex-1">
|
|
9265
|
+
<h4 class="font-semibold text-gray-900 text-lg">Passkey</h4>
|
|
9266
|
+
<p class="text-xs text-gray-500 mt-2">
|
|
9267
|
+
Use your device's built-in biometrics, PIN, or cross-device passkeys
|
|
9268
|
+
</p>
|
|
9269
|
+
</div>
|
|
9270
|
+
</div>
|
|
9271
|
+
<div class="flex flex-col space-y-2 ml-4">
|
|
9272
|
+
<StrandsUiButton
|
|
9273
|
+
variant="primary"
|
|
9274
|
+
size="md"
|
|
9275
|
+
@click.stop="startPasskeySetup"
|
|
9276
|
+
:disabled="mfaLoading"
|
|
9277
|
+
>
|
|
9278
|
+
Setup
|
|
9279
|
+
</StrandsUiButton>
|
|
9280
|
+
</div>
|
|
9281
|
+
</div>
|
|
9282
|
+
</div>
|
|
9283
|
+
`)
|
|
9340
9284
|
])
|
|
9341
9285
|
])
|
|
9342
9286
|
])) : $setup.activeTab === "manage" && $setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock(
|
|
@@ -9344,16 +9288,16 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9344
9288
|
{ key: 1 },
|
|
9345
9289
|
[
|
|
9346
9290
|
createCommentVNode(" Tab Content: Active Devices "),
|
|
9347
|
-
createElementVNode("div",
|
|
9291
|
+
createElementVNode("div", _hoisted_19$2, [
|
|
9348
9292
|
createElementVNode("div", null, [
|
|
9349
|
-
_cache[
|
|
9293
|
+
_cache[21] || (_cache[21] = createElementVNode(
|
|
9350
9294
|
"h3",
|
|
9351
9295
|
{ class: "text-xl font-semibold text-gray-900 mb-6" },
|
|
9352
9296
|
"Manage Your Active Devices",
|
|
9353
9297
|
-1
|
|
9354
9298
|
/* CACHED */
|
|
9355
9299
|
)),
|
|
9356
|
-
createElementVNode("div",
|
|
9300
|
+
createElementVNode("div", _hoisted_20$2, [
|
|
9357
9301
|
(openBlock(true), createElementBlock(
|
|
9358
9302
|
Fragment,
|
|
9359
9303
|
null,
|
|
@@ -9362,8 +9306,8 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9362
9306
|
key: device.id,
|
|
9363
9307
|
class: "group p-6 bg-white border border-gray-200 rounded-xl hover:border-gray-300 hover:shadow-md transition-all duration-200"
|
|
9364
9308
|
}, [
|
|
9365
|
-
createElementVNode("div",
|
|
9366
|
-
createElementVNode("div",
|
|
9309
|
+
createElementVNode("div", _hoisted_21$1, [
|
|
9310
|
+
createElementVNode("div", _hoisted_22$1, [
|
|
9367
9311
|
createElementVNode(
|
|
9368
9312
|
"div",
|
|
9369
9313
|
{
|
|
@@ -9378,31 +9322,31 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9378
9322
|
2
|
|
9379
9323
|
/* CLASS */
|
|
9380
9324
|
),
|
|
9381
|
-
createElementVNode("div",
|
|
9325
|
+
createElementVNode("div", _hoisted_23$1, [
|
|
9382
9326
|
createElementVNode(
|
|
9383
9327
|
"h4",
|
|
9384
|
-
|
|
9328
|
+
_hoisted_24$1,
|
|
9385
9329
|
toDisplayString(device.device_name),
|
|
9386
9330
|
1
|
|
9387
9331
|
/* TEXT */
|
|
9388
9332
|
),
|
|
9389
9333
|
createElementVNode(
|
|
9390
9334
|
"p",
|
|
9391
|
-
|
|
9335
|
+
_hoisted_25$1,
|
|
9392
9336
|
toDisplayString($setup.getDeviceTypeName(device.device_type)),
|
|
9393
9337
|
1
|
|
9394
9338
|
/* TEXT */
|
|
9395
9339
|
),
|
|
9396
9340
|
createElementVNode(
|
|
9397
9341
|
"p",
|
|
9398
|
-
|
|
9342
|
+
_hoisted_26$1,
|
|
9399
9343
|
" Last used " + toDisplayString($setup.formatLastUsed(device.last_used_at)),
|
|
9400
9344
|
1
|
|
9401
9345
|
/* TEXT */
|
|
9402
9346
|
)
|
|
9403
9347
|
])
|
|
9404
9348
|
]),
|
|
9405
|
-
createElementVNode("div",
|
|
9349
|
+
createElementVNode("div", _hoisted_27$1, [
|
|
9406
9350
|
createCommentVNode(" Backup codes button for TOTP, Hardware Key, and Passkey devices "),
|
|
9407
9351
|
device.device_type === "totp" || device.device_type === "hardware" || device.device_type === "passkey" ? (openBlock(), createBlock($setup["StrandsUiButton"], {
|
|
9408
9352
|
key: 0,
|
|
@@ -9416,14 +9360,14 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9416
9360
|
size: 14,
|
|
9417
9361
|
class: "mr-2"
|
|
9418
9362
|
}),
|
|
9419
|
-
_cache[
|
|
9363
|
+
_cache[18] || (_cache[18] = createTextVNode(
|
|
9420
9364
|
" Backup Codes ",
|
|
9421
9365
|
-1
|
|
9422
9366
|
/* CACHED */
|
|
9423
9367
|
))
|
|
9424
9368
|
]),
|
|
9425
9369
|
_: 2,
|
|
9426
|
-
__: [
|
|
9370
|
+
__: [18]
|
|
9427
9371
|
}, 1032, ["onClick", "disabled"])) : createCommentVNode("v-if", true),
|
|
9428
9372
|
createCommentVNode(" Test email MFA "),
|
|
9429
9373
|
device.device_type === "email" ? (openBlock(), createBlock($setup["StrandsUiButton"], {
|
|
@@ -9438,14 +9382,14 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9438
9382
|
size: 14,
|
|
9439
9383
|
class: "mr-2"
|
|
9440
9384
|
}),
|
|
9441
|
-
_cache[
|
|
9385
|
+
_cache[19] || (_cache[19] = createTextVNode(
|
|
9442
9386
|
" Send Test Code ",
|
|
9443
9387
|
-1
|
|
9444
9388
|
/* CACHED */
|
|
9445
9389
|
))
|
|
9446
9390
|
]),
|
|
9447
9391
|
_: 2,
|
|
9448
|
-
__: [
|
|
9392
|
+
__: [19]
|
|
9449
9393
|
}, 1032, ["onClick", "disabled"])) : createCommentVNode("v-if", true),
|
|
9450
9394
|
createCommentVNode(" Remove device "),
|
|
9451
9395
|
createVNode($setup["StrandsUiButton"], {
|
|
@@ -9460,14 +9404,14 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9460
9404
|
size: 14,
|
|
9461
9405
|
class: "mr-2"
|
|
9462
9406
|
}),
|
|
9463
|
-
_cache[
|
|
9407
|
+
_cache[20] || (_cache[20] = createTextVNode(
|
|
9464
9408
|
" Remove ",
|
|
9465
9409
|
-1
|
|
9466
9410
|
/* CACHED */
|
|
9467
9411
|
))
|
|
9468
9412
|
]),
|
|
9469
9413
|
_: 2,
|
|
9470
|
-
__: [
|
|
9414
|
+
__: [20]
|
|
9471
9415
|
}, 1032, ["onClick", "disabled"])
|
|
9472
9416
|
])
|
|
9473
9417
|
])
|
|
@@ -9993,7 +9937,7 @@ const _hoisted_16$1 = {
|
|
|
9993
9937
|
const _hoisted_17$1 = { class: "space-y-3 md:space-y-4" };
|
|
9994
9938
|
const _hoisted_18$1 = { class: "space-y-4 p-4 bg-gray-50 rounded-xl" };
|
|
9995
9939
|
const _hoisted_19$1 = { class: "flex items-center justify-between gap-2" };
|
|
9996
|
-
const _hoisted_20 = { class: "text-sm text-gray-600" };
|
|
9940
|
+
const _hoisted_20$1 = { class: "text-sm text-gray-600" };
|
|
9997
9941
|
const _hoisted_21 = {
|
|
9998
9942
|
key: 0,
|
|
9999
9943
|
class: "space-y-3 overflow-hidden"
|
|
@@ -10255,7 +10199,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10255
10199
|
)),
|
|
10256
10200
|
createElementVNode(
|
|
10257
10201
|
"p",
|
|
10258
|
-
_hoisted_20,
|
|
10202
|
+
_hoisted_20$1,
|
|
10259
10203
|
"Last updated " + toDisplayString($setup.passwordLastUpdated),
|
|
10260
10204
|
1
|
|
10261
10205
|
/* TEXT */
|
|
@@ -10898,15 +10842,16 @@ const _hoisted_10 = { class: "flex flex-col items-center text-center space-y-4"
|
|
|
10898
10842
|
const _hoisted_11 = { class: "w-16 h-16 bg-[var(--strands-primary)] bg-opacity-10 rounded-xl flex items-center justify-center group-hover:bg-[var(--strands-primary)] group-hover:bg-opacity-15 transition-colors" };
|
|
10899
10843
|
const _hoisted_12 = { class: "flex flex-col items-center text-center space-y-4" };
|
|
10900
10844
|
const _hoisted_13 = { class: "w-16 h-16 bg-[var(--strands-primary)] bg-opacity-10 rounded-xl flex items-center justify-center group-hover:bg-[var(--strands-primary)] group-hover:bg-opacity-15 transition-colors" };
|
|
10901
|
-
const _hoisted_14 = { class: "
|
|
10902
|
-
const _hoisted_15 = { class: "
|
|
10903
|
-
const _hoisted_16 = {
|
|
10845
|
+
const _hoisted_14 = { class: "group p-8 border border-gray-300 rounded-xl bg-gray-50 opacity-60 cursor-not-allowed" };
|
|
10846
|
+
const _hoisted_15 = { class: "flex flex-col items-center text-center space-y-4" };
|
|
10847
|
+
const _hoisted_16 = { class: "w-16 h-16 bg-gray-200 rounded-xl flex items-center justify-center" };
|
|
10848
|
+
const _hoisted_17 = {
|
|
10904
10849
|
key: 1,
|
|
10905
10850
|
class: "border-t border-gray-200 pt-8"
|
|
10906
10851
|
};
|
|
10907
|
-
const
|
|
10908
|
-
const
|
|
10909
|
-
const
|
|
10852
|
+
const _hoisted_18 = { class: "flex items-center justify-between" };
|
|
10853
|
+
const _hoisted_19 = { class: "text-gray-600 text-sm mt-1" };
|
|
10854
|
+
const _hoisted_20 = { class: "flex justify-end space-x-3" };
|
|
10910
10855
|
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10911
10856
|
return openBlock(), createElementBlock(
|
|
10912
10857
|
Fragment,
|
|
@@ -10943,7 +10888,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10943
10888
|
])
|
|
10944
10889
|
]),
|
|
10945
10890
|
footer: withCtx(() => [
|
|
10946
|
-
createElementVNode("div",
|
|
10891
|
+
createElementVNode("div", _hoisted_20, [
|
|
10947
10892
|
createVNode($setup["StrandsUiButton"], {
|
|
10948
10893
|
variant: "secondary",
|
|
10949
10894
|
onClick: $setup.closeModal,
|
|
@@ -11092,52 +11037,48 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11092
11037
|
}, 8, ["disabled"])
|
|
11093
11038
|
])
|
|
11094
11039
|
]),
|
|
11095
|
-
createCommentVNode(" Hardware Key Setup "),
|
|
11096
|
-
createElementVNode("div",
|
|
11097
|
-
|
|
11098
|
-
|
|
11099
|
-
}, [
|
|
11100
|
-
createElementVNode("div", _hoisted_14, [
|
|
11101
|
-
createElementVNode("div", _hoisted_15, [
|
|
11040
|
+
createCommentVNode(" Hardware Key Setup - Temporarily Disabled "),
|
|
11041
|
+
createElementVNode("div", _hoisted_14, [
|
|
11042
|
+
createElementVNode("div", _hoisted_15, [
|
|
11043
|
+
createElementVNode("div", _hoisted_16, [
|
|
11102
11044
|
createVNode($setup["KeyRound"], {
|
|
11103
11045
|
size: 28,
|
|
11104
|
-
class: "text-
|
|
11046
|
+
class: "text-gray-400"
|
|
11105
11047
|
})
|
|
11106
11048
|
]),
|
|
11107
11049
|
_cache[12] || (_cache[12] = createElementVNode(
|
|
11108
11050
|
"div",
|
|
11109
11051
|
{ class: "space-y-2" },
|
|
11110
11052
|
[
|
|
11111
|
-
createElementVNode("h4", { class: "font-semibold text-gray-
|
|
11112
|
-
createElementVNode("p", { class: "text-sm text-gray-
|
|
11053
|
+
createElementVNode("h4", { class: "font-semibold text-gray-500 text-lg" }, "Hardware Key & Passkeys"),
|
|
11054
|
+
createElementVNode("p", { class: "text-sm text-gray-400 leading-relaxed" }, "Temporarily unavailable - cross-domain support coming soon")
|
|
11113
11055
|
],
|
|
11114
11056
|
-1
|
|
11115
11057
|
/* CACHED */
|
|
11116
11058
|
)),
|
|
11117
11059
|
createVNode($setup["StrandsUiButton"], {
|
|
11118
|
-
variant: "
|
|
11060
|
+
variant: "secondary",
|
|
11119
11061
|
size: "md",
|
|
11120
|
-
|
|
11121
|
-
disabled: $setup.loading,
|
|
11062
|
+
disabled: "",
|
|
11122
11063
|
class: "w-full mt-4"
|
|
11123
11064
|
}, {
|
|
11124
11065
|
default: withCtx(() => _cache[11] || (_cache[11] = [
|
|
11125
11066
|
createTextVNode(
|
|
11126
|
-
"
|
|
11067
|
+
" Coming Soon ",
|
|
11127
11068
|
-1
|
|
11128
11069
|
/* CACHED */
|
|
11129
11070
|
)
|
|
11130
11071
|
])),
|
|
11131
11072
|
_: 1,
|
|
11132
11073
|
__: [11]
|
|
11133
|
-
}
|
|
11074
|
+
})
|
|
11134
11075
|
])
|
|
11135
11076
|
])
|
|
11136
11077
|
])
|
|
11137
11078
|
]),
|
|
11138
11079
|
createCommentVNode(" Manage Existing "),
|
|
11139
|
-
$setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock("div",
|
|
11140
|
-
createElementVNode("div",
|
|
11080
|
+
$setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_17, [
|
|
11081
|
+
createElementVNode("div", _hoisted_18, [
|
|
11141
11082
|
createElementVNode("div", null, [
|
|
11142
11083
|
_cache[14] || (_cache[14] = createElementVNode(
|
|
11143
11084
|
"h3",
|
|
@@ -11148,7 +11089,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11148
11089
|
)),
|
|
11149
11090
|
createElementVNode(
|
|
11150
11091
|
"p",
|
|
11151
|
-
|
|
11092
|
+
_hoisted_19,
|
|
11152
11093
|
toDisplayString($setup.activeMfaDevices.length) + " device(s) currently active",
|
|
11153
11094
|
1
|
|
11154
11095
|
/* TEXT */
|