@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.
@@ -1,64 +1,14 @@
1
- import { defineComponent, computed, provide, onMounted, onUnmounted, createElementBlock, openBlock, normalizeClass, renderSlot, createBlock, Teleport, createCommentVNode, unref, createElementVNode, toDisplayString, createTextVNode, 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";
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 ModalStack {
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$C = {
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
- renderSlot(_ctx.$slots, "default", {}, void 0, true),
113
- (openBlock(), createBlock(Teleport, { to: "body" }, [
114
- unref(modalStack).length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$S)) : createCommentVNode("", true)
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$C, toDisplayString(_ctx.loadingMessage), 1)) : createCommentVNode("", true)
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-942fd7a0"]]);
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$B = {
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$B, [
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$A = ["stroke-width"];
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$A),
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$z = {
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$z, [
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-2d2b087d"]]);
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-e189c5aa"]]);
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$y = {
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$y, [
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$x = {
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$p = {
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$x, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$u, toDisplayString(_ctx.placeholder || "Select an option..."), 1))
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$p, [
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$w = { class: "input-file-content" };
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$o = {
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$w, [
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$o, [
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$v = {
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$v, [
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$u = {
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$n = { class: "datetime-picker-header" };
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$c = {
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$a = { class: "datetime-picker-footer" };
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$u, toDisplayString(displayValue.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_5$r, toDisplayString(_ctx.placeholder || getDefaultPlaceholder()), 1))
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$n, [
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$c, [
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$a, [
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$t = { class: "input-richtext-group" };
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$t, [
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$s = {
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: hasError.value,
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: hasError.value,
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: hasError.value,
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: hasError.value,
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: hasError.value,
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: hasError.value,
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: hasError.value,
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: hasError.value,
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$s, toDisplayString(typeof props.error === "string" ? props.error : props.error instanceof Error ? props.error.message : String(props.error)), 1)) : props.helpText ? (openBlock(), createElementBlock("p", _hoisted_5$p, toDisplayString(props.helpText), 1)) : createCommentVNode("", true)
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-88a9ffad"]]);
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$r = { class: "editor-main" };
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$m = { class: "crop-backdrop" };
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$b = { class: "preview-section" };
25533
+ const _hoisted_20$a = { class: "preview-section" };
25590
25534
  const _hoisted_21$a = { class: "preview-container" };
25591
- const _hoisted_22$9 = ["width", "height"];
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$r, [
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$m, [
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$b, [
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$9)
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$q = ["r"];
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$l = ["d"];
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$q),
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$l),
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
- const _hoisted_1$y = { class: "ui-modal-header-content" };
26656
- const _hoisted_2$t = { class: "ui-modal-title" };
26657
- const _hoisted_3$r = { key: 0 };
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: "md" },
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
- modalStack.add({
26741
- id: modalId,
26742
- closeModal,
26743
- closeOnEscape: props.closeOnEscape
26744
- });
26745
- document.body.style.overflow = "hidden";
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
- modalStack.remove(modalId);
26752
- if (modalStack.length === 0) {
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, { to: "body" }, [
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", _hoisted_1$y, [
26829
- createElementVNode("div", _hoisted_2$t, [
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", _hoisted_3$r, toDisplayString(_ctx.$props.title), 1)) : createCommentVNode("", true)
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[1] || (_cache[1] = [
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-29ec8a36"]]);
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$k = ["d"];
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$a = {
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$8 = { class: "ui-color-picker-inputs" };
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$k)) : createCommentVNode("", true),
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$a, [
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$8, [
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$j = { class: "ui-table-header-actions" };
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$9 = ["onClick"];
30254
+ const _hoisted_20$8 = ["onClick"];
30112
30255
  const _hoisted_21$8 = ["onClick"];
30113
- const _hoisted_22$7 = { class: "ui-table-subrow-content" };
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$j, [
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$9)),
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$7, [
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$i = {
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$i, [..._cache[1] || (_cache[1] = [
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$h = { class: "slider-track" };
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$h, [
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$g = {
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$g, toDisplayString(option.description), 1)) : createCommentVNode("", true),
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$f = {
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$8 = {
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$f, [..._cache[1] || (_cache[1] = [
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$8, toDisplayString(_ctx.error), 1)) : _ctx.helpText ? (openBlock(), createElementBlock("p", _hoisted_21$7, toDisplayString(_ctx.helpText), 1)) : createCommentVNode("", true)
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$e = ["onClick"];
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$7 = { class: "mfa-hardware-prompt-content" };
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$6 = { class: "mfa-hardware-prompt-text" };
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$e);
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$7, [
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$6, [
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$d = {
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$6 = {
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$5 = {
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$d, [
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$6, [
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$5, [
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$c = {
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$c, [
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$b = { class: "signup-success-message" };
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$5 = { class: "oauth-icon-fallback-text" };
34107
+ const _hoisted_20$4 = { class: "oauth-icon-fallback-text" };
33965
34108
  const _hoisted_21$4 = { class: "oauth-button-text" };
33966
- const _hoisted_22$4 = {
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$b, toDisplayString(successMessage.value), 1),
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$5, toDisplayString((provider.displayName || provider.name).charAt(0).toUpperCase()), 1)
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$4, [..._cache[8] || (_cache[8] = [
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$a = {
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$a, [
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 = { class: "accui-component-scope" };
34636
- const _hoisted_2$d = {
34778
+ const _hoisted_1$f = {
34637
34779
  key: 0,
34638
34780
  class: "step-container"
34639
34781
  };
34640
- const _hoisted_3$c = { class: "step-actions" };
34641
- const _hoisted_4$c = {
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 _hoisted_5$a = { class: "qr-container" };
34646
- const _hoisted_6$9 = {
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 _hoisted_7$9 = ["src"];
34651
- const _hoisted_8$9 = {
34792
+ const _hoisted_6$9 = ["src"];
34793
+ const _hoisted_7$9 = {
34652
34794
  key: 1,
34653
34795
  class: "qr-loading"
34654
34796
  };
34655
- const _hoisted_9$8 = { class: "manual-entry" };
34656
- const _hoisted_10$8 = { class: "manual-code" };
34657
- const _hoisted_11$8 = {
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 _hoisted_12$8 = { class: "flex justify-end space-x-3 pt-4" };
34662
- const _hoisted_13$8 = {
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 _hoisted_14$8 = { class: "totp-setup-step-actions" };
34667
- const _hoisted_15$7 = {
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 _hoisted_16$7 = { class: "totp-setup-backup-codes" };
34672
- const _hoisted_17$6 = { class: "totp-setup-backup-grid-wrapper" };
34673
- const _hoisted_18$5 = { class: "totp-setup-backup-grid" };
34674
- const _hoisted_19$4 = { class: "totp-setup-backup-actions" };
34675
- const _hoisted_20$4 = { class: "totp-setup-final-actions" };
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(), createElementBlock("div", _hoisted_1$f, [
34771
- createVNode(UiModal, {
34772
- modelValue: showModal.value,
34773
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => showModal.value = $event),
34774
- title: "Setup Authenticator App",
34775
- "card-class": "modal-card"
34776
- }, {
34777
- default: withCtx(() => [
34778
- step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$d, [
34779
- _cache[8] || (_cache[8] = createElementVNode("div", null, [
34780
- createElementVNode("h3", { class: "step-title" }, "Name Your Device"),
34781
- createElementVNode("p", { class: "step-description" }, ' Give this authenticator a memorable name (e.g., "iPhone", "Work Phone") ')
34782
- ], -1)),
34783
- createVNode(unref(StrandsUiInput), {
34784
- modelValue: deviceName.value,
34785
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => deviceName.value = $event),
34786
- label: "Device Name",
34787
- placeholder: "My Authenticator",
34788
- error: deviceNameError.value,
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
- }, null, 8, ["modelValue", "error", "disabled"]),
34791
- createElementVNode("div", _hoisted_3$c, [
34792
- createVNode(unref(CompoundUiButton), {
34793
- variant: "secondary",
34794
- onClick: closeModal,
34795
- disabled: unref(loading2)
34796
- }, {
34797
- default: withCtx(() => [..._cache[6] || (_cache[6] = [
34798
- createTextVNode(" Cancel ", -1)
34799
- ])]),
34800
- _: 1
34801
- }, 8, ["disabled"]),
34802
- createVNode(unref(CompoundUiButton), {
34803
- variant: "primary",
34804
- onClick: startSetup,
34805
- disabled: !deviceName.value.trim() || unref(loading2),
34806
- loading: unref(loading2)
34807
- }, {
34808
- default: withCtx(() => [..._cache[7] || (_cache[7] = [
34809
- createTextVNode(" Continue ", -1)
34810
- ])]),
34811
- _: 1
34812
- }, 8, ["disabled", "loading"])
34813
- ])
34814
- ])) : createCommentVNode("", true),
34815
- step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_4$c, [
34816
- _cache[13] || (_cache[13] = createElementVNode("div", null, [
34817
- createElementVNode("h3", { class: "step-title" }, "Scan QR Code"),
34818
- createElementVNode("p", { class: "step-description" }, " Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.) ")
34819
- ], -1)),
34820
- createElementVNode("div", _hoisted_5$a, [
34821
- qrCodeDataUrl.value ? (openBlock(), createElementBlock("div", _hoisted_6$9, [
34822
- createElementVNode("img", {
34823
- src: qrCodeDataUrl.value,
34824
- alt: "TOTP QR Code",
34825
- class: "qr-image",
34826
- width: "200",
34827
- height: "200"
34828
- }, null, 8, _hoisted_7$9)
34829
- ])) : (openBlock(), createElementBlock("div", _hoisted_8$9, [
34830
- createVNode(unref(StrandsUiLoader), { size: 24 })
34831
- ]))
34832
- ]),
34833
- createElementVNode("div", _hoisted_9$8, [
34834
- _cache[9] || (_cache[9] = createElementVNode("p", { class: "manual-label" }, " Can't scan? Enter this code manually: ", -1)),
34835
- createElementVNode("code", _hoisted_10$8, toDisplayString(totpSetupData.value?.secret || "..."), 1)
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
- totpSetupData.value?.backup_codes ? (openBlock(), createElementBlock("div", _hoisted_11$8, [..._cache[10] || (_cache[10] = [
34838
- createElementVNode("div", { class: "flex items-start space-x-2" }, [
34839
- createElementVNode("svg", {
34840
- class: "w-5 h-5 text-yellow-600 mt-0.5 flex-shrink-0",
34841
- fill: "currentColor",
34842
- viewBox: "0 0 20 20"
34843
- }, [
34844
- createElementVNode("path", {
34845
- "fill-rule": "evenodd",
34846
- 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",
34847
- "clip-rule": "evenodd"
34848
- })
34849
- ]),
34850
- createElementVNode("div", null, [
34851
- createElementVNode("p", { class: "text-sm font-medium text-yellow-800" }, "Save Your Backup Codes"),
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("h3", { class: "totp-setup-step-title" }, "TOTP Setup Complete!"),
34936
- createElementVNode("p", { class: "totp-setup-success-description" }, " Your authenticator app is now active for two-factor authentication. ")
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
- createElementVNode("div", _hoisted_18$5, [
34958
- (openBlock(true), createElementBlock(Fragment$1, null, renderList(totpSetupData.value?.backup_codes, (code, index) => {
34959
- return openBlock(), createElementBlock("div", {
34960
- key: index,
34961
- class: "totp-setup-backup-code"
34962
- }, toDisplayString(code), 1);
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", _hoisted_20$4, [
35107
+ createElementVNode("div", _hoisted_18$5, [
34980
35108
  createVNode(unref(CompoundUiButton), {
34981
- variant: "primary",
34982
- onClick: finish
35109
+ variant: "secondary",
35110
+ size: "sm",
35111
+ onClick: copyBackupCodes
34983
35112
  }, {
34984
- default: withCtx(() => [..._cache[19] || (_cache[19] = [
34985
- createTextVNode(" Done ", -1)
35113
+ default: withCtx(() => [..._cache[17] || (_cache[17] = [
35114
+ createTextVNode(" 📋 Copy Codes ", -1)
34986
35115
  ])]),
34987
35116
  _: 1
34988
35117
  })
34989
35118
  ])
34990
- ])) : createCommentVNode("", true)
34991
- ]),
34992
- _: 1
34993
- }, 8, ["modelValue"])
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-9ba84ebb"]]);
34999
- const _hoisted_1$e = { class: "accui-component-scope" };
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 _hoisted_3$b = { class: "email-mfa-setup-step-actions" };
35005
- const _hoisted_4$b = {
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 _hoisted_5$9 = { class: "email-mfa-setup-resend-section" };
35010
- const _hoisted_6$8 = { class: "email-mfa-setup-step-actions" };
35011
- const _hoisted_7$8 = {
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 _hoisted_8$8 = { class: "email-mfa-setup-final-actions" };
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(), createElementBlock("div", _hoisted_1$e, [
35135
- createVNode(UiModal, {
35136
- modelValue: showModal.value,
35137
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => showModal.value = $event),
35138
- title: "Setup Email 2FA",
35139
- "card-class": "email-mfa-setup-modal"
35140
- }, {
35141
- default: withCtx(() => [
35142
- step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$c, [
35143
- _cache[7] || (_cache[7] = createElementVNode("div", null, [
35144
- createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Name Your Email 2FA"),
35145
- createElementVNode("p", { class: "email-mfa-setup-step-description" }, ' Give this email 2FA method a memorable name (e.g., "Personal Email", "Work Email") ')
35146
- ], -1)),
35147
- createVNode(unref(StrandsUiInput), {
35148
- modelValue: deviceName.value,
35149
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => deviceName.value = $event),
35150
- label: "Device Name",
35151
- placeholder: "Personal Email",
35152
- error: deviceNameError.value,
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[4] || (_cache[4] = [
35160
- createTextVNode(" Verification codes will be sent to your registered email address when logging in. ", -1)
35308
+ default: withCtx(() => [..._cache[5] || (_cache[5] = [
35309
+ createTextVNode(" Cancel ", -1)
35161
35310
  ])]),
35162
35311
  _: 1
35163
- }),
35164
- createElementVNode("div", _hoisted_3$b, [
35165
- createVNode(unref(CompoundUiButton), {
35166
- variant: "secondary",
35167
- onClick: closeModal,
35168
- disabled: unref(loading2)
35169
- }, {
35170
- default: withCtx(() => [..._cache[5] || (_cache[5] = [
35171
- createTextVNode(" Cancel ", -1)
35172
- ])]),
35173
- _: 1
35174
- }, 8, ["disabled"]),
35175
- createVNode(unref(CompoundUiButton), {
35176
- variant: "primary",
35177
- onClick: startSetup,
35178
- disabled: !deviceName.value.trim() || unref(loading2),
35179
- loading: unref(loading2)
35180
- }, {
35181
- default: withCtx(() => [..._cache[6] || (_cache[6] = [
35182
- createTextVNode(" Setup Email 2FA ", -1)
35183
- ])]),
35184
- _: 1
35185
- }, 8, ["disabled", "loading"])
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
- ])) : createCommentVNode("", true),
35188
- step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_4$b, [
35189
- _cache[10] || (_cache[10] = createElementVNode("div", null, [
35190
- createElementVNode("h3", { class: "email-mfa-setup-step-title" }, "Test Email 2FA"),
35191
- createElementVNode("p", { class: "email-mfa-setup-step-description" }, " We've sent a test verification code to your email. Enter it below to complete setup. ")
35192
- ], -1)),
35193
- _cache[11] || (_cache[11] = createElementVNode("div", { class: "email-mfa-setup-success-notification" }, [
35194
- createElementVNode("div", { class: "email-mfa-setup-success-content" }, [
35195
- createElementVNode("svg", {
35196
- class: "email-mfa-setup-success-icon",
35197
- fill: "currentColor",
35198
- viewBox: "0 0 20 20"
35199
- }, [
35200
- createElementVNode("path", {
35201
- "fill-rule": "evenodd",
35202
- 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",
35203
- "clip-rule": "evenodd"
35204
- })
35205
- ]),
35206
- createElementVNode("div", null, [
35207
- createElementVNode("p", { class: "email-mfa-setup-success-title" }, "Code Sent!"),
35208
- createElementVNode("p", { class: "email-mfa-setup-success-description" }, " Check your email inbox for the verification code. ")
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("div", _hoisted_6$8, [
35236
- createVNode(unref(CompoundUiButton), {
35237
- variant: "secondary",
35238
- onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1),
35239
- disabled: unref(loading2)
35240
- }, {
35241
- default: withCtx(() => [..._cache[8] || (_cache[8] = [
35242
- createTextVNode(" Back ", -1)
35243
- ])]),
35244
- _: 1
35245
- }, 8, ["disabled"]),
35246
- createVNode(unref(CompoundUiButton), {
35247
- variant: "primary",
35248
- onClick: verifySetup,
35249
- disabled: verificationCode.value.length !== 6 || unref(loading2),
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("h3", { class: "email-mfa-setup-step-title" }, "Email 2FA Setup Complete!"),
35277
- 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. ")
35278
- ], -1)),
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
- ])) : createCommentVNode("", true)
35310
- ]),
35311
- _: 1
35312
- }, 8, ["modelValue"])
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-1debeb3e"]]);
35318
- const _hoisted_1$d = { class: "accui-component-scope" };
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 _hoisted_3$a = { class: "hardware-key-setup-actions" };
35324
- const _hoisted_4$a = {
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 _hoisted_5$8 = { class: "hardware-key-setup-instructions" };
35329
- const _hoisted_6$7 = { class: "hardware-key-setup-instructions-header" };
35330
- const _hoisted_7$7 = { class: "hardware-key-setup-instructions-list" };
35331
- const _hoisted_8$7 = { class: "hardware-key-setup-actions" };
35332
- const _hoisted_9$7 = {
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 _hoisted_10$7 = { class: "hardware-key-setup-progress" };
35337
- const _hoisted_11$7 = { class: "hardware-key-setup-progress-icon" };
35338
- const _hoisted_12$7 = { class: "hardware-key-setup-progress-message" };
35339
- const _hoisted_13$7 = {
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 _hoisted_14$7 = { class: "hardware-key-setup-backup-codes" };
35344
- const _hoisted_15$6 = { class: "hardware-key-setup-codes-container" };
35345
- const _hoisted_16$6 = { class: "hardware-key-setup-codes-grid" };
35346
- const _hoisted_17$5 = { class: "hardware-key-setup-copy-action" };
35347
- const _hoisted_18$4 = { class: "hardware-key-setup-final-action" };
35348
- const _hoisted_19$3 = {
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 _hoisted_20$3 = { class: "hardware-key-setup-error" };
35353
- const _hoisted_21$3 = { class: "hardware-key-setup-error-message" };
35354
- const _hoisted_22$3 = { class: "hardware-key-setup-actions" };
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(), createElementBlock("div", _hoisted_1$d, [
35604
- createVNode(UiModal, {
35605
- modelValue: showModal.value,
35606
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => showModal.value = $event),
35607
- title: modalTitle.value,
35608
- "card-class": "hardware-key-setup-modal"
35609
- }, {
35610
- default: withCtx(() => [
35611
- step.value === 1 ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
35612
- _cache[6] || (_cache[6] = createElementVNode("div", null, [
35613
- createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Name Your Hardware Key"),
35614
- createElementVNode("p", { class: "hardware-key-setup-step-description" }, ' Give your hardware key a memorable name (e.g., "YubiKey 5", "Work Security Key") ')
35615
- ], -1)),
35616
- createVNode(unref(StrandsUiInput), {
35617
- modelValue: deviceName.value,
35618
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => deviceName.value = $event),
35619
- label: "Device Name",
35620
- placeholder: "My Hardware Key",
35621
- error: deviceNameError.value,
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
- }, null, 8, ["modelValue", "error", "disabled"]),
35624
- createElementVNode("div", _hoisted_3$a, [
35625
- createVNode(unref(CompoundUiButton), {
35626
- variant: "secondary",
35627
- onClick: closeModal,
35628
- disabled: loading2.value
35629
- }, {
35630
- default: withCtx(() => [..._cache[4] || (_cache[4] = [
35631
- createTextVNode(" Cancel ", -1)
35632
- ])]),
35633
- _: 1
35634
- }, 8, ["disabled"]),
35635
- createVNode(unref(CompoundUiButton), {
35636
- variant: "primary",
35637
- onClick: startSetup,
35638
- disabled: !deviceName.value.trim() || loading2.value,
35639
- loading: loading2.value
35640
- }, {
35641
- default: withCtx(() => [..._cache[5] || (_cache[5] = [
35642
- createTextVNode(" Continue ", -1)
35643
- ])]),
35644
- _: 1
35645
- }, 8, ["disabled", "loading"])
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
- ])) : createCommentVNode("", true),
35648
- step.value === 2 ? (openBlock(), createElementBlock("div", _hoisted_4$a, [
35649
- _cache[17] || (_cache[17] = createElementVNode("div", null, [
35650
- createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Register Hardware Key"),
35651
- createElementVNode("p", { class: "hardware-key-setup-step-description" }, " Insert your hardware key and follow your browser's prompts to complete registration. ")
35652
- ], -1)),
35653
- _cache[18] || (_cache[18] = createElementVNode("div", { class: "hardware-key-setup-illustration" }, [
35654
- createElementVNode("div", { class: "hardware-key-setup-illustration-content" }, [
35655
- createElementVNode("div", { class: "hardware-key-setup-icon-container" }, [
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-icon",
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: "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"
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("div", _hoisted_8$7, [
35704
- createVNode(unref(CompoundUiButton), {
35705
- variant: "secondary",
35706
- onClick: _cache[1] || (_cache[1] = ($event) => step.value = 1),
35707
- disabled: loading2.value
35708
- }, {
35709
- default: withCtx(() => [..._cache[15] || (_cache[15] = [
35710
- createTextVNode(" Back ", -1)
35711
- ])]),
35712
- _: 1
35713
- }, 8, ["disabled"]),
35714
- createVNode(unref(CompoundUiButton), {
35715
- variant: "primary",
35716
- onClick: handleRegisterHardwareKey,
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
- _cache[19] || (_cache[19] = createElementVNode("h3", { class: "hardware-key-setup-step-title" }, "Registering Hardware Key", -1)),
35736
- createElementVNode("p", _hoisted_12$7, toDisplayString(registrationMessage.value), 1)
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
- createElementVNode("div", _hoisted_16$6, [
35801
- (openBlock(true), createElementBlock(Fragment$1, null, renderList(backupCodes.value, (code, index) => {
35802
- return openBlock(), createElementBlock("div", {
35803
- key: index,
35804
- class: "hardware-key-setup-code"
35805
- }, toDisplayString(code), 1);
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", _hoisted_18$4, [
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
- onClick: _cache[2] || (_cache[2] = ($event) => step.value = 1)
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[28] || (_cache[28] = [
35869
- createTextVNode(" Close ", -1)
35950
+ default: withCtx(() => [..._cache[21] || (_cache[21] = [
35951
+ createTextVNode(" 📋 Copy Codes ", -1)
35870
35952
  ])]),
35871
35953
  _: 1
35872
35954
  })
35873
35955
  ])
35874
- ])) : createCommentVNode("", true)
35875
- ]),
35876
- _: 1
35877
- }, 8, ["modelValue", "title"])
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-0c710fca"]]);
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-966c5aa3"]]);
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-ad35901a"]]);
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
- variant: "secondary",
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
- variant: "primary",
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
- variant: "secondary",
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
- variant: "primary",
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
- variant: "secondary",
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
- variant: "primary",
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
- variant: "secondary",
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
- variant: "secondary",
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
- variant: "secondary",
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
- variant: "secondary",
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-1fb79e5f"]]);
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 profileButtonRef = ref();
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
- profileButtonRef.value?.focus();
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
- profileButtonRef.value?.focus();
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
- _: 3
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-924896e1"]]);
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
- fullWidth: { type: Boolean }
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
- const actualType = getActualType();
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-${actualType}`,
39467
- `nav-item-color-${props.color}`,
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(resolveDynamicComponent(getNavItemComponent()), {
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": props.type === "button" ? getActualFullWidth() : void 0,
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", {}, void 0, true)
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", "size", "color", "disabled", "full-width", "role"]);
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 = StrandsNavItem;
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,