@strands.gg/accui 2.4.1 → 2.5.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 +1 -1
- package/dist/strands-auth-ui.cjs.js +1 -1
- package/dist/strands-auth-ui.es.js +1218 -1099
- package/dist/vue/composables/useModalStack.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,64 +1,14 @@
|
|
|
1
|
-
import { defineComponent, computed, provide, onMounted, onUnmounted, createElementBlock, openBlock, normalizeClass,
|
|
1
|
+
import { defineComponent, computed, provide, onMounted, onUnmounted, createElementBlock, openBlock, normalizeClass, createElementVNode, createBlock, renderSlot, Teleport, createCommentVNode, toDisplayString, createTextVNode, unref, normalizeStyle, useSlots, createVNode, Fragment as Fragment$1, withCtx, resolveComponent, createSlots, h as h$1, ref, nextTick, withModifiers, renderList, watch, toRefs, withDirectives, vModelSelect, getCurrentInstance, watchEffect, onBeforeUnmount, shallowRef, markRaw, customRef, useCssVars, reactive, createStaticVNode, vModelText, Transition, mergeProps, inject, resolveDynamicComponent, withKeys, isMemoSame } from "vue";
|
|
2
2
|
import { u as useStrandsConfig, p as provideStrandsConfig } from "./useStrandsConfig-C3gBJK6y.es.js";
|
|
3
3
|
import { s } from "./useStrandsConfig-C3gBJK6y.es.js";
|
|
4
4
|
import { u as useStrandsAuth } from "./useStrandsAuth-DoUupKb8.es.js";
|
|
5
|
-
class
|
|
6
|
-
stack = [];
|
|
7
|
-
escapeHandlerRegistered = false;
|
|
8
|
-
handleEscape = (e) => {
|
|
9
|
-
if (e.key === "Escape" && this.stack.length > 0) {
|
|
10
|
-
e.stopPropagation();
|
|
11
|
-
e.preventDefault();
|
|
12
|
-
const topModal = this.stack[this.stack.length - 1];
|
|
13
|
-
if (topModal && topModal.closeOnEscape) {
|
|
14
|
-
topModal.closeModal();
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
add(modal) {
|
|
19
|
-
this.stack.push(modal);
|
|
20
|
-
if (!this.escapeHandlerRegistered) {
|
|
21
|
-
document.addEventListener("keydown", this.handleEscape, true);
|
|
22
|
-
this.escapeHandlerRegistered = true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
remove(modalId) {
|
|
26
|
-
const index = this.stack.findIndex((modal) => modal.id === modalId);
|
|
27
|
-
if (index > -1) {
|
|
28
|
-
this.stack.splice(index, 1);
|
|
29
|
-
}
|
|
30
|
-
if (this.stack.length === 0 && this.escapeHandlerRegistered) {
|
|
31
|
-
document.removeEventListener("keydown", this.handleEscape, true);
|
|
32
|
-
this.escapeHandlerRegistered = false;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
get length() {
|
|
36
|
-
return this.stack.length;
|
|
37
|
-
}
|
|
38
|
-
cleanup() {
|
|
39
|
-
if (this.escapeHandlerRegistered) {
|
|
40
|
-
document.removeEventListener("keydown", this.handleEscape, true);
|
|
41
|
-
this.escapeHandlerRegistered = false;
|
|
42
|
-
}
|
|
43
|
-
this.stack = [];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const modalStack = new ModalStack();
|
|
47
|
-
if (typeof window !== "undefined") {
|
|
48
|
-
window.addEventListener("beforeunload", () => {
|
|
49
|
-
modalStack.cleanup();
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
const _hoisted_1$S = {
|
|
53
|
-
key: 0,
|
|
54
|
-
class: "ui-app-modal-overlay"
|
|
55
|
-
};
|
|
5
|
+
const _hoisted_1$S = { class: "app-content" };
|
|
56
6
|
const _hoisted_2$J = {
|
|
57
7
|
key: 0,
|
|
58
8
|
class: "ui-app-loading-overlay"
|
|
59
9
|
};
|
|
60
10
|
const _hoisted_3$G = { class: "ui-app-loading-content" };
|
|
61
|
-
const _hoisted_4$
|
|
11
|
+
const _hoisted_4$D = {
|
|
62
12
|
key: 0,
|
|
63
13
|
class: "ui-app-loading-message"
|
|
64
14
|
};
|
|
@@ -77,7 +27,6 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
|
|
|
77
27
|
"ui-app--light": props.theme === "light",
|
|
78
28
|
"ui-app--dark": props.theme === "dark",
|
|
79
29
|
"ui-app--auto": props.theme === "auto",
|
|
80
|
-
"ui-app--has-modals": modalStack.length > 0,
|
|
81
30
|
"ui-app--loading": isGlobalLoading.value
|
|
82
31
|
};
|
|
83
32
|
});
|
|
@@ -86,8 +35,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
|
|
|
86
35
|
const computedTheme = computed(() => props.theme);
|
|
87
36
|
provide("uiApp", {
|
|
88
37
|
theme: computedTheme,
|
|
89
|
-
isLoading: isGlobalLoading
|
|
90
|
-
modalCount: computed(() => modalStack.length)
|
|
38
|
+
isLoading: isGlobalLoading
|
|
91
39
|
});
|
|
92
40
|
provide("themeProvider", {
|
|
93
41
|
theme: computedTheme,
|
|
@@ -109,10 +57,9 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
|
|
|
109
57
|
return openBlock(), createElementBlock("div", {
|
|
110
58
|
class: normalizeClass(["ui-app", appClasses.value])
|
|
111
59
|
}, [
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
])),
|
|
60
|
+
createElementVNode("div", _hoisted_1$S, [
|
|
61
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
62
|
+
]),
|
|
116
63
|
(openBlock(), createBlock(Teleport, { to: "body" }, [
|
|
117
64
|
_cache[0] || (_cache[0] = createElementVNode("div", { class: "ui-app-notifications" }, null, -1))
|
|
118
65
|
])),
|
|
@@ -120,7 +67,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
|
|
|
120
67
|
isGlobalLoading.value ? (openBlock(), createElementBlock("div", _hoisted_2$J, [
|
|
121
68
|
createElementVNode("div", _hoisted_3$G, [
|
|
122
69
|
_cache[1] || (_cache[1] = createElementVNode("div", { class: "ui-app-loading-spinner" }, null, -1)),
|
|
123
|
-
_ctx.loadingMessage ? (openBlock(), createElementBlock("p", _hoisted_4$
|
|
70
|
+
_ctx.loadingMessage ? (openBlock(), createElementBlock("p", _hoisted_4$D, toDisplayString(_ctx.loadingMessage), 1)) : createCommentVNode("", true)
|
|
124
71
|
])
|
|
125
72
|
])) : createCommentVNode("", true)
|
|
126
73
|
]))
|
|
@@ -135,11 +82,11 @@ const _export_sfc = (sfc, props) => {
|
|
|
135
82
|
}
|
|
136
83
|
return target;
|
|
137
84
|
};
|
|
138
|
-
const UiApp = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["__scopeId", "data-v-
|
|
85
|
+
const UiApp = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["__scopeId", "data-v-f18c1706"]]);
|
|
139
86
|
const _hoisted_1$R = { class: "accui-component-scope" };
|
|
140
87
|
const _hoisted_2$I = { class: "alert-content" };
|
|
141
88
|
const _hoisted_3$F = { class: "alert-icon-container" };
|
|
142
|
-
const _hoisted_4$
|
|
89
|
+
const _hoisted_4$C = {
|
|
143
90
|
class: "alert-main-icon",
|
|
144
91
|
fill: "currentColor",
|
|
145
92
|
viewBox: "0 0 20 20",
|
|
@@ -194,7 +141,7 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
|
|
|
194
141
|
}, [
|
|
195
142
|
createElementVNode("div", _hoisted_2$I, [
|
|
196
143
|
createElementVNode("div", _hoisted_3$F, [
|
|
197
|
-
(openBlock(), createElementBlock("svg", _hoisted_4$
|
|
144
|
+
(openBlock(), createElementBlock("svg", _hoisted_4$C, [
|
|
198
145
|
createElementVNode("path", {
|
|
199
146
|
"fill-rule": "evenodd",
|
|
200
147
|
d: iconPath.value,
|
|
@@ -249,7 +196,7 @@ const _hoisted_1$Q = {
|
|
|
249
196
|
};
|
|
250
197
|
const _hoisted_2$H = ["width", "height"];
|
|
251
198
|
const _hoisted_3$E = ["d"];
|
|
252
|
-
const _hoisted_4$
|
|
199
|
+
const _hoisted_4$B = ["stroke-width"];
|
|
253
200
|
const _hoisted_5$w = ["stroke-width"];
|
|
254
201
|
const _hoisted_6$s = ["width", "height"];
|
|
255
202
|
const _hoisted_7$r = {
|
|
@@ -297,7 +244,7 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
|
|
|
297
244
|
"stroke-width": _ctx.weight,
|
|
298
245
|
"stroke-linecap": "round",
|
|
299
246
|
"stroke-linejoin": "round"
|
|
300
|
-
}, null, 8, _hoisted_4$
|
|
247
|
+
}, null, 8, _hoisted_4$B),
|
|
301
248
|
createElementVNode("use", {
|
|
302
249
|
href: "#logo-path",
|
|
303
250
|
fill: "none",
|
|
@@ -356,7 +303,7 @@ const _hoisted_3$D = {
|
|
|
356
303
|
key: 0,
|
|
357
304
|
class: "leading-icon"
|
|
358
305
|
};
|
|
359
|
-
const _hoisted_4$
|
|
306
|
+
const _hoisted_4$A = {
|
|
360
307
|
key: 1,
|
|
361
308
|
class: "trailing-icon"
|
|
362
309
|
};
|
|
@@ -420,7 +367,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
|
|
|
420
367
|
])) : createCommentVNode("", true),
|
|
421
368
|
renderSlot(_ctx.$slots, "icon", {}, void 0, true),
|
|
422
369
|
renderSlot(_ctx.$slots, "default", {}, void 0, true),
|
|
423
|
-
hasTrailingIconSlot.value ? (openBlock(), createElementBlock("span", _hoisted_4$
|
|
370
|
+
hasTrailingIconSlot.value ? (openBlock(), createElementBlock("span", _hoisted_4$A, [
|
|
424
371
|
renderSlot(_ctx.$slots, "trailing-icon", {}, void 0, true)
|
|
425
372
|
])) : createCommentVNode("", true)
|
|
426
373
|
], 64))
|
|
@@ -813,7 +760,7 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
|
|
|
813
760
|
};
|
|
814
761
|
}
|
|
815
762
|
});
|
|
816
|
-
const StrandsUiButton = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-
|
|
763
|
+
const StrandsUiButton = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-ad63cbda"]]);
|
|
817
764
|
const CompoundUiButton = StrandsUiButton;
|
|
818
765
|
CompoundUiButton.Content = UiButtonContent;
|
|
819
766
|
CompoundUiButton.Anchor = _sfc_main$W;
|
|
@@ -859,7 +806,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
|
|
|
859
806
|
};
|
|
860
807
|
}
|
|
861
808
|
});
|
|
862
|
-
const StrandsUiCard = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-
|
|
809
|
+
const StrandsUiCard = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-2c11aaa2"]]);
|
|
863
810
|
/**
|
|
864
811
|
* @license lucide-vue-next v0.542.0 - ISC
|
|
865
812
|
*
|
|
@@ -1422,7 +1369,7 @@ const _hoisted_3$B = {
|
|
|
1422
1369
|
key: 1,
|
|
1423
1370
|
class: "input-trailing-icon"
|
|
1424
1371
|
};
|
|
1425
|
-
const _hoisted_4$
|
|
1372
|
+
const _hoisted_4$z = {
|
|
1426
1373
|
key: 2,
|
|
1427
1374
|
class: "input-trailing-icon"
|
|
1428
1375
|
};
|
|
@@ -1550,7 +1497,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
|
|
|
1550
1497
|
]),
|
|
1551
1498
|
_: 1
|
|
1552
1499
|
}, 8, ["color", "variant", "aria-label"])
|
|
1553
|
-
])) : _ctx.type === "search" && _ctx.modelValue && !_ctx.disabled && !_ctx.readonly ? (openBlock(), createElementBlock("div", _hoisted_4$
|
|
1500
|
+
])) : _ctx.type === "search" && _ctx.modelValue && !_ctx.disabled && !_ctx.readonly ? (openBlock(), createElementBlock("div", _hoisted_4$z, [
|
|
1554
1501
|
createVNode(StrandsUiButton, {
|
|
1555
1502
|
color: "danger",
|
|
1556
1503
|
variant: "ghost",
|
|
@@ -1888,7 +1835,7 @@ const _hoisted_1$J = {
|
|
|
1888
1835
|
};
|
|
1889
1836
|
const _hoisted_2$C = ["aria-expanded", "aria-controls"];
|
|
1890
1837
|
const _hoisted_3$z = { class: "input-select-value" };
|
|
1891
|
-
const _hoisted_4$
|
|
1838
|
+
const _hoisted_4$y = {
|
|
1892
1839
|
key: 0,
|
|
1893
1840
|
class: "input-select-text"
|
|
1894
1841
|
};
|
|
@@ -1901,7 +1848,7 @@ const _hoisted_6$r = {
|
|
|
1901
1848
|
class: "input-trailing-icon"
|
|
1902
1849
|
};
|
|
1903
1850
|
const _hoisted_7$q = ["id", "aria-multiselectable"];
|
|
1904
|
-
const _hoisted_8$
|
|
1851
|
+
const _hoisted_8$o = {
|
|
1905
1852
|
key: 0,
|
|
1906
1853
|
class: "input-dropdown-search"
|
|
1907
1854
|
};
|
|
@@ -2201,7 +2148,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
|
2201
2148
|
"aria-controls": dropdownId.value
|
|
2202
2149
|
}, [
|
|
2203
2150
|
createElementVNode("div", _hoisted_3$z, [
|
|
2204
|
-
displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$
|
|
2151
|
+
displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$y, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$u, toDisplayString(_ctx.placeholder || "Select an option..."), 1))
|
|
2205
2152
|
]),
|
|
2206
2153
|
createElementVNode("div", {
|
|
2207
2154
|
class: normalizeClass(["input-select-arrow", { "input-select-arrow-open": dropdownState.value.isOpen }])
|
|
@@ -2226,7 +2173,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
|
2226
2173
|
onMousedown: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
2227
2174
|
}, ["prevent"]))
|
|
2228
2175
|
}, [
|
|
2229
|
-
_ctx.searchable ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
2176
|
+
_ctx.searchable ? (openBlock(), createElementBlock("div", _hoisted_8$o, [
|
|
2230
2177
|
createVNode(StrandsUiInput, {
|
|
2231
2178
|
ref_key: "searchInputRef",
|
|
2232
2179
|
ref: searchInputRef,
|
|
@@ -2281,7 +2228,7 @@ const UiInputSelect = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "d
|
|
|
2281
2228
|
const _hoisted_1$I = { class: "input-leading-icon" };
|
|
2282
2229
|
const _hoisted_2$B = ["src"];
|
|
2283
2230
|
const _hoisted_3$y = ["id", "accept", "multiple", "disabled", "required"];
|
|
2284
|
-
const _hoisted_4$
|
|
2231
|
+
const _hoisted_4$x = { class: "input-file-content" };
|
|
2285
2232
|
const _hoisted_5$t = {
|
|
2286
2233
|
key: 0,
|
|
2287
2234
|
class: "input-file-prompt"
|
|
@@ -2291,7 +2238,7 @@ const _hoisted_7$p = {
|
|
|
2291
2238
|
key: 0,
|
|
2292
2239
|
class: "input-file-accept-text"
|
|
2293
2240
|
};
|
|
2294
|
-
const _hoisted_8$
|
|
2241
|
+
const _hoisted_8$n = {
|
|
2295
2242
|
key: 1,
|
|
2296
2243
|
class: "input-file-selected"
|
|
2297
2244
|
};
|
|
@@ -2517,11 +2464,11 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
2517
2464
|
onBlur: handleBlur,
|
|
2518
2465
|
onFocus: handleFocus
|
|
2519
2466
|
}, null, 40, _hoisted_3$y),
|
|
2520
|
-
createElementVNode("div", _hoisted_4$
|
|
2467
|
+
createElementVNode("div", _hoisted_4$x, [
|
|
2521
2468
|
selectedFiles.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_5$t, [
|
|
2522
2469
|
createElementVNode("div", _hoisted_6$q, toDisplayString(_ctx.dragDropText || "Click to select or drag and drop"), 1),
|
|
2523
2470
|
_ctx.accept ? (openBlock(), createElementBlock("div", _hoisted_7$p, toDisplayString(_ctx.accept), 1)) : createCommentVNode("", true)
|
|
2524
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_8$
|
|
2471
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_8$n, [
|
|
2525
2472
|
createElementVNode("div", _hoisted_9$m, toDisplayString(_ctx.selectedText || `${selectedFiles.value.length} file(s) selected`), 1),
|
|
2526
2473
|
createElementVNode("div", _hoisted_10$m, [
|
|
2527
2474
|
(openBlock(true), createElementBlock(Fragment$1, null, renderList(selectedFiles.value, (file, index) => {
|
|
@@ -2560,7 +2507,7 @@ const _hoisted_2$A = {
|
|
|
2560
2507
|
class: "tabs-before"
|
|
2561
2508
|
};
|
|
2562
2509
|
const _hoisted_3$x = ["aria-selected", "id", "onClick"];
|
|
2563
|
-
const _hoisted_4$
|
|
2510
|
+
const _hoisted_4$w = {
|
|
2564
2511
|
key: 1,
|
|
2565
2512
|
class: "tabs-after"
|
|
2566
2513
|
};
|
|
@@ -2936,7 +2883,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
|
|
|
2936
2883
|
style: normalizeStyle(underlineStyle.value)
|
|
2937
2884
|
}, null, 6)
|
|
2938
2885
|
], 2),
|
|
2939
|
-
_ctx.$slots["after"] ? (openBlock(), createElementBlock("div", _hoisted_4$
|
|
2886
|
+
_ctx.$slots["after"] ? (openBlock(), createElementBlock("div", _hoisted_4$w, [
|
|
2940
2887
|
renderSlot(_ctx.$slots, "after", {}, void 0, true)
|
|
2941
2888
|
])) : createCommentVNode("", true)
|
|
2942
2889
|
], 6)
|
|
@@ -3026,7 +2973,7 @@ const UiDivider = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-
|
|
|
3026
2973
|
const _hoisted_1$F = { class: "datetime-picker-wrapper" };
|
|
3027
2974
|
const _hoisted_2$z = { class: "datetime-picker-leading-icon" };
|
|
3028
2975
|
const _hoisted_3$w = { class: "datetime-picker-display" };
|
|
3029
|
-
const _hoisted_4$
|
|
2976
|
+
const _hoisted_4$v = {
|
|
3030
2977
|
key: 0,
|
|
3031
2978
|
class: "datetime-picker-value"
|
|
3032
2979
|
};
|
|
@@ -3042,7 +2989,7 @@ const _hoisted_7$o = {
|
|
|
3042
2989
|
key: 1,
|
|
3043
2990
|
class: "datetime-picker-panel"
|
|
3044
2991
|
};
|
|
3045
|
-
const _hoisted_8$
|
|
2992
|
+
const _hoisted_8$m = { class: "datetime-picker-header" };
|
|
3046
2993
|
const _hoisted_9$l = { class: "datetime-picker-month-year" };
|
|
3047
2994
|
const _hoisted_10$l = ["value"];
|
|
3048
2995
|
const _hoisted_11$l = ["value"];
|
|
@@ -3057,12 +3004,12 @@ const _hoisted_16$g = { class: "time-column" };
|
|
|
3057
3004
|
const _hoisted_17$f = { class: "time-scroll" };
|
|
3058
3005
|
const _hoisted_18$e = { class: "time-column" };
|
|
3059
3006
|
const _hoisted_19$d = { class: "time-scroll" };
|
|
3060
|
-
const _hoisted_20$
|
|
3007
|
+
const _hoisted_20$b = {
|
|
3061
3008
|
key: 0,
|
|
3062
3009
|
class: "time-column"
|
|
3063
3010
|
};
|
|
3064
3011
|
const _hoisted_21$b = { class: "time-scroll" };
|
|
3065
|
-
const _hoisted_22$
|
|
3012
|
+
const _hoisted_22$9 = { class: "datetime-picker-footer" };
|
|
3066
3013
|
const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
3067
3014
|
__name: "UiDateTimePicker",
|
|
3068
3015
|
props: {
|
|
@@ -3409,7 +3356,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
3409
3356
|
_ctx.type === "date" ? (openBlock(), createBlock(unref(Calendar), { key: 0 })) : _ctx.type === "time" ? (openBlock(), createBlock(unref(Clock), { key: 1 })) : (openBlock(), createBlock(unref(CalendarClock), { key: 2 }))
|
|
3410
3357
|
]),
|
|
3411
3358
|
createElementVNode("div", _hoisted_3$w, [
|
|
3412
|
-
displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$
|
|
3359
|
+
displayValue.value ? (openBlock(), createElementBlock("span", _hoisted_4$v, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$r, toDisplayString(_ctx.placeholder || getDefaultPlaceholder()), 1))
|
|
3413
3360
|
]),
|
|
3414
3361
|
_ctx.modelValue && !_ctx.disabled && !_ctx.readonly ? (openBlock(), createElementBlock("div", {
|
|
3415
3362
|
key: 0,
|
|
@@ -3451,7 +3398,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
3451
3398
|
style: { "margin-bottom": "1rem" }
|
|
3452
3399
|
}, null, 8, ["modelValue", "tabs"])) : createCommentVNode("", true),
|
|
3453
3400
|
showDatePanel.value ? (openBlock(), createElementBlock("div", _hoisted_7$o, [
|
|
3454
|
-
createElementVNode("div", _hoisted_8$
|
|
3401
|
+
createElementVNode("div", _hoisted_8$m, [
|
|
3455
3402
|
createVNode(StrandsUiButton, {
|
|
3456
3403
|
onClick: previousMonth,
|
|
3457
3404
|
disabled: isPrevDisabled.value,
|
|
@@ -3583,7 +3530,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
3583
3530
|
}), 128))
|
|
3584
3531
|
])
|
|
3585
3532
|
]),
|
|
3586
|
-
!_ctx.is24Hour ? (openBlock(), createElementBlock("div", _hoisted_20$
|
|
3533
|
+
!_ctx.is24Hour ? (openBlock(), createElementBlock("div", _hoisted_20$b, [
|
|
3587
3534
|
_cache[10] || (_cache[10] = createElementVNode("label", { class: "time-label" }, "Period", -1)),
|
|
3588
3535
|
createElementVNode("div", _hoisted_21$b, [
|
|
3589
3536
|
createVNode(StrandsUiButton, {
|
|
@@ -3617,7 +3564,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
|
|
|
3617
3564
|
])
|
|
3618
3565
|
])) : createCommentVNode("", true),
|
|
3619
3566
|
createVNode(UiDivider),
|
|
3620
|
-
createElementVNode("div", _hoisted_22$
|
|
3567
|
+
createElementVNode("div", _hoisted_22$9, [
|
|
3621
3568
|
createVNode(StrandsUiButton, {
|
|
3622
3569
|
onClick: selectNow,
|
|
3623
3570
|
color: "primary",
|
|
@@ -24751,7 +24698,7 @@ var index_default = Placeholder;
|
|
|
24751
24698
|
const _hoisted_1$E = { class: "input-richtext-toolbar" };
|
|
24752
24699
|
const _hoisted_2$y = { class: "input-richtext-group" };
|
|
24753
24700
|
const _hoisted_3$v = { class: "input-richtext-group" };
|
|
24754
|
-
const _hoisted_4$
|
|
24701
|
+
const _hoisted_4$u = { class: "input-richtext-group" };
|
|
24755
24702
|
const _hoisted_5$q = { class: "input-richtext-group" };
|
|
24756
24703
|
const _hoisted_6$o = { class: "input-richtext-group" };
|
|
24757
24704
|
const _hoisted_7$n = { class: "input-richtext-editor-wrapper" };
|
|
@@ -24948,7 +24895,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
|
|
|
24948
24895
|
spacing: "28px",
|
|
24949
24896
|
margin: "4px"
|
|
24950
24897
|
}),
|
|
24951
|
-
createElementVNode("div", _hoisted_4$
|
|
24898
|
+
createElementVNode("div", _hoisted_4$u, [
|
|
24952
24899
|
createVNode(StrandsUiButton, {
|
|
24953
24900
|
color: unref(editor)?.isActive({ textAlign: "left" }) ? "primary" : "secondary",
|
|
24954
24901
|
size: "sm",
|
|
@@ -25123,7 +25070,7 @@ const _hoisted_3$u = {
|
|
|
25123
25070
|
key: 0,
|
|
25124
25071
|
class: "input-required"
|
|
25125
25072
|
};
|
|
25126
|
-
const _hoisted_4$
|
|
25073
|
+
const _hoisted_4$t = {
|
|
25127
25074
|
key: 9,
|
|
25128
25075
|
class: "input-error-text"
|
|
25129
25076
|
};
|
|
@@ -25180,9 +25127,6 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25180
25127
|
const inputType = props.type || "text";
|
|
25181
25128
|
return textTypes.includes(inputType);
|
|
25182
25129
|
});
|
|
25183
|
-
const hasError = computed(() => {
|
|
25184
|
-
return Boolean(props.error);
|
|
25185
|
-
});
|
|
25186
25130
|
const handleInput = (value) => {
|
|
25187
25131
|
emit("update:modelValue", value);
|
|
25188
25132
|
};
|
|
@@ -25222,7 +25166,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25222
25166
|
autocomplete: props.autocomplete,
|
|
25223
25167
|
spellcheck: props.spellcheck,
|
|
25224
25168
|
"input-id": inputId.value,
|
|
25225
|
-
error:
|
|
25169
|
+
error: Boolean(props.error && props.error !== true && props.error !== ""),
|
|
25226
25170
|
size: props.size,
|
|
25227
25171
|
"onUpdate:modelValue": handleInput,
|
|
25228
25172
|
onBlur: handleBlur,
|
|
@@ -25257,7 +25201,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25257
25201
|
spellcheck: props.spellcheck,
|
|
25258
25202
|
resizable: props.resizable,
|
|
25259
25203
|
"input-id": inputId.value,
|
|
25260
|
-
error:
|
|
25204
|
+
error: props.error,
|
|
25261
25205
|
size: props.size,
|
|
25262
25206
|
"onUpdate:modelValue": handleInput,
|
|
25263
25207
|
onBlur: handleBlur,
|
|
@@ -25290,7 +25234,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25290
25234
|
"no-options-text": props.noOptionsText,
|
|
25291
25235
|
"search-placeholder": props.searchPlaceholder,
|
|
25292
25236
|
"input-id": inputId.value,
|
|
25293
|
-
error:
|
|
25237
|
+
error: props.error,
|
|
25294
25238
|
size: props.size,
|
|
25295
25239
|
"onUpdate:modelValue": handleInput,
|
|
25296
25240
|
onBlur: handleBlur,
|
|
@@ -25321,7 +25265,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25321
25265
|
disabled: _ctx.disabled,
|
|
25322
25266
|
required: props.required,
|
|
25323
25267
|
"input-id": inputId.value,
|
|
25324
|
-
error:
|
|
25268
|
+
error: props.error,
|
|
25325
25269
|
size: props.size,
|
|
25326
25270
|
"onUpdate:modelValue": handleInput,
|
|
25327
25271
|
onFileError: handleFileError,
|
|
@@ -25352,7 +25296,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25352
25296
|
min: props.min,
|
|
25353
25297
|
max: props.max,
|
|
25354
25298
|
"input-id": inputId.value,
|
|
25355
|
-
error:
|
|
25299
|
+
error: props.error,
|
|
25356
25300
|
size: props.size,
|
|
25357
25301
|
"onUpdate:modelValue": handleInput,
|
|
25358
25302
|
onBlur: handleBlur,
|
|
@@ -25365,7 +25309,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25365
25309
|
readonly: _ctx.readonly,
|
|
25366
25310
|
required: props.required,
|
|
25367
25311
|
"input-id": inputId.value,
|
|
25368
|
-
error:
|
|
25312
|
+
error: props.error,
|
|
25369
25313
|
size: props.size,
|
|
25370
25314
|
"onUpdate:modelValue": handleInput,
|
|
25371
25315
|
onBlur: handleBlur,
|
|
@@ -25380,7 +25324,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25380
25324
|
min: props.min,
|
|
25381
25325
|
max: props.max,
|
|
25382
25326
|
"input-id": inputId.value,
|
|
25383
|
-
error:
|
|
25327
|
+
error: props.error,
|
|
25384
25328
|
size: props.size,
|
|
25385
25329
|
"onUpdate:modelValue": handleInput,
|
|
25386
25330
|
onBlur: handleBlur,
|
|
@@ -25392,19 +25336,19 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
|
|
|
25392
25336
|
disabled: _ctx.disabled,
|
|
25393
25337
|
readonly: _ctx.readonly,
|
|
25394
25338
|
"input-id": inputId.value,
|
|
25395
|
-
error:
|
|
25339
|
+
error: props.error,
|
|
25396
25340
|
"min-height": props.minHeight,
|
|
25397
25341
|
"max-height": props.maxHeight,
|
|
25398
25342
|
"onUpdate:modelValue": handleInput,
|
|
25399
25343
|
onBlur: handleBlur,
|
|
25400
25344
|
onFocus: handleFocus
|
|
25401
25345
|
}, null, 8, ["model-value", "placeholder", "disabled", "readonly", "input-id", "error", "min-height", "max-height"])) : createCommentVNode("", true),
|
|
25402
|
-
props.error ? (openBlock(), createElementBlock("p", _hoisted_4$
|
|
25346
|
+
props.error && props.error !== true ? (openBlock(), createElementBlock("p", _hoisted_4$t, toDisplayString(typeof props.error === "string" ? props.error : props.error?.message || String(props.error)), 1)) : props.helpText ? (openBlock(), createElementBlock("p", _hoisted_5$p, toDisplayString(props.helpText), 1)) : createCommentVNode("", true)
|
|
25403
25347
|
]);
|
|
25404
25348
|
};
|
|
25405
25349
|
}
|
|
25406
25350
|
});
|
|
25407
|
-
const StrandsUiInput = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-
|
|
25351
|
+
const StrandsUiInput = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-10a4eb0c"]]);
|
|
25408
25352
|
const _hoisted_1$C = ["disabled", "aria-disabled"];
|
|
25409
25353
|
const _hoisted_2$w = ["href", "target", "rel", "aria-disabled"];
|
|
25410
25354
|
const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
@@ -25570,11 +25514,11 @@ const _hoisted_3$t = {
|
|
|
25570
25514
|
key: 1,
|
|
25571
25515
|
class: "editor-container"
|
|
25572
25516
|
};
|
|
25573
|
-
const _hoisted_4$
|
|
25517
|
+
const _hoisted_4$s = { class: "editor-main" };
|
|
25574
25518
|
const _hoisted_5$o = { class: "canvas-container" };
|
|
25575
25519
|
const _hoisted_6$n = ["width", "height"];
|
|
25576
25520
|
const _hoisted_7$m = { class: "crop-overlay" };
|
|
25577
|
-
const _hoisted_8$
|
|
25521
|
+
const _hoisted_8$l = { class: "crop-backdrop" };
|
|
25578
25522
|
const _hoisted_9$k = { class: "crop-svg" };
|
|
25579
25523
|
const _hoisted_10$k = { id: "backdrop-mask" };
|
|
25580
25524
|
const _hoisted_11$k = ["width", "height"];
|
|
@@ -25586,9 +25530,9 @@ const _hoisted_16$f = { class: "controls" };
|
|
|
25586
25530
|
const _hoisted_17$e = { class: "zoom-control" };
|
|
25587
25531
|
const _hoisted_18$d = ["min", "max"];
|
|
25588
25532
|
const _hoisted_19$c = { class: "action-buttons" };
|
|
25589
|
-
const _hoisted_20$
|
|
25533
|
+
const _hoisted_20$a = { class: "preview-section" };
|
|
25590
25534
|
const _hoisted_21$a = { class: "preview-container" };
|
|
25591
|
-
const _hoisted_22$
|
|
25535
|
+
const _hoisted_22$8 = ["width", "height"];
|
|
25592
25536
|
const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
25593
25537
|
__name: "UiAvatarEditor",
|
|
25594
25538
|
props: {
|
|
@@ -25902,7 +25846,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
25902
25846
|
}, [..._cache[6] || (_cache[6] = [
|
|
25903
25847
|
createStaticVNode('<div class="upload-content"><svg class="upload-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><h3 class="upload-title">Upload your photo</h3><p class="upload-subtitle">Drag and drop or click to browse</p><div class="upload-formats"><span class="format-tag">JPG</span><span class="format-tag">PNG</span><span class="format-tag">GIF</span></div></div>', 1)
|
|
25904
25848
|
])], 32)) : (openBlock(), createElementBlock("div", _hoisted_3$t, [
|
|
25905
|
-
createElementVNode("div", _hoisted_4$
|
|
25849
|
+
createElementVNode("div", _hoisted_4$s, [
|
|
25906
25850
|
createElementVNode("div", _hoisted_5$o, [
|
|
25907
25851
|
createElementVNode("canvas", {
|
|
25908
25852
|
ref_key: "canvas",
|
|
@@ -25914,7 +25858,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
25914
25858
|
onWheel: handleWheel
|
|
25915
25859
|
}, null, 40, _hoisted_6$n),
|
|
25916
25860
|
createElementVNode("div", _hoisted_7$m, [
|
|
25917
|
-
createElementVNode("div", _hoisted_8$
|
|
25861
|
+
createElementVNode("div", _hoisted_8$l, [
|
|
25918
25862
|
(openBlock(), createElementBlock("svg", _hoisted_9$k, [
|
|
25919
25863
|
createElementVNode("defs", null, [
|
|
25920
25864
|
createElementVNode("mask", _hoisted_10$k, [
|
|
@@ -26049,7 +25993,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
26049
25993
|
])
|
|
26050
25994
|
])
|
|
26051
25995
|
]),
|
|
26052
|
-
createElementVNode("div", _hoisted_20$
|
|
25996
|
+
createElementVNode("div", _hoisted_20$a, [
|
|
26053
25997
|
_cache[9] || (_cache[9] = createElementVNode("h3", { class: "preview-title" }, "Preview", -1)),
|
|
26054
25998
|
createElementVNode("div", _hoisted_21$a, [
|
|
26055
25999
|
createElementVNode("canvas", {
|
|
@@ -26058,7 +26002,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
26058
26002
|
width: previewSize.value,
|
|
26059
26003
|
height: previewSize.value,
|
|
26060
26004
|
class: "preview-canvas"
|
|
26061
|
-
}, null, 8, _hoisted_22$
|
|
26005
|
+
}, null, 8, _hoisted_22$8)
|
|
26062
26006
|
]),
|
|
26063
26007
|
_cache[10] || (_cache[10] = createElementVNode("p", { class: "preview-instructions" }, [
|
|
26064
26008
|
createTextVNode(" Drag image to reposition"),
|
|
@@ -26371,11 +26315,11 @@ const playLevelUp = (level, userSettings) => SoundEffects.playLevelUp(level, use
|
|
|
26371
26315
|
const _hoisted_1$z = { class: "level-progress-container" };
|
|
26372
26316
|
const _hoisted_2$u = ["width", "height", "viewBox"];
|
|
26373
26317
|
const _hoisted_3$s = { key: 0 };
|
|
26374
|
-
const _hoisted_4$
|
|
26318
|
+
const _hoisted_4$r = ["r"];
|
|
26375
26319
|
const _hoisted_5$n = ["y"];
|
|
26376
26320
|
const _hoisted_6$m = ["d", "stroke-width"];
|
|
26377
26321
|
const _hoisted_7$l = ["d", "stroke", "stroke-width"];
|
|
26378
|
-
const _hoisted_8$
|
|
26322
|
+
const _hoisted_8$k = ["d"];
|
|
26379
26323
|
const _hoisted_9$j = ["d", "stroke", "stroke-width"];
|
|
26380
26324
|
const _hoisted_10$j = {
|
|
26381
26325
|
"font-size": "30",
|
|
@@ -26567,7 +26511,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
26567
26511
|
r: innerCircleRadius.value,
|
|
26568
26512
|
fill: "#a800ff",
|
|
26569
26513
|
opacity: "0.92"
|
|
26570
|
-
}, null, 8, _hoisted_4$
|
|
26514
|
+
}, null, 8, _hoisted_4$r),
|
|
26571
26515
|
createElementVNode("text", {
|
|
26572
26516
|
x: center,
|
|
26573
26517
|
y: center + 15,
|
|
@@ -26599,7 +26543,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
26599
26543
|
stroke: "transparent",
|
|
26600
26544
|
fill: "none",
|
|
26601
26545
|
transform: "scale(-1, 1) translate(-400, 0)"
|
|
26602
|
-
}, null, 8, _hoisted_8$
|
|
26546
|
+
}, null, 8, _hoisted_8$k),
|
|
26603
26547
|
animatedValue.value > 0 ? (openBlock(), createElementBlock("path", {
|
|
26604
26548
|
key: 2,
|
|
26605
26549
|
d: progressArcPath.value,
|
|
@@ -26652,9 +26596,211 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
|
|
|
26652
26596
|
}
|
|
26653
26597
|
});
|
|
26654
26598
|
const UiLevelProgress = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-410a88ab"]]);
|
|
26655
|
-
|
|
26656
|
-
|
|
26657
|
-
|
|
26599
|
+
class ModalStack {
|
|
26600
|
+
stack = [];
|
|
26601
|
+
escapeHandlerRegistered = false;
|
|
26602
|
+
baseZIndex = 2147483647;
|
|
26603
|
+
subscribers = /* @__PURE__ */ new Set();
|
|
26604
|
+
handleEscape = (e) => {
|
|
26605
|
+
if (e.key === "Escape" && this.stack.length > 0) {
|
|
26606
|
+
e.stopPropagation();
|
|
26607
|
+
e.preventDefault();
|
|
26608
|
+
const topModal = this.stack[this.stack.length - 1];
|
|
26609
|
+
if (topModal && topModal.closeOnEscape) {
|
|
26610
|
+
topModal.closeModal();
|
|
26611
|
+
}
|
|
26612
|
+
}
|
|
26613
|
+
};
|
|
26614
|
+
calculateZIndex(priority = "normal") {
|
|
26615
|
+
const priorityMultipliers = {
|
|
26616
|
+
low: 0,
|
|
26617
|
+
normal: 100,
|
|
26618
|
+
high: 200,
|
|
26619
|
+
critical: 300
|
|
26620
|
+
};
|
|
26621
|
+
const baseForPriority = this.baseZIndex + priorityMultipliers[priority];
|
|
26622
|
+
const stackDepth = this.stack.length;
|
|
26623
|
+
return baseForPriority + stackDepth;
|
|
26624
|
+
}
|
|
26625
|
+
notifySubscribers() {
|
|
26626
|
+
const state = {
|
|
26627
|
+
modals: [...this.stack],
|
|
26628
|
+
topModal: this.stack[this.stack.length - 1] || null,
|
|
26629
|
+
hasModals: this.stack.length > 0,
|
|
26630
|
+
highestZIndex: this.stack.length > 0 ? Math.max(...this.stack.map((m) => m.zIndex)) : 0
|
|
26631
|
+
};
|
|
26632
|
+
this.subscribers.forEach((callback) => callback(state));
|
|
26633
|
+
}
|
|
26634
|
+
add(modal) {
|
|
26635
|
+
const modalWithZIndex = {
|
|
26636
|
+
...modal,
|
|
26637
|
+
zIndex: this.calculateZIndex(modal.priority)
|
|
26638
|
+
};
|
|
26639
|
+
this.stack.push(modalWithZIndex);
|
|
26640
|
+
if (!this.escapeHandlerRegistered) {
|
|
26641
|
+
document.addEventListener("keydown", this.handleEscape, true);
|
|
26642
|
+
this.escapeHandlerRegistered = true;
|
|
26643
|
+
}
|
|
26644
|
+
this.notifySubscribers();
|
|
26645
|
+
return modalWithZIndex;
|
|
26646
|
+
}
|
|
26647
|
+
remove(modalId) {
|
|
26648
|
+
const index = this.stack.findIndex((modal) => modal.id === modalId);
|
|
26649
|
+
if (index > -1) {
|
|
26650
|
+
this.stack.splice(index, 1);
|
|
26651
|
+
}
|
|
26652
|
+
if (this.stack.length === 0 && this.escapeHandlerRegistered) {
|
|
26653
|
+
document.removeEventListener("keydown", this.handleEscape, true);
|
|
26654
|
+
this.escapeHandlerRegistered = false;
|
|
26655
|
+
}
|
|
26656
|
+
this.notifySubscribers();
|
|
26657
|
+
}
|
|
26658
|
+
subscribe(callback) {
|
|
26659
|
+
this.subscribers.add(callback);
|
|
26660
|
+
callback({
|
|
26661
|
+
modals: [...this.stack],
|
|
26662
|
+
topModal: this.stack[this.stack.length - 1] || null,
|
|
26663
|
+
hasModals: this.stack.length > 0,
|
|
26664
|
+
highestZIndex: this.stack.length > 0 ? Math.max(...this.stack.map((m) => m.zIndex)) : 0
|
|
26665
|
+
});
|
|
26666
|
+
return () => {
|
|
26667
|
+
this.subscribers.delete(callback);
|
|
26668
|
+
};
|
|
26669
|
+
}
|
|
26670
|
+
get length() {
|
|
26671
|
+
return this.stack.length;
|
|
26672
|
+
}
|
|
26673
|
+
get state() {
|
|
26674
|
+
return {
|
|
26675
|
+
modals: [...this.stack],
|
|
26676
|
+
topModal: this.stack[this.stack.length - 1] || null,
|
|
26677
|
+
hasModals: this.stack.length > 0,
|
|
26678
|
+
highestZIndex: this.stack.length > 0 ? Math.max(...this.stack.map((m) => m.zIndex)) : 0
|
|
26679
|
+
};
|
|
26680
|
+
}
|
|
26681
|
+
cleanup() {
|
|
26682
|
+
if (this.escapeHandlerRegistered) {
|
|
26683
|
+
document.removeEventListener("keydown", this.handleEscape, true);
|
|
26684
|
+
this.escapeHandlerRegistered = false;
|
|
26685
|
+
}
|
|
26686
|
+
this.stack = [];
|
|
26687
|
+
this.subscribers.clear();
|
|
26688
|
+
}
|
|
26689
|
+
}
|
|
26690
|
+
const modalStack = new ModalStack();
|
|
26691
|
+
if (typeof window !== "undefined") {
|
|
26692
|
+
window.addEventListener("beforeunload", () => {
|
|
26693
|
+
modalStack.cleanup();
|
|
26694
|
+
});
|
|
26695
|
+
}
|
|
26696
|
+
function useModalStack(options = {}) {
|
|
26697
|
+
const {
|
|
26698
|
+
closeOnEscape = true,
|
|
26699
|
+
priority = "normal",
|
|
26700
|
+
component
|
|
26701
|
+
} = options;
|
|
26702
|
+
const modalId = ref(null);
|
|
26703
|
+
const isOpen = ref(false);
|
|
26704
|
+
const modalInstance = ref(null);
|
|
26705
|
+
const openModal = async (customCloseHandler) => {
|
|
26706
|
+
if (isOpen.value) return;
|
|
26707
|
+
const id = Symbol("modal");
|
|
26708
|
+
modalId.value = id;
|
|
26709
|
+
const instance = modalStack.add({
|
|
26710
|
+
id,
|
|
26711
|
+
closeModal: customCloseHandler || closeModal,
|
|
26712
|
+
closeOnEscape,
|
|
26713
|
+
priority,
|
|
26714
|
+
component
|
|
26715
|
+
});
|
|
26716
|
+
modalInstance.value = instance;
|
|
26717
|
+
isOpen.value = true;
|
|
26718
|
+
await nextTick();
|
|
26719
|
+
return instance;
|
|
26720
|
+
};
|
|
26721
|
+
const closeModal = () => {
|
|
26722
|
+
if (!modalId.value || !isOpen.value) return;
|
|
26723
|
+
modalStack.remove(modalId.value);
|
|
26724
|
+
modalId.value = null;
|
|
26725
|
+
modalInstance.value = null;
|
|
26726
|
+
isOpen.value = false;
|
|
26727
|
+
};
|
|
26728
|
+
const getModalContainer = () => {
|
|
26729
|
+
if (!modalId.value) return null;
|
|
26730
|
+
return document.querySelector(`[data-modal-id="${modalId.value.toString()}"]`);
|
|
26731
|
+
};
|
|
26732
|
+
const getModalBackdrop = () => {
|
|
26733
|
+
if (!modalInstance.value) return null;
|
|
26734
|
+
return document.querySelector(`.ui-app-modal-backdrop[style*="z-index: ${modalInstance.value.zIndex - 1}"]`);
|
|
26735
|
+
};
|
|
26736
|
+
onUnmounted(() => {
|
|
26737
|
+
if (isOpen.value) {
|
|
26738
|
+
closeModal();
|
|
26739
|
+
}
|
|
26740
|
+
});
|
|
26741
|
+
return {
|
|
26742
|
+
// State
|
|
26743
|
+
isOpen,
|
|
26744
|
+
modalId,
|
|
26745
|
+
modalInstance,
|
|
26746
|
+
// Actions
|
|
26747
|
+
openModal,
|
|
26748
|
+
closeModal,
|
|
26749
|
+
// Utilities
|
|
26750
|
+
getModalContainer,
|
|
26751
|
+
getModalBackdrop,
|
|
26752
|
+
// Computed values
|
|
26753
|
+
zIndex: () => modalInstance.value?.zIndex || 0,
|
|
26754
|
+
isTopModal: () => {
|
|
26755
|
+
const state = modalStack.state;
|
|
26756
|
+
return modalInstance.value === state.topModal;
|
|
26757
|
+
}
|
|
26758
|
+
};
|
|
26759
|
+
}
|
|
26760
|
+
function useModalTeleport(modalId) {
|
|
26761
|
+
const getTarget = () => {
|
|
26762
|
+
return `[data-modal-id="${modalId.toString()}"]`;
|
|
26763
|
+
};
|
|
26764
|
+
const isTargetAvailable = () => {
|
|
26765
|
+
return document.querySelector(getTarget()) !== null;
|
|
26766
|
+
};
|
|
26767
|
+
return {
|
|
26768
|
+
target: getTarget(),
|
|
26769
|
+
isAvailable: isTargetAvailable
|
|
26770
|
+
};
|
|
26771
|
+
}
|
|
26772
|
+
function useGlobalModalStack() {
|
|
26773
|
+
const stackState = ref(modalStack.state);
|
|
26774
|
+
const unsubscribe = modalStack.subscribe((state) => {
|
|
26775
|
+
stackState.value = state;
|
|
26776
|
+
});
|
|
26777
|
+
onUnmounted(unsubscribe);
|
|
26778
|
+
return {
|
|
26779
|
+
state: stackState,
|
|
26780
|
+
closeAll: () => {
|
|
26781
|
+
const modals = [...stackState.value.modals].reverse();
|
|
26782
|
+
modals.forEach((modal) => modal.closeModal());
|
|
26783
|
+
},
|
|
26784
|
+
closeTop: () => {
|
|
26785
|
+
const topModal = stackState.value.topModal;
|
|
26786
|
+
if (topModal) {
|
|
26787
|
+
topModal.closeModal();
|
|
26788
|
+
}
|
|
26789
|
+
},
|
|
26790
|
+
getModalByComponent: (componentName) => {
|
|
26791
|
+
return stackState.value.modals.find((modal) => modal.component === componentName);
|
|
26792
|
+
}
|
|
26793
|
+
};
|
|
26794
|
+
}
|
|
26795
|
+
const _hoisted_1$y = {
|
|
26796
|
+
key: 0,
|
|
26797
|
+
class: "ui-modal-backdrop",
|
|
26798
|
+
role: "dialog",
|
|
26799
|
+
"aria-modal": "true"
|
|
26800
|
+
};
|
|
26801
|
+
const _hoisted_2$t = { class: "ui-modal-header-content" };
|
|
26802
|
+
const _hoisted_3$r = { class: "ui-modal-title" };
|
|
26803
|
+
const _hoisted_4$q = { key: 0 };
|
|
26658
26804
|
const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
26659
26805
|
__name: "UiModal",
|
|
26660
26806
|
props: {
|
|
@@ -26662,7 +26808,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26662
26808
|
closeOnBackdrop: { type: Boolean, default: true },
|
|
26663
26809
|
closeOnEscape: { type: Boolean, default: true },
|
|
26664
26810
|
showCloseButton: { type: Boolean, default: true },
|
|
26665
|
-
size: { default: "
|
|
26811
|
+
size: { default: "auto" },
|
|
26666
26812
|
cardVariant: { default: "modern" },
|
|
26667
26813
|
cardPadding: { default: "lg" },
|
|
26668
26814
|
cardShadow: { default: "lg" },
|
|
@@ -26676,10 +26822,15 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26676
26822
|
const props = __props;
|
|
26677
26823
|
const emit = __emit;
|
|
26678
26824
|
const internalOpen = ref(false);
|
|
26679
|
-
const modalId = Symbol();
|
|
26680
26825
|
const triggerElement = ref(null);
|
|
26681
26826
|
const modalContainer = ref(null);
|
|
26682
26827
|
const previousFocusElement = ref(null);
|
|
26828
|
+
const modal = useModalStack({
|
|
26829
|
+
closeOnEscape: props.closeOnEscape,
|
|
26830
|
+
priority: "normal",
|
|
26831
|
+
component: "UiModal"
|
|
26832
|
+
});
|
|
26833
|
+
ref(true);
|
|
26683
26834
|
const isModalOpen = computed(() => {
|
|
26684
26835
|
return props.modelValue !== void 0 ? props.modelValue : internalOpen.value;
|
|
26685
26836
|
});
|
|
@@ -26698,8 +26849,9 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26698
26849
|
};
|
|
26699
26850
|
return sizeMap[props.size];
|
|
26700
26851
|
});
|
|
26701
|
-
const openModal = () => {
|
|
26852
|
+
const openModal = async () => {
|
|
26702
26853
|
previousFocusElement.value = document.activeElement;
|
|
26854
|
+
await modal.openModal(closeModal);
|
|
26703
26855
|
if (props.modelValue !== void 0) {
|
|
26704
26856
|
emit("update:modelValue", true);
|
|
26705
26857
|
} else {
|
|
@@ -26717,6 +26869,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26717
26869
|
openModal();
|
|
26718
26870
|
};
|
|
26719
26871
|
const closeModal = () => {
|
|
26872
|
+
modal.closeModal();
|
|
26720
26873
|
if (props.modelValue !== void 0) {
|
|
26721
26874
|
emit("update:modelValue", false);
|
|
26722
26875
|
} else {
|
|
@@ -26730,26 +26883,25 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26730
26883
|
previousFocusElement.value = null;
|
|
26731
26884
|
});
|
|
26732
26885
|
};
|
|
26733
|
-
const handleBackdropClick = () => {
|
|
26734
|
-
if (props.closeOnBackdrop) {
|
|
26735
|
-
closeModal();
|
|
26736
|
-
}
|
|
26737
|
-
};
|
|
26738
26886
|
watch(isModalOpen, async (newVal) => {
|
|
26739
26887
|
if (newVal) {
|
|
26740
|
-
|
|
26741
|
-
|
|
26742
|
-
|
|
26743
|
-
|
|
26744
|
-
|
|
26745
|
-
|
|
26888
|
+
if (!modal.isOpen.value) {
|
|
26889
|
+
await modal.openModal(closeModal);
|
|
26890
|
+
}
|
|
26891
|
+
const openModals = document.querySelectorAll('[role="dialog"][aria-modal="true"]');
|
|
26892
|
+
if (openModals.length <= 1) {
|
|
26893
|
+
document.body.style.overflow = "hidden";
|
|
26894
|
+
}
|
|
26746
26895
|
await nextTick();
|
|
26747
26896
|
if (modalContainer.value) {
|
|
26748
26897
|
modalContainer.value.focus();
|
|
26749
26898
|
}
|
|
26750
26899
|
} else {
|
|
26751
|
-
|
|
26752
|
-
|
|
26900
|
+
if (modal.isOpen.value) {
|
|
26901
|
+
modal.closeModal();
|
|
26902
|
+
}
|
|
26903
|
+
const openModals = document.querySelectorAll('[role="dialog"][aria-modal="true"]');
|
|
26904
|
+
if (openModals.length === 0) {
|
|
26753
26905
|
document.body.style.overflow = "";
|
|
26754
26906
|
}
|
|
26755
26907
|
}
|
|
@@ -26780,10 +26932,6 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26780
26932
|
});
|
|
26781
26933
|
onUnmounted(() => {
|
|
26782
26934
|
document.removeEventListener("keydown", handleTabKey);
|
|
26783
|
-
modalStack.remove(modalId);
|
|
26784
|
-
if (modalStack.length === 0) {
|
|
26785
|
-
document.body.style.overflow = "";
|
|
26786
|
-
}
|
|
26787
26935
|
});
|
|
26788
26936
|
return (_ctx, _cache) => {
|
|
26789
26937
|
return openBlock(), createElementBlock(Fragment$1, null, [
|
|
@@ -26799,22 +26947,17 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26799
26947
|
isOpen: isModalOpen.value
|
|
26800
26948
|
}, void 0, true)
|
|
26801
26949
|
], 512)) : createCommentVNode("", true),
|
|
26802
|
-
(openBlock(), createBlock(Teleport, {
|
|
26950
|
+
isModalOpen.value ? (openBlock(), createBlock(Teleport, {
|
|
26951
|
+
key: 1,
|
|
26952
|
+
to: "body"
|
|
26953
|
+
}, [
|
|
26803
26954
|
createVNode(Transition, { name: "modal" }, {
|
|
26804
26955
|
default: withCtx(() => [
|
|
26805
|
-
isModalOpen.value ? (openBlock(), createElementBlock("div",
|
|
26806
|
-
key: 0,
|
|
26807
|
-
class: "ui-modal-backdrop",
|
|
26808
|
-
onClick: handleBackdropClick,
|
|
26809
|
-
role: "dialog",
|
|
26810
|
-
"aria-modal": "true"
|
|
26811
|
-
}, [
|
|
26956
|
+
isModalOpen.value ? (openBlock(), createElementBlock("div", _hoisted_1$y, [
|
|
26812
26957
|
createElementVNode("div", {
|
|
26813
26958
|
class: "ui-modal-container",
|
|
26814
26959
|
ref_key: "modalContainer",
|
|
26815
|
-
ref: modalContainer
|
|
26816
|
-
onClick: _cache[0] || (_cache[0] = withModifiers(() => {
|
|
26817
|
-
}, ["stop"]))
|
|
26960
|
+
ref: modalContainer
|
|
26818
26961
|
}, [
|
|
26819
26962
|
createVNode(StrandsUiCard, {
|
|
26820
26963
|
variant: _ctx.cardVariant,
|
|
@@ -26825,14 +26968,14 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26825
26968
|
tabindex: "-1"
|
|
26826
26969
|
}, createSlots({
|
|
26827
26970
|
header: withCtx(() => [
|
|
26828
|
-
createElementVNode("div",
|
|
26829
|
-
createElementVNode("div",
|
|
26971
|
+
createElementVNode("div", _hoisted_2$t, [
|
|
26972
|
+
createElementVNode("div", _hoisted_3$r, [
|
|
26830
26973
|
renderSlot(_ctx.$slots, "header", {
|
|
26831
26974
|
handleClose: closeModal,
|
|
26832
26975
|
isOpen: isModalOpen.value,
|
|
26833
26976
|
openModal
|
|
26834
26977
|
}, () => [
|
|
26835
|
-
_ctx.$props.title ? (openBlock(), createElementBlock("h2",
|
|
26978
|
+
_ctx.$props.title ? (openBlock(), createElementBlock("h2", _hoisted_4$q, toDisplayString(_ctx.$props.title), 1)) : createCommentVNode("", true)
|
|
26836
26979
|
], true)
|
|
26837
26980
|
]),
|
|
26838
26981
|
_ctx.showCloseButton ? (openBlock(), createElementBlock("button", {
|
|
@@ -26841,7 +26984,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26841
26984
|
class: "ui-modal-close-button",
|
|
26842
26985
|
onClick: closeModal,
|
|
26843
26986
|
"aria-label": "Close modal"
|
|
26844
|
-
}, [..._cache[
|
|
26987
|
+
}, [..._cache[0] || (_cache[0] = [
|
|
26845
26988
|
createElementVNode("svg", {
|
|
26846
26989
|
width: "18",
|
|
26847
26990
|
height: "18",
|
|
@@ -26877,12 +27020,12 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
|
|
|
26877
27020
|
]),
|
|
26878
27021
|
_: 3
|
|
26879
27022
|
})
|
|
26880
|
-
]))
|
|
27023
|
+
])) : createCommentVNode("", true)
|
|
26881
27024
|
], 64);
|
|
26882
27025
|
};
|
|
26883
27026
|
}
|
|
26884
27027
|
});
|
|
26885
|
-
const UiModal = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-
|
|
27028
|
+
const UiModal = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-dece6264"]]);
|
|
26886
27029
|
const tailwindColors = {
|
|
26887
27030
|
"#000000": {
|
|
26888
27031
|
label: "Black"
|
|
@@ -27492,7 +27635,7 @@ const _hoisted_4$p = ["d"];
|
|
|
27492
27635
|
const _hoisted_5$m = ["d"];
|
|
27493
27636
|
const _hoisted_6$l = ["d"];
|
|
27494
27637
|
const _hoisted_7$k = ["d"];
|
|
27495
|
-
const _hoisted_8$
|
|
27638
|
+
const _hoisted_8$j = ["d"];
|
|
27496
27639
|
const _hoisted_9$i = ["d"];
|
|
27497
27640
|
const _hoisted_10$i = { class: "ui-color-picker-preview" };
|
|
27498
27641
|
const _hoisted_11$i = {
|
|
@@ -27507,12 +27650,12 @@ const _hoisted_16$e = { class: "ui-color-picker-contrast-levels" };
|
|
|
27507
27650
|
const _hoisted_17$d = { class: "ui-color-picker-contrast-level-value" };
|
|
27508
27651
|
const _hoisted_18$c = { class: "ui-color-picker-contrast-level-value" };
|
|
27509
27652
|
const _hoisted_19$b = { class: "ui-color-picker-contrast-graph" };
|
|
27510
|
-
const _hoisted_20$
|
|
27653
|
+
const _hoisted_20$9 = {
|
|
27511
27654
|
viewBox: "0 0 280 40",
|
|
27512
27655
|
class: "ui-color-picker-contrast-svg"
|
|
27513
27656
|
};
|
|
27514
27657
|
const _hoisted_21$9 = ["cx", "fill"];
|
|
27515
|
-
const _hoisted_22$
|
|
27658
|
+
const _hoisted_22$7 = { class: "ui-color-picker-inputs" };
|
|
27516
27659
|
const _hoisted_23$7 = {
|
|
27517
27660
|
key: 0,
|
|
27518
27661
|
class: "ui-color-picker-input-row"
|
|
@@ -29224,7 +29367,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
|
29224
29367
|
"stroke-linejoin": "round",
|
|
29225
29368
|
"stroke-opacity": "0.5",
|
|
29226
29369
|
"clip-path": "url(#canvasClip)"
|
|
29227
|
-
}, null, 8, _hoisted_8$
|
|
29370
|
+
}, null, 8, _hoisted_8$j)) : createCommentVNode("", true),
|
|
29228
29371
|
contrastBoundaryBottomCurve45.value ? (openBlock(), createElementBlock("path", {
|
|
29229
29372
|
key: 5,
|
|
29230
29373
|
d: contrastBoundaryBottomCurve45.value,
|
|
@@ -29336,7 +29479,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
|
29336
29479
|
], 2)
|
|
29337
29480
|
]),
|
|
29338
29481
|
createElementVNode("div", _hoisted_19$b, [
|
|
29339
|
-
(openBlock(), createElementBlock("svg", _hoisted_20$
|
|
29482
|
+
(openBlock(), createElementBlock("svg", _hoisted_20$9, [
|
|
29340
29483
|
_cache[21] || (_cache[21] = createStaticVNode('<defs data-v-24473a61><linearGradient id="contrastGradientDefault" x1="0%" y1="0%" x2="100%" y2="0%" data-v-24473a61><stop offset="0%" stop-color="#ef4444" data-v-24473a61></stop><stop offset="21.4%" stop-color="#ef4444" data-v-24473a61></stop><stop offset="21.4%" stop-color="#f59e0b" data-v-24473a61></stop><stop offset="64.3%" stop-color="#f59e0b" data-v-24473a61></stop><stop offset="64.3%" stop-color="#22c55e" data-v-24473a61></stop><stop offset="100%" stop-color="#22c55e" data-v-24473a61></stop></linearGradient></defs><rect x="0" y="15" width="280" height="10" fill="url(#contrastGradientDefault)" rx="5" data-v-24473a61></rect><line x1="60" y1="10" x2="60" y2="30" stroke="#666" stroke-width="1" opacity="0.5" data-v-24473a61></line><line x1="180" y1="10" x2="180" y2="30" stroke="#666" stroke-width="1" opacity="0.5" data-v-24473a61></line>', 4)),
|
|
29341
29484
|
createElementVNode("circle", {
|
|
29342
29485
|
cx: Math.min(270, Math.max(10, Math.min(contrastData.value.ratio, 14) / 14 * 260 + 10)),
|
|
@@ -29371,7 +29514,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
|
|
|
29371
29514
|
style: normalizeStyle({ left: `${alpha2.value * 100}%` })
|
|
29372
29515
|
}, null, 4)
|
|
29373
29516
|
], 544)) : createCommentVNode("", true),
|
|
29374
|
-
createElementVNode("div", _hoisted_22$
|
|
29517
|
+
createElementVNode("div", _hoisted_22$7, [
|
|
29375
29518
|
currentColorFormat.value === "hex" ? (openBlock(), createElementBlock("div", _hoisted_23$7, [
|
|
29376
29519
|
createElementVNode("div", _hoisted_24$6, [
|
|
29377
29520
|
_cache[24] || (_cache[24] = createElementVNode("label", { class: "ui-color-picker-label" }, "Hex", -1)),
|
|
@@ -30093,7 +30236,7 @@ const _hoisted_7$j = {
|
|
|
30093
30236
|
key: 1,
|
|
30094
30237
|
class: "ui-table-sort-icon"
|
|
30095
30238
|
};
|
|
30096
|
-
const _hoisted_8$
|
|
30239
|
+
const _hoisted_8$i = { class: "ui-table-header-actions" };
|
|
30097
30240
|
const _hoisted_9$h = ["onClick"];
|
|
30098
30241
|
const _hoisted_10$h = ["onClick"];
|
|
30099
30242
|
const _hoisted_11$h = {
|
|
@@ -30108,9 +30251,9 @@ const _hoisted_16$d = { class: "ui-table-body" };
|
|
|
30108
30251
|
const _hoisted_17$c = { class: "ui-table-group-content" };
|
|
30109
30252
|
const _hoisted_18$b = { class: "ui-table-group-name" };
|
|
30110
30253
|
const _hoisted_19$a = { class: "ui-table-group-count" };
|
|
30111
|
-
const _hoisted_20$
|
|
30254
|
+
const _hoisted_20$8 = ["onClick"];
|
|
30112
30255
|
const _hoisted_21$8 = ["onClick"];
|
|
30113
|
-
const _hoisted_22$
|
|
30256
|
+
const _hoisted_22$6 = { class: "ui-table-subrow-content" };
|
|
30114
30257
|
const _hoisted_23$6 = { class: "ui-table-subrow-default" };
|
|
30115
30258
|
const _hoisted_24$5 = {
|
|
30116
30259
|
key: 0,
|
|
@@ -30441,7 +30584,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
30441
30584
|
}))
|
|
30442
30585
|
])) : createCommentVNode("", true)
|
|
30443
30586
|
], 8, _hoisted_5$l),
|
|
30444
|
-
createElementVNode("div", _hoisted_8$
|
|
30587
|
+
createElementVNode("div", _hoisted_8$i, [
|
|
30445
30588
|
_ctx.filterable || column.filterable ? (openBlock(), createElementBlock("button", {
|
|
30446
30589
|
key: 0,
|
|
30447
30590
|
onClick: ($event) => toggleFilter(column.key),
|
|
@@ -30550,13 +30693,13 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
|
30550
30693
|
], true)
|
|
30551
30694
|
], 14, _hoisted_21$8);
|
|
30552
30695
|
}), 128))
|
|
30553
|
-
], 10, _hoisted_20$
|
|
30696
|
+
], 10, _hoisted_20$8)),
|
|
30554
30697
|
expandedRows.value.has(rowIndex) ? (openBlock(), createElementBlock("div", {
|
|
30555
30698
|
key: 2,
|
|
30556
30699
|
class: "ui-table-subrow",
|
|
30557
30700
|
style: normalizeStyle(subrowStyle.value)
|
|
30558
30701
|
}, [
|
|
30559
|
-
createElementVNode("div", _hoisted_22$
|
|
30702
|
+
createElementVNode("div", _hoisted_22$6, [
|
|
30560
30703
|
renderSlot(_ctx.$slots, "expanded-row", {
|
|
30561
30704
|
row,
|
|
30562
30705
|
rowIndex
|
|
@@ -30630,7 +30773,7 @@ const _hoisted_7$i = {
|
|
|
30630
30773
|
key: 0,
|
|
30631
30774
|
class: "ui-hero-background"
|
|
30632
30775
|
};
|
|
30633
|
-
const _hoisted_8$
|
|
30776
|
+
const _hoisted_8$h = {
|
|
30634
30777
|
key: 1,
|
|
30635
30778
|
class: "ui-hero-background"
|
|
30636
30779
|
};
|
|
@@ -30725,7 +30868,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
|
30725
30868
|
]),
|
|
30726
30869
|
_ctx.variant === "space" ? (openBlock(), createElementBlock("div", _hoisted_7$i, [..._cache[0] || (_cache[0] = [
|
|
30727
30870
|
createStaticVNode('<div class="ui-hero-gradient" data-v-00e0d581></div><div class="ui-hero-pattern" data-v-00e0d581></div><div class="ui-hero-particles" data-v-00e0d581></div><div class="ui-hero-shooting-stars" data-v-00e0d581><div class="shooting-star-1" data-v-00e0d581></div><div class="shooting-star-2" data-v-00e0d581></div><div class="shooting-star-3" data-v-00e0d581></div><div class="shooting-star-4" data-v-00e0d581></div><div class="shooting-star-5" data-v-00e0d581></div><div class="shooting-star-6" data-v-00e0d581></div></div><div class="ui-hero-starfield" data-v-00e0d581></div>', 5)
|
|
30728
|
-
])])) : _ctx.variant === "gradient" ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
30871
|
+
])])) : _ctx.variant === "gradient" ? (openBlock(), createElementBlock("div", _hoisted_8$h, [..._cache[1] || (_cache[1] = [
|
|
30729
30872
|
createElementVNode("div", { class: "ui-hero-simple-gradient" }, null, -1)
|
|
30730
30873
|
])])) : createCommentVNode("", true)
|
|
30731
30874
|
], 6)
|
|
@@ -31097,7 +31240,7 @@ const _hoisted_5$i = {
|
|
|
31097
31240
|
};
|
|
31098
31241
|
const _hoisted_6$h = { class: "slider-track-container" };
|
|
31099
31242
|
const _hoisted_7$h = ["id", "value", "min", "max", "step", "disabled", "required"];
|
|
31100
|
-
const _hoisted_8$
|
|
31243
|
+
const _hoisted_8$g = { class: "slider-track" };
|
|
31101
31244
|
const _hoisted_9$g = {
|
|
31102
31245
|
key: 1,
|
|
31103
31246
|
class: "slider-max-label"
|
|
@@ -31263,7 +31406,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
31263
31406
|
onTouchstart: handleMouseDown,
|
|
31264
31407
|
onTouchend: handleMouseUp
|
|
31265
31408
|
}, null, 40, _hoisted_7$h),
|
|
31266
|
-
createElementVNode("div", _hoisted_8$
|
|
31409
|
+
createElementVNode("div", _hoisted_8$g, [
|
|
31267
31410
|
createElementVNode("div", {
|
|
31268
31411
|
class: "slider-progress",
|
|
31269
31412
|
style: normalizeStyle({ width: progressPercentage.value + "%" })
|
|
@@ -31312,7 +31455,7 @@ const _hoisted_4$k = ["onClick"];
|
|
|
31312
31455
|
const _hoisted_5$h = ["id", "name", "value", "checked", "disabled", "required"];
|
|
31313
31456
|
const _hoisted_6$g = { class: "radio-content" };
|
|
31314
31457
|
const _hoisted_7$g = ["for"];
|
|
31315
|
-
const _hoisted_8$
|
|
31458
|
+
const _hoisted_8$f = {
|
|
31316
31459
|
key: 0,
|
|
31317
31460
|
class: "radio-description"
|
|
31318
31461
|
};
|
|
@@ -31426,7 +31569,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
|
31426
31569
|
for: `${_ctx.fieldId}-${option.value}`,
|
|
31427
31570
|
class: "radio-label"
|
|
31428
31571
|
}, toDisplayString(option.label), 9, _hoisted_7$g),
|
|
31429
|
-
option.description ? (openBlock(), createElementBlock("p", _hoisted_8$
|
|
31572
|
+
option.description ? (openBlock(), createElementBlock("p", _hoisted_8$f, toDisplayString(option.description), 1)) : createCommentVNode("", true),
|
|
31430
31573
|
option.icon && _ctx.variant === "card" ? (openBlock(), createElementBlock("div", _hoisted_9$f, [
|
|
31431
31574
|
(openBlock(), createBlock(resolveDynamicComponent(option.icon)))
|
|
31432
31575
|
])) : createCommentVNode("", true)
|
|
@@ -31463,7 +31606,7 @@ const _hoisted_7$f = {
|
|
|
31463
31606
|
viewBox: "0 0 20 20",
|
|
31464
31607
|
fill: "currentColor"
|
|
31465
31608
|
};
|
|
31466
|
-
const _hoisted_8$
|
|
31609
|
+
const _hoisted_8$e = {
|
|
31467
31610
|
key: 1,
|
|
31468
31611
|
class: "checkbox-indeterminate",
|
|
31469
31612
|
viewBox: "0 0 20 20",
|
|
@@ -31502,7 +31645,7 @@ const _hoisted_19$9 = {
|
|
|
31502
31645
|
key: 3,
|
|
31503
31646
|
class: "checkbox-help"
|
|
31504
31647
|
};
|
|
31505
|
-
const _hoisted_20$
|
|
31648
|
+
const _hoisted_20$7 = {
|
|
31506
31649
|
key: 0,
|
|
31507
31650
|
class: "checkbox-error-text"
|
|
31508
31651
|
};
|
|
@@ -31645,7 +31788,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
31645
31788
|
d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
|
|
31646
31789
|
"clip-rule": "evenodd"
|
|
31647
31790
|
}, null, -1)
|
|
31648
|
-
])])) : isIndeterminate(option.value) ? (openBlock(), createElementBlock("svg", _hoisted_8$
|
|
31791
|
+
])])) : isIndeterminate(option.value) ? (openBlock(), createElementBlock("svg", _hoisted_8$e, [..._cache[1] || (_cache[1] = [
|
|
31649
31792
|
createElementVNode("path", {
|
|
31650
31793
|
"fill-rule": "evenodd",
|
|
31651
31794
|
d: "M4 10a1 1 0 011-1h10a1 1 0 110 2H5a1 1 0 01-1-1z",
|
|
@@ -31704,7 +31847,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
31704
31847
|
], 2)
|
|
31705
31848
|
])) : createCommentVNode("", true),
|
|
31706
31849
|
_ctx.helpText || _ctx.error ? (openBlock(), createElementBlock("div", _hoisted_19$9, [
|
|
31707
|
-
_ctx.error ? (openBlock(), createElementBlock("p", _hoisted_20$
|
|
31850
|
+
_ctx.error ? (openBlock(), createElementBlock("p", _hoisted_20$7, toDisplayString(_ctx.error), 1)) : _ctx.helpText ? (openBlock(), createElementBlock("p", _hoisted_21$7, toDisplayString(_ctx.helpText), 1)) : createCommentVNode("", true)
|
|
31708
31851
|
])) : createCommentVNode("", true)
|
|
31709
31852
|
], 2);
|
|
31710
31853
|
};
|
|
@@ -31987,7 +32130,7 @@ const _hoisted_6$e = {
|
|
|
31987
32130
|
class: "mfa-methods-section"
|
|
31988
32131
|
};
|
|
31989
32132
|
const _hoisted_7$e = { class: "mfa-methods-grid" };
|
|
31990
|
-
const _hoisted_8$
|
|
32133
|
+
const _hoisted_8$d = ["onClick"];
|
|
31991
32134
|
const _hoisted_9$d = { class: "mfa-method-info" };
|
|
31992
32135
|
const _hoisted_10$d = { class: "mfa-method-name" };
|
|
31993
32136
|
const _hoisted_11$d = { class: "mfa-method-type" };
|
|
@@ -32011,9 +32154,9 @@ const _hoisted_18$9 = {
|
|
|
32011
32154
|
class: "mfa-hardware-section"
|
|
32012
32155
|
};
|
|
32013
32156
|
const _hoisted_19$8 = { class: "mfa-hardware-prompt" };
|
|
32014
|
-
const _hoisted_20$
|
|
32157
|
+
const _hoisted_20$6 = { class: "mfa-hardware-prompt-content" };
|
|
32015
32158
|
const _hoisted_21$6 = { class: "mfa-hardware-prompt-icon" };
|
|
32016
|
-
const _hoisted_22$
|
|
32159
|
+
const _hoisted_22$5 = { class: "mfa-hardware-prompt-text" };
|
|
32017
32160
|
const _hoisted_23$5 = { class: "mfa-hardware-prompt-title" };
|
|
32018
32161
|
const _hoisted_24$4 = { class: "mfa-hardware-prompt-description" };
|
|
32019
32162
|
const _hoisted_25$4 = { class: "mfa-backup-option" };
|
|
@@ -32484,7 +32627,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
32484
32627
|
selectedMethod.value?.id === method.id ? (openBlock(), createElementBlock("div", _hoisted_12$d, [
|
|
32485
32628
|
createVNode(IconCheckCircle, { size: 20 })
|
|
32486
32629
|
])) : createCommentVNode("", true)
|
|
32487
|
-
], 10, _hoisted_8$
|
|
32630
|
+
], 10, _hoisted_8$d);
|
|
32488
32631
|
}), 128))
|
|
32489
32632
|
])
|
|
32490
32633
|
])) : selectedMethod.value ? (openBlock(), createElementBlock("div", _hoisted_13$d, [
|
|
@@ -32515,14 +32658,14 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
32515
32658
|
])) : createCommentVNode("", true),
|
|
32516
32659
|
selectedMethod.value?.device_type === "hardware" || selectedMethod.value?.device_type === "passkey" ? (openBlock(), createElementBlock("div", _hoisted_18$9, [
|
|
32517
32660
|
createElementVNode("div", _hoisted_19$8, [
|
|
32518
|
-
createElementVNode("div", _hoisted_20$
|
|
32661
|
+
createElementVNode("div", _hoisted_20$6, [
|
|
32519
32662
|
createElementVNode("div", _hoisted_21$6, [
|
|
32520
32663
|
(openBlock(), createBlock(resolveDynamicComponent(selectedMethod.value.device_type === "passkey" ? IconShield : IconKeyRound), {
|
|
32521
32664
|
size: 24,
|
|
32522
32665
|
class: "mfa-hardware-icon-svg"
|
|
32523
32666
|
}))
|
|
32524
32667
|
]),
|
|
32525
|
-
createElementVNode("div", _hoisted_22$
|
|
32668
|
+
createElementVNode("div", _hoisted_22$5, [
|
|
32526
32669
|
createElementVNode("h4", _hoisted_23$5, toDisplayString(selectedMethod.value.device_type === "passkey" ? "Use your passkey" : "Touch your hardware key"), 1),
|
|
32527
32670
|
createElementVNode("p", _hoisted_24$4, toDisplayString(selectedMethod.value.device_type === "passkey" ? "Use biometrics, PIN, or device security to authenticate" : "Insert and touch your hardware key to authenticate"), 1)
|
|
32528
32671
|
])
|
|
@@ -32976,7 +33119,7 @@ const _hoisted_4$g = {
|
|
|
32976
33119
|
const _hoisted_5$e = { key: 1 };
|
|
32977
33120
|
const _hoisted_6$d = { key: 2 };
|
|
32978
33121
|
const _hoisted_7$d = { key: 3 };
|
|
32979
|
-
const _hoisted_8$
|
|
33122
|
+
const _hoisted_8$c = {
|
|
32980
33123
|
key: 0,
|
|
32981
33124
|
class: "auth-tabs-container"
|
|
32982
33125
|
};
|
|
@@ -33011,12 +33154,12 @@ const _hoisted_18$8 = {
|
|
|
33011
33154
|
class: "auth-divider"
|
|
33012
33155
|
};
|
|
33013
33156
|
const _hoisted_19$7 = { class: "auth-divider-text" };
|
|
33014
|
-
const _hoisted_20$
|
|
33157
|
+
const _hoisted_20$5 = {
|
|
33015
33158
|
key: 0,
|
|
33016
33159
|
class: "auth-password-field"
|
|
33017
33160
|
};
|
|
33018
33161
|
const _hoisted_21$5 = { class: "auth-password-header" };
|
|
33019
|
-
const _hoisted_22$
|
|
33162
|
+
const _hoisted_22$4 = {
|
|
33020
33163
|
key: 0,
|
|
33021
33164
|
class: "auth-back-link-container"
|
|
33022
33165
|
};
|
|
@@ -33325,7 +33468,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
33325
33468
|
onAfterLeave
|
|
33326
33469
|
}, {
|
|
33327
33470
|
default: withCtx(() => [
|
|
33328
|
-
!isPasswordReset.value ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
33471
|
+
!isPasswordReset.value ? (openBlock(), createElementBlock("div", _hoisted_8$c, [
|
|
33329
33472
|
createVNode(unref(StrandsUiTabs), {
|
|
33330
33473
|
modelValue: currentMode.value,
|
|
33331
33474
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => currentMode.value = $event),
|
|
@@ -33443,7 +33586,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
33443
33586
|
onAfterLeave
|
|
33444
33587
|
}, {
|
|
33445
33588
|
default: withCtx(() => [
|
|
33446
|
-
!isPasswordReset.value && !isSignUp.value ? (openBlock(), createElementBlock("div", _hoisted_20$
|
|
33589
|
+
!isPasswordReset.value && !isSignUp.value ? (openBlock(), createElementBlock("div", _hoisted_20$5, [
|
|
33447
33590
|
createElementVNode("div", _hoisted_21$5, [
|
|
33448
33591
|
_cache[10] || (_cache[10] = createElementVNode("span", { class: "auth-password-label" }, "Password", -1)),
|
|
33449
33592
|
createVNode(unref(StrandsUiLink), {
|
|
@@ -33508,7 +33651,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
33508
33651
|
onAfterLeave
|
|
33509
33652
|
}, {
|
|
33510
33653
|
default: withCtx(() => [
|
|
33511
|
-
isPasswordReset.value ? (openBlock(), createElementBlock("div", _hoisted_22$
|
|
33654
|
+
isPasswordReset.value ? (openBlock(), createElementBlock("div", _hoisted_22$4, [
|
|
33512
33655
|
createVNode(unref(StrandsUiLink), {
|
|
33513
33656
|
onClick: _cache[4] || (_cache[4] = ($event) => currentMode.value = "signin"),
|
|
33514
33657
|
class: "auth-back-link"
|
|
@@ -33639,7 +33782,7 @@ const _hoisted_6$c = {
|
|
|
33639
33782
|
class: "accui-space-y-3 accui-mb-6"
|
|
33640
33783
|
};
|
|
33641
33784
|
const _hoisted_7$c = { class: "accui-w-5 accui-h-5 accui-flex accui-items-center accui-justify-center" };
|
|
33642
|
-
const _hoisted_8$
|
|
33785
|
+
const _hoisted_8$b = {
|
|
33643
33786
|
key: 0,
|
|
33644
33787
|
class: "accui-w-5 accui-h-5"
|
|
33645
33788
|
};
|
|
@@ -33776,7 +33919,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
33776
33919
|
}, {
|
|
33777
33920
|
default: withCtx(() => [
|
|
33778
33921
|
createElementVNode("div", _hoisted_7$c, [
|
|
33779
|
-
provider.icon || provider.iconUrl ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
33922
|
+
provider.icon || provider.iconUrl ? (openBlock(), createElementBlock("div", _hoisted_8$b, [
|
|
33780
33923
|
createElementVNode("img", {
|
|
33781
33924
|
src: provider.icon || provider.iconUrl,
|
|
33782
33925
|
alt: `${provider.displayName || provider.name} icon`,
|
|
@@ -33926,7 +34069,7 @@ const _hoisted_4$e = { class: "accui-auth-header" };
|
|
|
33926
34069
|
const _hoisted_5$c = { class: "accui-auth-content" };
|
|
33927
34070
|
const _hoisted_6$b = { class: "signup-success" };
|
|
33928
34071
|
const _hoisted_7$b = { class: "signup-success-title" };
|
|
33929
|
-
const _hoisted_8$
|
|
34072
|
+
const _hoisted_8$a = { class: "signup-success-message" };
|
|
33930
34073
|
const _hoisted_9$a = {
|
|
33931
34074
|
key: 0,
|
|
33932
34075
|
class: "signup-success-email"
|
|
@@ -33961,9 +34104,9 @@ const _hoisted_19$5 = {
|
|
|
33961
34104
|
key: 3,
|
|
33962
34105
|
class: "oauth-icon-fallback"
|
|
33963
34106
|
};
|
|
33964
|
-
const _hoisted_20$
|
|
34107
|
+
const _hoisted_20$4 = { class: "oauth-icon-fallback-text" };
|
|
33965
34108
|
const _hoisted_21$4 = { class: "oauth-button-text" };
|
|
33966
|
-
const _hoisted_22$
|
|
34109
|
+
const _hoisted_22$3 = {
|
|
33967
34110
|
key: 1,
|
|
33968
34111
|
class: "divider-with-text"
|
|
33969
34112
|
};
|
|
@@ -34109,7 +34252,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
34109
34252
|
createElementVNode("div", _hoisted_6$b, [
|
|
34110
34253
|
_cache[4] || (_cache[4] = createElementVNode("div", { class: "signup-success-icon" }, "📧", -1)),
|
|
34111
34254
|
createElementVNode("h1", _hoisted_7$b, toDisplayString(successTitle.value), 1),
|
|
34112
|
-
createElementVNode("p", _hoisted_8$
|
|
34255
|
+
createElementVNode("p", _hoisted_8$a, toDisplayString(successMessage.value), 1),
|
|
34113
34256
|
successEmail.value ? (openBlock(), createElementBlock("div", _hoisted_9$a, [
|
|
34114
34257
|
createElementVNode("strong", null, toDisplayString(successEmail.value), 1)
|
|
34115
34258
|
])) : createCommentVNode("", true),
|
|
@@ -34181,7 +34324,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
34181
34324
|
])])) : provider.id === "github" ? (openBlock(), createElementBlock("svg", _hoisted_18$6, [..._cache[7] || (_cache[7] = [
|
|
34182
34325
|
createElementVNode("path", { d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" }, null, -1)
|
|
34183
34326
|
])])) : (openBlock(), createElementBlock("div", _hoisted_19$5, [
|
|
34184
|
-
createElementVNode("span", _hoisted_20$
|
|
34327
|
+
createElementVNode("span", _hoisted_20$4, toDisplayString((provider.displayName || provider.name).charAt(0).toUpperCase()), 1)
|
|
34185
34328
|
]))
|
|
34186
34329
|
]),
|
|
34187
34330
|
createElementVNode("span", _hoisted_21$4, "Continue with " + toDisplayString(provider.displayName || provider.name), 1)
|
|
@@ -34190,7 +34333,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
34190
34333
|
}, 1032, ["disabled", "onClick"]);
|
|
34191
34334
|
}), 128))
|
|
34192
34335
|
])) : createCommentVNode("", true),
|
|
34193
|
-
unref(enabledProviders)?.length ? (openBlock(), createElementBlock("div", _hoisted_22$
|
|
34336
|
+
unref(enabledProviders)?.length ? (openBlock(), createElementBlock("div", _hoisted_22$3, [..._cache[8] || (_cache[8] = [
|
|
34194
34337
|
createElementVNode("span", { class: "divider-text" }, "Or create account with email", -1)
|
|
34195
34338
|
])])) : createCommentVNode("", true),
|
|
34196
34339
|
createElementVNode("form", {
|
|
@@ -34307,7 +34450,7 @@ const _hoisted_6$a = {
|
|
|
34307
34450
|
class: "complete-signup-container"
|
|
34308
34451
|
};
|
|
34309
34452
|
const _hoisted_7$a = { class: "complete-signup-header" };
|
|
34310
|
-
const _hoisted_8$
|
|
34453
|
+
const _hoisted_8$9 = {
|
|
34311
34454
|
key: 0,
|
|
34312
34455
|
class: "complete-signup-email-info"
|
|
34313
34456
|
};
|
|
@@ -34507,7 +34650,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
34507
34650
|
createElementVNode("div", _hoisted_7$a, [
|
|
34508
34651
|
_cache[17] || (_cache[17] = createElementVNode("h1", { class: "complete-signup-title" }, "Complete Your Registration", -1)),
|
|
34509
34652
|
_cache[18] || (_cache[18] = createElementVNode("p", { class: "complete-signup-subtitle" }, "Set up your account details to finish registration", -1)),
|
|
34510
|
-
email.value ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
34653
|
+
email.value ? (openBlock(), createElementBlock("div", _hoisted_8$9, [
|
|
34511
34654
|
createElementVNode("p", _hoisted_9$9, [
|
|
34512
34655
|
_cache[16] || (_cache[16] = createTextVNode("Creating account for: ", -1)),
|
|
34513
34656
|
createElementVNode("span", _hoisted_10$9, toDisplayString(email.value), 1)
|
|
@@ -34632,47 +34775,46 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
34632
34775
|
}
|
|
34633
34776
|
});
|
|
34634
34777
|
const StrandsCompleteSignUp = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-c7f95c2d"]]);
|
|
34635
|
-
const _hoisted_1$f = {
|
|
34636
|
-
const _hoisted_2$d = {
|
|
34778
|
+
const _hoisted_1$f = {
|
|
34637
34779
|
key: 0,
|
|
34638
34780
|
class: "step-container"
|
|
34639
34781
|
};
|
|
34640
|
-
const
|
|
34641
|
-
const
|
|
34782
|
+
const _hoisted_2$d = { class: "step-actions" };
|
|
34783
|
+
const _hoisted_3$c = {
|
|
34642
34784
|
key: 1,
|
|
34643
34785
|
class: "step-container"
|
|
34644
34786
|
};
|
|
34645
|
-
const
|
|
34646
|
-
const
|
|
34787
|
+
const _hoisted_4$c = { class: "qr-container" };
|
|
34788
|
+
const _hoisted_5$a = {
|
|
34647
34789
|
key: 0,
|
|
34648
34790
|
class: "qr-wrapper"
|
|
34649
34791
|
};
|
|
34650
|
-
const
|
|
34651
|
-
const
|
|
34792
|
+
const _hoisted_6$9 = ["src"];
|
|
34793
|
+
const _hoisted_7$9 = {
|
|
34652
34794
|
key: 1,
|
|
34653
34795
|
class: "qr-loading"
|
|
34654
34796
|
};
|
|
34655
|
-
const
|
|
34656
|
-
const
|
|
34657
|
-
const
|
|
34797
|
+
const _hoisted_8$8 = { class: "manual-entry" };
|
|
34798
|
+
const _hoisted_9$8 = { class: "manual-code" };
|
|
34799
|
+
const _hoisted_10$8 = {
|
|
34658
34800
|
key: 0,
|
|
34659
34801
|
class: "bg-yellow-50 border border-yellow-200 rounded-lg p-4"
|
|
34660
34802
|
};
|
|
34661
|
-
const
|
|
34662
|
-
const
|
|
34803
|
+
const _hoisted_11$8 = { class: "flex justify-end space-x-3 pt-4" };
|
|
34804
|
+
const _hoisted_12$8 = {
|
|
34663
34805
|
key: 2,
|
|
34664
34806
|
class: "space-y-4"
|
|
34665
34807
|
};
|
|
34666
|
-
const
|
|
34667
|
-
const
|
|
34808
|
+
const _hoisted_13$8 = { class: "totp-setup-step-actions" };
|
|
34809
|
+
const _hoisted_14$8 = {
|
|
34668
34810
|
key: 3,
|
|
34669
34811
|
class: "totp-setup-step"
|
|
34670
34812
|
};
|
|
34671
|
-
const
|
|
34672
|
-
const
|
|
34673
|
-
const
|
|
34674
|
-
const
|
|
34675
|
-
const
|
|
34813
|
+
const _hoisted_15$7 = { class: "totp-setup-backup-codes" };
|
|
34814
|
+
const _hoisted_16$7 = { class: "totp-setup-backup-grid-wrapper" };
|
|
34815
|
+
const _hoisted_17$6 = { class: "totp-setup-backup-grid" };
|
|
34816
|
+
const _hoisted_18$5 = { class: "totp-setup-backup-actions" };
|
|
34817
|
+
const _hoisted_19$4 = { class: "totp-setup-final-actions" };
|
|
34676
34818
|
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
34677
34819
|
__name: "StrandsTotpSetupModal",
|
|
34678
34820
|
props: {
|
|
@@ -34767,252 +34909,249 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
34767
34909
|
emit("success");
|
|
34768
34910
|
};
|
|
34769
34911
|
return (_ctx, _cache) => {
|
|
34770
|
-
return openBlock(),
|
|
34771
|
-
|
|
34772
|
-
|
|
34773
|
-
|
|
34774
|
-
|
|
34775
|
-
|
|
34776
|
-
|
|
34777
|
-
|
|
34778
|
-
|
|
34779
|
-
|
|
34780
|
-
|
|
34781
|
-
|
|
34782
|
-
|
|
34783
|
-
|
|
34784
|
-
|
|
34785
|
-
|
|
34786
|
-
|
|
34787
|
-
|
|
34788
|
-
|
|
34912
|
+
return openBlock(), createBlock(UiModal, {
|
|
34913
|
+
modelValue: showModal.value,
|
|
34914
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => showModal.value = $event),
|
|
34915
|
+
title: "Setup Authenticator App",
|
|
34916
|
+
"card-class": "modal-card"
|
|
34917
|
+
}, {
|
|
34918
|
+
default: withCtx(() => [
|
|
34919
|
+
step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_1$f, [
|
|
34920
|
+
_cache[8] || (_cache[8] = createElementVNode("div", null, [
|
|
34921
|
+
createElementVNode("h3", { class: "step-title" }, "Name Your Device"),
|
|
34922
|
+
createElementVNode("p", { class: "step-description" }, ' Give this authenticator a memorable name (e.g., "iPhone", "Work Phone") ')
|
|
34923
|
+
], -1)),
|
|
34924
|
+
createVNode(unref(StrandsUiInput), {
|
|
34925
|
+
modelValue: deviceName.value,
|
|
34926
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => deviceName.value = $event),
|
|
34927
|
+
label: "Device Name",
|
|
34928
|
+
placeholder: "My Authenticator",
|
|
34929
|
+
error: deviceNameError.value,
|
|
34930
|
+
disabled: unref(loading2)
|
|
34931
|
+
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
34932
|
+
createElementVNode("div", _hoisted_2$d, [
|
|
34933
|
+
createVNode(unref(CompoundUiButton), {
|
|
34934
|
+
variant: "secondary",
|
|
34935
|
+
onClick: closeModal,
|
|
34789
34936
|
disabled: unref(loading2)
|
|
34790
|
-
},
|
|
34791
|
-
|
|
34792
|
-
|
|
34793
|
-
|
|
34794
|
-
|
|
34795
|
-
|
|
34796
|
-
|
|
34797
|
-
|
|
34798
|
-
|
|
34799
|
-
|
|
34800
|
-
|
|
34801
|
-
|
|
34802
|
-
|
|
34803
|
-
|
|
34804
|
-
|
|
34805
|
-
|
|
34806
|
-
|
|
34807
|
-
|
|
34808
|
-
|
|
34809
|
-
|
|
34810
|
-
|
|
34811
|
-
|
|
34812
|
-
|
|
34813
|
-
|
|
34814
|
-
|
|
34815
|
-
|
|
34816
|
-
|
|
34817
|
-
|
|
34818
|
-
|
|
34819
|
-
|
|
34820
|
-
|
|
34821
|
-
|
|
34822
|
-
|
|
34823
|
-
|
|
34824
|
-
|
|
34825
|
-
|
|
34826
|
-
|
|
34827
|
-
|
|
34828
|
-
|
|
34829
|
-
|
|
34830
|
-
|
|
34831
|
-
|
|
34832
|
-
|
|
34833
|
-
|
|
34834
|
-
|
|
34835
|
-
|
|
34937
|
+
}, {
|
|
34938
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
34939
|
+
createTextVNode(" Cancel ", -1)
|
|
34940
|
+
])]),
|
|
34941
|
+
_: 1
|
|
34942
|
+
}, 8, ["disabled"]),
|
|
34943
|
+
createVNode(unref(CompoundUiButton), {
|
|
34944
|
+
variant: "primary",
|
|
34945
|
+
onClick: startSetup,
|
|
34946
|
+
disabled: !deviceName.value.trim() || unref(loading2),
|
|
34947
|
+
loading: unref(loading2)
|
|
34948
|
+
}, {
|
|
34949
|
+
default: withCtx(() => [..._cache[7] || (_cache[7] = [
|
|
34950
|
+
createTextVNode(" Continue ", -1)
|
|
34951
|
+
])]),
|
|
34952
|
+
_: 1
|
|
34953
|
+
}, 8, ["disabled", "loading"])
|
|
34954
|
+
])
|
|
34955
|
+
])) : createCommentVNode("", true),
|
|
34956
|
+
step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_3$c, [
|
|
34957
|
+
_cache[13] || (_cache[13] = createElementVNode("div", null, [
|
|
34958
|
+
createElementVNode("h3", { class: "step-title" }, "Scan QR Code"),
|
|
34959
|
+
createElementVNode("p", { class: "step-description" }, " Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.) ")
|
|
34960
|
+
], -1)),
|
|
34961
|
+
createElementVNode("div", _hoisted_4$c, [
|
|
34962
|
+
qrCodeDataUrl.value ? (openBlock(), createElementBlock("div", _hoisted_5$a, [
|
|
34963
|
+
createElementVNode("img", {
|
|
34964
|
+
src: qrCodeDataUrl.value,
|
|
34965
|
+
alt: "TOTP QR Code",
|
|
34966
|
+
class: "qr-image",
|
|
34967
|
+
width: "200",
|
|
34968
|
+
height: "200"
|
|
34969
|
+
}, null, 8, _hoisted_6$9)
|
|
34970
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_7$9, [
|
|
34971
|
+
createVNode(unref(StrandsUiLoader), { size: 24 })
|
|
34972
|
+
]))
|
|
34973
|
+
]),
|
|
34974
|
+
createElementVNode("div", _hoisted_8$8, [
|
|
34975
|
+
_cache[9] || (_cache[9] = createElementVNode("p", { class: "manual-label" }, " Can't scan? Enter this code manually: ", -1)),
|
|
34976
|
+
createElementVNode("code", _hoisted_9$8, toDisplayString(totpSetupData.value?.secret || "..."), 1)
|
|
34977
|
+
]),
|
|
34978
|
+
totpSetupData.value?.backup_codes ? (openBlock(), createElementBlock("div", _hoisted_10$8, [..._cache[10] || (_cache[10] = [
|
|
34979
|
+
createElementVNode("div", { class: "flex items-start space-x-2" }, [
|
|
34980
|
+
createElementVNode("svg", {
|
|
34981
|
+
class: "w-5 h-5 text-yellow-600 mt-0.5 flex-shrink-0",
|
|
34982
|
+
fill: "currentColor",
|
|
34983
|
+
viewBox: "0 0 20 20"
|
|
34984
|
+
}, [
|
|
34985
|
+
createElementVNode("path", {
|
|
34986
|
+
"fill-rule": "evenodd",
|
|
34987
|
+
d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
|
|
34988
|
+
"clip-rule": "evenodd"
|
|
34989
|
+
})
|
|
34990
|
+
]),
|
|
34991
|
+
createElementVNode("div", null, [
|
|
34992
|
+
createElementVNode("p", { class: "text-sm font-medium text-yellow-800" }, "Save Your Backup Codes"),
|
|
34993
|
+
createElementVNode("p", { class: "text-sm text-yellow-700 mt-1" }, " After setup, you'll receive backup codes. Store them safely - they're your only way to recover access if you lose your device. ")
|
|
34994
|
+
])
|
|
34995
|
+
], -1)
|
|
34996
|
+
])])) : createCommentVNode("", true),
|
|
34997
|
+
createElementVNode("div", _hoisted_11$8, [
|
|
34998
|
+
createVNode(unref(CompoundUiButton), {
|
|
34999
|
+
variant: "secondary",
|
|
35000
|
+
onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
|
|
35001
|
+
disabled: unref(loading2)
|
|
35002
|
+
}, {
|
|
35003
|
+
default: withCtx(() => [..._cache[11] || (_cache[11] = [
|
|
35004
|
+
createTextVNode(" Back ", -1)
|
|
35005
|
+
])]),
|
|
35006
|
+
_: 1
|
|
35007
|
+
}, 8, ["disabled"]),
|
|
35008
|
+
createVNode(unref(CompoundUiButton), {
|
|
35009
|
+
variant: "primary",
|
|
35010
|
+
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 3),
|
|
35011
|
+
disabled: unref(loading2)
|
|
35012
|
+
}, {
|
|
35013
|
+
default: withCtx(() => [..._cache[12] || (_cache[12] = [
|
|
35014
|
+
createTextVNode(" I've Added It ", -1)
|
|
35015
|
+
])]),
|
|
35016
|
+
_: 1
|
|
35017
|
+
}, 8, ["disabled"])
|
|
35018
|
+
])
|
|
35019
|
+
])) : createCommentVNode("", true),
|
|
35020
|
+
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_12$8, [
|
|
35021
|
+
_cache[16] || (_cache[16] = createElementVNode("div", null, [
|
|
35022
|
+
createElementVNode("h3", { class: "text-lg font-semibold text-gray-900 mb-2" }, "Verify Setup"),
|
|
35023
|
+
createElementVNode("p", { class: "text-sm text-gray-600 mb-4" }, " Enter the 6-digit code from your authenticator app to complete setup ")
|
|
35024
|
+
], -1)),
|
|
35025
|
+
createVNode(unref(StrandsUiInput), {
|
|
35026
|
+
modelValue: verificationCode.value,
|
|
35027
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => verificationCode.value = $event),
|
|
35028
|
+
label: "Verification Code",
|
|
35029
|
+
placeholder: "123456",
|
|
35030
|
+
maxlength: "6",
|
|
35031
|
+
error: verificationError.value,
|
|
35032
|
+
disabled: unref(loading2),
|
|
35033
|
+
onInput: onVerificationCodeInput
|
|
35034
|
+
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
35035
|
+
createElementVNode("div", _hoisted_13$8, [
|
|
35036
|
+
createVNode(unref(CompoundUiButton), {
|
|
35037
|
+
variant: "secondary",
|
|
35038
|
+
onClick: _cache[4] || (_cache[4] = ($event) => step.value = 2),
|
|
35039
|
+
disabled: unref(loading2)
|
|
35040
|
+
}, {
|
|
35041
|
+
default: withCtx(() => [..._cache[14] || (_cache[14] = [
|
|
35042
|
+
createTextVNode(" Back ", -1)
|
|
35043
|
+
])]),
|
|
35044
|
+
_: 1
|
|
35045
|
+
}, 8, ["disabled"]),
|
|
35046
|
+
createVNode(unref(CompoundUiButton), {
|
|
35047
|
+
variant: "primary",
|
|
35048
|
+
onClick: verifySetup,
|
|
35049
|
+
disabled: verificationCode.value.length !== 6 || unref(loading2),
|
|
35050
|
+
loading: unref(loading2)
|
|
35051
|
+
}, {
|
|
35052
|
+
default: withCtx(() => [..._cache[15] || (_cache[15] = [
|
|
35053
|
+
createTextVNode(" Verify & Enable ", -1)
|
|
35054
|
+
])]),
|
|
35055
|
+
_: 1
|
|
35056
|
+
}, 8, ["disabled", "loading"])
|
|
35057
|
+
])
|
|
35058
|
+
])) : createCommentVNode("", true),
|
|
35059
|
+
step.value === 4 ? (openBlock(), createElementBlock("div", _hoisted_14$8, [
|
|
35060
|
+
_cache[20] || (_cache[20] = createElementVNode("div", { class: "totp-setup-success" }, [
|
|
35061
|
+
createElementVNode("div", { class: "totp-setup-success-icon" }, [
|
|
35062
|
+
createElementVNode("svg", {
|
|
35063
|
+
class: "totp-setup-check-icon",
|
|
35064
|
+
fill: "none",
|
|
35065
|
+
stroke: "currentColor",
|
|
35066
|
+
viewBox: "0 0 24 24"
|
|
35067
|
+
}, [
|
|
35068
|
+
createElementVNode("path", {
|
|
35069
|
+
"stroke-linecap": "round",
|
|
35070
|
+
"stroke-linejoin": "round",
|
|
35071
|
+
"stroke-width": "2",
|
|
35072
|
+
d: "M5 13l4 4L19 7"
|
|
35073
|
+
})
|
|
35074
|
+
])
|
|
34836
35075
|
]),
|
|
34837
|
-
|
|
34838
|
-
|
|
34839
|
-
|
|
34840
|
-
|
|
34841
|
-
|
|
34842
|
-
|
|
34843
|
-
|
|
34844
|
-
|
|
34845
|
-
|
|
34846
|
-
|
|
34847
|
-
|
|
34848
|
-
|
|
34849
|
-
|
|
34850
|
-
|
|
34851
|
-
|
|
34852
|
-
createElementVNode("p", { class: "text-sm text-yellow-700 mt-1" }, " After setup, you'll receive backup codes. Store them safely - they're your only way to recover access if you lose your device. ")
|
|
34853
|
-
])
|
|
34854
|
-
], -1)
|
|
34855
|
-
])])) : createCommentVNode("", true),
|
|
34856
|
-
createElementVNode("div", _hoisted_12$8, [
|
|
34857
|
-
createVNode(unref(CompoundUiButton), {
|
|
34858
|
-
variant: "secondary",
|
|
34859
|
-
onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
|
|
34860
|
-
disabled: unref(loading2)
|
|
34861
|
-
}, {
|
|
34862
|
-
default: withCtx(() => [..._cache[11] || (_cache[11] = [
|
|
34863
|
-
createTextVNode(" Back ", -1)
|
|
34864
|
-
])]),
|
|
34865
|
-
_: 1
|
|
34866
|
-
}, 8, ["disabled"]),
|
|
34867
|
-
createVNode(unref(CompoundUiButton), {
|
|
34868
|
-
variant: "primary",
|
|
34869
|
-
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 3),
|
|
34870
|
-
disabled: unref(loading2)
|
|
34871
|
-
}, {
|
|
34872
|
-
default: withCtx(() => [..._cache[12] || (_cache[12] = [
|
|
34873
|
-
createTextVNode(" I've Added It ", -1)
|
|
34874
|
-
])]),
|
|
34875
|
-
_: 1
|
|
34876
|
-
}, 8, ["disabled"])
|
|
34877
|
-
])
|
|
34878
|
-
])) : createCommentVNode("", true),
|
|
34879
|
-
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_13$8, [
|
|
34880
|
-
_cache[16] || (_cache[16] = createElementVNode("div", null, [
|
|
34881
|
-
createElementVNode("h3", { class: "text-lg font-semibold text-gray-900 mb-2" }, "Verify Setup"),
|
|
34882
|
-
createElementVNode("p", { class: "text-sm text-gray-600 mb-4" }, " Enter the 6-digit code from your authenticator app to complete setup ")
|
|
34883
|
-
], -1)),
|
|
34884
|
-
createVNode(unref(StrandsUiInput), {
|
|
34885
|
-
modelValue: verificationCode.value,
|
|
34886
|
-
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => verificationCode.value = $event),
|
|
34887
|
-
label: "Verification Code",
|
|
34888
|
-
placeholder: "123456",
|
|
34889
|
-
maxlength: "6",
|
|
34890
|
-
error: verificationError.value,
|
|
34891
|
-
disabled: unref(loading2),
|
|
34892
|
-
onInput: onVerificationCodeInput
|
|
34893
|
-
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
34894
|
-
createElementVNode("div", _hoisted_14$8, [
|
|
34895
|
-
createVNode(unref(CompoundUiButton), {
|
|
34896
|
-
variant: "secondary",
|
|
34897
|
-
onClick: _cache[4] || (_cache[4] = ($event) => step.value = 2),
|
|
34898
|
-
disabled: unref(loading2)
|
|
34899
|
-
}, {
|
|
34900
|
-
default: withCtx(() => [..._cache[14] || (_cache[14] = [
|
|
34901
|
-
createTextVNode(" Back ", -1)
|
|
34902
|
-
])]),
|
|
34903
|
-
_: 1
|
|
34904
|
-
}, 8, ["disabled"]),
|
|
34905
|
-
createVNode(unref(CompoundUiButton), {
|
|
34906
|
-
variant: "primary",
|
|
34907
|
-
onClick: verifySetup,
|
|
34908
|
-
disabled: verificationCode.value.length !== 6 || unref(loading2),
|
|
34909
|
-
loading: unref(loading2)
|
|
34910
|
-
}, {
|
|
34911
|
-
default: withCtx(() => [..._cache[15] || (_cache[15] = [
|
|
34912
|
-
createTextVNode(" Verify & Enable ", -1)
|
|
34913
|
-
])]),
|
|
34914
|
-
_: 1
|
|
34915
|
-
}, 8, ["disabled", "loading"])
|
|
34916
|
-
])
|
|
34917
|
-
])) : createCommentVNode("", true),
|
|
34918
|
-
step.value === 4 ? (openBlock(), createElementBlock("div", _hoisted_15$7, [
|
|
34919
|
-
_cache[20] || (_cache[20] = createElementVNode("div", { class: "totp-setup-success" }, [
|
|
34920
|
-
createElementVNode("div", { class: "totp-setup-success-icon" }, [
|
|
34921
|
-
createElementVNode("svg", {
|
|
34922
|
-
class: "totp-setup-check-icon",
|
|
34923
|
-
fill: "none",
|
|
34924
|
-
stroke: "currentColor",
|
|
34925
|
-
viewBox: "0 0 24 24"
|
|
34926
|
-
}, [
|
|
34927
|
-
createElementVNode("path", {
|
|
34928
|
-
"stroke-linecap": "round",
|
|
34929
|
-
"stroke-linejoin": "round",
|
|
34930
|
-
"stroke-width": "2",
|
|
34931
|
-
d: "M5 13l4 4L19 7"
|
|
34932
|
-
})
|
|
34933
|
-
])
|
|
35076
|
+
createElementVNode("h3", { class: "totp-setup-step-title" }, "TOTP Setup Complete!"),
|
|
35077
|
+
createElementVNode("p", { class: "totp-setup-success-description" }, " Your authenticator app is now active for two-factor authentication. ")
|
|
35078
|
+
], -1)),
|
|
35079
|
+
createElementVNode("div", _hoisted_15$7, [
|
|
35080
|
+
_cache[18] || (_cache[18] = createElementVNode("div", { class: "totp-setup-backup-header" }, [
|
|
35081
|
+
createElementVNode("svg", {
|
|
35082
|
+
class: "totp-setup-backup-warning-icon",
|
|
35083
|
+
fill: "currentColor",
|
|
35084
|
+
viewBox: "0 0 20 20"
|
|
35085
|
+
}, [
|
|
35086
|
+
createElementVNode("path", {
|
|
35087
|
+
"fill-rule": "evenodd",
|
|
35088
|
+
d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
|
|
35089
|
+
"clip-rule": "evenodd"
|
|
35090
|
+
})
|
|
34934
35091
|
]),
|
|
34935
|
-
createElementVNode("
|
|
34936
|
-
|
|
35092
|
+
createElementVNode("div", null, [
|
|
35093
|
+
createElementVNode("p", { class: "totp-setup-backup-header-title" }, "Save These Backup Codes"),
|
|
35094
|
+
createElementVNode("p", { class: "totp-setup-backup-header-description" }, " Store these codes in a safe place. Each code can only be used once. ")
|
|
35095
|
+
])
|
|
34937
35096
|
], -1)),
|
|
34938
35097
|
createElementVNode("div", _hoisted_16$7, [
|
|
34939
|
-
_cache[18] || (_cache[18] = createElementVNode("div", { class: "totp-setup-backup-header" }, [
|
|
34940
|
-
createElementVNode("svg", {
|
|
34941
|
-
class: "totp-setup-backup-warning-icon",
|
|
34942
|
-
fill: "currentColor",
|
|
34943
|
-
viewBox: "0 0 20 20"
|
|
34944
|
-
}, [
|
|
34945
|
-
createElementVNode("path", {
|
|
34946
|
-
"fill-rule": "evenodd",
|
|
34947
|
-
d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
|
|
34948
|
-
"clip-rule": "evenodd"
|
|
34949
|
-
})
|
|
34950
|
-
]),
|
|
34951
|
-
createElementVNode("div", null, [
|
|
34952
|
-
createElementVNode("p", { class: "totp-setup-backup-header-title" }, "Save These Backup Codes"),
|
|
34953
|
-
createElementVNode("p", { class: "totp-setup-backup-header-description" }, " Store these codes in a safe place. Each code can only be used once. ")
|
|
34954
|
-
])
|
|
34955
|
-
], -1)),
|
|
34956
35098
|
createElementVNode("div", _hoisted_17$6, [
|
|
34957
|
-
|
|
34958
|
-
|
|
34959
|
-
|
|
34960
|
-
|
|
34961
|
-
|
|
34962
|
-
|
|
34963
|
-
}), 128))
|
|
34964
|
-
])
|
|
34965
|
-
]),
|
|
34966
|
-
createElementVNode("div", _hoisted_19$4, [
|
|
34967
|
-
createVNode(unref(CompoundUiButton), {
|
|
34968
|
-
variant: "secondary",
|
|
34969
|
-
size: "sm",
|
|
34970
|
-
onClick: copyBackupCodes
|
|
34971
|
-
}, {
|
|
34972
|
-
default: withCtx(() => [..._cache[17] || (_cache[17] = [
|
|
34973
|
-
createTextVNode(" 📋 Copy Codes ", -1)
|
|
34974
|
-
])]),
|
|
34975
|
-
_: 1
|
|
34976
|
-
})
|
|
35099
|
+
(openBlock(true), createElementBlock(Fragment$1, null, renderList(totpSetupData.value?.backup_codes, (code, index) => {
|
|
35100
|
+
return openBlock(), createElementBlock("div", {
|
|
35101
|
+
key: index,
|
|
35102
|
+
class: "totp-setup-backup-code"
|
|
35103
|
+
}, toDisplayString(code), 1);
|
|
35104
|
+
}), 128))
|
|
34977
35105
|
])
|
|
34978
35106
|
]),
|
|
34979
|
-
createElementVNode("div",
|
|
35107
|
+
createElementVNode("div", _hoisted_18$5, [
|
|
34980
35108
|
createVNode(unref(CompoundUiButton), {
|
|
34981
|
-
variant: "
|
|
34982
|
-
|
|
35109
|
+
variant: "secondary",
|
|
35110
|
+
size: "sm",
|
|
35111
|
+
onClick: copyBackupCodes
|
|
34983
35112
|
}, {
|
|
34984
|
-
default: withCtx(() => [..._cache[
|
|
34985
|
-
createTextVNode("
|
|
35113
|
+
default: withCtx(() => [..._cache[17] || (_cache[17] = [
|
|
35114
|
+
createTextVNode(" 📋 Copy Codes ", -1)
|
|
34986
35115
|
])]),
|
|
34987
35116
|
_: 1
|
|
34988
35117
|
})
|
|
34989
35118
|
])
|
|
34990
|
-
])
|
|
34991
|
-
|
|
34992
|
-
|
|
34993
|
-
|
|
34994
|
-
|
|
35119
|
+
]),
|
|
35120
|
+
createElementVNode("div", _hoisted_19$4, [
|
|
35121
|
+
createVNode(unref(CompoundUiButton), {
|
|
35122
|
+
variant: "primary",
|
|
35123
|
+
onClick: finish
|
|
35124
|
+
}, {
|
|
35125
|
+
default: withCtx(() => [..._cache[19] || (_cache[19] = [
|
|
35126
|
+
createTextVNode(" Done ", -1)
|
|
35127
|
+
])]),
|
|
35128
|
+
_: 1
|
|
35129
|
+
})
|
|
35130
|
+
])
|
|
35131
|
+
])) : createCommentVNode("", true)
|
|
35132
|
+
]),
|
|
35133
|
+
_: 1
|
|
35134
|
+
}, 8, ["modelValue"]);
|
|
34995
35135
|
};
|
|
34996
35136
|
}
|
|
34997
35137
|
});
|
|
34998
|
-
const StrandsTotpSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-
|
|
34999
|
-
const _hoisted_1$e = {
|
|
35000
|
-
const _hoisted_2$c = {
|
|
35138
|
+
const StrandsTotpSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-85fffc4c"]]);
|
|
35139
|
+
const _hoisted_1$e = {
|
|
35001
35140
|
key: 0,
|
|
35002
35141
|
class: "email-mfa-setup-step"
|
|
35003
35142
|
};
|
|
35004
|
-
const
|
|
35005
|
-
const
|
|
35143
|
+
const _hoisted_2$c = { class: "email-mfa-setup-step-actions" };
|
|
35144
|
+
const _hoisted_3$b = {
|
|
35006
35145
|
key: 1,
|
|
35007
35146
|
class: "email-mfa-setup-step"
|
|
35008
35147
|
};
|
|
35009
|
-
const
|
|
35010
|
-
const
|
|
35011
|
-
const
|
|
35148
|
+
const _hoisted_4$b = { class: "email-mfa-setup-resend-section" };
|
|
35149
|
+
const _hoisted_5$9 = { class: "email-mfa-setup-step-actions" };
|
|
35150
|
+
const _hoisted_6$8 = {
|
|
35012
35151
|
key: 2,
|
|
35013
35152
|
class: "email-mfa-setup-step"
|
|
35014
35153
|
};
|
|
35015
|
-
const
|
|
35154
|
+
const _hoisted_7$8 = { class: "email-mfa-setup-final-actions" };
|
|
35016
35155
|
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
35017
35156
|
__name: "StrandsEmailMfaSetupModal",
|
|
35018
35157
|
props: {
|
|
@@ -35131,227 +35270,224 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
35131
35270
|
emit("success");
|
|
35132
35271
|
};
|
|
35133
35272
|
return (_ctx, _cache) => {
|
|
35134
|
-
return openBlock(),
|
|
35135
|
-
|
|
35136
|
-
|
|
35137
|
-
|
|
35138
|
-
|
|
35139
|
-
|
|
35140
|
-
|
|
35141
|
-
|
|
35142
|
-
|
|
35143
|
-
|
|
35144
|
-
|
|
35145
|
-
|
|
35146
|
-
|
|
35147
|
-
|
|
35148
|
-
|
|
35149
|
-
|
|
35150
|
-
|
|
35151
|
-
|
|
35152
|
-
|
|
35273
|
+
return openBlock(), createBlock(UiModal, {
|
|
35274
|
+
modelValue: showModal.value,
|
|
35275
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => showModal.value = $event),
|
|
35276
|
+
title: "Setup Email 2FA",
|
|
35277
|
+
"card-class": "email-mfa-setup-modal"
|
|
35278
|
+
}, {
|
|
35279
|
+
default: withCtx(() => [
|
|
35280
|
+
step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_1$e, [
|
|
35281
|
+
_cache[7] || (_cache[7] = createElementVNode("div", null, [
|
|
35282
|
+
createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Name Your Email 2FA"),
|
|
35283
|
+
createElementVNode("p", { class: "email-mfa-setup-step-description" }, ' Give this email 2FA method a memorable name (e.g., "Personal Email", "Work Email") ')
|
|
35284
|
+
], -1)),
|
|
35285
|
+
createVNode(unref(StrandsUiInput), {
|
|
35286
|
+
modelValue: deviceName.value,
|
|
35287
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => deviceName.value = $event),
|
|
35288
|
+
label: "Device Name",
|
|
35289
|
+
placeholder: "Personal Email",
|
|
35290
|
+
error: deviceNameError.value,
|
|
35291
|
+
disabled: unref(loading2)
|
|
35292
|
+
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
35293
|
+
createVNode(unref(StrandsUiAlert), {
|
|
35294
|
+
variant: "info",
|
|
35295
|
+
title: "Email 2FA"
|
|
35296
|
+
}, {
|
|
35297
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [
|
|
35298
|
+
createTextVNode(" Verification codes will be sent to your registered email address when logging in. ", -1)
|
|
35299
|
+
])]),
|
|
35300
|
+
_: 1
|
|
35301
|
+
}),
|
|
35302
|
+
createElementVNode("div", _hoisted_2$c, [
|
|
35303
|
+
createVNode(unref(CompoundUiButton), {
|
|
35304
|
+
variant: "secondary",
|
|
35305
|
+
onClick: closeModal,
|
|
35153
35306
|
disabled: unref(loading2)
|
|
35154
|
-
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
35155
|
-
createVNode(unref(StrandsUiAlert), {
|
|
35156
|
-
variant: "info",
|
|
35157
|
-
title: "Email 2FA"
|
|
35158
35307
|
}, {
|
|
35159
|
-
default: withCtx(() => [..._cache[
|
|
35160
|
-
createTextVNode("
|
|
35308
|
+
default: withCtx(() => [..._cache[5] || (_cache[5] = [
|
|
35309
|
+
createTextVNode(" Cancel ", -1)
|
|
35161
35310
|
])]),
|
|
35162
35311
|
_: 1
|
|
35163
|
-
}),
|
|
35164
|
-
|
|
35165
|
-
|
|
35166
|
-
|
|
35167
|
-
|
|
35168
|
-
|
|
35169
|
-
|
|
35170
|
-
|
|
35171
|
-
|
|
35172
|
-
|
|
35173
|
-
|
|
35174
|
-
|
|
35175
|
-
|
|
35176
|
-
|
|
35177
|
-
|
|
35178
|
-
|
|
35179
|
-
|
|
35180
|
-
|
|
35181
|
-
|
|
35182
|
-
|
|
35183
|
-
|
|
35184
|
-
|
|
35185
|
-
|
|
35312
|
+
}, 8, ["disabled"]),
|
|
35313
|
+
createVNode(unref(CompoundUiButton), {
|
|
35314
|
+
variant: "primary",
|
|
35315
|
+
onClick: startSetup,
|
|
35316
|
+
disabled: !deviceName.value.trim() || unref(loading2),
|
|
35317
|
+
loading: unref(loading2)
|
|
35318
|
+
}, {
|
|
35319
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
35320
|
+
createTextVNode(" Setup Email 2FA ", -1)
|
|
35321
|
+
])]),
|
|
35322
|
+
_: 1
|
|
35323
|
+
}, 8, ["disabled", "loading"])
|
|
35324
|
+
])
|
|
35325
|
+
])) : createCommentVNode("", true),
|
|
35326
|
+
step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_3$b, [
|
|
35327
|
+
_cache[10] || (_cache[10] = createElementVNode("div", null, [
|
|
35328
|
+
createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Test Email 2FA"),
|
|
35329
|
+
createElementVNode("p", { class: "email-mfa-setup-step-description" }, " We've sent a test verification code to your email. Enter it below to complete setup. ")
|
|
35330
|
+
], -1)),
|
|
35331
|
+
_cache[11] || (_cache[11] = createElementVNode("div", { class: "email-mfa-setup-success-notification" }, [
|
|
35332
|
+
createElementVNode("div", { class: "email-mfa-setup-success-content" }, [
|
|
35333
|
+
createElementVNode("svg", {
|
|
35334
|
+
class: "email-mfa-setup-success-icon",
|
|
35335
|
+
fill: "currentColor",
|
|
35336
|
+
viewBox: "0 0 20 20"
|
|
35337
|
+
}, [
|
|
35338
|
+
createElementVNode("path", {
|
|
35339
|
+
"fill-rule": "evenodd",
|
|
35340
|
+
d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
|
|
35341
|
+
"clip-rule": "evenodd"
|
|
35342
|
+
})
|
|
35343
|
+
]),
|
|
35344
|
+
createElementVNode("div", null, [
|
|
35345
|
+
createElementVNode("p", { class: "email-mfa-setup-success-title" }, "Code Sent!"),
|
|
35346
|
+
createElementVNode("p", { class: "email-mfa-setup-success-description" }, " Check your email inbox for the verification code. ")
|
|
35347
|
+
])
|
|
35186
35348
|
])
|
|
35187
|
-
]
|
|
35188
|
-
|
|
35189
|
-
|
|
35190
|
-
|
|
35191
|
-
|
|
35192
|
-
|
|
35193
|
-
|
|
35194
|
-
|
|
35195
|
-
|
|
35196
|
-
|
|
35197
|
-
|
|
35198
|
-
|
|
35199
|
-
|
|
35200
|
-
|
|
35201
|
-
|
|
35202
|
-
|
|
35203
|
-
|
|
35204
|
-
|
|
35205
|
-
|
|
35206
|
-
|
|
35207
|
-
|
|
35208
|
-
|
|
35209
|
-
|
|
35349
|
+
], -1)),
|
|
35350
|
+
createVNode(unref(StrandsUiInput), {
|
|
35351
|
+
modelValue: verificationCode.value,
|
|
35352
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => verificationCode.value = $event),
|
|
35353
|
+
label: "Verification Code",
|
|
35354
|
+
placeholder: "123456",
|
|
35355
|
+
maxlength: "6",
|
|
35356
|
+
error: verificationError.value,
|
|
35357
|
+
disabled: unref(loading2),
|
|
35358
|
+
onInput: onVerificationCodeInput
|
|
35359
|
+
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
35360
|
+
createElementVNode("div", _hoisted_4$b, [
|
|
35361
|
+
createVNode(unref(CompoundUiButton), {
|
|
35362
|
+
variant: "secondary",
|
|
35363
|
+
size: "sm",
|
|
35364
|
+
onClick: resendCode,
|
|
35365
|
+
disabled: unref(loading2) || cooldownActive.value
|
|
35366
|
+
}, {
|
|
35367
|
+
default: withCtx(() => [
|
|
35368
|
+
createTextVNode(toDisplayString(cooldownActive.value ? `Resend in ${cooldownSeconds.value}s` : "Resend Code"), 1)
|
|
35369
|
+
]),
|
|
35370
|
+
_: 1
|
|
35371
|
+
}, 8, ["disabled"])
|
|
35372
|
+
]),
|
|
35373
|
+
createElementVNode("div", _hoisted_5$9, [
|
|
35374
|
+
createVNode(unref(CompoundUiButton), {
|
|
35375
|
+
variant: "secondary",
|
|
35376
|
+
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1),
|
|
35377
|
+
disabled: unref(loading2)
|
|
35378
|
+
}, {
|
|
35379
|
+
default: withCtx(() => [..._cache[8] || (_cache[8] = [
|
|
35380
|
+
createTextVNode(" Back ", -1)
|
|
35381
|
+
])]),
|
|
35382
|
+
_: 1
|
|
35383
|
+
}, 8, ["disabled"]),
|
|
35384
|
+
createVNode(unref(CompoundUiButton), {
|
|
35385
|
+
variant: "primary",
|
|
35386
|
+
onClick: verifySetup,
|
|
35387
|
+
disabled: verificationCode.value.length !== 6 || unref(loading2),
|
|
35388
|
+
loading: unref(loading2)
|
|
35389
|
+
}, {
|
|
35390
|
+
default: withCtx(() => [..._cache[9] || (_cache[9] = [
|
|
35391
|
+
createTextVNode(" Verify & Enable ", -1)
|
|
35392
|
+
])]),
|
|
35393
|
+
_: 1
|
|
35394
|
+
}, 8, ["disabled", "loading"])
|
|
35395
|
+
])
|
|
35396
|
+
])) : createCommentVNode("", true),
|
|
35397
|
+
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_6$8, [
|
|
35398
|
+
_cache[13] || (_cache[13] = createElementVNode("div", { class: "email-mfa-setup-completion" }, [
|
|
35399
|
+
createElementVNode("div", { class: "email-mfa-setup-completion-icon" }, [
|
|
35400
|
+
createElementVNode("svg", {
|
|
35401
|
+
class: "email-mfa-setup-check-icon",
|
|
35402
|
+
fill: "none",
|
|
35403
|
+
stroke: "currentColor",
|
|
35404
|
+
viewBox: "0 0 24 24"
|
|
35405
|
+
}, [
|
|
35406
|
+
createElementVNode("path", {
|
|
35407
|
+
"stroke-linecap": "round",
|
|
35408
|
+
"stroke-linejoin": "round",
|
|
35409
|
+
"stroke-width": "2",
|
|
35410
|
+
d: "M5 13l4 4L19 7"
|
|
35411
|
+
})
|
|
35210
35412
|
])
|
|
35211
|
-
], -1)),
|
|
35212
|
-
createVNode(unref(StrandsUiInput), {
|
|
35213
|
-
modelValue: verificationCode.value,
|
|
35214
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => verificationCode.value = $event),
|
|
35215
|
-
label: "Verification Code",
|
|
35216
|
-
placeholder: "123456",
|
|
35217
|
-
maxlength: "6",
|
|
35218
|
-
error: verificationError.value,
|
|
35219
|
-
disabled: unref(loading2),
|
|
35220
|
-
onInput: onVerificationCodeInput
|
|
35221
|
-
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
35222
|
-
createElementVNode("div", _hoisted_5$9, [
|
|
35223
|
-
createVNode(unref(CompoundUiButton), {
|
|
35224
|
-
variant: "secondary",
|
|
35225
|
-
size: "sm",
|
|
35226
|
-
onClick: resendCode,
|
|
35227
|
-
disabled: unref(loading2) || cooldownActive.value
|
|
35228
|
-
}, {
|
|
35229
|
-
default: withCtx(() => [
|
|
35230
|
-
createTextVNode(toDisplayString(cooldownActive.value ? `Resend in ${cooldownSeconds.value}s` : "Resend Code"), 1)
|
|
35231
|
-
]),
|
|
35232
|
-
_: 1
|
|
35233
|
-
}, 8, ["disabled"])
|
|
35234
35413
|
]),
|
|
35235
|
-
createElementVNode("
|
|
35236
|
-
|
|
35237
|
-
|
|
35238
|
-
|
|
35239
|
-
|
|
35240
|
-
|
|
35241
|
-
|
|
35242
|
-
|
|
35243
|
-
|
|
35244
|
-
|
|
35245
|
-
|
|
35246
|
-
|
|
35247
|
-
|
|
35248
|
-
|
|
35249
|
-
|
|
35250
|
-
loading: unref(loading2)
|
|
35251
|
-
}, {
|
|
35252
|
-
default: withCtx(() => [..._cache[9] || (_cache[9] = [
|
|
35253
|
-
createTextVNode(" Verify & Enable ", -1)
|
|
35254
|
-
])]),
|
|
35255
|
-
_: 1
|
|
35256
|
-
}, 8, ["disabled", "loading"])
|
|
35257
|
-
])
|
|
35258
|
-
])) : createCommentVNode("", true),
|
|
35259
|
-
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_7$8, [
|
|
35260
|
-
_cache[13] || (_cache[13] = createElementVNode("div", { class: "email-mfa-setup-completion" }, [
|
|
35261
|
-
createElementVNode("div", { class: "email-mfa-setup-completion-icon" }, [
|
|
35262
|
-
createElementVNode("svg", {
|
|
35263
|
-
class: "email-mfa-setup-check-icon",
|
|
35264
|
-
fill: "none",
|
|
35265
|
-
stroke: "currentColor",
|
|
35266
|
-
viewBox: "0 0 24 24"
|
|
35267
|
-
}, [
|
|
35268
|
-
createElementVNode("path", {
|
|
35269
|
-
"stroke-linecap": "round",
|
|
35270
|
-
"stroke-linejoin": "round",
|
|
35271
|
-
"stroke-width": "2",
|
|
35272
|
-
d: "M5 13l4 4L19 7"
|
|
35273
|
-
})
|
|
35274
|
-
])
|
|
35414
|
+
createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Email 2FA Setup Complete!"),
|
|
35415
|
+
createElementVNode("p", { class: "email-mfa-setup-completion-description" }, " Email verification is now active for your account. You'll receive codes at your registered email address. ")
|
|
35416
|
+
], -1)),
|
|
35417
|
+
_cache[14] || (_cache[14] = createElementVNode("div", { class: "email-mfa-setup-info" }, [
|
|
35418
|
+
createElementVNode("div", { class: "email-mfa-setup-info-content" }, [
|
|
35419
|
+
createElementVNode("svg", {
|
|
35420
|
+
class: "email-mfa-setup-info-icon",
|
|
35421
|
+
fill: "currentColor",
|
|
35422
|
+
viewBox: "0 0 20 20"
|
|
35423
|
+
}, [
|
|
35424
|
+
createElementVNode("path", {
|
|
35425
|
+
"fill-rule": "evenodd",
|
|
35426
|
+
d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",
|
|
35427
|
+
"clip-rule": "evenodd"
|
|
35428
|
+
})
|
|
35275
35429
|
]),
|
|
35276
|
-
createElementVNode("
|
|
35277
|
-
|
|
35278
|
-
|
|
35279
|
-
_cache[14] || (_cache[14] = createElementVNode("div", { class: "email-mfa-setup-info" }, [
|
|
35280
|
-
createElementVNode("div", { class: "email-mfa-setup-info-content" }, [
|
|
35281
|
-
createElementVNode("svg", {
|
|
35282
|
-
class: "email-mfa-setup-info-icon",
|
|
35283
|
-
fill: "currentColor",
|
|
35284
|
-
viewBox: "0 0 20 20"
|
|
35285
|
-
}, [
|
|
35286
|
-
createElementVNode("path", {
|
|
35287
|
-
"fill-rule": "evenodd",
|
|
35288
|
-
d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",
|
|
35289
|
-
"clip-rule": "evenodd"
|
|
35290
|
-
})
|
|
35291
|
-
]),
|
|
35292
|
-
createElementVNode("div", null, [
|
|
35293
|
-
createElementVNode("p", { class: "email-mfa-setup-info-title" }, "How it works"),
|
|
35294
|
-
createElementVNode("p", { class: "email-mfa-setup-info-description" }, " When logging in, you'll receive a 6-digit code at your email address. Enter this code to complete authentication. ")
|
|
35295
|
-
])
|
|
35430
|
+
createElementVNode("div", null, [
|
|
35431
|
+
createElementVNode("p", { class: "email-mfa-setup-info-title" }, "How it works"),
|
|
35432
|
+
createElementVNode("p", { class: "email-mfa-setup-info-description" }, " When logging in, you'll receive a 6-digit code at your email address. Enter this code to complete authentication. ")
|
|
35296
35433
|
])
|
|
35297
|
-
], -1)),
|
|
35298
|
-
createElementVNode("div", _hoisted_8$8, [
|
|
35299
|
-
createVNode(unref(CompoundUiButton), {
|
|
35300
|
-
variant: "primary",
|
|
35301
|
-
onClick: finish
|
|
35302
|
-
}, {
|
|
35303
|
-
default: withCtx(() => [..._cache[12] || (_cache[12] = [
|
|
35304
|
-
createTextVNode(" Done ", -1)
|
|
35305
|
-
])]),
|
|
35306
|
-
_: 1
|
|
35307
|
-
})
|
|
35308
35434
|
])
|
|
35309
|
-
]))
|
|
35310
|
-
|
|
35311
|
-
|
|
35312
|
-
|
|
35313
|
-
|
|
35435
|
+
], -1)),
|
|
35436
|
+
createElementVNode("div", _hoisted_7$8, [
|
|
35437
|
+
createVNode(unref(CompoundUiButton), {
|
|
35438
|
+
variant: "primary",
|
|
35439
|
+
onClick: finish
|
|
35440
|
+
}, {
|
|
35441
|
+
default: withCtx(() => [..._cache[12] || (_cache[12] = [
|
|
35442
|
+
createTextVNode(" Done ", -1)
|
|
35443
|
+
])]),
|
|
35444
|
+
_: 1
|
|
35445
|
+
})
|
|
35446
|
+
])
|
|
35447
|
+
])) : createCommentVNode("", true)
|
|
35448
|
+
]),
|
|
35449
|
+
_: 1
|
|
35450
|
+
}, 8, ["modelValue"]);
|
|
35314
35451
|
};
|
|
35315
35452
|
}
|
|
35316
35453
|
});
|
|
35317
|
-
const StrandsEmailMfaSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-
|
|
35318
|
-
const _hoisted_1$d = {
|
|
35319
|
-
const _hoisted_2$b = {
|
|
35454
|
+
const StrandsEmailMfaSetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-238346d9"]]);
|
|
35455
|
+
const _hoisted_1$d = {
|
|
35320
35456
|
key: 0,
|
|
35321
35457
|
class: "hardware-key-setup-step"
|
|
35322
35458
|
};
|
|
35323
|
-
const
|
|
35324
|
-
const
|
|
35459
|
+
const _hoisted_2$b = { class: "hardware-key-setup-actions" };
|
|
35460
|
+
const _hoisted_3$a = {
|
|
35325
35461
|
key: 1,
|
|
35326
35462
|
class: "hardware-key-setup-step"
|
|
35327
35463
|
};
|
|
35328
|
-
const
|
|
35329
|
-
const
|
|
35330
|
-
const
|
|
35331
|
-
const
|
|
35332
|
-
const
|
|
35464
|
+
const _hoisted_4$a = { class: "hardware-key-setup-instructions" };
|
|
35465
|
+
const _hoisted_5$8 = { class: "hardware-key-setup-instructions-header" };
|
|
35466
|
+
const _hoisted_6$7 = { class: "hardware-key-setup-instructions-list" };
|
|
35467
|
+
const _hoisted_7$7 = { class: "hardware-key-setup-actions" };
|
|
35468
|
+
const _hoisted_8$7 = {
|
|
35333
35469
|
key: 2,
|
|
35334
35470
|
class: "hardware-key-setup-step"
|
|
35335
35471
|
};
|
|
35336
|
-
const
|
|
35337
|
-
const
|
|
35338
|
-
const
|
|
35339
|
-
const
|
|
35472
|
+
const _hoisted_9$7 = { class: "hardware-key-setup-progress" };
|
|
35473
|
+
const _hoisted_10$7 = { class: "hardware-key-setup-progress-icon" };
|
|
35474
|
+
const _hoisted_11$7 = { class: "hardware-key-setup-progress-message" };
|
|
35475
|
+
const _hoisted_12$7 = {
|
|
35340
35476
|
key: 3,
|
|
35341
35477
|
class: "hardware-key-setup-step"
|
|
35342
35478
|
};
|
|
35343
|
-
const
|
|
35344
|
-
const
|
|
35345
|
-
const
|
|
35346
|
-
const
|
|
35347
|
-
const
|
|
35348
|
-
const
|
|
35479
|
+
const _hoisted_13$7 = { class: "hardware-key-setup-backup-codes" };
|
|
35480
|
+
const _hoisted_14$7 = { class: "hardware-key-setup-codes-container" };
|
|
35481
|
+
const _hoisted_15$6 = { class: "hardware-key-setup-codes-grid" };
|
|
35482
|
+
const _hoisted_16$6 = { class: "hardware-key-setup-copy-action" };
|
|
35483
|
+
const _hoisted_17$5 = { class: "hardware-key-setup-final-action" };
|
|
35484
|
+
const _hoisted_18$4 = {
|
|
35349
35485
|
key: 4,
|
|
35350
35486
|
class: "hardware-key-setup-step"
|
|
35351
35487
|
};
|
|
35352
|
-
const
|
|
35353
|
-
const
|
|
35354
|
-
const
|
|
35488
|
+
const _hoisted_19$3 = { class: "hardware-key-setup-error" };
|
|
35489
|
+
const _hoisted_20$3 = { class: "hardware-key-setup-error-message" };
|
|
35490
|
+
const _hoisted_21$3 = { class: "hardware-key-setup-actions" };
|
|
35355
35491
|
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
35356
35492
|
__name: "StrandsHardwareKeySetupModal",
|
|
35357
35493
|
props: {
|
|
@@ -35600,61 +35736,146 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
35600
35736
|
emit("success");
|
|
35601
35737
|
};
|
|
35602
35738
|
return (_ctx, _cache) => {
|
|
35603
|
-
return openBlock(),
|
|
35604
|
-
|
|
35605
|
-
|
|
35606
|
-
|
|
35607
|
-
|
|
35608
|
-
|
|
35609
|
-
|
|
35610
|
-
|
|
35611
|
-
|
|
35612
|
-
|
|
35613
|
-
|
|
35614
|
-
|
|
35615
|
-
|
|
35616
|
-
|
|
35617
|
-
|
|
35618
|
-
|
|
35619
|
-
|
|
35620
|
-
|
|
35621
|
-
|
|
35739
|
+
return openBlock(), createBlock(UiModal, {
|
|
35740
|
+
modelValue: showModal.value,
|
|
35741
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => showModal.value = $event),
|
|
35742
|
+
title: modalTitle.value,
|
|
35743
|
+
"card-class": "hardware-key-setup-modal"
|
|
35744
|
+
}, {
|
|
35745
|
+
default: withCtx(() => [
|
|
35746
|
+
step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_1$d, [
|
|
35747
|
+
_cache[6] || (_cache[6] = createElementVNode("div", null, [
|
|
35748
|
+
createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Name Your Hardware Key"),
|
|
35749
|
+
createElementVNode("p", { class: "hardware-key-setup-step-description" }, ' Give your hardware key a memorable name (e.g., "YubiKey 5", "Work Security Key") ')
|
|
35750
|
+
], -1)),
|
|
35751
|
+
createVNode(unref(StrandsUiInput), {
|
|
35752
|
+
modelValue: deviceName.value,
|
|
35753
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => deviceName.value = $event),
|
|
35754
|
+
label: "Device Name",
|
|
35755
|
+
placeholder: "My Hardware Key",
|
|
35756
|
+
error: deviceNameError.value,
|
|
35757
|
+
disabled: loading2.value
|
|
35758
|
+
}, null, 8, ["modelValue", "error", "disabled"]),
|
|
35759
|
+
createElementVNode("div", _hoisted_2$b, [
|
|
35760
|
+
createVNode(unref(CompoundUiButton), {
|
|
35761
|
+
variant: "secondary",
|
|
35762
|
+
onClick: closeModal,
|
|
35622
35763
|
disabled: loading2.value
|
|
35623
|
-
},
|
|
35624
|
-
|
|
35625
|
-
|
|
35626
|
-
|
|
35627
|
-
|
|
35628
|
-
|
|
35629
|
-
|
|
35630
|
-
|
|
35631
|
-
|
|
35632
|
-
|
|
35633
|
-
|
|
35634
|
-
|
|
35635
|
-
|
|
35636
|
-
|
|
35637
|
-
|
|
35638
|
-
|
|
35639
|
-
|
|
35640
|
-
|
|
35641
|
-
|
|
35642
|
-
|
|
35643
|
-
|
|
35644
|
-
|
|
35645
|
-
|
|
35764
|
+
}, {
|
|
35765
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [
|
|
35766
|
+
createTextVNode(" Cancel ", -1)
|
|
35767
|
+
])]),
|
|
35768
|
+
_: 1
|
|
35769
|
+
}, 8, ["disabled"]),
|
|
35770
|
+
createVNode(unref(CompoundUiButton), {
|
|
35771
|
+
variant: "primary",
|
|
35772
|
+
onClick: startSetup,
|
|
35773
|
+
disabled: !deviceName.value.trim() || loading2.value,
|
|
35774
|
+
loading: loading2.value
|
|
35775
|
+
}, {
|
|
35776
|
+
default: withCtx(() => [..._cache[5] || (_cache[5] = [
|
|
35777
|
+
createTextVNode(" Continue ", -1)
|
|
35778
|
+
])]),
|
|
35779
|
+
_: 1
|
|
35780
|
+
}, 8, ["disabled", "loading"])
|
|
35781
|
+
])
|
|
35782
|
+
])) : createCommentVNode("", true),
|
|
35783
|
+
step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_3$a, [
|
|
35784
|
+
_cache[17] || (_cache[17] = createElementVNode("div", null, [
|
|
35785
|
+
createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Register Hardware Key"),
|
|
35786
|
+
createElementVNode("p", { class: "hardware-key-setup-step-description" }, " Insert your hardware key and follow your browser's prompts to complete registration. ")
|
|
35787
|
+
], -1)),
|
|
35788
|
+
_cache[18] || (_cache[18] = createElementVNode("div", { class: "hardware-key-setup-illustration" }, [
|
|
35789
|
+
createElementVNode("div", { class: "hardware-key-setup-illustration-content" }, [
|
|
35790
|
+
createElementVNode("div", { class: "hardware-key-setup-icon-container" }, [
|
|
35791
|
+
createElementVNode("svg", {
|
|
35792
|
+
class: "hardware-key-setup-icon",
|
|
35793
|
+
fill: "none",
|
|
35794
|
+
stroke: "currentColor",
|
|
35795
|
+
viewBox: "0 0 24 24"
|
|
35796
|
+
}, [
|
|
35797
|
+
createElementVNode("path", {
|
|
35798
|
+
"stroke-linecap": "round",
|
|
35799
|
+
"stroke-linejoin": "round",
|
|
35800
|
+
"stroke-width": "2",
|
|
35801
|
+
d: "M15 7a2 2 0 012 2m0 0a2 2 0 012 2v6a2 2 0 01-2 2H9a2 2 0 01-2-2V9a2 2 0 012-2m0 0V7a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h3m0 0v8m0-8h8m-8 8h8"
|
|
35802
|
+
})
|
|
35803
|
+
])
|
|
35804
|
+
]),
|
|
35805
|
+
createElementVNode("p", { class: "hardware-key-setup-status" }, "Hardware Key Ready"),
|
|
35806
|
+
createElementVNode("p", { class: "hardware-key-setup-substatus" }, 'Click "Register Key" when ready')
|
|
35646
35807
|
])
|
|
35647
|
-
]
|
|
35648
|
-
|
|
35649
|
-
|
|
35650
|
-
createElementVNode("
|
|
35651
|
-
|
|
35652
|
-
|
|
35653
|
-
|
|
35654
|
-
|
|
35655
|
-
createElementVNode("
|
|
35808
|
+
], -1)),
|
|
35809
|
+
createElementVNode("div", _hoisted_4$a, [
|
|
35810
|
+
createElementVNode("div", _hoisted_5$8, [
|
|
35811
|
+
_cache[14] || (_cache[14] = createElementVNode("svg", {
|
|
35812
|
+
class: "hardware-key-setup-info-icon",
|
|
35813
|
+
fill: "currentColor",
|
|
35814
|
+
viewBox: "0 0 20 20"
|
|
35815
|
+
}, [
|
|
35816
|
+
createElementVNode("path", {
|
|
35817
|
+
"fill-rule": "evenodd",
|
|
35818
|
+
d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",
|
|
35819
|
+
"clip-rule": "evenodd"
|
|
35820
|
+
})
|
|
35821
|
+
], -1)),
|
|
35822
|
+
createElementVNode("div", null, [
|
|
35823
|
+
_cache[13] || (_cache[13] = createElementVNode("p", { class: "hardware-key-setup-instructions-title" }, "Setup Instructions", -1)),
|
|
35824
|
+
createElementVNode("ul", _hoisted_6$7, [
|
|
35825
|
+
props.deviceType === "passkey" ? (openBlock(), createElementBlock(Fragment$1, { key: 0 }, [
|
|
35826
|
+
_cache[7] || (_cache[7] = createElementVNode("li", null, "• Your browser will prompt you to create a passkey", -1)),
|
|
35827
|
+
_cache[8] || (_cache[8] = createElementVNode("li", null, "• Use Touch ID, Face ID, Windows Hello, or PIN", -1)),
|
|
35828
|
+
_cache[9] || (_cache[9] = createElementVNode("li", null, "• Follow the prompts to complete setup", -1))
|
|
35829
|
+
], 64)) : (openBlock(), createElementBlock(Fragment$1, { key: 1 }, [
|
|
35830
|
+
_cache[10] || (_cache[10] = createElementVNode("li", null, "• Insert your hardware key into a USB port", -1)),
|
|
35831
|
+
_cache[11] || (_cache[11] = createElementVNode("li", null, "• Your browser will prompt you to interact with the key", -1)),
|
|
35832
|
+
_cache[12] || (_cache[12] = createElementVNode("li", null, "• Touch the key's button or sensor when prompted", -1))
|
|
35833
|
+
], 64))
|
|
35834
|
+
])
|
|
35835
|
+
])
|
|
35836
|
+
])
|
|
35837
|
+
]),
|
|
35838
|
+
createElementVNode("div", _hoisted_7$7, [
|
|
35839
|
+
createVNode(unref(CompoundUiButton), {
|
|
35840
|
+
variant: "secondary",
|
|
35841
|
+
onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
|
|
35842
|
+
disabled: loading2.value
|
|
35843
|
+
}, {
|
|
35844
|
+
default: withCtx(() => [..._cache[15] || (_cache[15] = [
|
|
35845
|
+
createTextVNode(" Back ", -1)
|
|
35846
|
+
])]),
|
|
35847
|
+
_: 1
|
|
35848
|
+
}, 8, ["disabled"]),
|
|
35849
|
+
createVNode(unref(CompoundUiButton), {
|
|
35850
|
+
variant: "primary",
|
|
35851
|
+
onClick: handleRegisterHardwareKey,
|
|
35852
|
+
disabled: loading2.value,
|
|
35853
|
+
loading: loading2.value
|
|
35854
|
+
}, {
|
|
35855
|
+
default: withCtx(() => [..._cache[16] || (_cache[16] = [
|
|
35856
|
+
createTextVNode(" Register Key ", -1)
|
|
35857
|
+
])]),
|
|
35858
|
+
_: 1
|
|
35859
|
+
}, 8, ["disabled", "loading"])
|
|
35860
|
+
])
|
|
35861
|
+
])) : createCommentVNode("", true),
|
|
35862
|
+
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_8$7, [
|
|
35863
|
+
createElementVNode("div", _hoisted_9$7, [
|
|
35864
|
+
createElementVNode("div", _hoisted_10$7, [
|
|
35865
|
+
createVNode(unref(StrandsUiLoader), {
|
|
35866
|
+
size: 24,
|
|
35867
|
+
class: "hardware-key-setup-loader"
|
|
35868
|
+
})
|
|
35869
|
+
]),
|
|
35870
|
+
_cache[19] || (_cache[19] = createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registering Hardware Key", -1)),
|
|
35871
|
+
createElementVNode("p", _hoisted_11$7, toDisplayString(registrationMessage.value), 1)
|
|
35872
|
+
]),
|
|
35873
|
+
_cache[20] || (_cache[20] = createElementVNode("div", { class: "hardware-key-setup-progress-indicator" }, [
|
|
35874
|
+
createElementVNode("div", { class: "hardware-key-setup-progress-content" }, [
|
|
35875
|
+
createElementVNode("div", { class: "hardware-key-setup-progress-check" }, [
|
|
35876
|
+
createElementVNode("div", { class: "hardware-key-setup-check-icon" }, [
|
|
35656
35877
|
createElementVNode("svg", {
|
|
35657
|
-
class: "hardware-key-setup-
|
|
35878
|
+
class: "hardware-key-setup-check",
|
|
35658
35879
|
fill: "none",
|
|
35659
35880
|
stroke: "currentColor",
|
|
35660
35881
|
viewBox: "0 0 24 24"
|
|
@@ -35663,223 +35884,136 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
35663
35884
|
"stroke-linecap": "round",
|
|
35664
35885
|
"stroke-linejoin": "round",
|
|
35665
35886
|
"stroke-width": "2",
|
|
35666
|
-
d: "
|
|
35887
|
+
d: "M5 13l4 4L19 7"
|
|
35667
35888
|
})
|
|
35668
35889
|
])
|
|
35669
|
-
]),
|
|
35670
|
-
createElementVNode("p", { class: "hardware-key-setup-status" }, "Hardware Key Ready"),
|
|
35671
|
-
createElementVNode("p", { class: "hardware-key-setup-substatus" }, 'Click "Register Key" when ready')
|
|
35672
|
-
])
|
|
35673
|
-
], -1)),
|
|
35674
|
-
createElementVNode("div", _hoisted_5$8, [
|
|
35675
|
-
createElementVNode("div", _hoisted_6$7, [
|
|
35676
|
-
_cache[14] || (_cache[14] = createElementVNode("svg", {
|
|
35677
|
-
class: "hardware-key-setup-info-icon",
|
|
35678
|
-
fill: "currentColor",
|
|
35679
|
-
viewBox: "0 0 20 20"
|
|
35680
|
-
}, [
|
|
35681
|
-
createElementVNode("path", {
|
|
35682
|
-
"fill-rule": "evenodd",
|
|
35683
|
-
d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",
|
|
35684
|
-
"clip-rule": "evenodd"
|
|
35685
|
-
})
|
|
35686
|
-
], -1)),
|
|
35687
|
-
createElementVNode("div", null, [
|
|
35688
|
-
_cache[13] || (_cache[13] = createElementVNode("p", { class: "hardware-key-setup-instructions-title" }, "Setup Instructions", -1)),
|
|
35689
|
-
createElementVNode("ul", _hoisted_7$7, [
|
|
35690
|
-
props.deviceType === "passkey" ? (openBlock(), createElementBlock(Fragment$1, { key: 0 }, [
|
|
35691
|
-
_cache[7] || (_cache[7] = createElementVNode("li", null, "• Your browser will prompt you to create a passkey", -1)),
|
|
35692
|
-
_cache[8] || (_cache[8] = createElementVNode("li", null, "• Use Touch ID, Face ID, Windows Hello, or PIN", -1)),
|
|
35693
|
-
_cache[9] || (_cache[9] = createElementVNode("li", null, "• Follow the prompts to complete setup", -1))
|
|
35694
|
-
], 64)) : (openBlock(), createElementBlock(Fragment$1, { key: 1 }, [
|
|
35695
|
-
_cache[10] || (_cache[10] = createElementVNode("li", null, "• Insert your hardware key into a USB port", -1)),
|
|
35696
|
-
_cache[11] || (_cache[11] = createElementVNode("li", null, "• Your browser will prompt you to interact with the key", -1)),
|
|
35697
|
-
_cache[12] || (_cache[12] = createElementVNode("li", null, "• Touch the key's button or sensor when prompted", -1))
|
|
35698
|
-
], 64))
|
|
35699
|
-
])
|
|
35700
35890
|
])
|
|
35891
|
+
]),
|
|
35892
|
+
createElementVNode("p", { class: "hardware-key-setup-progress-text" }, "Touch your hardware key to complete registration")
|
|
35893
|
+
])
|
|
35894
|
+
], -1))
|
|
35895
|
+
])) : createCommentVNode("", true),
|
|
35896
|
+
step.value === 4 ? (openBlock(), createElementBlock("div", _hoisted_12$7, [
|
|
35897
|
+
_cache[24] || (_cache[24] = createElementVNode("div", { class: "hardware-key-setup-success" }, [
|
|
35898
|
+
createElementVNode("div", { class: "hardware-key-setup-success-icon" }, [
|
|
35899
|
+
createElementVNode("svg", {
|
|
35900
|
+
class: "hardware-key-setup-success-check",
|
|
35901
|
+
fill: "none",
|
|
35902
|
+
stroke: "currentColor",
|
|
35903
|
+
viewBox: "0 0 24 24"
|
|
35904
|
+
}, [
|
|
35905
|
+
createElementVNode("path", {
|
|
35906
|
+
"stroke-linecap": "round",
|
|
35907
|
+
"stroke-linejoin": "round",
|
|
35908
|
+
"stroke-width": "2",
|
|
35909
|
+
d: "M5 13l4 4L19 7"
|
|
35910
|
+
})
|
|
35701
35911
|
])
|
|
35702
35912
|
]),
|
|
35703
|
-
createElementVNode("
|
|
35704
|
-
|
|
35705
|
-
|
|
35706
|
-
|
|
35707
|
-
|
|
35708
|
-
|
|
35709
|
-
|
|
35710
|
-
|
|
35711
|
-
|
|
35712
|
-
|
|
35713
|
-
|
|
35714
|
-
|
|
35715
|
-
|
|
35716
|
-
|
|
35717
|
-
disabled: loading2.value,
|
|
35718
|
-
loading: loading2.value
|
|
35719
|
-
}, {
|
|
35720
|
-
default: withCtx(() => [..._cache[16] || (_cache[16] = [
|
|
35721
|
-
createTextVNode(" Register Key ", -1)
|
|
35722
|
-
])]),
|
|
35723
|
-
_: 1
|
|
35724
|
-
}, 8, ["disabled", "loading"])
|
|
35725
|
-
])
|
|
35726
|
-
])) : createCommentVNode("", true),
|
|
35727
|
-
step.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_9$7, [
|
|
35728
|
-
createElementVNode("div", _hoisted_10$7, [
|
|
35729
|
-
createElementVNode("div", _hoisted_11$7, [
|
|
35730
|
-
createVNode(unref(StrandsUiLoader), {
|
|
35731
|
-
size: 24,
|
|
35732
|
-
class: "hardware-key-setup-loader"
|
|
35913
|
+
createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Hardware Key Setup Complete!"),
|
|
35914
|
+
createElementVNode("p", { class: "hardware-key-setup-success-message" }, " Your hardware key is now active for two-factor authentication. ")
|
|
35915
|
+
], -1)),
|
|
35916
|
+
createElementVNode("div", _hoisted_13$7, [
|
|
35917
|
+
_cache[22] || (_cache[22] = createElementVNode("div", { class: "hardware-key-setup-backup-codes-header" }, [
|
|
35918
|
+
createElementVNode("svg", {
|
|
35919
|
+
class: "hardware-key-setup-warning-icon",
|
|
35920
|
+
fill: "currentColor",
|
|
35921
|
+
viewBox: "0 0 20 20"
|
|
35922
|
+
}, [
|
|
35923
|
+
createElementVNode("path", {
|
|
35924
|
+
"fill-rule": "evenodd",
|
|
35925
|
+
d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
|
|
35926
|
+
"clip-rule": "evenodd"
|
|
35733
35927
|
})
|
|
35734
35928
|
]),
|
|
35735
|
-
|
|
35736
|
-
|
|
35737
|
-
|
|
35738
|
-
_cache[20] || (_cache[20] = createElementVNode("div", { class: "hardware-key-setup-progress-indicator" }, [
|
|
35739
|
-
createElementVNode("div", { class: "hardware-key-setup-progress-content" }, [
|
|
35740
|
-
createElementVNode("div", { class: "hardware-key-setup-progress-check" }, [
|
|
35741
|
-
createElementVNode("div", { class: "hardware-key-setup-check-icon" }, [
|
|
35742
|
-
createElementVNode("svg", {
|
|
35743
|
-
class: "hardware-key-setup-check",
|
|
35744
|
-
fill: "none",
|
|
35745
|
-
stroke: "currentColor",
|
|
35746
|
-
viewBox: "0 0 24 24"
|
|
35747
|
-
}, [
|
|
35748
|
-
createElementVNode("path", {
|
|
35749
|
-
"stroke-linecap": "round",
|
|
35750
|
-
"stroke-linejoin": "round",
|
|
35751
|
-
"stroke-width": "2",
|
|
35752
|
-
d: "M5 13l4 4L19 7"
|
|
35753
|
-
})
|
|
35754
|
-
])
|
|
35755
|
-
])
|
|
35756
|
-
]),
|
|
35757
|
-
createElementVNode("p", { class: "hardware-key-setup-progress-text" }, "Touch your hardware key to complete registration")
|
|
35929
|
+
createElementVNode("div", null, [
|
|
35930
|
+
createElementVNode("p", { class: "hardware-key-setup-backup-codes-title" }, "Save These Backup Codes"),
|
|
35931
|
+
createElementVNode("p", { class: "hardware-key-setup-backup-codes-description" }, " Store these codes in a safe place. Each code can only be used once if you lose your hardware key. ")
|
|
35758
35932
|
])
|
|
35759
|
-
], -1))
|
|
35760
|
-
])) : createCommentVNode("", true),
|
|
35761
|
-
step.value === 4 ? (openBlock(), createElementBlock("div", _hoisted_13$7, [
|
|
35762
|
-
_cache[24] || (_cache[24] = createElementVNode("div", { class: "hardware-key-setup-success" }, [
|
|
35763
|
-
createElementVNode("div", { class: "hardware-key-setup-success-icon" }, [
|
|
35764
|
-
createElementVNode("svg", {
|
|
35765
|
-
class: "hardware-key-setup-success-check",
|
|
35766
|
-
fill: "none",
|
|
35767
|
-
stroke: "currentColor",
|
|
35768
|
-
viewBox: "0 0 24 24"
|
|
35769
|
-
}, [
|
|
35770
|
-
createElementVNode("path", {
|
|
35771
|
-
"stroke-linecap": "round",
|
|
35772
|
-
"stroke-linejoin": "round",
|
|
35773
|
-
"stroke-width": "2",
|
|
35774
|
-
d: "M5 13l4 4L19 7"
|
|
35775
|
-
})
|
|
35776
|
-
])
|
|
35777
|
-
]),
|
|
35778
|
-
createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Hardware Key Setup Complete!"),
|
|
35779
|
-
createElementVNode("p", { class: "hardware-key-setup-success-message" }, " Your hardware key is now active for two-factor authentication. ")
|
|
35780
35933
|
], -1)),
|
|
35781
35934
|
createElementVNode("div", _hoisted_14$7, [
|
|
35782
|
-
_cache[22] || (_cache[22] = createElementVNode("div", { class: "hardware-key-setup-backup-codes-header" }, [
|
|
35783
|
-
createElementVNode("svg", {
|
|
35784
|
-
class: "hardware-key-setup-warning-icon",
|
|
35785
|
-
fill: "currentColor",
|
|
35786
|
-
viewBox: "0 0 20 20"
|
|
35787
|
-
}, [
|
|
35788
|
-
createElementVNode("path", {
|
|
35789
|
-
"fill-rule": "evenodd",
|
|
35790
|
-
d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
|
|
35791
|
-
"clip-rule": "evenodd"
|
|
35792
|
-
})
|
|
35793
|
-
]),
|
|
35794
|
-
createElementVNode("div", null, [
|
|
35795
|
-
createElementVNode("p", { class: "hardware-key-setup-backup-codes-title" }, "Save These Backup Codes"),
|
|
35796
|
-
createElementVNode("p", { class: "hardware-key-setup-backup-codes-description" }, " Store these codes in a safe place. Each code can only be used once if you lose your hardware key. ")
|
|
35797
|
-
])
|
|
35798
|
-
], -1)),
|
|
35799
35935
|
createElementVNode("div", _hoisted_15$6, [
|
|
35800
|
-
|
|
35801
|
-
|
|
35802
|
-
|
|
35803
|
-
|
|
35804
|
-
|
|
35805
|
-
|
|
35806
|
-
}), 128))
|
|
35807
|
-
])
|
|
35808
|
-
]),
|
|
35809
|
-
createElementVNode("div", _hoisted_17$5, [
|
|
35810
|
-
createVNode(unref(CompoundUiButton), {
|
|
35811
|
-
variant: "secondary",
|
|
35812
|
-
size: "sm",
|
|
35813
|
-
onClick: copyBackupCodes
|
|
35814
|
-
}, {
|
|
35815
|
-
default: withCtx(() => [..._cache[21] || (_cache[21] = [
|
|
35816
|
-
createTextVNode(" 📋 Copy Codes ", -1)
|
|
35817
|
-
])]),
|
|
35818
|
-
_: 1
|
|
35819
|
-
})
|
|
35936
|
+
(openBlock(true), createElementBlock(Fragment$1, null, renderList(backupCodes.value, (code, index) => {
|
|
35937
|
+
return openBlock(), createElementBlock("div", {
|
|
35938
|
+
key: index,
|
|
35939
|
+
class: "hardware-key-setup-code"
|
|
35940
|
+
}, toDisplayString(code), 1);
|
|
35941
|
+
}), 128))
|
|
35820
35942
|
])
|
|
35821
35943
|
]),
|
|
35822
|
-
createElementVNode("div",
|
|
35823
|
-
createVNode(unref(CompoundUiButton), {
|
|
35824
|
-
variant: "primary",
|
|
35825
|
-
onClick: finish
|
|
35826
|
-
}, {
|
|
35827
|
-
default: withCtx(() => [..._cache[23] || (_cache[23] = [
|
|
35828
|
-
createTextVNode(" Done ", -1)
|
|
35829
|
-
])]),
|
|
35830
|
-
_: 1
|
|
35831
|
-
})
|
|
35832
|
-
])
|
|
35833
|
-
])) : createCommentVNode("", true),
|
|
35834
|
-
step.value === 5 ? (openBlock(), createElementBlock("div", _hoisted_19$3, [
|
|
35835
|
-
createElementVNode("div", _hoisted_20$3, [
|
|
35836
|
-
_cache[25] || (_cache[25] = createElementVNode("div", { class: "hardware-key-setup-error-icon" }, [
|
|
35837
|
-
createElementVNode("svg", {
|
|
35838
|
-
class: "hardware-key-setup-error-x",
|
|
35839
|
-
fill: "none",
|
|
35840
|
-
stroke: "currentColor",
|
|
35841
|
-
viewBox: "0 0 24 24"
|
|
35842
|
-
}, [
|
|
35843
|
-
createElementVNode("path", {
|
|
35844
|
-
"stroke-linecap": "round",
|
|
35845
|
-
"stroke-linejoin": "round",
|
|
35846
|
-
"stroke-width": "2",
|
|
35847
|
-
d: "M6 18L18 6M6 6l12 12"
|
|
35848
|
-
})
|
|
35849
|
-
])
|
|
35850
|
-
], -1)),
|
|
35851
|
-
_cache[26] || (_cache[26] = createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registration Failed", -1)),
|
|
35852
|
-
createElementVNode("p", _hoisted_21$3, toDisplayString(errorMessage.value), 1)
|
|
35853
|
-
]),
|
|
35854
|
-
createElementVNode("div", _hoisted_22$3, [
|
|
35944
|
+
createElementVNode("div", _hoisted_16$6, [
|
|
35855
35945
|
createVNode(unref(CompoundUiButton), {
|
|
35856
35946
|
variant: "secondary",
|
|
35857
|
-
|
|
35858
|
-
|
|
35859
|
-
default: withCtx(() => [..._cache[27] || (_cache[27] = [
|
|
35860
|
-
createTextVNode(" Start Over ", -1)
|
|
35861
|
-
])]),
|
|
35862
|
-
_: 1
|
|
35863
|
-
}),
|
|
35864
|
-
createVNode(unref(CompoundUiButton), {
|
|
35865
|
-
variant: "primary",
|
|
35866
|
-
onClick: closeModal
|
|
35947
|
+
size: "sm",
|
|
35948
|
+
onClick: copyBackupCodes
|
|
35867
35949
|
}, {
|
|
35868
|
-
default: withCtx(() => [..._cache[
|
|
35869
|
-
createTextVNode("
|
|
35950
|
+
default: withCtx(() => [..._cache[21] || (_cache[21] = [
|
|
35951
|
+
createTextVNode(" 📋 Copy Codes ", -1)
|
|
35870
35952
|
])]),
|
|
35871
35953
|
_: 1
|
|
35872
35954
|
})
|
|
35873
35955
|
])
|
|
35874
|
-
])
|
|
35875
|
-
|
|
35876
|
-
|
|
35877
|
-
|
|
35878
|
-
|
|
35956
|
+
]),
|
|
35957
|
+
createElementVNode("div", _hoisted_17$5, [
|
|
35958
|
+
createVNode(unref(CompoundUiButton), {
|
|
35959
|
+
variant: "primary",
|
|
35960
|
+
onClick: finish
|
|
35961
|
+
}, {
|
|
35962
|
+
default: withCtx(() => [..._cache[23] || (_cache[23] = [
|
|
35963
|
+
createTextVNode(" Done ", -1)
|
|
35964
|
+
])]),
|
|
35965
|
+
_: 1
|
|
35966
|
+
})
|
|
35967
|
+
])
|
|
35968
|
+
])) : createCommentVNode("", true),
|
|
35969
|
+
step.value === 5 ? (openBlock(), createElementBlock("div", _hoisted_18$4, [
|
|
35970
|
+
createElementVNode("div", _hoisted_19$3, [
|
|
35971
|
+
_cache[25] || (_cache[25] = createElementVNode("div", { class: "hardware-key-setup-error-icon" }, [
|
|
35972
|
+
createElementVNode("svg", {
|
|
35973
|
+
class: "hardware-key-setup-error-x",
|
|
35974
|
+
fill: "none",
|
|
35975
|
+
stroke: "currentColor",
|
|
35976
|
+
viewBox: "0 0 24 24"
|
|
35977
|
+
}, [
|
|
35978
|
+
createElementVNode("path", {
|
|
35979
|
+
"stroke-linecap": "round",
|
|
35980
|
+
"stroke-linejoin": "round",
|
|
35981
|
+
"stroke-width": "2",
|
|
35982
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
35983
|
+
})
|
|
35984
|
+
])
|
|
35985
|
+
], -1)),
|
|
35986
|
+
_cache[26] || (_cache[26] = createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registration Failed", -1)),
|
|
35987
|
+
createElementVNode("p", _hoisted_20$3, toDisplayString(errorMessage.value), 1)
|
|
35988
|
+
]),
|
|
35989
|
+
createElementVNode("div", _hoisted_21$3, [
|
|
35990
|
+
createVNode(unref(CompoundUiButton), {
|
|
35991
|
+
variant: "secondary",
|
|
35992
|
+
onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1)
|
|
35993
|
+
}, {
|
|
35994
|
+
default: withCtx(() => [..._cache[27] || (_cache[27] = [
|
|
35995
|
+
createTextVNode(" Start Over ", -1)
|
|
35996
|
+
])]),
|
|
35997
|
+
_: 1
|
|
35998
|
+
}),
|
|
35999
|
+
createVNode(unref(CompoundUiButton), {
|
|
36000
|
+
variant: "primary",
|
|
36001
|
+
onClick: closeModal
|
|
36002
|
+
}, {
|
|
36003
|
+
default: withCtx(() => [..._cache[28] || (_cache[28] = [
|
|
36004
|
+
createTextVNode(" Close ", -1)
|
|
36005
|
+
])]),
|
|
36006
|
+
_: 1
|
|
36007
|
+
})
|
|
36008
|
+
])
|
|
36009
|
+
])) : createCommentVNode("", true)
|
|
36010
|
+
]),
|
|
36011
|
+
_: 1
|
|
36012
|
+
}, 8, ["modelValue", "title"]);
|
|
35879
36013
|
};
|
|
35880
36014
|
}
|
|
35881
36015
|
});
|
|
35882
|
-
const StrandsHardwareKeySetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-
|
|
36016
|
+
const StrandsHardwareKeySetupModal = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-40b99818"]]);
|
|
35883
36017
|
const _hoisted_1$c = { class: "accui-component-scope" };
|
|
35884
36018
|
const _hoisted_2$a = {
|
|
35885
36019
|
key: 0,
|
|
@@ -36741,7 +36875,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
36741
36875
|
};
|
|
36742
36876
|
}
|
|
36743
36877
|
});
|
|
36744
|
-
const StrandsMfaModal = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-
|
|
36878
|
+
const StrandsMfaModal = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-64c9f1a1"]]);
|
|
36745
36879
|
const _hoisted_1$9 = { class: "accui-component-scope" };
|
|
36746
36880
|
const _hoisted_2$7 = { class: "settings-content" };
|
|
36747
36881
|
const _hoisted_3$6 = { class: "settings-section" };
|
|
@@ -37358,7 +37492,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
37358
37492
|
};
|
|
37359
37493
|
}
|
|
37360
37494
|
});
|
|
37361
|
-
const StrandsSessionsModal = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-
|
|
37495
|
+
const StrandsSessionsModal = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-d48515ac"]]);
|
|
37362
37496
|
const _hoisted_1$7 = { class: "accui-component-scope" };
|
|
37363
37497
|
const _hoisted_2$5 = { class: "profile-content-layout" };
|
|
37364
37498
|
const _hoisted_3$4 = { class: "profile-image-section" };
|
|
@@ -38210,7 +38344,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38210
38344
|
createElementVNode("p", _hoisted_15$2, toDisplayString(currentUser.value?.email), 1)
|
|
38211
38345
|
]),
|
|
38212
38346
|
createVNode(unref(CompoundUiButton), {
|
|
38213
|
-
|
|
38347
|
+
color: "secondary",
|
|
38214
38348
|
size: "sm",
|
|
38215
38349
|
onClick: _cache[2] || (_cache[2] = ($event) => showEmailChange.value = !showEmailChange.value)
|
|
38216
38350
|
}, {
|
|
@@ -38240,7 +38374,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38240
38374
|
error: emailChangeForm.errors.password
|
|
38241
38375
|
}, null, 8, ["modelValue", "error"]),
|
|
38242
38376
|
createVNode(unref(CompoundUiButton), {
|
|
38243
|
-
|
|
38377
|
+
color: "secondary",
|
|
38244
38378
|
size: "sm",
|
|
38245
38379
|
onClick: handleEmailChange,
|
|
38246
38380
|
disabled: !isEmailChangeFormValid.value || emailChangeLoading.value
|
|
@@ -38262,7 +38396,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38262
38396
|
createElementVNode("p", _hoisted_19, toDisplayString(currentUser.value?.username || "No username set"), 1)
|
|
38263
38397
|
]),
|
|
38264
38398
|
createVNode(unref(CompoundUiButton), {
|
|
38265
|
-
|
|
38399
|
+
color: "secondary",
|
|
38266
38400
|
size: "sm",
|
|
38267
38401
|
disabled: !usernameChangeData.canChange || usernameChangeLoading.value,
|
|
38268
38402
|
onClick: handleToggleUsernameChange
|
|
@@ -38289,7 +38423,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38289
38423
|
class: normalizeClass(["profile-availability-message", usernameAvailability.available ? "success" : "error"])
|
|
38290
38424
|
}, toDisplayString(usernameAvailability.message), 3)) : createCommentVNode("", true),
|
|
38291
38425
|
createVNode(unref(CompoundUiButton), {
|
|
38292
|
-
|
|
38426
|
+
color: "secondary",
|
|
38293
38427
|
size: "sm",
|
|
38294
38428
|
onClick: handleUsernameChange,
|
|
38295
38429
|
disabled: !isUsernameChangeFormValid.value || usernameChangeLoading.value
|
|
@@ -38314,7 +38448,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38314
38448
|
createElementVNode("p", _hoisted_24, "Last updated " + toDisplayString(passwordLastUpdated.value), 1)
|
|
38315
38449
|
]),
|
|
38316
38450
|
createVNode(unref(CompoundUiButton), {
|
|
38317
|
-
|
|
38451
|
+
color: "secondary",
|
|
38318
38452
|
size: "sm",
|
|
38319
38453
|
onClick: _cache[6] || (_cache[6] = ($event) => showPasswordChange.value = !showPasswordChange.value)
|
|
38320
38454
|
}, {
|
|
@@ -38349,7 +38483,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38349
38483
|
autocomplete: "new-password"
|
|
38350
38484
|
}, null, 8, ["modelValue"]),
|
|
38351
38485
|
createVNode(unref(CompoundUiButton), {
|
|
38352
|
-
|
|
38486
|
+
color: "secondary",
|
|
38353
38487
|
size: "sm",
|
|
38354
38488
|
onClick: handlePasswordChange,
|
|
38355
38489
|
disabled: !isPasswordFormValid.value
|
|
@@ -38388,7 +38522,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38388
38522
|
])) : createCommentVNode("", true)
|
|
38389
38523
|
]),
|
|
38390
38524
|
createVNode(unref(CompoundUiButton), {
|
|
38391
|
-
|
|
38525
|
+
color: "secondary",
|
|
38392
38526
|
size: "sm",
|
|
38393
38527
|
class: "profile-toggle-container",
|
|
38394
38528
|
onClick: _cache[10] || (_cache[10] = ($event) => showMfaModal.value = true)
|
|
@@ -38410,7 +38544,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38410
38544
|
]),
|
|
38411
38545
|
createElementVNode("div", _hoisted_36, [
|
|
38412
38546
|
createVNode(unref(CompoundUiButton), {
|
|
38413
|
-
|
|
38547
|
+
color: "secondary",
|
|
38414
38548
|
size: "sm",
|
|
38415
38549
|
disabled: loadingSessions.value,
|
|
38416
38550
|
onClick: _cache[11] || (_cache[11] = ($event) => showSessionsModal.value = true)
|
|
@@ -38428,7 +38562,6 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38428
38562
|
hasChanges.value ? (openBlock(), createElementBlock("div", _hoisted_37, [
|
|
38429
38563
|
createVNode(unref(CompoundUiButton), {
|
|
38430
38564
|
type: "submit",
|
|
38431
|
-
variant: "primary",
|
|
38432
38565
|
disabled: loading2.value,
|
|
38433
38566
|
loading: loading2.value
|
|
38434
38567
|
}, {
|
|
@@ -38438,7 +38571,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38438
38571
|
_: 1
|
|
38439
38572
|
}, 8, ["disabled", "loading"]),
|
|
38440
38573
|
createVNode(unref(CompoundUiButton), {
|
|
38441
|
-
|
|
38574
|
+
color: "secondary",
|
|
38442
38575
|
onClick: handleCancel,
|
|
38443
38576
|
disabled: loading2.value
|
|
38444
38577
|
}, {
|
|
@@ -38504,7 +38637,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38504
38637
|
createVNode(StrandsSettingsModal, { onSettingsUpdated: handleSettingsUpdated }, {
|
|
38505
38638
|
trigger: withCtx(() => [
|
|
38506
38639
|
createVNode(unref(CompoundUiButton), {
|
|
38507
|
-
|
|
38640
|
+
color: "secondary",
|
|
38508
38641
|
class: "profile-sign-out-button"
|
|
38509
38642
|
}, {
|
|
38510
38643
|
default: withCtx(() => [..._cache[27] || (_cache[27] = [
|
|
@@ -38603,7 +38736,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
38603
38736
|
};
|
|
38604
38737
|
}
|
|
38605
38738
|
});
|
|
38606
|
-
const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-
|
|
38739
|
+
const StrandsUserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-76c0144a"]]);
|
|
38607
38740
|
const _hoisted_1$6 = { class: "accui-component-scope" };
|
|
38608
38741
|
const _hoisted_2$4 = { class: "accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up" };
|
|
38609
38742
|
const _hoisted_3$3 = { class: "accui-mt-8 accui-text-center" };
|
|
@@ -39017,7 +39150,26 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
39017
39150
|
const showProfileModal = ref(false);
|
|
39018
39151
|
const showSignInModal = ref(false);
|
|
39019
39152
|
const containerRef = ref();
|
|
39020
|
-
const
|
|
39153
|
+
const triggerRef = ref();
|
|
39154
|
+
const dropdownRef = ref();
|
|
39155
|
+
const triggerElement = computed(() => {
|
|
39156
|
+
const element = triggerRef.value?.$el;
|
|
39157
|
+
console.log("Trigger element:", element);
|
|
39158
|
+
return element;
|
|
39159
|
+
});
|
|
39160
|
+
const { floatingStyle, updatePosition } = useFloatingPosition({
|
|
39161
|
+
trigger: triggerElement,
|
|
39162
|
+
floating: dropdownRef,
|
|
39163
|
+
placement: "bottom-end",
|
|
39164
|
+
offset: 8,
|
|
39165
|
+
shift: true,
|
|
39166
|
+
flip: true,
|
|
39167
|
+
autoUpdate: true,
|
|
39168
|
+
clickOutside: {
|
|
39169
|
+
enabled: true,
|
|
39170
|
+
handler: () => closeDropdown()
|
|
39171
|
+
}
|
|
39172
|
+
});
|
|
39021
39173
|
const user = computed(() => {
|
|
39022
39174
|
if (props.user) return props.user;
|
|
39023
39175
|
return isAuthenticated.value ? currentUser.value : null;
|
|
@@ -39037,17 +39189,17 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
39037
39189
|
});
|
|
39038
39190
|
const toggleDropdown = () => {
|
|
39039
39191
|
showDropdown.value = !showDropdown.value;
|
|
39192
|
+
console.log("Dropdown visible:", showDropdown.value);
|
|
39193
|
+
console.log("Trigger element when toggling:", triggerElement.value);
|
|
39040
39194
|
if (showDropdown.value) {
|
|
39041
39195
|
nextTick(() => {
|
|
39042
|
-
|
|
39196
|
+
updatePosition();
|
|
39197
|
+
console.log("Floating style after update:", floatingStyle.value);
|
|
39043
39198
|
});
|
|
39044
39199
|
}
|
|
39045
39200
|
};
|
|
39046
39201
|
const openDropdown = () => {
|
|
39047
39202
|
showDropdown.value = true;
|
|
39048
|
-
nextTick(() => {
|
|
39049
|
-
profileButtonRef.value?.focus();
|
|
39050
|
-
});
|
|
39051
39203
|
};
|
|
39052
39204
|
const closeDropdown = () => {
|
|
39053
39205
|
showDropdown.value = false;
|
|
@@ -39057,7 +39209,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
39057
39209
|
const focusPrevious = () => {
|
|
39058
39210
|
};
|
|
39059
39211
|
const focusFirst = () => {
|
|
39060
|
-
|
|
39212
|
+
triggerRef.value?.$el?.focus();
|
|
39061
39213
|
};
|
|
39062
39214
|
const focusLast = () => {
|
|
39063
39215
|
};
|
|
@@ -39087,17 +39239,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
39087
39239
|
} catch (error) {
|
|
39088
39240
|
}
|
|
39089
39241
|
};
|
|
39090
|
-
const handleClickOutside = (event) => {
|
|
39091
|
-
if (containerRef.value && !containerRef.value.contains(event.target)) {
|
|
39092
|
-
closeDropdown();
|
|
39093
|
-
}
|
|
39094
|
-
};
|
|
39095
|
-
onMounted(() => {
|
|
39096
|
-
document.addEventListener("click", handleClickOutside);
|
|
39097
|
-
});
|
|
39098
|
-
onUnmounted(() => {
|
|
39099
|
-
document.removeEventListener("click", handleClickOutside);
|
|
39100
|
-
});
|
|
39101
39242
|
return (_ctx, _cache) => {
|
|
39102
39243
|
return openBlock(), createElementBlock("div", {
|
|
39103
39244
|
class: "accui-component-scope",
|
|
@@ -39107,8 +39248,57 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
39107
39248
|
createVNode(SignedIn, {
|
|
39108
39249
|
invert: !!props.user
|
|
39109
39250
|
}, {
|
|
39251
|
+
fallback: withCtx(() => [
|
|
39252
|
+
createVNode(unref(CompoundUiButton), {
|
|
39253
|
+
onClick: openSignIn,
|
|
39254
|
+
"aria-label": "Sign in"
|
|
39255
|
+
}, {
|
|
39256
|
+
default: withCtx(() => [..._cache[8] || (_cache[8] = [
|
|
39257
|
+
createElementVNode("svg", {
|
|
39258
|
+
class: "sign-in-icon",
|
|
39259
|
+
fill: "none",
|
|
39260
|
+
stroke: "currentColor",
|
|
39261
|
+
viewBox: "0 0 24 24"
|
|
39262
|
+
}, [
|
|
39263
|
+
createElementVNode("path", {
|
|
39264
|
+
"stroke-linecap": "round",
|
|
39265
|
+
"stroke-linejoin": "round",
|
|
39266
|
+
"stroke-width": "2",
|
|
39267
|
+
d: "M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
|
|
39268
|
+
})
|
|
39269
|
+
], -1),
|
|
39270
|
+
createElementVNode("span", null, "Sign In", -1)
|
|
39271
|
+
])]),
|
|
39272
|
+
_: 1
|
|
39273
|
+
}),
|
|
39274
|
+
createVNode(unref(UiModal), {
|
|
39275
|
+
modelValue: showSignInModal.value,
|
|
39276
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showSignInModal.value = $event),
|
|
39277
|
+
"fullscreen-on-mobile": false
|
|
39278
|
+
}, {
|
|
39279
|
+
default: withCtx(() => [
|
|
39280
|
+
createElementVNode("div", _hoisted_17$1, [
|
|
39281
|
+
createVNode(unref(StrandsAuth), {
|
|
39282
|
+
onSignedIn: handleSignedIn,
|
|
39283
|
+
onError: handleSignInError,
|
|
39284
|
+
"redirect-url": _ctx.redirectUrl,
|
|
39285
|
+
"in-modal": ""
|
|
39286
|
+
}, null, 8, ["redirect-url"])
|
|
39287
|
+
])
|
|
39288
|
+
]),
|
|
39289
|
+
_: 1
|
|
39290
|
+
}, 8, ["modelValue"])
|
|
39291
|
+
]),
|
|
39292
|
+
loading: withCtx(() => [
|
|
39293
|
+
createVNode(StrandsUiLoader, {
|
|
39294
|
+
variant: "circle",
|
|
39295
|
+
size: 30
|
|
39296
|
+
})
|
|
39297
|
+
]),
|
|
39110
39298
|
default: withCtx(() => [
|
|
39111
39299
|
createVNode(unref(CompoundUiButton), {
|
|
39300
|
+
ref_key: "triggerRef",
|
|
39301
|
+
ref: triggerRef,
|
|
39112
39302
|
color: "secondary",
|
|
39113
39303
|
active: showDropdown.value,
|
|
39114
39304
|
onClick: toggleDropdown,
|
|
@@ -39165,99 +39355,96 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
39165
39355
|
d: "M19 9l-7 7-7-7"
|
|
39166
39356
|
}, null, -1)
|
|
39167
39357
|
])], 2))
|
|
39168
|
-
])
|
|
39169
|
-
createVNode(Transition, { name: "dropdown" }, {
|
|
39170
|
-
default: withCtx(() => [
|
|
39171
|
-
showDropdown.value ? (openBlock(), createElementBlock("div", {
|
|
39172
|
-
key: 0,
|
|
39173
|
-
class: normalizeClass([
|
|
39174
|
-
"dropdown-menu",
|
|
39175
|
-
`dropdown-menu-align-${props.menuAlign}`,
|
|
39176
|
-
`dropdown-menu-vertical-${props.menuVerticalAlign}`
|
|
39177
|
-
]),
|
|
39178
|
-
role: "menu",
|
|
39179
|
-
"aria-orientation": "vertical",
|
|
39180
|
-
onKeydown: [
|
|
39181
|
-
withKeys(closeDropdown, ["escape"]),
|
|
39182
|
-
withKeys(withModifiers(focusPrevious, ["prevent"]), ["arrow-up"]),
|
|
39183
|
-
withKeys(withModifiers(focusNext, ["prevent"]), ["arrow-down"]),
|
|
39184
|
-
withKeys(withModifiers(focusFirst, ["prevent"]), ["home"]),
|
|
39185
|
-
withKeys(withModifiers(focusLast, ["prevent"]), ["end"])
|
|
39186
|
-
]
|
|
39187
|
-
}, [
|
|
39188
|
-
createElementVNode("div", _hoisted_9$1, [
|
|
39189
|
-
createElementVNode("div", _hoisted_10$1, [
|
|
39190
|
-
user.value ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
|
|
39191
|
-
createVNode(unref(UiLevelProgress), {
|
|
39192
|
-
size: 80,
|
|
39193
|
-
value: user.value.xp,
|
|
39194
|
-
max: user.value.next_level_xp,
|
|
39195
|
-
level: user.value.level,
|
|
39196
|
-
"level-label": `LEVEL ${user.value.level}`,
|
|
39197
|
-
"user-settings": user.value.settings,
|
|
39198
|
-
class: "level-progress-overlay"
|
|
39199
|
-
}, null, 8, ["value", "max", "level", "level-label", "user-settings"]),
|
|
39200
|
-
user.value?.avatar ? (openBlock(), createElementBlock("img", {
|
|
39201
|
-
key: 0,
|
|
39202
|
-
src: user.value.avatar,
|
|
39203
|
-
alt: `${user.value.firstName || user.value.email}'s avatar`,
|
|
39204
|
-
class: "dropdown-avatar-image",
|
|
39205
|
-
width: "64",
|
|
39206
|
-
height: "64"
|
|
39207
|
-
}, null, 8, _hoisted_12$1)) : (openBlock(), createElementBlock("div", _hoisted_13$1, [..._cache[4] || (_cache[4] = [
|
|
39208
|
-
createElementVNode("svg", {
|
|
39209
|
-
class: "dropdown-avatar-icon",
|
|
39210
|
-
fill: "currentColor",
|
|
39211
|
-
viewBox: "0 0 20 20"
|
|
39212
|
-
}, [
|
|
39213
|
-
createElementVNode("path", {
|
|
39214
|
-
"fill-rule": "evenodd",
|
|
39215
|
-
d: "M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z",
|
|
39216
|
-
"clip-rule": "evenodd"
|
|
39217
|
-
})
|
|
39218
|
-
], -1)
|
|
39219
|
-
])]))
|
|
39220
|
-
])) : createCommentVNode("", true),
|
|
39221
|
-
createElementVNode("div", _hoisted_14$1, [
|
|
39222
|
-
createElementVNode("div", _hoisted_15$1, toDisplayString(displayName.value), 1),
|
|
39223
|
-
createElementVNode("div", _hoisted_16$1, toDisplayString(user.value?.email), 1)
|
|
39224
|
-
])
|
|
39225
|
-
]),
|
|
39226
|
-
_cache[7] || (_cache[7] = createElementVNode("div", { class: "dropdown-divider" }, null, -1)),
|
|
39227
|
-
renderSlot(_ctx.$slots, "default", {}, void 0, true),
|
|
39228
|
-
_cache[8] || (_cache[8] = createElementVNode("div", { class: "dropdown-divider" }, null, -1)),
|
|
39229
|
-
createVNode(unref(StrandsNav), null, {
|
|
39230
|
-
default: withCtx(() => [
|
|
39231
|
-
createVNode(unref(StrandsNav).Item, { onClick: openProfile }, {
|
|
39232
|
-
default: withCtx(() => [..._cache[5] || (_cache[5] = [
|
|
39233
|
-
createTextVNode("Profile", -1)
|
|
39234
|
-
])]),
|
|
39235
|
-
_: 1
|
|
39236
|
-
}),
|
|
39237
|
-
createVNode(unref(StrandsNav).Item, {
|
|
39238
|
-
onClick: handleSignOut,
|
|
39239
|
-
color: "danger"
|
|
39240
|
-
}, {
|
|
39241
|
-
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
39242
|
-
createTextVNode("Sign Out", -1)
|
|
39243
|
-
])]),
|
|
39244
|
-
_: 1
|
|
39245
|
-
})
|
|
39246
|
-
]),
|
|
39247
|
-
_: 1
|
|
39248
|
-
})
|
|
39249
|
-
])
|
|
39250
|
-
], 42, _hoisted_8$1)) : createCommentVNode("", true)
|
|
39251
|
-
]),
|
|
39252
|
-
_: 3
|
|
39253
|
-
})
|
|
39358
|
+
])
|
|
39254
39359
|
]),
|
|
39255
|
-
_:
|
|
39360
|
+
_: 1
|
|
39256
39361
|
}, 8, ["active", "onKeydown", "aria-expanded"]),
|
|
39362
|
+
(openBlock(), createBlock(Teleport, { to: "body" }, [
|
|
39363
|
+
showDropdown.value ? (openBlock(), createElementBlock("div", {
|
|
39364
|
+
key: 0,
|
|
39365
|
+
ref_key: "dropdownRef",
|
|
39366
|
+
ref: dropdownRef,
|
|
39367
|
+
class: "strands-user-dropdown",
|
|
39368
|
+
style: normalizeStyle(unref(floatingStyle)),
|
|
39369
|
+
role: "menu",
|
|
39370
|
+
"aria-orientation": "vertical",
|
|
39371
|
+
onKeydown: [
|
|
39372
|
+
withKeys(closeDropdown, ["escape"]),
|
|
39373
|
+
withKeys(withModifiers(focusPrevious, ["prevent"]), ["arrow-up"]),
|
|
39374
|
+
withKeys(withModifiers(focusNext, ["prevent"]), ["arrow-down"]),
|
|
39375
|
+
withKeys(withModifiers(focusFirst, ["prevent"]), ["home"]),
|
|
39376
|
+
withKeys(withModifiers(focusLast, ["prevent"]), ["end"])
|
|
39377
|
+
]
|
|
39378
|
+
}, [
|
|
39379
|
+
createElementVNode("div", _hoisted_9$1, [
|
|
39380
|
+
createElementVNode("div", _hoisted_10$1, [
|
|
39381
|
+
user.value ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
|
|
39382
|
+
createVNode(unref(UiLevelProgress), {
|
|
39383
|
+
size: 80,
|
|
39384
|
+
value: user.value.xp,
|
|
39385
|
+
max: user.value.next_level_xp,
|
|
39386
|
+
level: user.value.level,
|
|
39387
|
+
"level-label": `LEVEL ${user.value.level}`,
|
|
39388
|
+
"user-settings": user.value.settings,
|
|
39389
|
+
class: "level-progress-overlay"
|
|
39390
|
+
}, null, 8, ["value", "max", "level", "level-label", "user-settings"]),
|
|
39391
|
+
user.value?.avatar ? (openBlock(), createElementBlock("img", {
|
|
39392
|
+
key: 0,
|
|
39393
|
+
src: user.value.avatar,
|
|
39394
|
+
alt: `${user.value.firstName || user.value.email}'s avatar`,
|
|
39395
|
+
class: "dropdown-avatar-image",
|
|
39396
|
+
width: "64",
|
|
39397
|
+
height: "64"
|
|
39398
|
+
}, null, 8, _hoisted_12$1)) : (openBlock(), createElementBlock("div", _hoisted_13$1, [..._cache[4] || (_cache[4] = [
|
|
39399
|
+
createElementVNode("svg", {
|
|
39400
|
+
class: "dropdown-avatar-icon",
|
|
39401
|
+
fill: "currentColor",
|
|
39402
|
+
viewBox: "0 0 20 20"
|
|
39403
|
+
}, [
|
|
39404
|
+
createElementVNode("path", {
|
|
39405
|
+
"fill-rule": "evenodd",
|
|
39406
|
+
d: "M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z",
|
|
39407
|
+
"clip-rule": "evenodd"
|
|
39408
|
+
})
|
|
39409
|
+
], -1)
|
|
39410
|
+
])]))
|
|
39411
|
+
])) : createCommentVNode("", true),
|
|
39412
|
+
createElementVNode("div", _hoisted_14$1, [
|
|
39413
|
+
createElementVNode("div", _hoisted_15$1, toDisplayString(displayName.value), 1),
|
|
39414
|
+
createElementVNode("div", _hoisted_16$1, toDisplayString(user.value?.email), 1)
|
|
39415
|
+
])
|
|
39416
|
+
]),
|
|
39417
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true),
|
|
39418
|
+
_cache[7] || (_cache[7] = createElementVNode("div", { class: "dropdown-divider" }, null, -1)),
|
|
39419
|
+
createVNode(unref(StrandsNav), null, {
|
|
39420
|
+
default: withCtx(() => [
|
|
39421
|
+
createVNode(unref(StrandsNav).Item, {
|
|
39422
|
+
color: "secondary",
|
|
39423
|
+
onClick: openProfile
|
|
39424
|
+
}, {
|
|
39425
|
+
default: withCtx(() => [..._cache[5] || (_cache[5] = [
|
|
39426
|
+
createTextVNode("Profile", -1)
|
|
39427
|
+
])]),
|
|
39428
|
+
_: 1
|
|
39429
|
+
}),
|
|
39430
|
+
createVNode(unref(StrandsNav).Item, {
|
|
39431
|
+
color: "danger",
|
|
39432
|
+
onClick: handleSignOut
|
|
39433
|
+
}, {
|
|
39434
|
+
default: withCtx(() => [..._cache[6] || (_cache[6] = [
|
|
39435
|
+
createTextVNode("Sign Out", -1)
|
|
39436
|
+
])]),
|
|
39437
|
+
_: 1
|
|
39438
|
+
})
|
|
39439
|
+
]),
|
|
39440
|
+
_: 1
|
|
39441
|
+
})
|
|
39442
|
+
])
|
|
39443
|
+
], 44, _hoisted_8$1)) : createCommentVNode("", true)
|
|
39444
|
+
])),
|
|
39257
39445
|
createVNode(unref(UiModal), {
|
|
39258
39446
|
modelValue: showProfileModal.value,
|
|
39259
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showProfileModal.value = $event)
|
|
39260
|
-
"fullscreen-on-mobile": false
|
|
39447
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showProfileModal.value = $event)
|
|
39261
39448
|
}, {
|
|
39262
39449
|
default: withCtx(() => [
|
|
39263
39450
|
createVNode(unref(StrandsUserProfile), {
|
|
@@ -39270,60 +39457,13 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
39270
39457
|
_: 1
|
|
39271
39458
|
}, 8, ["modelValue"])
|
|
39272
39459
|
]),
|
|
39273
|
-
fallback: withCtx(() => [
|
|
39274
|
-
createVNode(unref(CompoundUiButton), {
|
|
39275
|
-
onClick: openSignIn,
|
|
39276
|
-
"aria-label": "Sign in"
|
|
39277
|
-
}, {
|
|
39278
|
-
default: withCtx(() => [..._cache[9] || (_cache[9] = [
|
|
39279
|
-
createElementVNode("svg", {
|
|
39280
|
-
class: "sign-in-icon",
|
|
39281
|
-
fill: "none",
|
|
39282
|
-
stroke: "currentColor",
|
|
39283
|
-
viewBox: "0 0 24 24"
|
|
39284
|
-
}, [
|
|
39285
|
-
createElementVNode("path", {
|
|
39286
|
-
"stroke-linecap": "round",
|
|
39287
|
-
"stroke-linejoin": "round",
|
|
39288
|
-
"stroke-width": "2",
|
|
39289
|
-
d: "M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
|
|
39290
|
-
})
|
|
39291
|
-
], -1),
|
|
39292
|
-
createElementVNode("span", null, "Sign In", -1)
|
|
39293
|
-
])]),
|
|
39294
|
-
_: 1
|
|
39295
|
-
}),
|
|
39296
|
-
createVNode(unref(UiModal), {
|
|
39297
|
-
modelValue: showSignInModal.value,
|
|
39298
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showSignInModal.value = $event),
|
|
39299
|
-
"fullscreen-on-mobile": false
|
|
39300
|
-
}, {
|
|
39301
|
-
default: withCtx(() => [
|
|
39302
|
-
createElementVNode("div", _hoisted_17$1, [
|
|
39303
|
-
createVNode(unref(StrandsAuth), {
|
|
39304
|
-
onSignedIn: handleSignedIn,
|
|
39305
|
-
onError: handleSignInError,
|
|
39306
|
-
"redirect-url": _ctx.redirectUrl,
|
|
39307
|
-
"in-modal": ""
|
|
39308
|
-
}, null, 8, ["redirect-url"])
|
|
39309
|
-
])
|
|
39310
|
-
]),
|
|
39311
|
-
_: 1
|
|
39312
|
-
}, 8, ["modelValue"])
|
|
39313
|
-
]),
|
|
39314
|
-
loading: withCtx(() => [
|
|
39315
|
-
createVNode(StrandsUiLoader, {
|
|
39316
|
-
variant: "circle",
|
|
39317
|
-
size: 30
|
|
39318
|
-
})
|
|
39319
|
-
]),
|
|
39320
39460
|
_: 3
|
|
39321
39461
|
}, 8, ["invert"])
|
|
39322
39462
|
], 512);
|
|
39323
39463
|
};
|
|
39324
39464
|
}
|
|
39325
39465
|
});
|
|
39326
|
-
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-
|
|
39466
|
+
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-c4df5354"]]);
|
|
39327
39467
|
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
39328
39468
|
__name: "StrandsNav",
|
|
39329
39469
|
props: {
|
|
@@ -39372,7 +39512,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
39372
39512
|
const StrandsNavComponent = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-dfb31e47"]]);
|
|
39373
39513
|
const _hoisted_1$2 = {
|
|
39374
39514
|
key: 0,
|
|
39375
|
-
class: "nav-item-icon",
|
|
39515
|
+
class: "strands-nav-item-icon",
|
|
39376
39516
|
fill: "none",
|
|
39377
39517
|
stroke: "currentColor",
|
|
39378
39518
|
viewBox: "0 0 24 24"
|
|
@@ -39380,7 +39520,7 @@ const _hoisted_1$2 = {
|
|
|
39380
39520
|
const _hoisted_2$1 = ["d"];
|
|
39381
39521
|
const _hoisted_3$1 = {
|
|
39382
39522
|
key: 0,
|
|
39383
|
-
class: "nav-item-icon",
|
|
39523
|
+
class: "strands-nav-item-icon",
|
|
39384
39524
|
fill: "none",
|
|
39385
39525
|
stroke: "currentColor",
|
|
39386
39526
|
viewBox: "0 0 24 24"
|
|
@@ -39389,14 +39529,20 @@ const _hoisted_4$1 = ["d"];
|
|
|
39389
39529
|
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
39390
39530
|
__name: "StrandsNavItem",
|
|
39391
39531
|
props: {
|
|
39392
|
-
type: {},
|
|
39393
|
-
to: {},
|
|
39394
|
-
icon: {},
|
|
39395
|
-
disabled: { type: Boolean, default: false },
|
|
39396
|
-
color: { default: "default" },
|
|
39397
39532
|
variant: { default: "primary" },
|
|
39398
39533
|
size: { default: "sm" },
|
|
39399
|
-
|
|
39534
|
+
type: {},
|
|
39535
|
+
disabled: { type: Boolean, default: false },
|
|
39536
|
+
loading: { type: Boolean },
|
|
39537
|
+
loadingText: {},
|
|
39538
|
+
fullWidth: { type: Boolean },
|
|
39539
|
+
color: { default: "secondary" },
|
|
39540
|
+
fontWeight: {},
|
|
39541
|
+
icon: { type: Boolean },
|
|
39542
|
+
squircle: { type: Boolean, default: true },
|
|
39543
|
+
to: {},
|
|
39544
|
+
href: {},
|
|
39545
|
+
external: { type: Boolean }
|
|
39400
39546
|
},
|
|
39401
39547
|
setup(__props) {
|
|
39402
39548
|
const props = __props;
|
|
@@ -39433,45 +39579,15 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
39433
39579
|
return "";
|
|
39434
39580
|
}
|
|
39435
39581
|
};
|
|
39436
|
-
const getActualType = () => {
|
|
39437
|
-
return props.type || (props.to ? "link" : "button");
|
|
39438
|
-
};
|
|
39439
|
-
const getActualFullWidth = () => {
|
|
39440
|
-
if (props.fullWidth !== void 0) {
|
|
39441
|
-
return props.fullWidth;
|
|
39442
|
-
}
|
|
39443
|
-
if (props.type === "button") {
|
|
39444
|
-
return false;
|
|
39445
|
-
} else {
|
|
39446
|
-
return true;
|
|
39447
|
-
}
|
|
39448
|
-
};
|
|
39449
|
-
const getNavItemComponent = () => {
|
|
39450
|
-
const actualType = getActualType();
|
|
39451
|
-
if (actualType === "button" && props.type === "button") {
|
|
39452
|
-
return CompoundUiButton;
|
|
39453
|
-
} else if (props.to) {
|
|
39454
|
-
return "router-link";
|
|
39455
|
-
} else {
|
|
39456
|
-
return "button";
|
|
39457
|
-
}
|
|
39458
|
-
};
|
|
39459
39582
|
const getNavItemClasses = () => {
|
|
39460
|
-
|
|
39461
|
-
if (actualType === "button" && props.type === "button") {
|
|
39583
|
+
if (props.type === "button") {
|
|
39462
39584
|
return "";
|
|
39463
39585
|
} else {
|
|
39464
39586
|
const classes = [
|
|
39465
|
-
"nav-item",
|
|
39466
|
-
`nav-item-${
|
|
39467
|
-
|
|
39468
|
-
{ "nav-item-disabled": props.disabled }
|
|
39587
|
+
"strands-nav-item",
|
|
39588
|
+
`strands-nav-item--color-${props.color}`,
|
|
39589
|
+
{ "strands-nav-item--disabled": props.disabled }
|
|
39469
39590
|
];
|
|
39470
|
-
if (getActualFullWidth()) {
|
|
39471
|
-
classes.push("nav-item-full-width");
|
|
39472
|
-
} else {
|
|
39473
|
-
classes.push("nav-item-inline");
|
|
39474
|
-
}
|
|
39475
39591
|
return classes;
|
|
39476
39592
|
}
|
|
39477
39593
|
};
|
|
@@ -39511,15 +39627,16 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
39511
39627
|
}
|
|
39512
39628
|
}, { deep: true });
|
|
39513
39629
|
return (_ctx, _cache) => {
|
|
39514
|
-
return openBlock(), createBlock(
|
|
39630
|
+
return openBlock(), createBlock(unref(CompoundUiButton), {
|
|
39515
39631
|
to: props.to,
|
|
39516
39632
|
onClick: handleClick2,
|
|
39517
39633
|
class: normalizeClass(getNavItemClasses()),
|
|
39518
39634
|
variant: props.variant,
|
|
39519
|
-
size: props.size,
|
|
39520
39635
|
color: props.color,
|
|
39636
|
+
size: props.size,
|
|
39637
|
+
squircle: props.squircle,
|
|
39521
39638
|
disabled: props.disabled,
|
|
39522
|
-
"full-width":
|
|
39639
|
+
"full-width": "",
|
|
39523
39640
|
role: isInMenuContext.value ? "menuitem" : void 0,
|
|
39524
39641
|
tabindex: "-1"
|
|
39525
39642
|
}, createSlots({
|
|
@@ -39532,7 +39649,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
39532
39649
|
d: getIconPath(props.icon)
|
|
39533
39650
|
}, null, 8, _hoisted_4$1)
|
|
39534
39651
|
])) : createCommentVNode("", true),
|
|
39535
|
-
renderSlot(_ctx.$slots, "default"
|
|
39652
|
+
renderSlot(_ctx.$slots, "default")
|
|
39536
39653
|
]),
|
|
39537
39654
|
_: 2
|
|
39538
39655
|
}, [
|
|
@@ -39550,13 +39667,12 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
39550
39667
|
]),
|
|
39551
39668
|
key: "0"
|
|
39552
39669
|
} : void 0
|
|
39553
|
-
]), 1032, ["to", "class", "variant", "
|
|
39670
|
+
]), 1032, ["to", "class", "variant", "color", "size", "squircle", "disabled", "role"]);
|
|
39554
39671
|
};
|
|
39555
39672
|
}
|
|
39556
39673
|
});
|
|
39557
|
-
const StrandsNavItem = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-7ba66b20"]]);
|
|
39558
39674
|
const StrandsNav = StrandsNavComponent;
|
|
39559
|
-
StrandsNav.Item =
|
|
39675
|
+
StrandsNav.Item = _sfc_main$2;
|
|
39560
39676
|
const _hoisted_1$1 = { class: "accui-p-2 accui-border-b" };
|
|
39561
39677
|
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
39562
39678
|
__name: "VirtualList",
|
|
@@ -40242,7 +40358,7 @@ export {
|
|
|
40242
40358
|
StrandsMfaModal,
|
|
40243
40359
|
StrandsMfaVerification,
|
|
40244
40360
|
StrandsNav,
|
|
40245
|
-
StrandsNavItem,
|
|
40361
|
+
_sfc_main$2 as StrandsNavItem,
|
|
40246
40362
|
StrandsPasswordReset,
|
|
40247
40363
|
StrandsSecuredFooter,
|
|
40248
40364
|
StrandsSessionsModal,
|
|
@@ -40311,6 +40427,9 @@ export {
|
|
|
40311
40427
|
tailwindColors,
|
|
40312
40428
|
useAuthenticatedFetch,
|
|
40313
40429
|
useFloatingPosition,
|
|
40430
|
+
useGlobalModalStack,
|
|
40431
|
+
useModalStack,
|
|
40432
|
+
useModalTeleport,
|
|
40314
40433
|
useOAuthProviders,
|
|
40315
40434
|
useStrandsAuth,
|
|
40316
40435
|
useStrandsConfig,
|