@strands.gg/accui 1.1.4 → 1.2.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 +101 -45
- package/dist/strands-auth-ui.cjs.js +704 -494
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +704 -494
- 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/package.json +1 -1
|
@@ -1475,37 +1475,37 @@ const _hoisted_14$9 = { class: "flex items-center space-x-3" };
|
|
|
1475
1475
|
const _hoisted_15$9 = { class: "text-2xl" };
|
|
1476
1476
|
const _hoisted_16$8 = { class: "font-medium text-gray-900" };
|
|
1477
1477
|
const _hoisted_17$7 = { class: "text-sm text-gray-500" };
|
|
1478
|
-
const _hoisted_18$
|
|
1478
|
+
const _hoisted_18$6 = {
|
|
1479
1479
|
key: 2,
|
|
1480
1480
|
class: "text-center"
|
|
1481
1481
|
};
|
|
1482
|
-
const _hoisted_19$
|
|
1482
|
+
const _hoisted_19$5 = {
|
|
1483
1483
|
key: 3,
|
|
1484
1484
|
class: "text-center space-y-4"
|
|
1485
1485
|
};
|
|
1486
|
-
const _hoisted_20$
|
|
1486
|
+
const _hoisted_20$3 = {
|
|
1487
1487
|
key: 4,
|
|
1488
1488
|
class: "space-y-4"
|
|
1489
1489
|
};
|
|
1490
|
-
const _hoisted_21$
|
|
1490
|
+
const _hoisted_21$3 = {
|
|
1491
1491
|
key: 0,
|
|
1492
1492
|
class: "bg-green-50 border border-green-200 rounded-lg p-4"
|
|
1493
1493
|
};
|
|
1494
|
-
const _hoisted_22$
|
|
1494
|
+
const _hoisted_22$3 = {
|
|
1495
1495
|
key: 1,
|
|
1496
1496
|
class: "text-sm text-gray-600"
|
|
1497
1497
|
};
|
|
1498
|
-
const _hoisted_23$
|
|
1498
|
+
const _hoisted_23$2 = {
|
|
1499
1499
|
key: 2,
|
|
1500
1500
|
class: "flex justify-between text-sm"
|
|
1501
1501
|
};
|
|
1502
|
-
const _hoisted_24$
|
|
1503
|
-
const _hoisted_25$
|
|
1504
|
-
const _hoisted_26$
|
|
1502
|
+
const _hoisted_24$2 = ["disabled"];
|
|
1503
|
+
const _hoisted_25$2 = { class: "pt-4 border-t border-gray-200" };
|
|
1504
|
+
const _hoisted_26$2 = {
|
|
1505
1505
|
key: 3,
|
|
1506
1506
|
class: "space-y-4"
|
|
1507
1507
|
};
|
|
1508
|
-
const _hoisted_27$
|
|
1508
|
+
const _hoisted_27$2 = { class: "flex justify-between" };
|
|
1509
1509
|
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1510
1510
|
return openBlock(), createBlock($setup["UiModal"], {
|
|
1511
1511
|
open: $props.show,
|
|
@@ -1524,7 +1524,7 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1524
1524
|
)
|
|
1525
1525
|
])),
|
|
1526
1526
|
footer: withCtx(() => [
|
|
1527
|
-
createElementVNode("div", _hoisted_27$
|
|
1527
|
+
createElementVNode("div", _hoisted_27$2, [
|
|
1528
1528
|
createVNode($setup["StrandsUiButton"], {
|
|
1529
1529
|
variant: "secondary",
|
|
1530
1530
|
onClick: $setup.closeModal,
|
|
@@ -1683,7 +1683,7 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1683
1683
|
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
1684
1684
|
)) : createCommentVNode("v-if", true),
|
|
1685
1685
|
createCommentVNode(" Email MFA Code Request "),
|
|
1686
|
-
$setup.selectedMethod?.device_type === "email" && !$setup.emailCodeSent ? (openBlock(), createElementBlock("div", _hoisted_18$
|
|
1686
|
+
$setup.selectedMethod?.device_type === "email" && !$setup.emailCodeSent ? (openBlock(), createElementBlock("div", _hoisted_18$6, [
|
|
1687
1687
|
_cache[8] || (_cache[8] = createElementVNode(
|
|
1688
1688
|
"p",
|
|
1689
1689
|
{ class: "text-sm text-gray-600 mb-4" },
|
|
@@ -1709,7 +1709,7 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1709
1709
|
}, 8, ["disabled", "loading"])
|
|
1710
1710
|
])) : createCommentVNode("v-if", true),
|
|
1711
1711
|
createCommentVNode(" Hardware Key Authentication "),
|
|
1712
|
-
$setup.selectedMethod?.device_type === "hardware" ? (openBlock(), createElementBlock("div", _hoisted_19$
|
|
1712
|
+
$setup.selectedMethod?.device_type === "hardware" ? (openBlock(), createElementBlock("div", _hoisted_19$5, [
|
|
1713
1713
|
_cache[10] || (_cache[10] = createElementVNode(
|
|
1714
1714
|
"div",
|
|
1715
1715
|
{ class: "bg-blue-50 border border-blue-200 rounded-lg p-4" },
|
|
@@ -1757,9 +1757,9 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1757
1757
|
}, 8, ["disabled", "loading"])
|
|
1758
1758
|
])) : createCommentVNode("v-if", true),
|
|
1759
1759
|
createCommentVNode(" Code Input "),
|
|
1760
|
-
$setup.selectedMethod && $setup.selectedMethod.device_type !== "hardware" && ($setup.selectedMethod.device_type !== "email" || $setup.emailCodeSent) ? (openBlock(), createElementBlock("div", _hoisted_20$
|
|
1760
|
+
$setup.selectedMethod && $setup.selectedMethod.device_type !== "hardware" && ($setup.selectedMethod.device_type !== "email" || $setup.emailCodeSent) ? (openBlock(), createElementBlock("div", _hoisted_20$3, [
|
|
1761
1761
|
createCommentVNode(" Email confirmation "),
|
|
1762
|
-
$setup.selectedMethod.device_type === "email" && $setup.emailCodeSent ? (openBlock(), createElementBlock("div", _hoisted_21$
|
|
1762
|
+
$setup.selectedMethod.device_type === "email" && $setup.emailCodeSent ? (openBlock(), createElementBlock("div", _hoisted_21$3, _cache[11] || (_cache[11] = [
|
|
1763
1763
|
createElementVNode(
|
|
1764
1764
|
"div",
|
|
1765
1765
|
{ class: "flex items-start space-x-2" },
|
|
@@ -1800,28 +1800,28 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1800
1800
|
createCommentVNode(" TOTP Help "),
|
|
1801
1801
|
$setup.selectedMethod.device_type === "totp" ? (openBlock(), createElementBlock(
|
|
1802
1802
|
"div",
|
|
1803
|
-
_hoisted_22$
|
|
1803
|
+
_hoisted_22$3,
|
|
1804
1804
|
' Open your authenticator app and enter the 6-digit code for "' + toDisplayString($setup.selectedMethod.device_name) + '" ',
|
|
1805
1805
|
1
|
|
1806
1806
|
/* TEXT */
|
|
1807
1807
|
)) : createCommentVNode("v-if", true),
|
|
1808
1808
|
createCommentVNode(" Email Resend "),
|
|
1809
|
-
$setup.selectedMethod.device_type === "email" ? (openBlock(), createElementBlock("div", _hoisted_23$
|
|
1809
|
+
$setup.selectedMethod.device_type === "email" ? (openBlock(), createElementBlock("div", _hoisted_23$2, [
|
|
1810
1810
|
createElementVNode("button", {
|
|
1811
1811
|
onClick: $setup.sendEmailCode,
|
|
1812
1812
|
disabled: $setup.loading || $setup.cooldownActive,
|
|
1813
1813
|
class: "text-strands-600 hover:text-strands-800 disabled:text-gray-400 disabled:cursor-not-allowed"
|
|
1814
|
-
}, toDisplayString($setup.cooldownActive ? `Resend in ${$setup.cooldownSeconds}s` : "Resend Code"), 9, _hoisted_24$
|
|
1814
|
+
}, toDisplayString($setup.cooldownActive ? `Resend in ${$setup.cooldownSeconds}s` : "Resend Code"), 9, _hoisted_24$2)
|
|
1815
1815
|
])) : createCommentVNode("v-if", true),
|
|
1816
1816
|
createCommentVNode(" Backup Codes Option "),
|
|
1817
|
-
createElementVNode("div", _hoisted_25$
|
|
1817
|
+
createElementVNode("div", _hoisted_25$2, [
|
|
1818
1818
|
createElementVNode("button", {
|
|
1819
1819
|
onClick: _cache[1] || (_cache[1] = ($event) => $setup.showBackupCodeInput = !$setup.showBackupCodeInput),
|
|
1820
1820
|
class: "text-sm text-gray-600 hover:text-gray-800 underline"
|
|
1821
1821
|
}, " Use backup code instead ")
|
|
1822
1822
|
]),
|
|
1823
1823
|
createCommentVNode(" Backup Code Input "),
|
|
1824
|
-
$setup.showBackupCodeInput ? (openBlock(), createElementBlock("div", _hoisted_26$
|
|
1824
|
+
$setup.showBackupCodeInput ? (openBlock(), createElementBlock("div", _hoisted_26$2, [
|
|
1825
1825
|
createVNode($setup["StrandsUiInput"], {
|
|
1826
1826
|
modelValue: $setup.backupCode,
|
|
1827
1827
|
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.backupCode = $event),
|
|
@@ -3244,11 +3244,11 @@ const _hoisted_15$6 = {
|
|
|
3244
3244
|
};
|
|
3245
3245
|
const _hoisted_16$5 = { class: "alert-error" };
|
|
3246
3246
|
const _hoisted_17$5 = { class: "flex items-start gap-3" };
|
|
3247
|
-
const _hoisted_18$
|
|
3248
|
-
const _hoisted_19$
|
|
3249
|
-
const _hoisted_20$
|
|
3250
|
-
const _hoisted_21$
|
|
3251
|
-
const _hoisted_22$
|
|
3247
|
+
const _hoisted_18$5 = { class: "font-medium" };
|
|
3248
|
+
const _hoisted_19$4 = { class: "mt-8 text-center" };
|
|
3249
|
+
const _hoisted_20$2 = { class: "text-sm text-neutral-600" };
|
|
3250
|
+
const _hoisted_21$2 = { key: 0 };
|
|
3251
|
+
const _hoisted_22$2 = { class: "text-neutral-400 text-sm" };
|
|
3252
3252
|
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
3253
3253
|
return openBlock(), createElementBlock("div", _hoisted_1$d, [
|
|
3254
3254
|
createCommentVNode(" Success State "),
|
|
@@ -3501,7 +3501,7 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3501
3501
|
)),
|
|
3502
3502
|
createElementVNode(
|
|
3503
3503
|
"p",
|
|
3504
|
-
_hoisted_18$
|
|
3504
|
+
_hoisted_18$5,
|
|
3505
3505
|
toDisplayString($setup.error),
|
|
3506
3506
|
1
|
|
3507
3507
|
/* TEXT */
|
|
@@ -3510,8 +3510,8 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3510
3510
|
])
|
|
3511
3511
|
])) : createCommentVNode("v-if", true),
|
|
3512
3512
|
createCommentVNode(" Sign in link "),
|
|
3513
|
-
createElementVNode("div", _hoisted_19$
|
|
3514
|
-
createElementVNode("p", _hoisted_20$
|
|
3513
|
+
createElementVNode("div", _hoisted_19$4, [
|
|
3514
|
+
createElementVNode("p", _hoisted_20$2, [
|
|
3515
3515
|
_cache[10] || (_cache[10] = createTextVNode(
|
|
3516
3516
|
" Already have an account? ",
|
|
3517
3517
|
-1
|
|
@@ -3530,8 +3530,8 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3530
3530
|
}, {
|
|
3531
3531
|
default: withCtx(() => [
|
|
3532
3532
|
createCommentVNode(" Need help "),
|
|
3533
|
-
$setup.getSupportEmail() ? (openBlock(), createElementBlock("div", _hoisted_21$
|
|
3534
|
-
createElementVNode("p", _hoisted_22$
|
|
3533
|
+
$setup.getSupportEmail() ? (openBlock(), createElementBlock("div", _hoisted_21$2, [
|
|
3534
|
+
createElementVNode("p", _hoisted_22$2, [
|
|
3535
3535
|
_cache[12] || (_cache[12] = createTextVNode(
|
|
3536
3536
|
" Need help? ",
|
|
3537
3537
|
-1
|
|
@@ -4121,6 +4121,173 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4121
4121
|
);
|
|
4122
4122
|
}
|
|
4123
4123
|
const StrandsCompleteSignUp = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsCompleteSignUp.vue"]]);
|
|
4124
|
+
/**
|
|
4125
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4126
|
+
*
|
|
4127
|
+
* This source code is licensed under the ISC license.
|
|
4128
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4129
|
+
*/
|
|
4130
|
+
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
4131
|
+
const toCamelCase = (string) => string.replace(
|
|
4132
|
+
/^([A-Z])|[\s-_]+(\w)/g,
|
|
4133
|
+
(match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
|
|
4134
|
+
);
|
|
4135
|
+
const toPascalCase = (string) => {
|
|
4136
|
+
const camelCase = toCamelCase(string);
|
|
4137
|
+
return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
|
|
4138
|
+
};
|
|
4139
|
+
const mergeClasses = (...classes) => classes.filter((className, index, array) => {
|
|
4140
|
+
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
4141
|
+
}).join(" ").trim();
|
|
4142
|
+
const isEmptyString = (value) => value === "";
|
|
4143
|
+
/**
|
|
4144
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4145
|
+
*
|
|
4146
|
+
* This source code is licensed under the ISC license.
|
|
4147
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4148
|
+
*/
|
|
4149
|
+
var defaultAttributes = {
|
|
4150
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4151
|
+
width: 24,
|
|
4152
|
+
height: 24,
|
|
4153
|
+
viewBox: "0 0 24 24",
|
|
4154
|
+
fill: "none",
|
|
4155
|
+
stroke: "currentColor",
|
|
4156
|
+
"stroke-width": 2,
|
|
4157
|
+
"stroke-linecap": "round",
|
|
4158
|
+
"stroke-linejoin": "round"
|
|
4159
|
+
};
|
|
4160
|
+
/**
|
|
4161
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4162
|
+
*
|
|
4163
|
+
* This source code is licensed under the ISC license.
|
|
4164
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4165
|
+
*/
|
|
4166
|
+
const Icon = ({
|
|
4167
|
+
name,
|
|
4168
|
+
iconNode,
|
|
4169
|
+
absoluteStrokeWidth,
|
|
4170
|
+
"absolute-stroke-width": absoluteStrokeWidthKebabCase,
|
|
4171
|
+
strokeWidth,
|
|
4172
|
+
"stroke-width": strokeWidthKebabCase,
|
|
4173
|
+
size = defaultAttributes.width,
|
|
4174
|
+
color = defaultAttributes.stroke,
|
|
4175
|
+
...props
|
|
4176
|
+
}, { slots }) => {
|
|
4177
|
+
return h(
|
|
4178
|
+
"svg",
|
|
4179
|
+
{
|
|
4180
|
+
...defaultAttributes,
|
|
4181
|
+
...props,
|
|
4182
|
+
width: size,
|
|
4183
|
+
height: size,
|
|
4184
|
+
stroke: color,
|
|
4185
|
+
"stroke-width": isEmptyString(absoluteStrokeWidth) || isEmptyString(absoluteStrokeWidthKebabCase) || absoluteStrokeWidth === true || absoluteStrokeWidthKebabCase === true ? Number(strokeWidth || strokeWidthKebabCase || defaultAttributes["stroke-width"]) * 24 / Number(size) : strokeWidth || strokeWidthKebabCase || defaultAttributes["stroke-width"],
|
|
4186
|
+
class: mergeClasses(
|
|
4187
|
+
"lucide",
|
|
4188
|
+
props.class,
|
|
4189
|
+
...name ? [`lucide-${toKebabCase(toPascalCase(name))}-icon`, `lucide-${toKebabCase(name)}`] : ["lucide-icon"]
|
|
4190
|
+
)
|
|
4191
|
+
},
|
|
4192
|
+
[...iconNode.map((child) => h(...child)), ...slots.default ? [slots.default()] : []]
|
|
4193
|
+
);
|
|
4194
|
+
};
|
|
4195
|
+
/**
|
|
4196
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4197
|
+
*
|
|
4198
|
+
* This source code is licensed under the ISC license.
|
|
4199
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4200
|
+
*/
|
|
4201
|
+
const createLucideIcon = (iconName, iconNode) => (props, { slots, attrs }) => h(
|
|
4202
|
+
Icon,
|
|
4203
|
+
{
|
|
4204
|
+
...attrs,
|
|
4205
|
+
...props,
|
|
4206
|
+
iconNode,
|
|
4207
|
+
name: iconName
|
|
4208
|
+
},
|
|
4209
|
+
slots
|
|
4210
|
+
);
|
|
4211
|
+
/**
|
|
4212
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4213
|
+
*
|
|
4214
|
+
* This source code is licensed under the ISC license.
|
|
4215
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4216
|
+
*/
|
|
4217
|
+
const KeyRound = createLucideIcon("key-round", [
|
|
4218
|
+
[
|
|
4219
|
+
"path",
|
|
4220
|
+
{
|
|
4221
|
+
d: "M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",
|
|
4222
|
+
key: "1s6t7t"
|
|
4223
|
+
}
|
|
4224
|
+
],
|
|
4225
|
+
["circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor", key: "w0ekpg" }]
|
|
4226
|
+
]);
|
|
4227
|
+
/**
|
|
4228
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4229
|
+
*
|
|
4230
|
+
* This source code is licensed under the ISC license.
|
|
4231
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4232
|
+
*/
|
|
4233
|
+
const Mail = createLucideIcon("mail", [
|
|
4234
|
+
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
4235
|
+
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
4236
|
+
]);
|
|
4237
|
+
/**
|
|
4238
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4239
|
+
*
|
|
4240
|
+
* This source code is licensed under the ISC license.
|
|
4241
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4242
|
+
*/
|
|
4243
|
+
const Settings = createLucideIcon("settings", [
|
|
4244
|
+
[
|
|
4245
|
+
"path",
|
|
4246
|
+
{
|
|
4247
|
+
d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
|
|
4248
|
+
key: "1i5ecw"
|
|
4249
|
+
}
|
|
4250
|
+
],
|
|
4251
|
+
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
4252
|
+
]);
|
|
4253
|
+
/**
|
|
4254
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4255
|
+
*
|
|
4256
|
+
* This source code is licensed under the ISC license.
|
|
4257
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4258
|
+
*/
|
|
4259
|
+
const Shield = createLucideIcon("shield", [
|
|
4260
|
+
[
|
|
4261
|
+
"path",
|
|
4262
|
+
{
|
|
4263
|
+
d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
|
|
4264
|
+
key: "oel41y"
|
|
4265
|
+
}
|
|
4266
|
+
]
|
|
4267
|
+
]);
|
|
4268
|
+
/**
|
|
4269
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4270
|
+
*
|
|
4271
|
+
* This source code is licensed under the ISC license.
|
|
4272
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4273
|
+
*/
|
|
4274
|
+
const Smartphone = createLucideIcon("smartphone", [
|
|
4275
|
+
["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
|
|
4276
|
+
["path", { d: "M12 18h.01", key: "mhygvu" }]
|
|
4277
|
+
]);
|
|
4278
|
+
/**
|
|
4279
|
+
* @license lucide-vue-next v0.539.0 - ISC
|
|
4280
|
+
*
|
|
4281
|
+
* This source code is licensed under the ISC license.
|
|
4282
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4283
|
+
*/
|
|
4284
|
+
const Trash2 = createLucideIcon("trash-2", [
|
|
4285
|
+
["path", { d: "M10 11v6", key: "nco0om" }],
|
|
4286
|
+
["path", { d: "M14 11v6", key: "outv1u" }],
|
|
4287
|
+
["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
|
|
4288
|
+
["path", { d: "M3 6h18", key: "d0wm0j" }],
|
|
4289
|
+
["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
|
|
4290
|
+
]);
|
|
4124
4291
|
function getDefaultExportFromCjs(x) {
|
|
4125
4292
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4126
4293
|
}
|
|
@@ -6391,8 +6558,8 @@ const _hoisted_14$5 = {
|
|
|
6391
6558
|
const _hoisted_15$5 = { class: "bg-red-50 border border-red-200 rounded-lg p-4" };
|
|
6392
6559
|
const _hoisted_16$4 = { class: "bg-white rounded border p-3" };
|
|
6393
6560
|
const _hoisted_17$4 = { class: "grid grid-cols-2 gap-2 text-sm font-mono text-gray-900" };
|
|
6394
|
-
const _hoisted_18$
|
|
6395
|
-
const _hoisted_19$
|
|
6561
|
+
const _hoisted_18$4 = { class: "flex justify-center mt-3" };
|
|
6562
|
+
const _hoisted_19$3 = { class: "flex justify-end pt-4" };
|
|
6396
6563
|
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6397
6564
|
return openBlock(), createBlock($setup["UiModal"], {
|
|
6398
6565
|
open: $props.show,
|
|
@@ -6715,7 +6882,7 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6715
6882
|
))
|
|
6716
6883
|
])
|
|
6717
6884
|
]),
|
|
6718
|
-
createElementVNode("div", _hoisted_18$
|
|
6885
|
+
createElementVNode("div", _hoisted_18$4, [
|
|
6719
6886
|
createVNode($setup["StrandsUiButton"], {
|
|
6720
6887
|
variant: "secondary",
|
|
6721
6888
|
size: "sm",
|
|
@@ -6733,7 +6900,7 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6733
6900
|
})
|
|
6734
6901
|
])
|
|
6735
6902
|
]),
|
|
6736
|
-
createElementVNode("div", _hoisted_19$
|
|
6903
|
+
createElementVNode("div", _hoisted_19$3, [
|
|
6737
6904
|
createVNode($setup["StrandsUiButton"], {
|
|
6738
6905
|
variant: "primary",
|
|
6739
6906
|
onClick: $setup.finish
|
|
@@ -7425,7 +7592,7 @@ const _hoisted_15$4 = {
|
|
|
7425
7592
|
};
|
|
7426
7593
|
const _hoisted_16$3 = { class: "text-center" };
|
|
7427
7594
|
const _hoisted_17$3 = { class: "text-sm text-gray-600 mb-6" };
|
|
7428
|
-
const _hoisted_18$
|
|
7595
|
+
const _hoisted_18$3 = { class: "flex justify-end space-x-3 pt-4" };
|
|
7429
7596
|
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7430
7597
|
return openBlock(), createBlock($setup["UiModal"], {
|
|
7431
7598
|
open: $props.show,
|
|
@@ -7823,7 +7990,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7823
7990
|
/* TEXT */
|
|
7824
7991
|
)
|
|
7825
7992
|
]),
|
|
7826
|
-
createElementVNode("div", _hoisted_18$
|
|
7993
|
+
createElementVNode("div", _hoisted_18$3, [
|
|
7827
7994
|
createVNode($setup["StrandsUiButton"], {
|
|
7828
7995
|
variant: "secondary",
|
|
7829
7996
|
onClick: _cache[2] || (_cache[2] = ($event) => $setup.step = 1)
|
|
@@ -8385,6 +8552,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
8385
8552
|
formatLastUsed
|
|
8386
8553
|
} = useStrandsMfa();
|
|
8387
8554
|
const showModal = computed(() => props.show);
|
|
8555
|
+
const activeTab = ref("add");
|
|
8388
8556
|
const showTotpSetup = ref(false);
|
|
8389
8557
|
const showEmailMfaSetup = ref(false);
|
|
8390
8558
|
const showHardwareKeySetup = ref(false);
|
|
@@ -8444,16 +8612,19 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
8444
8612
|
const handleTotpSetupSuccess = async () => {
|
|
8445
8613
|
showTotpSetup.value = false;
|
|
8446
8614
|
await fetchMfaDevices();
|
|
8615
|
+
activeTab.value = "manage";
|
|
8447
8616
|
emit("mfa-updated");
|
|
8448
8617
|
};
|
|
8449
8618
|
const handleEmailMfaSetupSuccess = async () => {
|
|
8450
8619
|
showEmailMfaSetup.value = false;
|
|
8451
8620
|
await fetchMfaDevices();
|
|
8621
|
+
activeTab.value = "manage";
|
|
8452
8622
|
emit("mfa-updated");
|
|
8453
8623
|
};
|
|
8454
8624
|
const handleHardwareKeySetupSuccess = async () => {
|
|
8455
8625
|
showHardwareKeySetup.value = false;
|
|
8456
8626
|
await fetchMfaDevices();
|
|
8627
|
+
activeTab.value = "manage";
|
|
8457
8628
|
emit("mfa-updated");
|
|
8458
8629
|
};
|
|
8459
8630
|
const getDeviceIconBackground = (deviceType) => {
|
|
@@ -8469,10 +8640,33 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
8469
8640
|
return "bg-gray-50 group-hover:bg-gray-100";
|
|
8470
8641
|
}
|
|
8471
8642
|
};
|
|
8472
|
-
const
|
|
8643
|
+
const getDeviceIconComponent = (deviceType) => {
|
|
8644
|
+
switch (deviceType) {
|
|
8645
|
+
case "totp":
|
|
8646
|
+
return Smartphone;
|
|
8647
|
+
case "email":
|
|
8648
|
+
return Mail;
|
|
8649
|
+
case "hardware":
|
|
8650
|
+
case "passkey":
|
|
8651
|
+
return KeyRound;
|
|
8652
|
+
default:
|
|
8653
|
+
return Shield;
|
|
8654
|
+
}
|
|
8655
|
+
};
|
|
8656
|
+
const __returned__ = { props, emit, mfaDevices: mfaDevices2, mfaEnabled: mfaEnabled2, mfaLoading, activeMfaDevices, fetchMfaDevices, disableMfaDevice, sendEmailMfaCode, getDeviceTypeIcon, getDeviceTypeName, formatLastUsed, showModal, activeTab, showTotpSetup, showEmailMfaSetup, showHardwareKeySetup, showBackupCodesModal, showConfirmDisable, selectedDevice, closeModal, startTotpSetup, startEmailMfaSetup, startHardwareKeySetup, showBackupCodes, testEmailMfa, confirmDisableDevice, handleDisableDevice, handleTotpSetupSuccess, handleEmailMfaSetupSuccess, handleHardwareKeySetupSuccess, getDeviceIconBackground, getDeviceIconComponent, get StrandsUiButton() {
|
|
8473
8657
|
return StrandsUiButton;
|
|
8474
8658
|
}, get StrandsUiLoader() {
|
|
8475
8659
|
return StrandsUiLoader;
|
|
8660
|
+
}, get Smartphone() {
|
|
8661
|
+
return Smartphone;
|
|
8662
|
+
}, get Mail() {
|
|
8663
|
+
return Mail;
|
|
8664
|
+
}, get KeyRound() {
|
|
8665
|
+
return KeyRound;
|
|
8666
|
+
}, get Shield() {
|
|
8667
|
+
return Shield;
|
|
8668
|
+
}, get Trash2() {
|
|
8669
|
+
return Trash2;
|
|
8476
8670
|
}, UiModal, StrandsTotpSetupModal, StrandsEmailMfaSetupModal, StrandsHardwareKeySetupModal, StrandsBackupCodesModal, StrandsConfirmModal };
|
|
8477
8671
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
8478
8672
|
return __returned__;
|
|
@@ -8495,15 +8689,34 @@ const _hoisted_8$2 = {
|
|
|
8495
8689
|
key: 1,
|
|
8496
8690
|
class: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-100 text-gray-600"
|
|
8497
8691
|
};
|
|
8498
|
-
const _hoisted_9$2 = {
|
|
8499
|
-
const _hoisted_10$2 = {
|
|
8500
|
-
|
|
8501
|
-
|
|
8502
|
-
|
|
8503
|
-
const
|
|
8504
|
-
|
|
8505
|
-
|
|
8506
|
-
|
|
8692
|
+
const _hoisted_9$2 = { class: "border-b border-gray-200" };
|
|
8693
|
+
const _hoisted_10$2 = {
|
|
8694
|
+
class: "-mb-px flex space-x-8",
|
|
8695
|
+
"aria-label": "Tabs"
|
|
8696
|
+
};
|
|
8697
|
+
const _hoisted_11$2 = {
|
|
8698
|
+
key: 0,
|
|
8699
|
+
class: "space-y-6"
|
|
8700
|
+
};
|
|
8701
|
+
const _hoisted_12$2 = { class: "space-y-4" };
|
|
8702
|
+
const _hoisted_13$2 = { class: "flex items-center justify-between" };
|
|
8703
|
+
const _hoisted_14$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" };
|
|
8704
|
+
const _hoisted_15$2 = { class: "flex flex-col space-y-2 ml-4" };
|
|
8705
|
+
const _hoisted_16$2 = { class: "flex items-center justify-between" };
|
|
8706
|
+
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" };
|
|
8707
|
+
const _hoisted_18$2 = { class: "flex flex-col space-y-2 ml-4" };
|
|
8708
|
+
const _hoisted_19$2 = { class: "flex items-center justify-between" };
|
|
8709
|
+
const _hoisted_20$1 = { 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" };
|
|
8710
|
+
const _hoisted_21$1 = { class: "flex flex-col space-y-2 ml-4" };
|
|
8711
|
+
const _hoisted_22$1 = { class: "space-y-6" };
|
|
8712
|
+
const _hoisted_23$1 = { class: "max-h-96 overflow-y-auto space-y-4 pr-2" };
|
|
8713
|
+
const _hoisted_24$1 = { class: "flex items-start justify-between" };
|
|
8714
|
+
const _hoisted_25$1 = { class: "flex items-start space-x-4" };
|
|
8715
|
+
const _hoisted_26$1 = { class: "min-w-0 flex-1" };
|
|
8716
|
+
const _hoisted_27$1 = { class: "font-semibold text-gray-900 text-lg" };
|
|
8717
|
+
const _hoisted_28$1 = { class: "text-sm text-gray-600 mt-1" };
|
|
8718
|
+
const _hoisted_29$1 = { class: "text-xs text-gray-500 mt-2" };
|
|
8719
|
+
const _hoisted_30$1 = { class: "flex flex-col space-y-2 ml-4" };
|
|
8507
8720
|
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8508
8721
|
return openBlock(), createElementBlock(
|
|
8509
8722
|
Fragment,
|
|
@@ -8512,11 +8725,11 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8512
8725
|
createVNode($setup["UiModal"], {
|
|
8513
8726
|
open: $setup.showModal,
|
|
8514
8727
|
onClose: $setup.closeModal,
|
|
8515
|
-
"card-class": "max-w-
|
|
8728
|
+
"card-class": "max-w-4xl"
|
|
8516
8729
|
}, {
|
|
8517
8730
|
header: withCtx(() => [
|
|
8518
8731
|
createElementVNode("div", { class: "flex items-center justify-between" }, [
|
|
8519
|
-
_cache[
|
|
8732
|
+
_cache[8] || (_cache[8] = createElementVNode(
|
|
8520
8733
|
"h2",
|
|
8521
8734
|
{ class: "text-2xl font-bold text-gray-900" },
|
|
8522
8735
|
"Two-Factor Authentication",
|
|
@@ -8526,7 +8739,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8526
8739
|
createElementVNode("button", {
|
|
8527
8740
|
onClick: $setup.closeModal,
|
|
8528
8741
|
class: "text-gray-400 hover:text-gray-600 transition-colors duration-200"
|
|
8529
|
-
}, _cache[
|
|
8742
|
+
}, _cache[7] || (_cache[7] = [
|
|
8530
8743
|
createElementVNode(
|
|
8531
8744
|
"svg",
|
|
8532
8745
|
{
|
|
@@ -8552,7 +8765,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8552
8765
|
default: withCtx(() => [
|
|
8553
8766
|
$setup.mfaLoading ? (openBlock(), createElementBlock("div", _hoisted_1$6, [
|
|
8554
8767
|
createVNode($setup["StrandsUiLoader"], { size: 32 }),
|
|
8555
|
-
_cache[
|
|
8768
|
+
_cache[9] || (_cache[9] = createElementVNode(
|
|
8556
8769
|
"span",
|
|
8557
8770
|
{ class: "ml-3 text-gray-600" },
|
|
8558
8771
|
"Loading MFA settings...",
|
|
@@ -8563,13 +8776,13 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8563
8776
|
Fragment,
|
|
8564
8777
|
{ key: 1 },
|
|
8565
8778
|
[
|
|
8566
|
-
createCommentVNode("
|
|
8779
|
+
createCommentVNode(" Tab Navigation "),
|
|
8567
8780
|
createElementVNode("div", _hoisted_2$5, [
|
|
8568
8781
|
createCommentVNode(" MFA Status Overview "),
|
|
8569
8782
|
createElementVNode("div", _hoisted_3$5, [
|
|
8570
8783
|
createElementVNode("div", _hoisted_4$4, [
|
|
8571
8784
|
createElementVNode("div", null, [
|
|
8572
|
-
_cache[
|
|
8785
|
+
_cache[10] || (_cache[10] = createElementVNode(
|
|
8573
8786
|
"h3",
|
|
8574
8787
|
{ class: "font-semibold text-gray-900" },
|
|
8575
8788
|
"Two-Factor Authentication",
|
|
@@ -8585,251 +8798,341 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8585
8798
|
)
|
|
8586
8799
|
]),
|
|
8587
8800
|
createElementVNode("div", _hoisted_6$2, [
|
|
8588
|
-
$setup.mfaEnabled ? (openBlock(), createElementBlock("span", _hoisted_7$2,
|
|
8801
|
+
$setup.mfaEnabled ? (openBlock(), createElementBlock("span", _hoisted_7$2, [
|
|
8802
|
+
createVNode($setup["Shield"], {
|
|
8803
|
+
size: 12,
|
|
8804
|
+
class: "mr-1"
|
|
8805
|
+
}),
|
|
8806
|
+
_cache[11] || (_cache[11] = createTextVNode(
|
|
8807
|
+
" Enabled ",
|
|
8808
|
+
-1
|
|
8809
|
+
/* CACHED */
|
|
8810
|
+
))
|
|
8811
|
+
])) : (openBlock(), createElementBlock("span", _hoisted_8$2, " Not Enabled "))
|
|
8589
8812
|
])
|
|
8590
8813
|
])
|
|
8591
8814
|
]),
|
|
8592
|
-
createCommentVNode("
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8615
|
-
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8815
|
+
createCommentVNode(" Tab Navigation "),
|
|
8816
|
+
createElementVNode("div", _hoisted_9$2, [
|
|
8817
|
+
createElementVNode("nav", _hoisted_10$2, [
|
|
8818
|
+
createElementVNode(
|
|
8819
|
+
"button",
|
|
8820
|
+
{
|
|
8821
|
+
onClick: _cache[0] || (_cache[0] = ($event) => $setup.activeTab = "add"),
|
|
8822
|
+
class: normalizeClass([
|
|
8823
|
+
$setup.activeTab === "add" ? "border-[var(--strands-primary)] text-[var(--strands-primary)]" : "border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300",
|
|
8824
|
+
"whitespace-nowrap py-2 px-1 border-b-2 font-medium text-sm transition-colors"
|
|
8825
|
+
])
|
|
8826
|
+
},
|
|
8827
|
+
" Add New Device ",
|
|
8828
|
+
2
|
|
8829
|
+
/* CLASS */
|
|
8830
|
+
),
|
|
8831
|
+
$setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock(
|
|
8832
|
+
"button",
|
|
8833
|
+
{
|
|
8834
|
+
key: 0,
|
|
8835
|
+
onClick: _cache[1] || (_cache[1] = ($event) => $setup.activeTab = "manage"),
|
|
8836
|
+
class: normalizeClass([
|
|
8837
|
+
$setup.activeTab === "manage" ? "border-[var(--strands-primary)] text-[var(--strands-primary)]" : "border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300",
|
|
8838
|
+
"whitespace-nowrap py-2 px-1 border-b-2 font-medium text-sm transition-colors"
|
|
8839
|
+
])
|
|
8840
|
+
},
|
|
8841
|
+
" Active Devices (" + toDisplayString($setup.activeMfaDevices.length) + ") ",
|
|
8842
|
+
3
|
|
8843
|
+
/* TEXT, CLASS */
|
|
8844
|
+
)) : createCommentVNode("v-if", true)
|
|
8845
|
+
])
|
|
8846
|
+
]),
|
|
8847
|
+
createCommentVNode(" Tab Content: Add New Device "),
|
|
8848
|
+
$setup.activeTab === "add" ? (openBlock(), createElementBlock("div", _hoisted_11$2, [
|
|
8849
|
+
createElementVNode("div", null, [
|
|
8850
|
+
_cache[18] || (_cache[18] = createElementVNode(
|
|
8851
|
+
"h3",
|
|
8852
|
+
{ class: "text-xl font-semibold text-gray-900 mb-6" },
|
|
8853
|
+
"Choose Your Authentication Method",
|
|
8854
|
+
-1
|
|
8855
|
+
/* CACHED */
|
|
8856
|
+
)),
|
|
8857
|
+
createElementVNode("div", _hoisted_12$2, [
|
|
8858
|
+
createCommentVNode(" TOTP Setup "),
|
|
8859
|
+
createElementVNode("div", {
|
|
8860
|
+
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",
|
|
8861
|
+
onClick: $setup.startTotpSetup
|
|
8862
|
+
}, [
|
|
8863
|
+
createElementVNode("div", _hoisted_13$2, [
|
|
8864
|
+
createElementVNode("div", _hoisted_14$2, [
|
|
8865
|
+
createVNode($setup["Smartphone"], {
|
|
8866
|
+
size: 24,
|
|
8867
|
+
class: "text-[var(--strands-primary)]"
|
|
8868
|
+
})
|
|
8644
8869
|
]),
|
|
8645
|
-
|
|
8646
|
-
|
|
8647
|
-
|
|
8648
|
-
|
|
8649
|
-
|
|
8650
|
-
|
|
8651
|
-
|
|
8870
|
+
_cache[13] || (_cache[13] = createElementVNode(
|
|
8871
|
+
"div",
|
|
8872
|
+
{ class: "flex items-start space-x-4" },
|
|
8873
|
+
[
|
|
8874
|
+
createElementVNode("div", { class: "min-w-0 flex-1" }, [
|
|
8875
|
+
createElementVNode("h4", { class: "font-semibold text-gray-900 text-lg" }, "Authenticator App"),
|
|
8876
|
+
createElementVNode("p", { class: "text-xs text-gray-500 mt-2" }, " Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes ")
|
|
8877
|
+
])
|
|
8878
|
+
],
|
|
8879
|
+
-1
|
|
8880
|
+
/* CACHED */
|
|
8881
|
+
)),
|
|
8882
|
+
createElementVNode("div", _hoisted_15$2, [
|
|
8883
|
+
createVNode($setup["StrandsUiButton"], {
|
|
8884
|
+
variant: "primary",
|
|
8885
|
+
size: "md",
|
|
8886
|
+
onClick: withModifiers($setup.startTotpSetup, ["stop"]),
|
|
8652
8887
|
disabled: $setup.mfaLoading
|
|
8653
8888
|
}, {
|
|
8654
|
-
default: withCtx(() =>
|
|
8889
|
+
default: withCtx(() => _cache[12] || (_cache[12] = [
|
|
8655
8890
|
createTextVNode(
|
|
8656
|
-
"
|
|
8891
|
+
" Setup ",
|
|
8657
8892
|
-1
|
|
8658
8893
|
/* CACHED */
|
|
8659
8894
|
)
|
|
8660
|
-
])
|
|
8661
|
-
_:
|
|
8662
|
-
__: [
|
|
8663
|
-
},
|
|
8664
|
-
|
|
8665
|
-
|
|
8666
|
-
|
|
8667
|
-
|
|
8668
|
-
|
|
8669
|
-
|
|
8895
|
+
])),
|
|
8896
|
+
_: 1,
|
|
8897
|
+
__: [12]
|
|
8898
|
+
}, 8, ["disabled"])
|
|
8899
|
+
])
|
|
8900
|
+
])
|
|
8901
|
+
]),
|
|
8902
|
+
createCommentVNode(" Email MFA Setup "),
|
|
8903
|
+
createElementVNode("div", {
|
|
8904
|
+
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",
|
|
8905
|
+
onClick: $setup.startEmailMfaSetup
|
|
8906
|
+
}, [
|
|
8907
|
+
createElementVNode("div", _hoisted_16$2, [
|
|
8908
|
+
createElementVNode("div", _hoisted_17$2, [
|
|
8909
|
+
createVNode($setup["Mail"], {
|
|
8910
|
+
size: 24,
|
|
8911
|
+
class: "text-[var(--strands-primary)]"
|
|
8912
|
+
})
|
|
8913
|
+
]),
|
|
8914
|
+
_cache[15] || (_cache[15] = createElementVNode(
|
|
8915
|
+
"div",
|
|
8916
|
+
{ class: "flex items-start space-x-4" },
|
|
8917
|
+
[
|
|
8918
|
+
createElementVNode("div", { class: "min-w-0 flex-1" }, [
|
|
8919
|
+
createElementVNode("h4", { class: "font-semibold text-gray-900 text-lg" }, "Email Verification"),
|
|
8920
|
+
createElementVNode("p", { class: "text-xs text-gray-500 mt-2" }, " Receive verification codes directly in your email inbox for easy access ")
|
|
8921
|
+
])
|
|
8922
|
+
],
|
|
8923
|
+
-1
|
|
8924
|
+
/* CACHED */
|
|
8925
|
+
)),
|
|
8926
|
+
createElementVNode("div", _hoisted_18$2, [
|
|
8927
|
+
createVNode($setup["StrandsUiButton"], {
|
|
8928
|
+
variant: "primary",
|
|
8929
|
+
size: "md",
|
|
8930
|
+
onClick: withModifiers($setup.startEmailMfaSetup, ["stop"]),
|
|
8670
8931
|
disabled: $setup.mfaLoading
|
|
8671
8932
|
}, {
|
|
8672
|
-
default: withCtx(() =>
|
|
8933
|
+
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
8673
8934
|
createTextVNode(
|
|
8674
|
-
"
|
|
8935
|
+
" Setup ",
|
|
8675
8936
|
-1
|
|
8676
8937
|
/* CACHED */
|
|
8677
8938
|
)
|
|
8678
|
-
])
|
|
8679
|
-
_:
|
|
8680
|
-
__: [
|
|
8681
|
-
},
|
|
8682
|
-
|
|
8939
|
+
])),
|
|
8940
|
+
_: 1,
|
|
8941
|
+
__: [14]
|
|
8942
|
+
}, 8, ["disabled"])
|
|
8943
|
+
])
|
|
8944
|
+
])
|
|
8945
|
+
]),
|
|
8946
|
+
createCommentVNode(" Hardware Key & Passkeys Setup "),
|
|
8947
|
+
createElementVNode("div", {
|
|
8948
|
+
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",
|
|
8949
|
+
onClick: $setup.startHardwareKeySetup
|
|
8950
|
+
}, [
|
|
8951
|
+
createElementVNode("div", _hoisted_19$2, [
|
|
8952
|
+
createElementVNode("div", _hoisted_20$1, [
|
|
8953
|
+
createVNode($setup["KeyRound"], {
|
|
8954
|
+
size: 24,
|
|
8955
|
+
class: "text-[var(--strands-primary)]"
|
|
8956
|
+
})
|
|
8957
|
+
]),
|
|
8958
|
+
_cache[17] || (_cache[17] = createElementVNode(
|
|
8959
|
+
"div",
|
|
8960
|
+
{ class: "flex items-start space-x-4" },
|
|
8961
|
+
[
|
|
8962
|
+
createElementVNode("div", { class: "min-w-0 flex-1" }, [
|
|
8963
|
+
createElementVNode("h4", { class: "font-semibold text-gray-900 text-lg" }, "Hardware Key & Passkeys"),
|
|
8964
|
+
createElementVNode("p", { class: "text-xs text-gray-500 mt-2" }, " Use YubiKey, FIDO2 devices, WebAuthn, or built-in passkeys for maximum security ")
|
|
8965
|
+
])
|
|
8966
|
+
],
|
|
8967
|
+
-1
|
|
8968
|
+
/* CACHED */
|
|
8969
|
+
)),
|
|
8970
|
+
createElementVNode("div", _hoisted_21$1, [
|
|
8683
8971
|
createVNode($setup["StrandsUiButton"], {
|
|
8684
|
-
variant: "
|
|
8685
|
-
size: "
|
|
8686
|
-
onClick: ($
|
|
8972
|
+
variant: "primary",
|
|
8973
|
+
size: "md",
|
|
8974
|
+
onClick: withModifiers($setup.startHardwareKeySetup, ["stop"]),
|
|
8687
8975
|
disabled: $setup.mfaLoading
|
|
8688
8976
|
}, {
|
|
8689
|
-
default: withCtx(() =>
|
|
8977
|
+
default: withCtx(() => _cache[16] || (_cache[16] = [
|
|
8690
8978
|
createTextVNode(
|
|
8691
|
-
"
|
|
8979
|
+
" Setup ",
|
|
8692
8980
|
-1
|
|
8693
8981
|
/* CACHED */
|
|
8694
8982
|
)
|
|
8695
|
-
])
|
|
8696
|
-
_:
|
|
8697
|
-
__: [
|
|
8698
|
-
},
|
|
8983
|
+
])),
|
|
8984
|
+
_: 1,
|
|
8985
|
+
__: [16]
|
|
8986
|
+
}, 8, ["disabled"])
|
|
8699
8987
|
])
|
|
8700
|
-
])
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
/* KEYED_FRAGMENT */
|
|
8704
|
-
))
|
|
8988
|
+
])
|
|
8989
|
+
])
|
|
8990
|
+
])
|
|
8705
8991
|
])
|
|
8706
|
-
])) :
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
"
|
|
8711
|
-
|
|
8712
|
-
|
|
8713
|
-
|
|
8714
|
-
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
|
|
8729
|
-
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
|
|
8743
|
-
|
|
8744
|
-
|
|
8745
|
-
|
|
8746
|
-
|
|
8747
|
-
|
|
8748
|
-
|
|
8749
|
-
|
|
8750
|
-
|
|
8751
|
-
|
|
8752
|
-
|
|
8753
|
-
|
|
8754
|
-
|
|
8755
|
-
|
|
8756
|
-
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8760
|
-
|
|
8761
|
-
|
|
8762
|
-
|
|
8763
|
-
|
|
8764
|
-
|
|
8765
|
-
|
|
8766
|
-
|
|
8767
|
-
|
|
8768
|
-
|
|
8769
|
-
|
|
8770
|
-
|
|
8771
|
-
|
|
8772
|
-
|
|
8773
|
-
|
|
8774
|
-
|
|
8775
|
-
|
|
8776
|
-
|
|
8777
|
-
|
|
8778
|
-
|
|
8779
|
-
|
|
8780
|
-
|
|
8781
|
-
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8796
|
-
|
|
8797
|
-
|
|
8798
|
-
|
|
8799
|
-
|
|
8800
|
-
|
|
8801
|
-
|
|
8802
|
-
|
|
8803
|
-
|
|
8804
|
-
|
|
8805
|
-
|
|
8806
|
-
|
|
8807
|
-
|
|
8808
|
-
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8812
|
-
|
|
8813
|
-
|
|
8814
|
-
|
|
8815
|
-
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8822
|
-
|
|
8823
|
-
|
|
8824
|
-
|
|
8825
|
-
|
|
8826
|
-
|
|
8827
|
-
|
|
8828
|
-
|
|
8829
|
-
|
|
8992
|
+
])) : $setup.activeTab === "manage" && $setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock(
|
|
8993
|
+
Fragment,
|
|
8994
|
+
{ key: 1 },
|
|
8995
|
+
[
|
|
8996
|
+
createCommentVNode(" Tab Content: Active Devices "),
|
|
8997
|
+
createElementVNode("div", _hoisted_22$1, [
|
|
8998
|
+
createElementVNode("div", null, [
|
|
8999
|
+
_cache[22] || (_cache[22] = createElementVNode(
|
|
9000
|
+
"h3",
|
|
9001
|
+
{ class: "text-xl font-semibold text-gray-900 mb-6" },
|
|
9002
|
+
"Manage Your Active Devices",
|
|
9003
|
+
-1
|
|
9004
|
+
/* CACHED */
|
|
9005
|
+
)),
|
|
9006
|
+
createElementVNode("div", _hoisted_23$1, [
|
|
9007
|
+
(openBlock(true), createElementBlock(
|
|
9008
|
+
Fragment,
|
|
9009
|
+
null,
|
|
9010
|
+
renderList($setup.activeMfaDevices, (device) => {
|
|
9011
|
+
return openBlock(), createElementBlock("div", {
|
|
9012
|
+
key: device.id,
|
|
9013
|
+
class: "group p-6 bg-white border border-gray-200 rounded-xl hover:border-gray-300 hover:shadow-md transition-all duration-200"
|
|
9014
|
+
}, [
|
|
9015
|
+
createElementVNode("div", _hoisted_24$1, [
|
|
9016
|
+
createElementVNode("div", _hoisted_25$1, [
|
|
9017
|
+
createElementVNode(
|
|
9018
|
+
"div",
|
|
9019
|
+
{
|
|
9020
|
+
class: normalizeClass(["flex-shrink-0 w-14 h-14 rounded-xl flex items-center justify-center", $setup.getDeviceIconBackground(device.device_type)])
|
|
9021
|
+
},
|
|
9022
|
+
[
|
|
9023
|
+
(openBlock(), createBlock(resolveDynamicComponent($setup.getDeviceIconComponent(device.device_type)), {
|
|
9024
|
+
size: 24,
|
|
9025
|
+
class: "text-gray-600"
|
|
9026
|
+
}))
|
|
9027
|
+
],
|
|
9028
|
+
2
|
|
9029
|
+
/* CLASS */
|
|
9030
|
+
),
|
|
9031
|
+
createElementVNode("div", _hoisted_26$1, [
|
|
9032
|
+
createElementVNode(
|
|
9033
|
+
"h4",
|
|
9034
|
+
_hoisted_27$1,
|
|
9035
|
+
toDisplayString(device.device_name),
|
|
9036
|
+
1
|
|
9037
|
+
/* TEXT */
|
|
9038
|
+
),
|
|
9039
|
+
createElementVNode(
|
|
9040
|
+
"p",
|
|
9041
|
+
_hoisted_28$1,
|
|
9042
|
+
toDisplayString($setup.getDeviceTypeName(device.device_type)),
|
|
9043
|
+
1
|
|
9044
|
+
/* TEXT */
|
|
9045
|
+
),
|
|
9046
|
+
createElementVNode(
|
|
9047
|
+
"p",
|
|
9048
|
+
_hoisted_29$1,
|
|
9049
|
+
" Last used " + toDisplayString($setup.formatLastUsed(device.last_used_at)),
|
|
9050
|
+
1
|
|
9051
|
+
/* TEXT */
|
|
9052
|
+
)
|
|
9053
|
+
])
|
|
9054
|
+
]),
|
|
9055
|
+
createElementVNode("div", _hoisted_30$1, [
|
|
9056
|
+
createCommentVNode(" Backup codes button for TOTP and Hardware Key devices "),
|
|
9057
|
+
device.device_type === "totp" || device.device_type === "hardware" ? (openBlock(), createBlock($setup["StrandsUiButton"], {
|
|
9058
|
+
key: 0,
|
|
9059
|
+
variant: "secondary",
|
|
9060
|
+
size: "sm",
|
|
9061
|
+
onClick: ($event) => $setup.showBackupCodes(device),
|
|
9062
|
+
disabled: $setup.mfaLoading
|
|
9063
|
+
}, {
|
|
9064
|
+
default: withCtx(() => [
|
|
9065
|
+
createVNode($setup["KeyRound"], {
|
|
9066
|
+
size: 14,
|
|
9067
|
+
class: "mr-2"
|
|
9068
|
+
}),
|
|
9069
|
+
_cache[19] || (_cache[19] = createTextVNode(
|
|
9070
|
+
" Backup Codes ",
|
|
9071
|
+
-1
|
|
9072
|
+
/* CACHED */
|
|
9073
|
+
))
|
|
9074
|
+
]),
|
|
9075
|
+
_: 2,
|
|
9076
|
+
__: [19]
|
|
9077
|
+
}, 1032, ["onClick", "disabled"])) : createCommentVNode("v-if", true),
|
|
9078
|
+
createCommentVNode(" Test email MFA "),
|
|
9079
|
+
device.device_type === "email" ? (openBlock(), createBlock($setup["StrandsUiButton"], {
|
|
9080
|
+
key: 1,
|
|
9081
|
+
variant: "secondary",
|
|
9082
|
+
size: "sm",
|
|
9083
|
+
onClick: ($event) => $setup.testEmailMfa(device),
|
|
9084
|
+
disabled: $setup.mfaLoading
|
|
9085
|
+
}, {
|
|
9086
|
+
default: withCtx(() => [
|
|
9087
|
+
createVNode($setup["Mail"], {
|
|
9088
|
+
size: 14,
|
|
9089
|
+
class: "mr-2"
|
|
9090
|
+
}),
|
|
9091
|
+
_cache[20] || (_cache[20] = createTextVNode(
|
|
9092
|
+
" Send Test Code ",
|
|
9093
|
+
-1
|
|
9094
|
+
/* CACHED */
|
|
9095
|
+
))
|
|
9096
|
+
]),
|
|
9097
|
+
_: 2,
|
|
9098
|
+
__: [20]
|
|
9099
|
+
}, 1032, ["onClick", "disabled"])) : createCommentVNode("v-if", true),
|
|
9100
|
+
createCommentVNode(" Remove device "),
|
|
9101
|
+
createVNode($setup["StrandsUiButton"], {
|
|
9102
|
+
variant: "secondary",
|
|
9103
|
+
size: "sm",
|
|
9104
|
+
onClick: ($event) => $setup.confirmDisableDevice(device),
|
|
9105
|
+
disabled: $setup.mfaLoading,
|
|
9106
|
+
class: "text-red-600 hover:bg-red-50 hover:text-red-700 border-red-200"
|
|
9107
|
+
}, {
|
|
9108
|
+
default: withCtx(() => [
|
|
9109
|
+
createVNode($setup["Trash2"], {
|
|
9110
|
+
size: 14,
|
|
9111
|
+
class: "mr-2"
|
|
9112
|
+
}),
|
|
9113
|
+
_cache[21] || (_cache[21] = createTextVNode(
|
|
9114
|
+
" Remove ",
|
|
9115
|
+
-1
|
|
9116
|
+
/* CACHED */
|
|
9117
|
+
))
|
|
9118
|
+
]),
|
|
9119
|
+
_: 2,
|
|
9120
|
+
__: [21]
|
|
9121
|
+
}, 1032, ["onClick", "disabled"])
|
|
9122
|
+
])
|
|
9123
|
+
])
|
|
9124
|
+
]);
|
|
9125
|
+
}),
|
|
9126
|
+
128
|
|
9127
|
+
/* KEYED_FRAGMENT */
|
|
9128
|
+
))
|
|
9129
|
+
])
|
|
9130
|
+
])
|
|
8830
9131
|
])
|
|
8831
|
-
]
|
|
8832
|
-
|
|
9132
|
+
],
|
|
9133
|
+
2112
|
|
9134
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
9135
|
+
)) : createCommentVNode("v-if", true)
|
|
8833
9136
|
])
|
|
8834
9137
|
],
|
|
8835
9138
|
2112
|
|
@@ -8838,26 +9141,26 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8838
9141
|
$setup.showTotpSetup ? (openBlock(), createBlock($setup["StrandsTotpSetupModal"], {
|
|
8839
9142
|
key: 2,
|
|
8840
9143
|
show: $setup.showTotpSetup,
|
|
8841
|
-
onClose: _cache[
|
|
9144
|
+
onClose: _cache[2] || (_cache[2] = ($event) => $setup.showTotpSetup = false),
|
|
8842
9145
|
onSuccess: $setup.handleTotpSetupSuccess
|
|
8843
9146
|
}, null, 8, ["show"])) : createCommentVNode("v-if", true),
|
|
8844
9147
|
$setup.showEmailMfaSetup ? (openBlock(), createBlock($setup["StrandsEmailMfaSetupModal"], {
|
|
8845
9148
|
key: 3,
|
|
8846
9149
|
show: $setup.showEmailMfaSetup,
|
|
8847
|
-
onClose: _cache[
|
|
9150
|
+
onClose: _cache[3] || (_cache[3] = ($event) => $setup.showEmailMfaSetup = false),
|
|
8848
9151
|
onSuccess: $setup.handleEmailMfaSetupSuccess
|
|
8849
9152
|
}, null, 8, ["show"])) : createCommentVNode("v-if", true),
|
|
8850
9153
|
$setup.showHardwareKeySetup ? (openBlock(), createBlock($setup["StrandsHardwareKeySetupModal"], {
|
|
8851
9154
|
key: 4,
|
|
8852
9155
|
show: $setup.showHardwareKeySetup,
|
|
8853
|
-
onClose: _cache[
|
|
9156
|
+
onClose: _cache[4] || (_cache[4] = ($event) => $setup.showHardwareKeySetup = false),
|
|
8854
9157
|
onSuccess: $setup.handleHardwareKeySetupSuccess
|
|
8855
9158
|
}, null, 8, ["show"])) : createCommentVNode("v-if", true),
|
|
8856
9159
|
$setup.showBackupCodesModal ? (openBlock(), createBlock($setup["StrandsBackupCodesModal"], {
|
|
8857
9160
|
key: 5,
|
|
8858
9161
|
show: $setup.showBackupCodesModal,
|
|
8859
9162
|
device: $setup.selectedDevice,
|
|
8860
|
-
onClose: _cache[
|
|
9163
|
+
onClose: _cache[5] || (_cache[5] = ($event) => $setup.showBackupCodesModal = false)
|
|
8861
9164
|
}, null, 8, ["show", "device"])) : createCommentVNode("v-if", true)
|
|
8862
9165
|
]),
|
|
8863
9166
|
_: 1
|
|
@@ -8873,7 +9176,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8873
9176
|
"cancel-text": "Keep Device",
|
|
8874
9177
|
variant: "secondary",
|
|
8875
9178
|
onConfirm: $setup.handleDisableDevice,
|
|
8876
|
-
onCancel: _cache[
|
|
9179
|
+
onCancel: _cache[6] || (_cache[6] = ($event) => $setup.showConfirmDisable = false)
|
|
8877
9180
|
}, null, 8, ["show", "message"])) : createCommentVNode("v-if", true)
|
|
8878
9181
|
],
|
|
8879
9182
|
64
|
|
@@ -9278,7 +9581,7 @@ const _hoisted_16$1 = {
|
|
|
9278
9581
|
};
|
|
9279
9582
|
const _hoisted_17$1 = { class: "space-y-3 md:space-y-4" };
|
|
9280
9583
|
const _hoisted_18$1 = { class: "space-y-4 p-4 bg-gray-50 rounded-xl" };
|
|
9281
|
-
const _hoisted_19 = { class: "flex items-center justify-between gap-2" };
|
|
9584
|
+
const _hoisted_19$1 = { class: "flex items-center justify-between gap-2" };
|
|
9282
9585
|
const _hoisted_20 = { class: "text-sm text-gray-600" };
|
|
9283
9586
|
const _hoisted_21 = {
|
|
9284
9587
|
key: 0,
|
|
@@ -9524,7 +9827,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9524
9827
|
)),
|
|
9525
9828
|
createCommentVNode(" Password Change "),
|
|
9526
9829
|
createElementVNode("div", _hoisted_18$1, [
|
|
9527
|
-
createElementVNode("div", _hoisted_19, [
|
|
9830
|
+
createElementVNode("div", _hoisted_19$1, [
|
|
9528
9831
|
createElementVNode("div", null, [
|
|
9529
9832
|
_cache[15] || (_cache[15] = createElementVNode(
|
|
9530
9833
|
"h4",
|
|
@@ -10040,129 +10343,6 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10040
10343
|
]);
|
|
10041
10344
|
}
|
|
10042
10345
|
const StrandsPasswordReset = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6], ["__file", "/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsPasswordReset.vue"]]);
|
|
10043
|
-
/**
|
|
10044
|
-
* @license lucide-vue-next v0.539.0 - ISC
|
|
10045
|
-
*
|
|
10046
|
-
* This source code is licensed under the ISC license.
|
|
10047
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10048
|
-
*/
|
|
10049
|
-
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
10050
|
-
const toCamelCase = (string) => string.replace(
|
|
10051
|
-
/^([A-Z])|[\s-_]+(\w)/g,
|
|
10052
|
-
(match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
|
|
10053
|
-
);
|
|
10054
|
-
const toPascalCase = (string) => {
|
|
10055
|
-
const camelCase = toCamelCase(string);
|
|
10056
|
-
return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
|
|
10057
|
-
};
|
|
10058
|
-
const mergeClasses = (...classes) => classes.filter((className, index, array) => {
|
|
10059
|
-
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
10060
|
-
}).join(" ").trim();
|
|
10061
|
-
const isEmptyString = (value) => value === "";
|
|
10062
|
-
/**
|
|
10063
|
-
* @license lucide-vue-next v0.539.0 - ISC
|
|
10064
|
-
*
|
|
10065
|
-
* This source code is licensed under the ISC license.
|
|
10066
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10067
|
-
*/
|
|
10068
|
-
var defaultAttributes = {
|
|
10069
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
10070
|
-
width: 24,
|
|
10071
|
-
height: 24,
|
|
10072
|
-
viewBox: "0 0 24 24",
|
|
10073
|
-
fill: "none",
|
|
10074
|
-
stroke: "currentColor",
|
|
10075
|
-
"stroke-width": 2,
|
|
10076
|
-
"stroke-linecap": "round",
|
|
10077
|
-
"stroke-linejoin": "round"
|
|
10078
|
-
};
|
|
10079
|
-
/**
|
|
10080
|
-
* @license lucide-vue-next v0.539.0 - ISC
|
|
10081
|
-
*
|
|
10082
|
-
* This source code is licensed under the ISC license.
|
|
10083
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10084
|
-
*/
|
|
10085
|
-
const Icon = ({
|
|
10086
|
-
name,
|
|
10087
|
-
iconNode,
|
|
10088
|
-
absoluteStrokeWidth,
|
|
10089
|
-
"absolute-stroke-width": absoluteStrokeWidthKebabCase,
|
|
10090
|
-
strokeWidth,
|
|
10091
|
-
"stroke-width": strokeWidthKebabCase,
|
|
10092
|
-
size = defaultAttributes.width,
|
|
10093
|
-
color = defaultAttributes.stroke,
|
|
10094
|
-
...props
|
|
10095
|
-
}, { slots }) => {
|
|
10096
|
-
return h(
|
|
10097
|
-
"svg",
|
|
10098
|
-
{
|
|
10099
|
-
...defaultAttributes,
|
|
10100
|
-
...props,
|
|
10101
|
-
width: size,
|
|
10102
|
-
height: size,
|
|
10103
|
-
stroke: color,
|
|
10104
|
-
"stroke-width": isEmptyString(absoluteStrokeWidth) || isEmptyString(absoluteStrokeWidthKebabCase) || absoluteStrokeWidth === true || absoluteStrokeWidthKebabCase === true ? Number(strokeWidth || strokeWidthKebabCase || defaultAttributes["stroke-width"]) * 24 / Number(size) : strokeWidth || strokeWidthKebabCase || defaultAttributes["stroke-width"],
|
|
10105
|
-
class: mergeClasses(
|
|
10106
|
-
"lucide",
|
|
10107
|
-
props.class,
|
|
10108
|
-
...name ? [`lucide-${toKebabCase(toPascalCase(name))}-icon`, `lucide-${toKebabCase(name)}`] : ["lucide-icon"]
|
|
10109
|
-
)
|
|
10110
|
-
},
|
|
10111
|
-
[...iconNode.map((child) => h(...child)), ...slots.default ? [slots.default()] : []]
|
|
10112
|
-
);
|
|
10113
|
-
};
|
|
10114
|
-
/**
|
|
10115
|
-
* @license lucide-vue-next v0.539.0 - ISC
|
|
10116
|
-
*
|
|
10117
|
-
* This source code is licensed under the ISC license.
|
|
10118
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10119
|
-
*/
|
|
10120
|
-
const createLucideIcon = (iconName, iconNode) => (props, { slots, attrs }) => h(
|
|
10121
|
-
Icon,
|
|
10122
|
-
{
|
|
10123
|
-
...attrs,
|
|
10124
|
-
...props,
|
|
10125
|
-
iconNode,
|
|
10126
|
-
name: iconName
|
|
10127
|
-
},
|
|
10128
|
-
slots
|
|
10129
|
-
);
|
|
10130
|
-
/**
|
|
10131
|
-
* @license lucide-vue-next v0.539.0 - ISC
|
|
10132
|
-
*
|
|
10133
|
-
* This source code is licensed under the ISC license.
|
|
10134
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10135
|
-
*/
|
|
10136
|
-
const KeyRound = createLucideIcon("key-round", [
|
|
10137
|
-
[
|
|
10138
|
-
"path",
|
|
10139
|
-
{
|
|
10140
|
-
d: "M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",
|
|
10141
|
-
key: "1s6t7t"
|
|
10142
|
-
}
|
|
10143
|
-
],
|
|
10144
|
-
["circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor", key: "w0ekpg" }]
|
|
10145
|
-
]);
|
|
10146
|
-
/**
|
|
10147
|
-
* @license lucide-vue-next v0.539.0 - ISC
|
|
10148
|
-
*
|
|
10149
|
-
* This source code is licensed under the ISC license.
|
|
10150
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10151
|
-
*/
|
|
10152
|
-
const Mail = createLucideIcon("mail", [
|
|
10153
|
-
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
10154
|
-
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
10155
|
-
]);
|
|
10156
|
-
/**
|
|
10157
|
-
* @license lucide-vue-next v0.539.0 - ISC
|
|
10158
|
-
*
|
|
10159
|
-
* This source code is licensed under the ISC license.
|
|
10160
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10161
|
-
*/
|
|
10162
|
-
const Smartphone = createLucideIcon("smartphone", [
|
|
10163
|
-
["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
|
|
10164
|
-
["path", { d: "M12 18h.01", key: "mhygvu" }]
|
|
10165
|
-
]);
|
|
10166
10346
|
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
10167
10347
|
__name: "StrandsMFASetup",
|
|
10168
10348
|
props: {
|
|
@@ -10229,6 +10409,10 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
10229
10409
|
return Mail;
|
|
10230
10410
|
}, get KeyRound() {
|
|
10231
10411
|
return KeyRound;
|
|
10412
|
+
}, get Shield() {
|
|
10413
|
+
return Shield;
|
|
10414
|
+
}, get Settings() {
|
|
10415
|
+
return Settings;
|
|
10232
10416
|
} };
|
|
10233
10417
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
10234
10418
|
return __returned__;
|
|
@@ -10236,28 +10420,32 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
10236
10420
|
});
|
|
10237
10421
|
const _hoisted_1$3 = { class: "flex items-center justify-between" };
|
|
10238
10422
|
const _hoisted_2$2 = { class: "text-right" };
|
|
10239
|
-
const _hoisted_3$2 = { class: "space-y-
|
|
10423
|
+
const _hoisted_3$2 = { class: "space-y-8" };
|
|
10240
10424
|
const _hoisted_4$1 = {
|
|
10241
10425
|
key: 0,
|
|
10242
|
-
class: "flex items-center justify-center py-
|
|
10426
|
+
class: "flex items-center justify-center py-16"
|
|
10243
10427
|
};
|
|
10244
|
-
const _hoisted_5$1 = { class: "space-y-
|
|
10428
|
+
const _hoisted_5$1 = { class: "space-y-8" };
|
|
10245
10429
|
const _hoisted_6 = {
|
|
10246
10430
|
key: 0,
|
|
10247
|
-
class: "bg-green-50 border border-green-200 rounded-
|
|
10431
|
+
class: "bg-green-50 border border-green-200 rounded-xl p-6"
|
|
10432
|
+
};
|
|
10433
|
+
const _hoisted_7 = { class: "flex items-center space-x-3" };
|
|
10434
|
+
const _hoisted_8 = { class: "w-10 h-10 bg-green-100 rounded-full flex items-center justify-center" };
|
|
10435
|
+
const _hoisted_9 = { class: "grid grid-cols-1 md:grid-cols-3 gap-6" };
|
|
10436
|
+
const _hoisted_10 = { class: "flex flex-col items-center text-center space-y-4" };
|
|
10437
|
+
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" };
|
|
10438
|
+
const _hoisted_12 = { class: "flex flex-col items-center text-center space-y-4" };
|
|
10439
|
+
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" };
|
|
10440
|
+
const _hoisted_14 = { class: "flex flex-col items-center text-center space-y-4" };
|
|
10441
|
+
const _hoisted_15 = { 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" };
|
|
10442
|
+
const _hoisted_16 = {
|
|
10443
|
+
key: 1,
|
|
10444
|
+
class: "border-t border-gray-200 pt-8"
|
|
10248
10445
|
};
|
|
10249
|
-
const
|
|
10250
|
-
const
|
|
10251
|
-
const
|
|
10252
|
-
const _hoisted_10 = { class: "w-12 h-12 bg-[var(--strands-primary)] bg-opacity-10 rounded-lg flex items-center justify-center" };
|
|
10253
|
-
const _hoisted_11 = { class: "p-6 border border-gray-200 rounded-lg hover:shadow-sm hover:border-[var(--strands-primary)] transition-all duration-200" };
|
|
10254
|
-
const _hoisted_12 = { class: "flex flex-col items-center text-center space-y-3" };
|
|
10255
|
-
const _hoisted_13 = { class: "w-12 h-12 bg-[var(--strands-primary)] bg-opacity-10 rounded-lg flex items-center justify-center" };
|
|
10256
|
-
const _hoisted_14 = { class: "p-6 border border-gray-200 rounded-lg hover:shadow-sm hover:border-[var(--strands-primary)] transition-all duration-200" };
|
|
10257
|
-
const _hoisted_15 = { class: "flex flex-col items-center text-center space-y-3" };
|
|
10258
|
-
const _hoisted_16 = { class: "w-12 h-12 bg-[var(--strands-primary)] bg-opacity-10 rounded-lg flex items-center justify-center" };
|
|
10259
|
-
const _hoisted_17 = { key: 1 };
|
|
10260
|
-
const _hoisted_18 = { class: "flex justify-end space-x-3" };
|
|
10446
|
+
const _hoisted_17 = { class: "flex items-center justify-between" };
|
|
10447
|
+
const _hoisted_18 = { class: "text-gray-600 text-sm mt-1" };
|
|
10448
|
+
const _hoisted_19 = { class: "flex justify-end space-x-3" };
|
|
10261
10449
|
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10262
10450
|
return openBlock(), createElementBlock(
|
|
10263
10451
|
Fragment,
|
|
@@ -10266,7 +10454,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10266
10454
|
createVNode($setup["UiModal"], {
|
|
10267
10455
|
open: $props.show,
|
|
10268
10456
|
onClose: $setup.closeModal,
|
|
10269
|
-
"card-class": "max-w-
|
|
10457
|
+
"card-class": "max-w-5xl"
|
|
10270
10458
|
}, {
|
|
10271
10459
|
header: withCtx(() => [
|
|
10272
10460
|
createElementVNode("div", _hoisted_1$3, [
|
|
@@ -10294,7 +10482,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10294
10482
|
])
|
|
10295
10483
|
]),
|
|
10296
10484
|
footer: withCtx(() => [
|
|
10297
|
-
createElementVNode("div",
|
|
10485
|
+
createElementVNode("div", _hoisted_19, [
|
|
10298
10486
|
createVNode($setup["StrandsUiButton"], {
|
|
10299
10487
|
variant: "secondary",
|
|
10300
10488
|
onClick: $setup.closeModal,
|
|
@@ -10331,67 +10519,68 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10331
10519
|
createCommentVNode(" MFA Options "),
|
|
10332
10520
|
createElementVNode("div", _hoisted_5$1, [
|
|
10333
10521
|
createCommentVNode(" Current MFA Status "),
|
|
10334
|
-
$setup.mfaEnabled || $setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_6,
|
|
10335
|
-
createElementVNode(
|
|
10336
|
-
"div",
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
10349
|
-
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
)
|
|
10355
|
-
]))) : createCommentVNode("v-if", true),
|
|
10522
|
+
$setup.mfaEnabled || $setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_6, [
|
|
10523
|
+
createElementVNode("div", _hoisted_7, [
|
|
10524
|
+
createElementVNode("div", _hoisted_8, [
|
|
10525
|
+
createVNode($setup["Shield"], {
|
|
10526
|
+
size: 20,
|
|
10527
|
+
class: "text-green-600"
|
|
10528
|
+
})
|
|
10529
|
+
]),
|
|
10530
|
+
_cache[6] || (_cache[6] = createElementVNode(
|
|
10531
|
+
"div",
|
|
10532
|
+
null,
|
|
10533
|
+
[
|
|
10534
|
+
createElementVNode("span", { class: "text-green-800 font-medium text-lg" }, "2FA is currently enabled on your account"),
|
|
10535
|
+
createElementVNode("p", { class: "text-green-700 text-sm mt-1" }, "Your account has additional security protection")
|
|
10536
|
+
],
|
|
10537
|
+
-1
|
|
10538
|
+
/* CACHED */
|
|
10539
|
+
))
|
|
10540
|
+
])
|
|
10541
|
+
])) : createCommentVNode("v-if", true),
|
|
10356
10542
|
createCommentVNode(" Setup Options "),
|
|
10357
10543
|
createElementVNode("div", null, [
|
|
10358
10544
|
_cache[13] || (_cache[13] = createElementVNode(
|
|
10359
10545
|
"h3",
|
|
10360
|
-
{ class: "text-
|
|
10361
|
-
"
|
|
10546
|
+
{ class: "text-xl font-semibold text-gray-900 mb-6" },
|
|
10547
|
+
"Choose Your Authentication Method",
|
|
10362
10548
|
-1
|
|
10363
10549
|
/* CACHED */
|
|
10364
10550
|
)),
|
|
10365
|
-
createElementVNode("div",
|
|
10551
|
+
createElementVNode("div", _hoisted_9, [
|
|
10366
10552
|
createCommentVNode(" TOTP Setup "),
|
|
10367
|
-
createElementVNode("div",
|
|
10368
|
-
|
|
10369
|
-
|
|
10553
|
+
createElementVNode("div", {
|
|
10554
|
+
class: "group p-8 border border-gray-200 rounded-xl hover:shadow-lg hover:border-[var(--strands-primary)] transition-all duration-200 cursor-pointer",
|
|
10555
|
+
onClick: $setup.startTotpSetup
|
|
10556
|
+
}, [
|
|
10557
|
+
createElementVNode("div", _hoisted_10, [
|
|
10558
|
+
createElementVNode("div", _hoisted_11, [
|
|
10370
10559
|
createVNode($setup["Smartphone"], {
|
|
10371
|
-
size:
|
|
10560
|
+
size: 28,
|
|
10372
10561
|
class: "text-[var(--strands-primary)]"
|
|
10373
10562
|
})
|
|
10374
10563
|
]),
|
|
10375
10564
|
_cache[8] || (_cache[8] = createElementVNode(
|
|
10376
10565
|
"div",
|
|
10377
|
-
|
|
10566
|
+
{ class: "space-y-2" },
|
|
10378
10567
|
[
|
|
10379
|
-
createElementVNode("h4", { class: "font-
|
|
10380
|
-
createElementVNode("p", { class: "text-sm text-gray-500" }, "Google Authenticator, Authy,
|
|
10568
|
+
createElementVNode("h4", { class: "font-semibold text-gray-900 text-lg" }, "Authenticator App"),
|
|
10569
|
+
createElementVNode("p", { class: "text-sm text-gray-500 leading-relaxed" }, "Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes")
|
|
10381
10570
|
],
|
|
10382
10571
|
-1
|
|
10383
10572
|
/* CACHED */
|
|
10384
10573
|
)),
|
|
10385
10574
|
createVNode($setup["StrandsUiButton"], {
|
|
10386
10575
|
variant: "primary",
|
|
10387
|
-
size: "
|
|
10388
|
-
onClick: $setup.startTotpSetup,
|
|
10576
|
+
size: "md",
|
|
10577
|
+
onClick: withModifiers($setup.startTotpSetup, ["stop"]),
|
|
10389
10578
|
disabled: $setup.loading,
|
|
10390
|
-
class: "w-full"
|
|
10579
|
+
class: "w-full mt-4"
|
|
10391
10580
|
}, {
|
|
10392
10581
|
default: withCtx(() => _cache[7] || (_cache[7] = [
|
|
10393
10582
|
createTextVNode(
|
|
10394
|
-
" Setup
|
|
10583
|
+
" Setup Authenticator ",
|
|
10395
10584
|
-1
|
|
10396
10585
|
/* CACHED */
|
|
10397
10586
|
)
|
|
@@ -10402,30 +10591,33 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10402
10591
|
])
|
|
10403
10592
|
]),
|
|
10404
10593
|
createCommentVNode(" Email MFA Setup "),
|
|
10405
|
-
createElementVNode("div",
|
|
10594
|
+
createElementVNode("div", {
|
|
10595
|
+
class: "group p-8 border border-gray-200 rounded-xl hover:shadow-lg hover:border-[var(--strands-primary)] transition-all duration-200 cursor-pointer",
|
|
10596
|
+
onClick: $setup.startEmailMfaSetup
|
|
10597
|
+
}, [
|
|
10406
10598
|
createElementVNode("div", _hoisted_12, [
|
|
10407
10599
|
createElementVNode("div", _hoisted_13, [
|
|
10408
10600
|
createVNode($setup["Mail"], {
|
|
10409
|
-
size:
|
|
10601
|
+
size: 28,
|
|
10410
10602
|
class: "text-[var(--strands-primary)]"
|
|
10411
10603
|
})
|
|
10412
10604
|
]),
|
|
10413
10605
|
_cache[10] || (_cache[10] = createElementVNode(
|
|
10414
10606
|
"div",
|
|
10415
|
-
|
|
10607
|
+
{ class: "space-y-2" },
|
|
10416
10608
|
[
|
|
10417
|
-
createElementVNode("h4", { class: "font-
|
|
10418
|
-
createElementVNode("p", { class: "text-sm text-gray-500" }, "
|
|
10609
|
+
createElementVNode("h4", { class: "font-semibold text-gray-900 text-lg" }, "Email Verification"),
|
|
10610
|
+
createElementVNode("p", { class: "text-sm text-gray-500 leading-relaxed" }, "Receive verification codes directly in your email inbox for easy access")
|
|
10419
10611
|
],
|
|
10420
10612
|
-1
|
|
10421
10613
|
/* CACHED */
|
|
10422
10614
|
)),
|
|
10423
10615
|
createVNode($setup["StrandsUiButton"], {
|
|
10424
10616
|
variant: "primary",
|
|
10425
|
-
size: "
|
|
10426
|
-
onClick: $setup.startEmailMfaSetup,
|
|
10617
|
+
size: "md",
|
|
10618
|
+
onClick: withModifiers($setup.startEmailMfaSetup, ["stop"]),
|
|
10427
10619
|
disabled: $setup.loading,
|
|
10428
|
-
class: "w-full"
|
|
10620
|
+
class: "w-full mt-4"
|
|
10429
10621
|
}, {
|
|
10430
10622
|
default: withCtx(() => _cache[9] || (_cache[9] = [
|
|
10431
10623
|
createTextVNode(
|
|
@@ -10440,30 +10632,33 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10440
10632
|
])
|
|
10441
10633
|
]),
|
|
10442
10634
|
createCommentVNode(" Hardware Key Setup "),
|
|
10443
|
-
createElementVNode("div",
|
|
10444
|
-
|
|
10445
|
-
|
|
10635
|
+
createElementVNode("div", {
|
|
10636
|
+
class: "group p-8 border border-gray-200 rounded-xl hover:shadow-lg hover:border-[var(--strands-primary)] transition-all duration-200 cursor-pointer",
|
|
10637
|
+
onClick: $setup.startHardwareKeySetup
|
|
10638
|
+
}, [
|
|
10639
|
+
createElementVNode("div", _hoisted_14, [
|
|
10640
|
+
createElementVNode("div", _hoisted_15, [
|
|
10446
10641
|
createVNode($setup["KeyRound"], {
|
|
10447
|
-
size:
|
|
10642
|
+
size: 28,
|
|
10448
10643
|
class: "text-[var(--strands-primary)]"
|
|
10449
10644
|
})
|
|
10450
10645
|
]),
|
|
10451
10646
|
_cache[12] || (_cache[12] = createElementVNode(
|
|
10452
10647
|
"div",
|
|
10453
|
-
|
|
10648
|
+
{ class: "space-y-2" },
|
|
10454
10649
|
[
|
|
10455
|
-
createElementVNode("h4", { class: "font-
|
|
10456
|
-
createElementVNode("p", { class: "text-sm text-gray-500" }, "YubiKey, FIDO2, WebAuthn,
|
|
10650
|
+
createElementVNode("h4", { class: "font-semibold text-gray-900 text-lg" }, "Hardware Key & Passkeys"),
|
|
10651
|
+
createElementVNode("p", { class: "text-sm text-gray-500 leading-relaxed" }, "Use YubiKey, FIDO2 devices, WebAuthn, or built-in passkeys for maximum security")
|
|
10457
10652
|
],
|
|
10458
10653
|
-1
|
|
10459
10654
|
/* CACHED */
|
|
10460
10655
|
)),
|
|
10461
10656
|
createVNode($setup["StrandsUiButton"], {
|
|
10462
10657
|
variant: "primary",
|
|
10463
|
-
size: "
|
|
10464
|
-
onClick: $setup.startHardwareKeySetup,
|
|
10658
|
+
size: "md",
|
|
10659
|
+
onClick: withModifiers($setup.startHardwareKeySetup, ["stop"]),
|
|
10465
10660
|
disabled: $setup.loading,
|
|
10466
|
-
class: "w-full"
|
|
10661
|
+
class: "w-full mt-4"
|
|
10467
10662
|
}, {
|
|
10468
10663
|
default: withCtx(() => _cache[11] || (_cache[11] = [
|
|
10469
10664
|
createTextVNode(
|
|
@@ -10480,30 +10675,45 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10480
10675
|
])
|
|
10481
10676
|
]),
|
|
10482
10677
|
createCommentVNode(" Manage Existing "),
|
|
10483
|
-
$setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock("div",
|
|
10484
|
-
|
|
10485
|
-
"
|
|
10486
|
-
|
|
10487
|
-
|
|
10488
|
-
|
|
10489
|
-
|
|
10490
|
-
)),
|
|
10491
|
-
createVNode($setup["StrandsUiButton"], {
|
|
10492
|
-
variant: "secondary",
|
|
10493
|
-
onClick: $setup.openMfaModal,
|
|
10494
|
-
disabled: $setup.loading,
|
|
10495
|
-
class: "w-full"
|
|
10496
|
-
}, {
|
|
10497
|
-
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
10498
|
-
createTextVNode(
|
|
10499
|
-
" Manage 2FA Devices ",
|
|
10678
|
+
$setup.activeMfaDevices.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_16, [
|
|
10679
|
+
createElementVNode("div", _hoisted_17, [
|
|
10680
|
+
createElementVNode("div", null, [
|
|
10681
|
+
_cache[14] || (_cache[14] = createElementVNode(
|
|
10682
|
+
"h3",
|
|
10683
|
+
{ class: "text-lg font-semibold text-gray-900" },
|
|
10684
|
+
"Manage Existing Methods",
|
|
10500
10685
|
-1
|
|
10501
10686
|
/* CACHED */
|
|
10687
|
+
)),
|
|
10688
|
+
createElementVNode(
|
|
10689
|
+
"p",
|
|
10690
|
+
_hoisted_18,
|
|
10691
|
+
toDisplayString($setup.activeMfaDevices.length) + " device(s) currently active",
|
|
10692
|
+
1
|
|
10693
|
+
/* TEXT */
|
|
10502
10694
|
)
|
|
10503
|
-
])
|
|
10504
|
-
|
|
10505
|
-
|
|
10506
|
-
|
|
10695
|
+
]),
|
|
10696
|
+
createVNode($setup["StrandsUiButton"], {
|
|
10697
|
+
variant: "secondary",
|
|
10698
|
+
size: "md",
|
|
10699
|
+
onClick: $setup.openMfaModal,
|
|
10700
|
+
disabled: $setup.loading
|
|
10701
|
+
}, {
|
|
10702
|
+
default: withCtx(() => [
|
|
10703
|
+
createVNode($setup["Settings"], {
|
|
10704
|
+
size: 16,
|
|
10705
|
+
class: "mr-2"
|
|
10706
|
+
}),
|
|
10707
|
+
_cache[15] || (_cache[15] = createTextVNode(
|
|
10708
|
+
" Manage Devices ",
|
|
10709
|
+
-1
|
|
10710
|
+
/* CACHED */
|
|
10711
|
+
))
|
|
10712
|
+
]),
|
|
10713
|
+
_: 1,
|
|
10714
|
+
__: [15]
|
|
10715
|
+
}, 8, ["disabled"])
|
|
10716
|
+
])
|
|
10507
10717
|
])) : createCommentVNode("v-if", true)
|
|
10508
10718
|
])
|
|
10509
10719
|
],
|