@strands.gg/accui 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
- import { defineComponent as P, computed as N, createElementBlock as a, openBlock as A, normalizeClass as I, createElementVNode as e, createCommentVNode as W, toDisplayString as L, renderSlot as Z, createTextVNode as j, useSlots as qe, ref as U, createBlock as E, resolveDynamicComponent as Ce, mergeProps as We, withCtx as D, onMounted as ae, nextTick as ce, toRefs as xe, watch as ne, Fragment as oe, renderList as ie, unref as w, normalizeStyle as Ne, inject as Le, provide as Ue, reactive as J, createVNode as x, Transition as H, withModifiers as re, withDirectives as G, vModelText as R, createStaticVNode as ve } from "vue";
2
- const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se = {
1
+ import { defineComponent as k, computed as x, createElementBlock as r, openBlock as A, normalizeClass as B, createElementVNode as e, createCommentVNode as C, toDisplayString as L, renderSlot as P, createTextVNode as F, useSlots as Ve, ref as U, createBlock as Y, resolveDynamicComponent as he, mergeProps as qe, withCtx as z, onMounted as se, nextTick as de, toRefs as Ce, watch as re, Fragment as le, renderList as ne, unref as b, normalizeStyle as We, inject as Ne, provide as xe, reactive as H, createVNode as N, Transition as K, withModifiers as Ae, withDirectives as O, vModelText as E, createStaticVNode as me } from "vue";
2
+ const Le = { class: "flex items-start" }, Ue = { class: "flex-shrink-0" }, Me = {
3
3
  class: "h-5 w-5",
4
4
  fill: "currentColor",
5
5
  viewBox: "0 0 20 20",
6
6
  "aria-hidden": "true"
7
- }, De = ["d"], Xe = { class: "ml-3 flex-1" }, ke = {
7
+ }, ze = ["d"], Se = { class: "ml-3 flex-1" }, De = {
8
8
  key: 0,
9
9
  class: "ml-auto pl-3"
10
- }, se = /* @__PURE__ */ P({
10
+ }, ee = /* @__PURE__ */ k({
11
11
  __name: "UiAlert",
12
12
  props: {
13
13
  variant: { default: "info" },
@@ -16,81 +16,81 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
16
16
  dismissible: { type: Boolean, default: !1 }
17
17
  },
18
18
  emits: ["dismiss"],
19
- setup(V) {
20
- const g = V, s = N(() => {
21
- const n = ["rounded-lg border p-4"], b = {
19
+ setup(y) {
20
+ const p = y, s = x(() => {
21
+ const o = ["rounded-lg border p-4"], g = {
22
22
  success: "bg-green-50 border-green-200 text-green-800",
23
23
  error: "bg-red-50 border-red-200 text-red-800",
24
24
  warning: "bg-yellow-50 border-yellow-200 text-yellow-800",
25
25
  info: "bg-blue-50 border-blue-200 text-blue-800"
26
26
  };
27
27
  return [
28
- ...n,
29
- b[g.variant]
28
+ ...o,
29
+ g[p.variant]
30
30
  ].join(" ");
31
- }), r = N(() => [
31
+ }), l = x(() => [
32
32
  "text-sm font-medium mb-1",
33
33
  {
34
34
  success: "text-green-800",
35
35
  error: "text-red-800",
36
36
  warning: "text-yellow-800",
37
37
  info: "text-blue-800"
38
- }[g.variant]
39
- ].join(" ")), u = N(() => [
38
+ }[p.variant]
39
+ ].join(" ")), d = x(() => [
40
40
  "text-sm",
41
41
  {
42
42
  success: "text-green-700",
43
43
  error: "text-red-700",
44
44
  warning: "text-yellow-700",
45
45
  info: "text-blue-700"
46
- }[g.variant]
47
- ].join(" ")), o = N(() => [
46
+ }[p.variant]
47
+ ].join(" ")), i = x(() => [
48
48
  "inline-flex rounded-md p-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
49
49
  {
50
50
  success: "text-green-400 hover:text-green-500",
51
51
  error: "text-red-400 hover:text-red-500",
52
52
  warning: "text-yellow-400 hover:text-yellow-500",
53
53
  info: "text-blue-400 hover:text-blue-500"
54
- }[g.variant]
55
- ].join(" ")), i = N(() => ({
54
+ }[p.variant]
55
+ ].join(" ")), u = x(() => ({
56
56
  success: "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",
57
57
  error: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",
58
58
  warning: "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",
59
59
  info: "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"
60
- })[g.variant]);
61
- return (n, b) => (A(), a("div", {
62
- class: I(s.value),
60
+ })[p.variant]);
61
+ return (o, g) => (A(), r("div", {
62
+ class: B(s.value),
63
63
  role: "alert"
64
64
  }, [
65
- e("div", Me, [
66
- e("div", ze, [
67
- (A(), a("svg", Se, [
65
+ e("div", Le, [
66
+ e("div", Ue, [
67
+ (A(), r("svg", Me, [
68
68
  e("path", {
69
69
  "fill-rule": "evenodd",
70
- d: i.value,
70
+ d: u.value,
71
71
  "clip-rule": "evenodd"
72
- }, null, 8, De)
72
+ }, null, 8, ze)
73
73
  ]))
74
74
  ]),
75
- e("div", Xe, [
76
- n.title ? (A(), a("h3", {
75
+ e("div", Se, [
76
+ o.title ? (A(), r("h3", {
77
77
  key: 0,
78
- class: I(r.value)
79
- }, L(n.title), 3)) : W("", !0),
78
+ class: B(l.value)
79
+ }, L(o.title), 3)) : C("", !0),
80
80
  e("div", {
81
- class: I(u.value)
81
+ class: B(d.value)
82
82
  }, [
83
- Z(n.$slots, "default", {}, () => [
84
- j(L(n.message), 1)
83
+ P(o.$slots, "default", {}, () => [
84
+ F(L(o.message), 1)
85
85
  ])
86
86
  ], 2)
87
87
  ]),
88
- n.dismissible ? (A(), a("div", ke, [
88
+ o.dismissible ? (A(), r("div", De, [
89
89
  e("button", {
90
90
  type: "button",
91
- class: I(o.value),
92
- onClick: b[0] || (b[0] = (c) => n.$emit("dismiss"))
93
- }, b[1] || (b[1] = [
91
+ class: B(i.value),
92
+ onClick: g[0] || (g[0] = (c) => o.$emit("dismiss"))
93
+ }, g[1] || (g[1] = [
94
94
  e("span", { class: "sr-only" }, "Dismiss", -1),
95
95
  e("svg", {
96
96
  class: "h-5 w-5",
@@ -104,17 +104,17 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
104
104
  })
105
105
  ], -1)
106
106
  ]), 2)
107
- ])) : W("", !0)
107
+ ])) : C("", !0)
108
108
  ])
109
109
  ], 2));
110
110
  }
111
- }), Be = ["type", "disabled"], Fe = {
111
+ }), Xe = ["type", "disabled"], ke = {
112
112
  key: 0,
113
113
  class: "flex items-center justify-center gap-2"
114
- }, Pe = {
114
+ }, Be = {
115
115
  key: 1,
116
116
  class: "flex items-center justify-center gap-2"
117
- }, _ = /* @__PURE__ */ P({
117
+ }, G = /* @__PURE__ */ k({
118
118
  __name: "UiButton",
119
119
  props: {
120
120
  variant: { default: "primary" },
@@ -126,35 +126,35 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
126
126
  fullWidth: { type: Boolean, default: !1 }
127
127
  },
128
128
  emits: ["click"],
129
- setup(V) {
130
- const g = V, s = N(() => {
131
- const r = [
129
+ setup(y) {
130
+ const p = y, s = x(() => {
131
+ const l = [
132
132
  "inline-flex items-center justify-center font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"
133
- ], u = {
133
+ ], d = {
134
134
  sm: "px-3 py-2 text-sm rounded-md",
135
135
  md: "px-4 py-2.5 text-sm rounded-lg",
136
136
  lg: "px-6 py-3 text-base rounded-lg"
137
- }, o = {
137
+ }, i = {
138
138
  primary: "bg-strands-500 text-white hover:bg-strands-600 shadow-sm",
139
139
  secondary: "bg-gray-200 text-gray-800 hover:bg-gray-300",
140
140
  ghost: "text-strands-500 hover:text-strands-600 hover:bg-strands-50",
141
141
  outline: "border border-strands-500 text-strands-500 hover:bg-strands-500 hover:text-white"
142
- }, i = g.fullWidth ? "w-full" : "";
142
+ }, u = p.fullWidth ? "w-full" : "";
143
143
  return [
144
- ...r,
145
- u[g.size],
146
- o[g.variant],
147
- i
144
+ ...l,
145
+ d[p.size],
146
+ i[p.variant],
147
+ u
148
148
  ].filter(Boolean).join(" ");
149
149
  });
150
- return (r, u) => (A(), a("button", {
151
- type: r.type,
152
- disabled: r.disabled || r.loading,
153
- class: I(s.value),
154
- onClick: u[0] || (u[0] = (o) => r.$emit("click", o))
150
+ return (l, d) => (A(), r("button", {
151
+ type: l.type,
152
+ disabled: l.disabled || l.loading,
153
+ class: B(s.value),
154
+ onClick: d[0] || (d[0] = (i) => l.$emit("click", i))
155
155
  }, [
156
- r.loading ? (A(), a("span", Fe, [
157
- u[1] || (u[1] = e("svg", {
156
+ l.loading ? (A(), r("span", ke, [
157
+ d[1] || (d[1] = e("svg", {
158
158
  class: "animate-spin w-4 h-4",
159
159
  fill: "none",
160
160
  viewBox: "0 0 24 24"
@@ -173,88 +173,88 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
173
173
  d: "m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
174
174
  })
175
175
  ], -1)),
176
- e("span", null, L(r.loadingText || "Loading..."), 1)
177
- ])) : (A(), a("span", Pe, [
178
- Z(r.$slots, "icon"),
179
- Z(r.$slots, "default")
176
+ e("span", null, L(l.loadingText || "Loading..."), 1)
177
+ ])) : (A(), r("span", Be, [
178
+ P(l.$slots, "icon"),
179
+ P(l.$slots, "default")
180
180
  ]))
181
- ], 10, Be));
181
+ ], 10, Xe));
182
182
  }
183
- }), Ie = {
183
+ }), Fe = {
184
184
  key: 0,
185
185
  class: "border-b border-gray-200 pb-4 mb-6"
186
- }, je = { class: "space-y-6" }, Ze = {
186
+ }, Pe = { class: "space-y-6" }, Ie = {
187
187
  key: 1,
188
188
  class: "border-t border-gray-200 pt-4 mt-6"
189
- }, ue = /* @__PURE__ */ P({
189
+ }, oe = /* @__PURE__ */ k({
190
190
  __name: "UiCard",
191
191
  props: {
192
192
  variant: { default: "default" },
193
193
  padding: { default: "md" },
194
194
  shadow: { default: "sm" }
195
195
  },
196
- setup(V) {
197
- const g = V, s = N(() => {
198
- const r = ["bg-white border border-gray-200"], u = {
196
+ setup(y) {
197
+ const p = y, s = x(() => {
198
+ const l = ["bg-white border border-gray-200"], d = {
199
199
  default: "rounded-lg",
200
200
  modern: "rounded-2xl backdrop-blur-lg",
201
201
  minimal: "rounded-md"
202
- }, o = {
202
+ }, i = {
203
203
  sm: "p-4",
204
204
  md: "p-6",
205
205
  lg: "p-8"
206
- }, i = {
206
+ }, u = {
207
207
  none: "",
208
208
  sm: "shadow-sm",
209
209
  md: "shadow-md",
210
210
  lg: "shadow-lg"
211
211
  };
212
212
  return [
213
- ...r,
214
- u[g.variant],
215
- o[g.padding],
216
- i[g.shadow]
213
+ ...l,
214
+ d[p.variant],
215
+ i[p.padding],
216
+ u[p.shadow]
217
217
  ].filter(Boolean).join(" ");
218
218
  });
219
- return (r, u) => (A(), a("div", {
220
- class: I(s.value)
219
+ return (l, d) => (A(), r("div", {
220
+ class: B(s.value)
221
221
  }, [
222
- r.$slots.header ? (A(), a("div", Ie, [
223
- Z(r.$slots, "header")
224
- ])) : W("", !0),
225
- e("div", je, [
226
- Z(r.$slots, "default")
222
+ l.$slots.header ? (A(), r("div", Fe, [
223
+ P(l.$slots, "header")
224
+ ])) : C("", !0),
225
+ e("div", Pe, [
226
+ P(l.$slots, "default")
227
227
  ]),
228
- r.$slots.footer ? (A(), a("div", Ze, [
229
- Z(r.$slots, "footer")
230
- ])) : W("", !0)
228
+ l.$slots.footer ? (A(), r("div", Ie, [
229
+ P(l.$slots, "footer")
230
+ ])) : C("", !0)
231
231
  ], 2));
232
232
  }
233
- }), Te = { class: "space-y-1" }, Ye = ["for"], Ke = {
233
+ }), je = { class: "space-y-1" }, Ze = ["for"], Te = {
234
234
  key: 0,
235
235
  class: "text-red-500"
236
- }, Qe = { class: "relative" }, Oe = ["id", "type", "value", "placeholder", "disabled", "required", "autocomplete"], Ee = {
236
+ }, Ye = { class: "relative" }, Ke = ["id", "type", "value", "placeholder", "disabled", "required", "autocomplete"], Qe = {
237
237
  key: 0,
238
238
  class: "h-5 w-5",
239
239
  fill: "none",
240
240
  stroke: "currentColor",
241
241
  viewBox: "0 0 24 24"
242
- }, He = {
242
+ }, Oe = {
243
243
  key: 1,
244
244
  class: "h-5 w-5",
245
245
  fill: "none",
246
246
  stroke: "currentColor",
247
247
  viewBox: "0 0 24 24"
248
- }, Ge = {
248
+ }, Ee = {
249
249
  key: 1,
250
250
  class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"
251
- }, Re = {
251
+ }, He = {
252
252
  key: 1,
253
253
  class: "text-sm text-red-600"
254
- }, Je = {
254
+ }, Ge = {
255
255
  key: 2,
256
256
  class: "text-sm text-gray-500"
257
- }, ee = /* @__PURE__ */ P({
257
+ }, _ = /* @__PURE__ */ k({
258
258
  __name: "UiInput",
259
259
  props: {
260
260
  modelValue: {},
@@ -269,65 +269,65 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
269
269
  size: { default: "md" }
270
270
  },
271
271
  emits: ["update:modelValue", "blur", "focus"],
272
- setup(V, { emit: g }) {
273
- const s = V, r = g, u = qe(), o = U(!1), i = U(`input-${Math.random().toString(36).substr(2, 9)}`), n = N(() => s.type === "password" ? o.value ? "text" : "password" : s.type), b = N(() => {
272
+ setup(y, { emit: p }) {
273
+ const s = y, l = p, d = Ve(), i = U(!1), u = U(`input-${Math.random().toString(36).substr(2, 9)}`), o = x(() => s.type === "password" ? i.value ? "text" : "password" : s.type), g = x(() => {
274
274
  const t = [
275
275
  "block w-full border-gray-300 rounded-lg shadow-sm focus-visible:ring-strands-500 focus-visible:border-strands-500 transition-colors duration-200 disabled:bg-gray-50 disabled:text-gray-500"
276
- ], p = {
276
+ ], m = {
277
277
  sm: "px-3 py-2 text-sm",
278
278
  md: "px-3 py-2.5 text-sm",
279
279
  lg: "px-4 py-3 text-base"
280
- }, m = s.error ? "border-red-300 focus-visible:ring-red-500 focus-visible:border-red-500" : "", z = u.icon ? "pl-10" : "", h = s.type === "password" ? "pr-10" : "";
280
+ }, w = s.error ? "border-red-300 focus-visible:ring-red-500 focus-visible:border-red-500" : "", X = d.icon ? "pl-10" : "", V = s.type === "password" ? "pr-10" : "";
281
281
  return [
282
282
  ...t,
283
- p[s.size],
284
- m,
285
- z,
286
- h
283
+ m[s.size],
284
+ w,
285
+ X,
286
+ V
287
287
  ].filter(Boolean).join(" ");
288
288
  }), c = (t) => {
289
- const p = t.target;
290
- r("update:modelValue", p.value);
289
+ const m = t.target;
290
+ l("update:modelValue", m.value);
291
291
  }, f = () => {
292
- o.value = !o.value;
292
+ i.value = !i.value;
293
293
  };
294
- return (t, p) => (A(), a("div", Te, [
295
- t.label ? (A(), a("label", {
294
+ return (t, m) => (A(), r("div", je, [
295
+ t.label ? (A(), r("label", {
296
296
  key: 0,
297
- for: i.value,
297
+ for: u.value,
298
298
  class: "block text-sm font-medium text-gray-700"
299
299
  }, [
300
- j(L(t.label) + " ", 1),
301
- t.required ? (A(), a("span", Ke, "*")) : W("", !0)
302
- ], 8, Ye)) : W("", !0),
303
- e("div", Qe, [
300
+ F(L(t.label) + " ", 1),
301
+ t.required ? (A(), r("span", Te, "*")) : C("", !0)
302
+ ], 8, Ze)) : C("", !0),
303
+ e("div", Ye, [
304
304
  e("input", {
305
- id: i.value,
306
- type: n.value,
305
+ id: u.value,
306
+ type: o.value,
307
307
  value: t.modelValue,
308
308
  placeholder: t.placeholder,
309
309
  disabled: t.disabled,
310
310
  required: t.required,
311
311
  autocomplete: t.autocomplete,
312
- class: I(b.value),
312
+ class: B(g.value),
313
313
  onInput: c,
314
- onBlur: p[0] || (p[0] = (m) => t.$emit("blur", m)),
315
- onFocus: p[1] || (p[1] = (m) => t.$emit("focus", m))
316
- }, null, 42, Oe),
317
- t.type === "password" ? (A(), a("button", {
314
+ onBlur: m[0] || (m[0] = (w) => t.$emit("blur", w)),
315
+ onFocus: m[1] || (m[1] = (w) => t.$emit("focus", w))
316
+ }, null, 42, Ke),
317
+ t.type === "password" ? (A(), r("button", {
318
318
  key: 0,
319
319
  type: "button",
320
320
  class: "absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 hover:text-gray-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 rounded-md",
321
321
  onClick: f
322
322
  }, [
323
- o.value ? (A(), a("svg", Ee, p[2] || (p[2] = [
323
+ i.value ? (A(), r("svg", Qe, m[2] || (m[2] = [
324
324
  e("path", {
325
325
  "stroke-linecap": "round",
326
326
  "stroke-linejoin": "round",
327
327
  "stroke-width": "2",
328
328
  d: "M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.878L21 21"
329
329
  }, null, -1)
330
- ]))) : (A(), a("svg", He, p[3] || (p[3] = [
330
+ ]))) : (A(), r("svg", Oe, m[3] || (m[3] = [
331
331
  e("path", {
332
332
  "stroke-linecap": "round",
333
333
  "stroke-linejoin": "round",
@@ -341,15 +341,15 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
341
341
  d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
342
342
  }, null, -1)
343
343
  ])))
344
- ])) : W("", !0),
345
- t.$slots.icon ? (A(), a("div", Ge, [
346
- Z(t.$slots, "icon")
347
- ])) : W("", !0)
344
+ ])) : C("", !0),
345
+ t.$slots.icon ? (A(), r("div", Ee, [
346
+ P(t.$slots, "icon")
347
+ ])) : C("", !0)
348
348
  ]),
349
- t.error ? (A(), a("p", Re, L(t.error), 1)) : t.helpText ? (A(), a("p", Je, L(t.helpText), 1)) : W("", !0)
349
+ t.error ? (A(), r("p", He, L(t.error), 1)) : t.helpText ? (A(), r("p", Ge, L(t.helpText), 1)) : C("", !0)
350
350
  ]));
351
351
  }
352
- }), Ae = /* @__PURE__ */ P({
352
+ }), te = /* @__PURE__ */ k({
353
353
  __name: "UiLink",
354
354
  props: {
355
355
  href: {},
@@ -360,12 +360,12 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
360
360
  external: { type: Boolean, default: !1 }
361
361
  },
362
362
  emits: ["click"],
363
- setup(V, { emit: g }) {
364
- const s = V, r = g, u = N(() => s.to ? "router-link" : s.href ? "a" : "button"), o = N(() => {
365
- const b = {};
366
- return s.to ? b.to = s.to : s.href ? (b.href = s.href, s.external && (b.target = "_blank", b.rel = "noopener noreferrer")) : b.type = "button", s.disabled && (b.disabled = !0, b["aria-disabled"] = !0), b;
367
- }), i = N(() => {
368
- const b = [
363
+ setup(y, { emit: p }) {
364
+ const s = y, l = p, d = x(() => s.to ? "router-link" : s.href ? "a" : "button"), i = x(() => {
365
+ const g = {};
366
+ return s.to ? g.to = s.to : s.href ? (g.href = s.href, s.external && (g.target = "_blank", g.rel = "noopener noreferrer")) : g.type = "button", s.disabled && (g.disabled = !0, g["aria-disabled"] = !0), g;
367
+ }), u = x(() => {
368
+ const g = [
369
369
  "inline-flex items-center font-medium transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"
370
370
  ], c = {
371
371
  sm: "text-xs",
@@ -378,121 +378,121 @@ const Me = { class: "flex items-start" }, ze = { class: "flex-shrink-0" }, Se =
378
378
  underline: "text-strands-500 hover:text-strands-600 underline decoration-strands-500 underline-offset-2"
379
379
  };
380
380
  return [
381
- ...b,
381
+ ...g,
382
382
  c[s.size],
383
383
  f[s.variant]
384
384
  ].filter(Boolean).join(" ");
385
- }), n = (b) => {
386
- s.disabled || r("click", b);
385
+ }), o = (g) => {
386
+ s.disabled || l("click", g);
387
387
  };
388
- return (b, c) => (A(), E(Ce(u.value), We({ class: i.value }, o.value, { onClick: n }), {
389
- default: D(() => [
390
- Z(b.$slots, "default")
388
+ return (g, c) => (A(), Y(he(d.value), qe({ class: u.value }, i.value, { onClick: o }), {
389
+ default: z(() => [
390
+ P(g.$slots, "default")
391
391
  ]),
392
392
  _: 3
393
393
  }, 16, ["class"]));
394
394
  }
395
- }), _e = { class: "relative" }, $e = {
395
+ }), Re = { class: "relative" }, Je = {
396
396
  class: "relative flex border-b border-neutral-200",
397
397
  role: "tablist"
398
- }, et = ["aria-selected", "aria-controls", "id", "onClick"], tt = /* @__PURE__ */ P({
398
+ }, _e = ["aria-selected", "aria-controls", "id", "onClick"], $e = /* @__PURE__ */ k({
399
399
  __name: "UiTabs",
400
400
  props: {
401
401
  modelValue: {},
402
402
  tabs: {}
403
403
  },
404
404
  emits: ["update:modelValue"],
405
- setup(V, { emit: g }) {
406
- const s = V, r = g, u = U([]), o = U({
405
+ setup(y, { emit: p }) {
406
+ const s = y, l = p, d = U([]), i = U({
407
407
  width: "0px",
408
408
  left: "0px",
409
409
  opacity: "0"
410
410
  });
411
- let i = -1, n = !1;
412
- const b = async (t, p) => {
413
- n || (r("update:modelValue", t), await ce(), c(p));
411
+ let u = -1, o = !1;
412
+ const g = async (t, m) => {
413
+ o || (l("update:modelValue", t), await de(), c(m));
414
414
  }, c = async (t) => {
415
- if (!u.value[t] || t === i) return;
416
- n = !0;
417
- const p = u.value[t], m = p.parentElement;
418
- if (!m) return;
419
- const z = p.getBoundingClientRect(), h = m.getBoundingClientRect(), l = z.left - h.left, y = z.width;
420
- if (i === -1) {
421
- o.value = {
422
- width: `${y}px`,
423
- left: `${l}px`,
415
+ if (!d.value[t] || t === u) return;
416
+ o = !0;
417
+ const m = d.value[t], w = m.parentElement;
418
+ if (!w) return;
419
+ const X = m.getBoundingClientRect(), V = w.getBoundingClientRect(), n = X.left - V.left, a = X.width;
420
+ if (u === -1) {
421
+ i.value = {
422
+ width: `${a}px`,
423
+ left: `${n}px`,
424
424
  opacity: "1"
425
- }, i = t, n = !1;
425
+ }, u = t, o = !1;
426
426
  return;
427
427
  }
428
- const v = u.value[i].getBoundingClientRect(), F = v.left - h.left, q = v.width, d = t > i, S = d ? F : l, C = d ? l + y - F : F + q - l;
429
- o.value = {
430
- width: `${C}px`,
431
- left: `${S}px`,
428
+ const D = d.value[u].getBoundingClientRect(), Z = D.left - V.left, M = D.width, v = t > u, h = v ? Z : n, q = v ? n + a - Z : Z + M - n;
429
+ i.value = {
430
+ width: `${q}px`,
431
+ left: `${h}px`,
432
432
  opacity: "1"
433
433
  }, setTimeout(() => {
434
- o.value = {
435
- width: `${y}px`,
436
- left: `${l}px`,
434
+ i.value = {
435
+ width: `${a}px`,
436
+ left: `${n}px`,
437
437
  opacity: "1"
438
- }, i = t, setTimeout(() => {
439
- n = !1;
438
+ }, u = t, setTimeout(() => {
439
+ o = !1;
440
440
  }, 150);
441
441
  }, 120);
442
442
  };
443
- ae(async () => {
444
- await ce();
445
- const t = s.tabs.findIndex((p) => p.value === s.modelValue);
443
+ se(async () => {
444
+ await de();
445
+ const t = s.tabs.findIndex((m) => m.value === s.modelValue);
446
446
  t !== -1 && c(t);
447
- }), N(
447
+ }), x(
448
448
  () => s.tabs.findIndex((t) => t.value === s.modelValue)
449
449
  );
450
- const { modelValue: f } = xe(s);
451
- return ne(f, async () => {
452
- await ce();
453
- const t = s.tabs.findIndex((p) => p.value === s.modelValue);
450
+ const { modelValue: f } = Ce(s);
451
+ return re(f, async () => {
452
+ await de();
453
+ const t = s.tabs.findIndex((m) => m.value === s.modelValue);
454
454
  t !== -1 && c(t);
455
- }), (t, p) => (A(), a("div", _e, [
456
- e("div", $e, [
457
- (A(!0), a(oe, null, ie(t.tabs, (m, z) => (A(), a("button", {
458
- key: m.value,
455
+ }), (t, m) => (A(), r("div", Re, [
456
+ e("div", Je, [
457
+ (A(!0), r(le, null, ne(t.tabs, (w, X) => (A(), r("button", {
458
+ key: w.value,
459
459
  ref_for: !0,
460
460
  ref_key: "tabButtons",
461
- ref: u,
462
- class: I([
461
+ ref: d,
462
+ class: B([
463
463
  "relative flex-1 py-4 px-6 font-medium text-sm transition-colors duration-150",
464
464
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white",
465
465
  "hover:text-strands-600",
466
- w(f) === m.value ? "text-strands-600" : "text-neutral-600"
466
+ b(f) === w.value ? "text-strands-600" : "text-neutral-600"
467
467
  ]),
468
- "aria-selected": w(f) === m.value,
469
- "aria-controls": `tabpanel-${m.value}`,
470
- id: `tab-${m.value}`,
468
+ "aria-selected": b(f) === w.value,
469
+ "aria-controls": `tabpanel-${w.value}`,
470
+ id: `tab-${w.value}`,
471
471
  role: "tab",
472
- onClick: (h) => b(m.value, z)
473
- }, L(m.label), 11, et))), 128)),
472
+ onClick: (V) => g(w.value, X)
473
+ }, L(w.label), 11, _e))), 128)),
474
474
  e("div", {
475
475
  class: "absolute bottom-[-2px] h-[3px] bg-strands-500 rounded-full transition-all duration-150 ease-[cubic-bezier(0.25,0.46,0.45,0.94)]",
476
- style: Ne(o.value)
476
+ style: We(i.value)
477
477
  }, null, 4)
478
478
  ])
479
479
  ]));
480
480
  }
481
- }), st = "data:image/png;base64,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", we = (V, g) => {
482
- const s = V.__vccOpts || V;
483
- for (const [r, u] of g)
484
- s[r] = u;
481
+ }), et = "data:image/png;base64,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", ge = (y, p) => {
482
+ const s = y.__vccOpts || y;
483
+ for (const [l, d] of p)
484
+ s[l] = d;
485
485
  return s;
486
- }, At = {}, at = { class: "flex items-center justify-center gap-2 mt-4 -mb-4 pt-4 border-t border-neutral-200" };
487
- function rt(V, g) {
488
- return A(), a("div", at, g[0] || (g[0] = [
486
+ }, tt = {}, st = { class: "flex items-center justify-center gap-2 mt-4 -mb-4 pt-4 border-t border-neutral-200" };
487
+ function At(y, p) {
488
+ return A(), r("div", st, p[0] || (p[0] = [
489
489
  e("img", {
490
- src: st,
490
+ src: et,
491
491
  class: "h-12 w-auto"
492
492
  }, null, -1)
493
493
  ]));
494
494
  }
495
- const le = /* @__PURE__ */ we(At, [["render", rt]]), Y = {
495
+ const ae = /* @__PURE__ */ ge(tt, [["render", At]]), I = {
496
496
  signIn: "/api/v1/auth/sign-in",
497
497
  signUp: "/api/v1/auth/sign-up",
498
498
  signOut: "/api/v1/auth/sign-out",
@@ -503,109 +503,107 @@ const le = /* @__PURE__ */ we(At, [["render", rt]]), Y = {
503
503
  verifyEmail: "/api/v1/auth/verify-email",
504
504
  oauthProviders: "/api/v1/oauth/providers",
505
505
  oauthProvider: "/api/v1/oauth/providers/{provider_id}"
506
- }, ye = Symbol("strands-config"), pe = U(null);
507
- function be(V) {
508
- pe.value = V, Ue(ye, V);
506
+ }, be = Symbol("strands-config"), ve = U(null);
507
+ function pe(y) {
508
+ ve.value = y, xe(be, y);
509
509
  }
510
- function de(V) {
511
- const g = Le(ye, null), s = N(() => {
512
- const o = g || pe.value || V;
513
- if (!o || !o.baseUrl)
510
+ function ie(y) {
511
+ const p = Ne(be, null), s = x(() => {
512
+ const i = p || ve.value || y;
513
+ if (!i || !i.baseUrl)
514
514
  throw new Error(
515
515
  "StrandsAuth configuration is required. Please provide a baseUrl using provideStrandsConfig() or pass it as a prop."
516
516
  );
517
- return o;
518
- }), r = N(() => {
519
- const i = s.value.endpoints || {};
517
+ return i;
518
+ }), l = x(() => {
519
+ const u = s.value.endpoints || {};
520
520
  return {
521
- signIn: i.signIn || Y.signIn,
522
- signUp: i.signUp || Y.signUp,
523
- signOut: i.signOut || Y.signOut,
524
- refresh: i.refresh || Y.refresh,
525
- passwordReset: i.passwordReset || Y.passwordReset,
526
- passwordResetConfirm: i.passwordResetConfirm || Y.passwordResetConfirm,
527
- profile: i.profile || Y.profile,
528
- verifyEmail: i.verifyEmail || Y.verifyEmail,
529
- oauthProviders: i.oauthProviders || Y.oauthProviders,
530
- oauthProvider: i.oauthProvider || Y.oauthProvider
521
+ signIn: u.signIn || I.signIn,
522
+ signUp: u.signUp || I.signUp,
523
+ signOut: u.signOut || I.signOut,
524
+ refresh: u.refresh || I.refresh,
525
+ passwordReset: u.passwordReset || I.passwordReset,
526
+ passwordResetConfirm: u.passwordResetConfirm || I.passwordResetConfirm,
527
+ profile: u.profile || I.profile,
528
+ verifyEmail: u.verifyEmail || I.verifyEmail,
529
+ oauthProviders: u.oauthProviders || I.oauthProviders,
530
+ oauthProvider: u.oauthProvider || I.oauthProvider
531
531
  };
532
532
  });
533
533
  return {
534
534
  config: s,
535
- endpoints: r,
536
- getUrl: (o) => {
537
- const i = s.value;
538
- if (!i.baseUrl)
535
+ endpoints: l,
536
+ getUrl: (i) => {
537
+ const u = s.value;
538
+ if (!u.baseUrl)
539
539
  throw new Error("Base URL is required in configuration");
540
- let n;
541
- typeof o == "string" && o in r.value ? n = r.value[o] : typeof o == "string" ? n = o : n = r.value[o];
542
- const b = i.baseUrl.replace(/\/$/, ""), c = n.startsWith("/") ? n : `/${n}`;
543
- return `${b}${c}`;
540
+ let o;
541
+ typeof i == "string" && i in l.value ? o = l.value[i] : typeof i == "string" ? o = i : o = l.value[i];
542
+ const g = u.baseUrl.replace(/\/$/, ""), c = o.startsWith("/") ? o : `/${o}`;
543
+ return `${g}${c}`;
544
544
  }
545
545
  };
546
546
  }
547
- function eA(V) {
548
- pe.value = V;
547
+ function _s(y) {
548
+ ve.value = y;
549
549
  }
550
- function fe(V = {}) {
551
- const { getUrl: g } = de(), s = U([]), r = U(!1), u = U(null), o = N(
550
+ function fe(y = {}) {
551
+ const { getUrl: p } = ie(), s = U([]), l = U(!1), d = U(null), i = x(
552
552
  () => s.value.filter((t) => t.enabled)
553
- ), i = async () => {
554
- var t, p;
555
- r.value = !0, u.value = null;
553
+ ), u = async () => {
554
+ l.value = !0, d.value = null;
556
555
  try {
557
- const m = await fetch(g("oauthProviders"), {
556
+ const t = await fetch(p("oauthProviders"), {
558
557
  method: "GET",
559
558
  headers: {
560
559
  "Content-Type": "application/json"
561
560
  }
562
561
  });
563
- if (!m.ok) {
564
- const h = await m.json().catch(() => ({}));
565
- throw new Error(((t = h.error) == null ? void 0 : t.message) || `HTTP ${m.status}: ${m.statusText}`);
562
+ if (!t.ok) {
563
+ const w = await t.json().catch(() => ({}));
564
+ throw new Error(w.error?.message || `HTTP ${t.status}: ${t.statusText}`);
566
565
  }
567
- const z = await m.json();
568
- if (!z.success)
569
- throw new Error(((p = z.error) == null ? void 0 : p.message) || "Failed to fetch OAuth providers");
570
- s.value = z.data || [];
571
- } catch (m) {
572
- const z = m instanceof Error ? m.message : "Failed to fetch OAuth providers";
573
- u.value = z, console.error("OAuth providers fetch error:", m);
566
+ const m = await t.json();
567
+ if (!m.success)
568
+ throw new Error(m.error?.message || "Failed to fetch OAuth providers");
569
+ s.value = m.data || [];
570
+ } catch (t) {
571
+ const m = t instanceof Error ? t.message : "Failed to fetch OAuth providers";
572
+ d.value = m, console.error("OAuth providers fetch error:", t);
574
573
  } finally {
575
- r.value = !1;
574
+ l.value = !1;
576
575
  }
577
- }, n = async (t, p) => {
578
- var X, v;
579
- const m = { ...V, ...p }, z = new URLSearchParams();
580
- m.redirectUrl && z.append("redirect_url", m.redirectUrl), m.scopes && m.scopes.length > 0 && z.append("scopes", m.scopes.join(","));
581
- const h = z.toString(), l = g("oauthProvider").replace("{provider_id}", t), y = h ? `${l}?${h}` : l;
576
+ }, o = async (t, m) => {
577
+ const w = { ...y, ...m }, X = new URLSearchParams();
578
+ w.redirectUrl && X.append("redirect_url", w.redirectUrl), w.scopes && w.scopes.length > 0 && X.append("scopes", w.scopes.join(","));
579
+ const V = X.toString(), n = p("oauthProvider").replace("{provider_id}", t), a = V ? `${n}?${V}` : n;
582
580
  try {
583
- const F = await fetch(y, {
581
+ const S = await fetch(a, {
584
582
  method: "GET",
585
583
  headers: {
586
584
  "Content-Type": "application/json"
587
585
  }
588
586
  });
589
- if (!F.ok) {
590
- const d = await F.json().catch(() => ({}));
591
- throw new Error(((X = d.error) == null ? void 0 : X.message) || `HTTP ${F.status}: ${F.statusText}`);
587
+ if (!S.ok) {
588
+ const Z = await S.json().catch(() => ({}));
589
+ throw new Error(Z.error?.message || `HTTP ${S.status}: ${S.statusText}`);
592
590
  }
593
- const q = await F.json();
594
- if (!q.success)
595
- throw new Error(((v = q.error) == null ? void 0 : v.message) || "Failed to get OAuth auth URL");
596
- return q.data.authUrl;
597
- } catch (F) {
598
- const q = F instanceof Error ? F.message : "Failed to get OAuth auth URL";
599
- throw new Error(q);
591
+ const D = await S.json();
592
+ if (!D.success)
593
+ throw new Error(D.error?.message || "Failed to get OAuth auth URL");
594
+ return D.data.authUrl;
595
+ } catch (S) {
596
+ const D = S instanceof Error ? S.message : "Failed to get OAuth auth URL";
597
+ throw new Error(D);
600
598
  }
601
- }, b = async (t, p) => {
599
+ }, g = async (t, m) => {
602
600
  try {
603
- const m = await n(t, p);
604
- window.location.href = m;
605
- } catch (m) {
606
- throw u.value = m instanceof Error ? m.message : "Failed to redirect to OAuth provider", m;
601
+ const w = await o(t, m);
602
+ window.location.href = w;
603
+ } catch (w) {
604
+ throw d.value = w instanceof Error ? w.message : "Failed to redirect to OAuth provider", w;
607
605
  }
608
- }, c = (t) => s.value.find((p) => p.id === t), f = (t) => {
606
+ }, c = (t) => s.value.find((m) => m.id === t), f = (t) => {
609
607
  if (t.iconUrl)
610
608
  return t.iconUrl;
611
609
  switch (t.id.toLowerCase()) {
@@ -623,44 +621,44 @@ function fe(V = {}) {
623
621
  }
624
622
  };
625
623
  return {
626
- providers: N(() => s.value),
627
- enabledProviders: o,
628
- loading: N(() => r.value),
629
- error: N(() => u.value),
630
- fetchProviders: i,
631
- getProviderAuthUrl: n,
632
- redirectToProvider: b,
624
+ providers: x(() => s.value),
625
+ enabledProviders: i,
626
+ loading: x(() => l.value),
627
+ error: x(() => d.value),
628
+ fetchProviders: u,
629
+ getProviderAuthUrl: o,
630
+ redirectToProvider: g,
633
631
  getProviderById: c,
634
632
  getProviderIcon: f
635
633
  };
636
634
  }
637
- const lt = { class: "w-full max-w-md mx-auto animate-slide-up" }, nt = { class: "text-center mb-8" }, ot = {
635
+ const at = { class: "w-full max-w-md mx-auto animate-slide-up" }, rt = { class: "text-center mb-8" }, lt = {
638
636
  key: "tabs",
639
637
  class: "mb-8"
640
- }, it = {
638
+ }, nt = {
641
639
  key: "oauth",
642
640
  class: "space-y-3 mb-6"
643
- }, ut = { class: "w-5 h-5 flex items-center justify-center" }, dt = {
641
+ }, ot = { class: "w-5 h-5 flex items-center justify-center" }, it = {
644
642
  key: 0,
645
643
  class: "w-5 h-5"
646
- }, ct = ["src", "alt"], mt = {
644
+ }, ut = ["src", "alt"], dt = {
647
645
  key: 1,
648
646
  viewBox: "0 0 24 24",
649
647
  class: "w-5 h-5"
650
- }, vt = {
648
+ }, ct = {
651
649
  key: 2,
652
650
  class: "w-5 h-5 fill-current",
653
651
  viewBox: "0 0 24 24"
654
- }, pt = {
652
+ }, mt = {
655
653
  key: 3,
656
654
  class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"
657
- }, ft = { class: "text-xs font-semibold text-neutral-600" }, gt = { class: "font-medium" }, bt = {
655
+ }, vt = { class: "text-xs font-semibold text-neutral-600" }, ft = { class: "font-medium" }, pt = {
658
656
  key: "divider",
659
657
  class: "divider-with-text"
660
- }, wt = { class: "divider-text" }, yt = { class: "space-y-4" }, Vt = { key: "password-section" }, ht = { class: "flex items-center justify-between mb-2" }, qt = {
658
+ }, gt = { class: "divider-text" }, bt = { class: "space-y-4" }, wt = { key: "password-section" }, yt = { class: "flex items-center justify-between mb-2" }, Vt = {
661
659
  key: "back-link",
662
660
  class: "mt-8 text-center"
663
- }, Ct = /* @__PURE__ */ P({
661
+ }, ht = /* @__PURE__ */ k({
664
662
  __name: "StrandsAuth",
665
663
  props: {
666
664
  mode: { default: "signin" },
@@ -668,145 +666,143 @@ const lt = { class: "w-full max-w-md mx-auto animate-slide-up" }, nt = { class:
668
666
  config: {}
669
667
  },
670
668
  emits: ["success", "error", "forgot-password", "password-reset-sent", "mode-changed"],
671
- setup(V, { emit: g }) {
672
- const s = V, r = g, { getUrl: u } = de(s.config), {
673
- enabledProviders: o,
674
- loading: i,
675
- error: n,
676
- fetchProviders: b,
669
+ setup(y, { emit: p }) {
670
+ const s = y, l = p, { getUrl: d } = ie(s.config), {
671
+ enabledProviders: i,
672
+ loading: u,
673
+ error: o,
674
+ fetchProviders: g,
677
675
  redirectToProvider: c,
678
676
  getProviderIcon: f
679
677
  } = fe({
680
678
  redirectUrl: s.redirectUrl
681
679
  });
682
- ae(() => {
683
- b().catch((S) => {
684
- console.warn("Failed to fetch OAuth providers:", S);
680
+ se(() => {
681
+ g().catch((h) => {
682
+ console.warn("Failed to fetch OAuth providers:", h);
685
683
  });
686
684
  });
687
- const t = N(() => o.value), p = {
688
- async signIn(S, C) {
689
- var T, Q;
690
- const M = await fetch(u("signIn"), {
685
+ const t = x(() => i.value), m = {
686
+ async signIn(h, q) {
687
+ const W = await fetch(d("signIn"), {
691
688
  method: "POST",
692
689
  headers: {
693
690
  "Content-Type": "application/json"
694
691
  },
695
- body: JSON.stringify({ email: S, password: C })
692
+ body: JSON.stringify({ email: h, password: q })
696
693
  });
697
- if (!M.ok) {
698
- const B = await M.json().catch(() => ({}));
699
- throw new Error(((T = B.error) == null ? void 0 : T.message) || `HTTP ${M.status}: ${M.statusText}`);
694
+ if (!W.ok) {
695
+ const Q = await W.json().catch(() => ({}));
696
+ throw new Error(Q.error?.message || `HTTP ${W.status}: ${W.statusText}`);
700
697
  }
701
- const k = await M.json();
702
- if (!k.success)
703
- throw new Error(((Q = k.error) == null ? void 0 : Q.message) || "Sign in failed");
704
- return k.data;
698
+ const R = await W.json();
699
+ if (!R.success)
700
+ throw new Error(R.error?.message || "Sign in failed");
701
+ return R.data;
705
702
  },
706
- async signUp(S, C, M, k) {
707
- var B, ge;
708
- const T = await fetch(u("signUp"), {
703
+ async signUp(h, q, W, R) {
704
+ const Q = await fetch(d("signUp"), {
709
705
  method: "POST",
710
706
  headers: {
711
707
  "Content-Type": "application/json"
712
708
  },
713
- body: JSON.stringify({ email: S, password: C, firstName: M, lastName: k })
709
+ body: JSON.stringify({ email: h, password: q, firstName: W, lastName: R })
714
710
  });
715
- if (!T.ok) {
716
- const he = await T.json().catch(() => ({}));
717
- throw new Error(((B = he.error) == null ? void 0 : B.message) || `HTTP ${T.status}: ${T.statusText}`);
711
+ if (!Q.ok) {
712
+ const ye = await Q.json().catch(() => ({}));
713
+ throw new Error(ye.error?.message || `HTTP ${Q.status}: ${Q.statusText}`);
718
714
  }
719
- const Q = await T.json();
720
- if (!Q.success)
721
- throw new Error(((ge = Q.error) == null ? void 0 : ge.message) || "Sign up failed");
722
- return Q.data;
715
+ const ue = await Q.json();
716
+ if (!ue.success)
717
+ throw new Error(ue.error?.message || "Sign up failed");
718
+ return ue.data;
723
719
  },
724
- async requestPasswordReset(S) {
720
+ async requestPasswordReset(h) {
725
721
  throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.");
726
722
  }
727
- }, m = U(s.mode), z = U(!1), h = U(""), l = U(!1), y = J({
723
+ }, w = U(s.mode), X = U(!1), V = U(""), n = U(!1), a = H({
728
724
  firstName: "",
729
725
  lastName: "",
730
726
  email: "",
731
727
  password: "",
732
728
  confirmPassword: ""
733
- }), X = N(() => m.value === "signup"), v = N(() => m.value === "reset-password");
734
- N(() => y.password === y.confirmPassword);
735
- const F = N(() => v.value ? y.email.trim() && !l.value : X.value ? y.email.trim() : y.email.trim() && y.password), q = async () => {
736
- z.value = !0, h.value = "";
729
+ }), S = x(() => w.value === "signup"), D = x(() => w.value === "reset-password");
730
+ x(() => a.password === a.confirmPassword);
731
+ const Z = x(() => D.value ? a.email.trim() && !n.value : S.value ? a.email.trim() : a.email.trim() && a.password), M = async () => {
732
+ X.value = !0, V.value = "";
737
733
  try {
738
- if (v.value)
739
- await p.requestPasswordReset(y.email), l.value = !0, r("password-reset-sent", y.email);
740
- else if (X.value) {
741
- const S = await p.signUp(
742
- y.email,
743
- y.password,
744
- y.firstName,
745
- y.lastName
734
+ if (D.value)
735
+ await m.requestPasswordReset(a.email), n.value = !0, l("password-reset-sent", a.email);
736
+ else if (S.value) {
737
+ const h = await m.signUp(
738
+ a.email,
739
+ a.password,
740
+ a.firstName,
741
+ a.lastName
746
742
  );
747
- r("success", S.user);
743
+ l("success", h.user);
748
744
  } else {
749
- const S = await p.signIn(y.email, y.password);
750
- r("success", S.user);
745
+ const h = await m.signIn(a.email, a.password);
746
+ l("success", h.user);
751
747
  }
752
- } catch (S) {
753
- const C = S instanceof Error ? S.message : "An unexpected error occurred";
754
- h.value = C, r("error", C);
748
+ } catch (h) {
749
+ const q = h instanceof Error ? h.message : "An unexpected error occurred";
750
+ V.value = q, l("error", q);
755
751
  } finally {
756
- z.value = !1;
752
+ X.value = !1;
757
753
  }
758
- }, d = async (S) => {
754
+ }, v = async (h) => {
759
755
  try {
760
- await c(S, {
756
+ await c(h, {
761
757
  redirectUrl: s.redirectUrl
762
758
  });
763
- } catch (C) {
764
- const M = C instanceof Error ? C.message : `Failed to ${X.value ? "sign up" : "sign in"} with ${S}`;
765
- h.value = M, r("error", M);
759
+ } catch (q) {
760
+ const W = q instanceof Error ? q.message : `Failed to ${S.value ? "sign up" : "sign in"} with ${h}`;
761
+ V.value = W, l("error", W);
766
762
  }
767
763
  };
768
- return ne(() => s.mode, (S) => {
769
- m.value = S;
770
- }), ne(m, (S) => {
771
- h.value = "", l.value = !1, y.firstName = "", y.lastName = "", y.email = "", y.password = "", y.confirmPassword = "", r("mode-changed", S);
772
- }), (S, C) => (A(), a("div", lt, [
773
- x(w(ue), { variant: "modern" }, {
774
- default: D(() => [
775
- e("div", nt, [
776
- x(H, {
764
+ return re(() => s.mode, (h) => {
765
+ w.value = h;
766
+ }), re(w, (h) => {
767
+ V.value = "", n.value = !1, a.firstName = "", a.lastName = "", a.email = "", a.password = "", a.confirmPassword = "", l("mode-changed", h);
768
+ }), (h, q) => (A(), r("div", at, [
769
+ N(b(oe), { variant: "modern" }, {
770
+ default: z(() => [
771
+ e("div", rt, [
772
+ N(K, {
777
773
  name: "fade",
778
774
  mode: "out-in"
779
775
  }, {
780
- default: D(() => [
781
- (A(), a("h1", {
782
- key: m.value,
776
+ default: z(() => [
777
+ (A(), r("h1", {
778
+ key: w.value,
783
779
  class: "text-3xl font-bold text-gradient mb-2"
784
- }, L(v.value ? "Reset password" : X.value ? "Create account" : "Welcome back"), 1))
780
+ }, L(D.value ? "Reset password" : S.value ? "Create account" : "Welcome back"), 1))
785
781
  ]),
786
782
  _: 1
787
783
  }),
788
- x(H, {
784
+ N(K, {
789
785
  name: "fade",
790
786
  mode: "out-in"
791
787
  }, {
792
- default: D(() => [
793
- (A(), a("p", {
794
- key: m.value,
788
+ default: z(() => [
789
+ (A(), r("p", {
790
+ key: w.value,
795
791
  class: "text-neutral-600"
796
- }, L(v.value ? "Enter your email address and we'll send you a link to reset your password" : X.value ? "We'll send you a magic link to get started" : "Sign in to your account to continue"), 1))
792
+ }, L(D.value ? "Enter your email address and we'll send you a link to reset your password" : S.value ? "We'll send you a magic link to get started" : "Sign in to your account to continue"), 1))
797
793
  ]),
798
794
  _: 1
799
795
  })
800
796
  ]),
801
- x(H, {
797
+ N(K, {
802
798
  name: "height-fade",
803
799
  mode: "out-in"
804
800
  }, {
805
- default: D(() => [
806
- v.value ? W("", !0) : (A(), a("div", ot, [
807
- x(w(tt), {
808
- modelValue: m.value,
809
- "onUpdate:modelValue": C[0] || (C[0] = (M) => m.value = M),
801
+ default: z(() => [
802
+ D.value ? C("", !0) : (A(), r("div", lt, [
803
+ N(b($e), {
804
+ modelValue: w.value,
805
+ "onUpdate:modelValue": q[0] || (q[0] = (W) => w.value = W),
810
806
  tabs: [
811
807
  { label: "Sign In", value: "signin" },
812
808
  { label: "Sign Up", value: "signup" }
@@ -816,164 +812,158 @@ const lt = { class: "w-full max-w-md mx-auto animate-slide-up" }, nt = { class:
816
812
  ]),
817
813
  _: 1
818
814
  }),
819
- x(H, {
815
+ N(K, {
820
816
  name: "height-fade",
821
817
  mode: "out-in"
822
818
  }, {
823
- default: D(() => {
824
- var M;
825
- return [
826
- !v.value && ((M = t.value) != null && M.length) ? (A(), a("div", it, [
827
- (A(!0), a(oe, null, ie(t.value, (k) => (A(), E(w(_), {
828
- key: k.id,
829
- variant: "outline",
830
- "full-width": "",
831
- disabled: w(i),
832
- onClick: (T) => d(k.id),
833
- class: "btn-oauth group"
834
- }, {
835
- default: D(() => [
836
- e("div", ut, [
837
- k.iconUrl ? (A(), a("div", dt, [
838
- e("img", {
839
- src: k.iconUrl,
840
- alt: `${k.displayName || k.name} icon`,
841
- class: "w-5 h-5"
842
- }, null, 8, ct)
843
- ])) : k.id === "google" ? (A(), a("svg", mt, C[6] || (C[6] = [
844
- e("path", {
845
- fill: "#4285F4",
846
- d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
847
- }, null, -1),
848
- e("path", {
849
- fill: "#34A853",
850
- d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
851
- }, null, -1),
852
- e("path", {
853
- fill: "#FBBC05",
854
- d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
855
- }, null, -1),
856
- e("path", {
857
- fill: "#EA4335",
858
- d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
859
- }, null, -1)
860
- ]))) : k.id === "github" ? (A(), a("svg", vt, C[7] || (C[7] = [
861
- e("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)
862
- ]))) : (A(), a("div", pt, [
863
- e("span", ft, L((k.displayName || k.name).charAt(0).toUpperCase()), 1)
864
- ]))
865
- ]),
866
- e("span", gt, " Continue with " + L(k.displayName || k.name.charAt(0).toUpperCase() + k.name.slice(1)), 1)
819
+ default: z(() => [
820
+ !D.value && t.value?.length ? (A(), r("div", nt, [
821
+ (A(!0), r(le, null, ne(t.value, (W) => (A(), Y(b(G), {
822
+ key: W.id,
823
+ variant: "outline",
824
+ "full-width": "",
825
+ disabled: b(u),
826
+ onClick: (R) => v(W.id),
827
+ class: "btn-oauth group"
828
+ }, {
829
+ default: z(() => [
830
+ e("div", ot, [
831
+ W.iconUrl ? (A(), r("div", it, [
832
+ e("img", {
833
+ src: W.iconUrl,
834
+ alt: `${W.displayName || W.name} icon`,
835
+ class: "w-5 h-5"
836
+ }, null, 8, ut)
837
+ ])) : W.id === "google" ? (A(), r("svg", dt, q[6] || (q[6] = [
838
+ e("path", {
839
+ fill: "#4285F4",
840
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
841
+ }, null, -1),
842
+ e("path", {
843
+ fill: "#34A853",
844
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
845
+ }, null, -1),
846
+ e("path", {
847
+ fill: "#FBBC05",
848
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
849
+ }, null, -1),
850
+ e("path", {
851
+ fill: "#EA4335",
852
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
853
+ }, null, -1)
854
+ ]))) : W.id === "github" ? (A(), r("svg", ct, q[7] || (q[7] = [
855
+ e("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)
856
+ ]))) : (A(), r("div", mt, [
857
+ e("span", vt, L((W.displayName || W.name).charAt(0).toUpperCase()), 1)
858
+ ]))
867
859
  ]),
868
- _: 2
869
- }, 1032, ["disabled", "onClick"]))), 128))
870
- ])) : W("", !0)
871
- ];
872
- }),
860
+ e("span", ft, " Continue with " + L(W.displayName || W.name.charAt(0).toUpperCase() + W.name.slice(1)), 1)
861
+ ]),
862
+ _: 2
863
+ }, 1032, ["disabled", "onClick"]))), 128))
864
+ ])) : C("", !0)
865
+ ]),
873
866
  _: 1
874
867
  }),
875
- x(H, {
868
+ N(K, {
876
869
  name: "height-fade",
877
870
  mode: "out-in"
878
871
  }, {
879
- default: D(() => {
880
- var M;
881
- return [
882
- !v.value && ((M = t.value) != null && M.length) ? (A(), a("div", bt, [
883
- e("span", wt, "Or " + L(X.value ? "create account" : "sign in") + " with email", 1)
884
- ])) : W("", !0)
885
- ];
886
- }),
872
+ default: z(() => [
873
+ !D.value && t.value?.length ? (A(), r("div", pt, [
874
+ e("span", gt, "Or " + L(S.value ? "create account" : "sign in") + " with email", 1)
875
+ ])) : C("", !0)
876
+ ]),
887
877
  _: 1
888
878
  }),
889
879
  e("form", {
890
- onSubmit: re(q, ["prevent"]),
880
+ onSubmit: Ae(M, ["prevent"]),
891
881
  class: "space-y-6"
892
882
  }, [
893
- e("div", yt, [
894
- x(w(ee), {
895
- modelValue: y.email,
896
- "onUpdate:modelValue": C[1] || (C[1] = (M) => y.email = M),
883
+ e("div", bt, [
884
+ N(b(_), {
885
+ modelValue: a.email,
886
+ "onUpdate:modelValue": q[1] || (q[1] = (W) => a.email = W),
897
887
  type: "email",
898
888
  label: "Email address",
899
889
  placeholder: "Enter your email",
900
890
  required: "",
901
891
  autocomplete: "email",
902
- error: h.value && !y.email ? "Email is required" : ""
892
+ error: V.value && !a.email ? "Email is required" : ""
903
893
  }, null, 8, ["modelValue", "error"]),
904
- x(H, {
894
+ N(K, {
905
895
  name: "height-fade",
906
896
  mode: "out-in"
907
897
  }, {
908
- default: D(() => [
909
- !v.value && !X.value ? (A(), a("div", Vt, [
910
- e("div", ht, [
911
- C[9] || (C[9] = e("span", { class: "text-sm font-medium text-gray-700" }, "Password", -1)),
912
- x(w(Ae), {
898
+ default: z(() => [
899
+ !D.value && !S.value ? (A(), r("div", wt, [
900
+ e("div", yt, [
901
+ q[9] || (q[9] = e("span", { class: "text-sm font-medium text-gray-700" }, "Password", -1)),
902
+ N(b(te), {
913
903
  variant: "primary",
914
904
  size: "sm",
915
- onClick: C[2] || (C[2] = (M) => m.value = "reset-password")
905
+ onClick: q[2] || (q[2] = (W) => w.value = "reset-password")
916
906
  }, {
917
- default: D(() => C[8] || (C[8] = [
918
- j(" Forgot password? ", -1)
907
+ default: z(() => q[8] || (q[8] = [
908
+ F(" Forgot password? ", -1)
919
909
  ])),
920
910
  _: 1,
921
911
  __: [8]
922
912
  })
923
913
  ]),
924
- x(w(ee), {
925
- modelValue: y.password,
926
- "onUpdate:modelValue": C[3] || (C[3] = (M) => y.password = M),
914
+ N(b(_), {
915
+ modelValue: a.password,
916
+ "onUpdate:modelValue": q[3] || (q[3] = (W) => a.password = W),
927
917
  type: "password",
928
918
  placeholder: "Enter your password",
929
919
  required: "",
930
920
  autocomplete: "current-password",
931
- error: h.value && !y.password ? "Password is required" : ""
921
+ error: V.value && !a.password ? "Password is required" : ""
932
922
  }, null, 8, ["modelValue", "error"])
933
- ])) : W("", !0)
923
+ ])) : C("", !0)
934
924
  ]),
935
925
  _: 1
936
926
  })
937
927
  ]),
938
- x(w(_), {
928
+ N(b(G), {
939
929
  type: "submit",
940
930
  variant: "primary",
941
931
  "full-width": "",
942
- disabled: z.value || !F.value,
943
- loading: z.value,
944
- "loading-text": v.value ? "Sending link..." : X.value ? "Sending magic link..." : "Signing in..."
932
+ disabled: X.value || !Z.value,
933
+ loading: X.value,
934
+ "loading-text": D.value ? "Sending link..." : S.value ? "Sending magic link..." : "Signing in..."
945
935
  }, {
946
- default: D(() => [
947
- j(L(v.value ? l.value ? "Link sent!" : "Send reset link" : X.value ? "Send magic link" : "Sign in"), 1)
936
+ default: z(() => [
937
+ F(L(D.value ? n.value ? "Link sent!" : "Send reset link" : S.value ? "Send magic link" : "Sign in"), 1)
948
938
  ]),
949
939
  _: 1
950
940
  }, 8, ["disabled", "loading", "loading-text"])
951
941
  ], 32),
952
- x(H, {
942
+ N(K, {
953
943
  name: "expand",
954
944
  mode: "out-in"
955
945
  }, {
956
- default: D(() => [
957
- v.value && l.value ? (A(), E(w(se), {
946
+ default: z(() => [
947
+ D.value && n.value ? (A(), Y(b(ee), {
958
948
  key: "reset-success",
959
949
  variant: "success",
960
- message: `Check your email - We've sent a password reset link to ${y.email}`,
950
+ message: `Check your email - We've sent a password reset link to ${a.email}`,
961
951
  class: "mt-6 animate-fade-in"
962
- }, null, 8, ["message"])) : W("", !0)
952
+ }, null, 8, ["message"])) : C("", !0)
963
953
  ]),
964
954
  _: 1
965
955
  }),
966
- x(H, {
956
+ N(K, {
967
957
  name: "height-fade",
968
958
  mode: "out-in"
969
959
  }, {
970
- default: D(() => [
971
- v.value ? (A(), a("div", qt, [
972
- x(w(Ae), {
973
- onClick: C[4] || (C[4] = (M) => m.value = "signin"),
960
+ default: z(() => [
961
+ D.value ? (A(), r("div", Vt, [
962
+ N(b(te), {
963
+ onClick: q[4] || (q[4] = (W) => w.value = "signin"),
974
964
  class: "inline-flex items-center gap-2"
975
965
  }, {
976
- default: D(() => C[10] || (C[10] = [
966
+ default: z(() => q[10] || (q[10] = [
977
967
  e("svg", {
978
968
  class: "w-4 h-4",
979
969
  fill: "none",
@@ -987,50 +977,50 @@ const lt = { class: "w-full max-w-md mx-auto animate-slide-up" }, nt = { class:
987
977
  d: "M15 19l-7-7 7-7"
988
978
  })
989
979
  ], -1),
990
- j(" Back to sign in ", -1)
980
+ F(" Back to sign in ", -1)
991
981
  ])),
992
982
  _: 1,
993
983
  __: [10]
994
984
  })
995
- ])) : W("", !0)
985
+ ])) : C("", !0)
996
986
  ]),
997
987
  _: 1
998
988
  }),
999
- h.value ? (A(), E(w(se), {
989
+ V.value ? (A(), Y(b(ee), {
1000
990
  key: 0,
1001
991
  variant: "error",
1002
- message: h.value,
992
+ message: V.value,
1003
993
  class: "mt-6 animate-fade-in",
1004
994
  dismissible: "",
1005
- onDismiss: C[5] || (C[5] = (M) => h.value = "")
1006
- }, null, 8, ["message"])) : W("", !0),
1007
- x(le)
995
+ onDismiss: q[5] || (q[5] = (W) => V.value = "")
996
+ }, null, 8, ["message"])) : C("", !0),
997
+ N(ae)
1008
998
  ]),
1009
999
  _: 1
1010
1000
  })
1011
1001
  ]));
1012
1002
  }
1013
- }), tA = /* @__PURE__ */ we(Ct, [["__scopeId", "data-v-7f6add9f"]]), Wt = { class: "w-full max-w-md mx-auto animate-slide-up" }, xt = {
1003
+ }), $s = /* @__PURE__ */ ge(ht, [["__scopeId", "data-v-7f6add9f"]]), qt = { class: "w-full max-w-md mx-auto animate-slide-up" }, Ct = {
1014
1004
  key: 0,
1015
1005
  class: "space-y-3 mb-6"
1016
- }, Nt = { class: "w-5 h-5 flex items-center justify-center" }, Lt = {
1006
+ }, Wt = { class: "w-5 h-5 flex items-center justify-center" }, Nt = {
1017
1007
  key: 0,
1018
1008
  class: "w-5 h-5"
1019
- }, Ut = ["src", "alt"], Mt = {
1009
+ }, xt = ["src", "alt"], Lt = {
1020
1010
  key: 1,
1021
1011
  viewBox: "0 0 24 24",
1022
1012
  class: "w-5 h-5"
1023
- }, zt = {
1013
+ }, Ut = {
1024
1014
  key: 2,
1025
1015
  class: "w-5 h-5 fill-current",
1026
1016
  viewBox: "0 0 24 24"
1027
- }, St = {
1017
+ }, Mt = {
1028
1018
  key: 3,
1029
1019
  class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"
1030
- }, Dt = { class: "text-xs font-semibold text-neutral-600" }, Xt = { class: "font-medium" }, kt = {
1020
+ }, zt = { class: "text-xs font-semibold text-neutral-600" }, St = { class: "font-medium" }, Dt = {
1031
1021
  key: 1,
1032
1022
  class: "divider-with-text"
1033
- }, Bt = { class: "space-y-4" }, Ft = { class: "flex items-center justify-between mb-2" }, Pt = { class: "mt-8 text-center" }, It = { class: "text-sm text-neutral-600" }, sA = /* @__PURE__ */ P({
1023
+ }, Xt = { class: "space-y-4" }, kt = { class: "flex items-center justify-between mb-2" }, Bt = { class: "mt-8 text-center" }, Ft = { class: "text-sm text-neutral-600" }, eA = /* @__PURE__ */ k({
1034
1024
  __name: "StrandsSignIn",
1035
1025
  props: {
1036
1026
  redirectUrl: { default: "/" },
@@ -1038,213 +1028,210 @@ const lt = { class: "w-full max-w-md mx-auto animate-slide-up" }, nt = { class:
1038
1028
  config: {}
1039
1029
  },
1040
1030
  emits: ["success", "error", "forgot-password", "switch-to-signup"],
1041
- setup(V, { emit: g }) {
1042
- const s = V, r = g, { getUrl: u } = de(s.config), {
1043
- enabledProviders: o,
1044
- loading: i,
1045
- error: n,
1046
- fetchProviders: b,
1031
+ setup(y, { emit: p }) {
1032
+ const s = y, l = p, { getUrl: d } = ie(s.config), {
1033
+ enabledProviders: i,
1034
+ loading: u,
1035
+ error: o,
1036
+ fetchProviders: g,
1047
1037
  redirectToProvider: c
1048
1038
  } = fe({
1049
1039
  redirectUrl: s.redirectUrl,
1050
1040
  scopes: s.oauthScopes
1051
1041
  });
1052
- ae(() => {
1053
- b().catch((h) => {
1054
- console.warn("Failed to fetch OAuth providers:", h);
1042
+ se(() => {
1043
+ g().catch((V) => {
1044
+ console.warn("Failed to fetch OAuth providers:", V);
1055
1045
  });
1056
1046
  });
1057
- const f = U(!1), t = U(""), p = J({
1047
+ const f = U(!1), t = U(""), m = H({
1058
1048
  email: "",
1059
1049
  password: ""
1060
- }), m = async () => {
1050
+ }), w = async () => {
1061
1051
  f.value = !0, t.value = "";
1062
1052
  try {
1063
- console.log("Sign in attempt:", p), r("success", { email: p.email });
1053
+ console.log("Sign in attempt:", m), l("success", { email: m.email });
1064
1054
  } catch {
1065
- t.value = "Invalid email or password", r("error", t.value);
1055
+ t.value = "Invalid email or password", l("error", t.value);
1066
1056
  } finally {
1067
1057
  f.value = !1;
1068
1058
  }
1069
- }, z = async (h) => {
1059
+ }, X = async (V) => {
1070
1060
  try {
1071
- await c(h, {
1061
+ await c(V, {
1072
1062
  redirectUrl: s.redirectUrl,
1073
1063
  scopes: s.oauthScopes
1074
1064
  });
1075
- } catch (l) {
1076
- const y = l instanceof Error ? l.message : `Failed to sign in with ${h}`;
1077
- t.value = y, r("error", y);
1065
+ } catch (n) {
1066
+ const a = n instanceof Error ? n.message : `Failed to sign in with ${V}`;
1067
+ t.value = a, l("error", a);
1078
1068
  }
1079
1069
  };
1080
- return (h, l) => (A(), a("div", Wt, [
1081
- x(w(ue), { variant: "modern" }, {
1082
- default: D(() => {
1083
- var y, X;
1084
- return [
1085
- l[13] || (l[13] = e("div", { class: "text-center mb-8" }, [
1086
- e("h1", { class: "text-3xl font-bold text-gradient mb-2" }, "Welcome back"),
1087
- e("p", { class: "text-neutral-600" }, "Sign in to your account to continue")
1088
- ], -1)),
1089
- (y = w(o)) != null && y.length ? (A(), a("div", xt, [
1090
- (A(!0), a(oe, null, ie(w(o), (v) => (A(), E(w(_), {
1091
- key: v.id,
1092
- variant: "outline",
1093
- "full-width": "",
1094
- disabled: w(i),
1095
- onClick: (F) => z(v.id),
1096
- class: "btn-oauth group"
1097
- }, {
1098
- default: D(() => [
1099
- e("div", Nt, [
1100
- v.iconUrl ? (A(), a("div", Lt, [
1101
- e("img", {
1102
- src: v.iconUrl,
1103
- alt: `${v.displayName || v.name} icon`,
1104
- class: "w-5 h-5"
1105
- }, null, 8, Ut)
1106
- ])) : v.id === "google" ? (A(), a("svg", Mt, l[5] || (l[5] = [
1107
- e("path", {
1108
- fill: "#4285F4",
1109
- d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
1110
- }, null, -1),
1111
- e("path", {
1112
- fill: "#34A853",
1113
- d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
1114
- }, null, -1),
1115
- e("path", {
1116
- fill: "#FBBC05",
1117
- d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
1118
- }, null, -1),
1119
- e("path", {
1120
- fill: "#EA4335",
1121
- d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
1122
- }, null, -1)
1123
- ]))) : v.id === "github" ? (A(), a("svg", zt, l[6] || (l[6] = [
1124
- e("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)
1125
- ]))) : (A(), a("div", St, [
1126
- e("span", Dt, L((v.displayName || v.name).charAt(0).toUpperCase()), 1)
1127
- ]))
1128
- ]),
1129
- e("span", Xt, "Continue with " + L(v.displayName || v.name), 1)
1070
+ return (V, n) => (A(), r("div", qt, [
1071
+ N(b(oe), { variant: "modern" }, {
1072
+ default: z(() => [
1073
+ n[13] || (n[13] = e("div", { class: "text-center mb-8" }, [
1074
+ e("h1", { class: "text-3xl font-bold text-gradient mb-2" }, "Welcome back"),
1075
+ e("p", { class: "text-neutral-600" }, "Sign in to your account to continue")
1076
+ ], -1)),
1077
+ b(i)?.length ? (A(), r("div", Ct, [
1078
+ (A(!0), r(le, null, ne(b(i), (a) => (A(), Y(b(G), {
1079
+ key: a.id,
1080
+ variant: "outline",
1081
+ "full-width": "",
1082
+ disabled: b(u),
1083
+ onClick: (S) => X(a.id),
1084
+ class: "btn-oauth group"
1085
+ }, {
1086
+ default: z(() => [
1087
+ e("div", Wt, [
1088
+ a.iconUrl ? (A(), r("div", Nt, [
1089
+ e("img", {
1090
+ src: a.iconUrl,
1091
+ alt: `${a.displayName || a.name} icon`,
1092
+ class: "w-5 h-5"
1093
+ }, null, 8, xt)
1094
+ ])) : a.id === "google" ? (A(), r("svg", Lt, n[5] || (n[5] = [
1095
+ e("path", {
1096
+ fill: "#4285F4",
1097
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
1098
+ }, null, -1),
1099
+ e("path", {
1100
+ fill: "#34A853",
1101
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
1102
+ }, null, -1),
1103
+ e("path", {
1104
+ fill: "#FBBC05",
1105
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
1106
+ }, null, -1),
1107
+ e("path", {
1108
+ fill: "#EA4335",
1109
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
1110
+ }, null, -1)
1111
+ ]))) : a.id === "github" ? (A(), r("svg", Ut, n[6] || (n[6] = [
1112
+ e("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)
1113
+ ]))) : (A(), r("div", Mt, [
1114
+ e("span", zt, L((a.displayName || a.name).charAt(0).toUpperCase()), 1)
1115
+ ]))
1130
1116
  ]),
1131
- _: 2
1132
- }, 1032, ["disabled", "onClick"]))), 128))
1133
- ])) : W("", !0),
1134
- (X = w(o)) != null && X.length ? (A(), a("div", kt, l[7] || (l[7] = [
1135
- e("span", { class: "divider-text" }, "Or sign in with email", -1)
1136
- ]))) : W("", !0),
1137
- e("form", {
1138
- onSubmit: re(m, ["prevent"]),
1139
- class: "space-y-6"
1140
- }, [
1141
- e("div", Bt, [
1142
- x(w(ee), {
1143
- id: "email",
1144
- modelValue: p.email,
1145
- "onUpdate:modelValue": l[0] || (l[0] = (v) => p.email = v),
1146
- type: "email",
1147
- label: "Email address",
1148
- placeholder: "Enter your email address",
1149
- autocomplete: "email",
1117
+ e("span", St, "Continue with " + L(a.displayName || a.name), 1)
1118
+ ]),
1119
+ _: 2
1120
+ }, 1032, ["disabled", "onClick"]))), 128))
1121
+ ])) : C("", !0),
1122
+ b(i)?.length ? (A(), r("div", Dt, n[7] || (n[7] = [
1123
+ e("span", { class: "divider-text" }, "Or sign in with email", -1)
1124
+ ]))) : C("", !0),
1125
+ e("form", {
1126
+ onSubmit: Ae(w, ["prevent"]),
1127
+ class: "space-y-6"
1128
+ }, [
1129
+ e("div", Xt, [
1130
+ N(b(_), {
1131
+ id: "email",
1132
+ modelValue: m.email,
1133
+ "onUpdate:modelValue": n[0] || (n[0] = (a) => m.email = a),
1134
+ type: "email",
1135
+ label: "Email address",
1136
+ placeholder: "Enter your email address",
1137
+ autocomplete: "email",
1138
+ required: "",
1139
+ error: t.value ? "Invalid email or password" : void 0
1140
+ }, null, 8, ["modelValue", "error"]),
1141
+ e("div", null, [
1142
+ e("div", kt, [
1143
+ n[9] || (n[9] = e("span", { class: "text-sm font-medium text-neutral-700" }, "Password", -1)),
1144
+ N(b(te), {
1145
+ onClick: n[1] || (n[1] = (a) => V.$emit("forgot-password")),
1146
+ class: "text-sm"
1147
+ }, {
1148
+ default: z(() => n[8] || (n[8] = [
1149
+ F(" Forgot password? ", -1)
1150
+ ])),
1151
+ _: 1,
1152
+ __: [8]
1153
+ })
1154
+ ]),
1155
+ N(b(_), {
1156
+ id: "password",
1157
+ modelValue: m.password,
1158
+ "onUpdate:modelValue": n[2] || (n[2] = (a) => m.password = a),
1159
+ type: "password",
1160
+ placeholder: "Enter your password",
1161
+ autocomplete: "current-password",
1150
1162
  required: "",
1151
1163
  error: t.value ? "Invalid email or password" : void 0
1152
- }, null, 8, ["modelValue", "error"]),
1153
- e("div", null, [
1154
- e("div", Ft, [
1155
- l[9] || (l[9] = e("span", { class: "text-sm font-medium text-neutral-700" }, "Password", -1)),
1156
- x(w(Ae), {
1157
- onClick: l[1] || (l[1] = (v) => h.$emit("forgot-password")),
1158
- class: "text-sm"
1159
- }, {
1160
- default: D(() => l[8] || (l[8] = [
1161
- j(" Forgot password? ", -1)
1162
- ])),
1163
- _: 1,
1164
- __: [8]
1165
- })
1166
- ]),
1167
- x(w(ee), {
1168
- id: "password",
1169
- modelValue: p.password,
1170
- "onUpdate:modelValue": l[2] || (l[2] = (v) => p.password = v),
1171
- type: "password",
1172
- placeholder: "Enter your password",
1173
- autocomplete: "current-password",
1174
- required: "",
1175
- error: t.value ? "Invalid email or password" : void 0
1176
- }, null, 8, ["modelValue", "error"])
1177
- ])
1178
- ]),
1179
- x(w(_), {
1180
- type: "submit",
1181
- variant: "primary",
1182
- "full-width": "",
1183
- disabled: f.value || !p.email || !p.password,
1184
- loading: f.value,
1185
- "loading-text": "Signing in..."
1164
+ }, null, 8, ["modelValue", "error"])
1165
+ ])
1166
+ ]),
1167
+ N(b(G), {
1168
+ type: "submit",
1169
+ variant: "primary",
1170
+ "full-width": "",
1171
+ disabled: f.value || !m.email || !m.password,
1172
+ loading: f.value,
1173
+ "loading-text": "Signing in..."
1174
+ }, {
1175
+ default: z(() => n[10] || (n[10] = [
1176
+ F(" Sign in ", -1)
1177
+ ])),
1178
+ _: 1,
1179
+ __: [10]
1180
+ }, 8, ["disabled", "loading"])
1181
+ ], 32),
1182
+ t.value ? (A(), Y(b(ee), {
1183
+ key: 2,
1184
+ variant: "error",
1185
+ message: t.value,
1186
+ class: "mt-6 animate-fade-in",
1187
+ dismissible: "",
1188
+ onDismiss: n[3] || (n[3] = (a) => t.value = "")
1189
+ }, null, 8, ["message"])) : C("", !0),
1190
+ e("div", Bt, [
1191
+ e("p", Ft, [
1192
+ n[12] || (n[12] = F(" Don't have an account? ", -1)),
1193
+ N(b(te), {
1194
+ onClick: n[4] || (n[4] = (a) => V.$emit("switch-to-signup"))
1186
1195
  }, {
1187
- default: D(() => l[10] || (l[10] = [
1188
- j(" Sign in ", -1)
1196
+ default: z(() => n[11] || (n[11] = [
1197
+ F(" Sign up ", -1)
1189
1198
  ])),
1190
1199
  _: 1,
1191
- __: [10]
1192
- }, 8, ["disabled", "loading"])
1193
- ], 32),
1194
- t.value ? (A(), E(w(se), {
1195
- key: 2,
1196
- variant: "error",
1197
- message: t.value,
1198
- class: "mt-6 animate-fade-in",
1199
- dismissible: "",
1200
- onDismiss: l[3] || (l[3] = (v) => t.value = "")
1201
- }, null, 8, ["message"])) : W("", !0),
1202
- e("div", Pt, [
1203
- e("p", It, [
1204
- l[12] || (l[12] = j(" Don't have an account? ", -1)),
1205
- x(w(Ae), {
1206
- onClick: l[4] || (l[4] = (v) => h.$emit("switch-to-signup"))
1207
- }, {
1208
- default: D(() => l[11] || (l[11] = [
1209
- j(" Sign up ", -1)
1210
- ])),
1211
- _: 1,
1212
- __: [11]
1213
- })
1214
- ])
1215
- ]),
1216
- x(le)
1217
- ];
1218
- }),
1200
+ __: [11]
1201
+ })
1202
+ ])
1203
+ ]),
1204
+ N(ae)
1205
+ ]),
1219
1206
  _: 1,
1220
1207
  __: [13]
1221
1208
  })
1222
1209
  ]));
1223
1210
  }
1224
- }), jt = { class: "w-full max-w-md mx-auto animate-slide-up" }, Zt = {
1211
+ }), Pt = { class: "w-full max-w-md mx-auto animate-slide-up" }, It = {
1225
1212
  key: 0,
1226
1213
  class: "space-y-3 mb-6"
1227
- }, Tt = { class: "w-5 h-5 flex items-center justify-center" }, Yt = {
1214
+ }, jt = { class: "w-5 h-5 flex items-center justify-center" }, Zt = {
1228
1215
  key: 0,
1229
1216
  class: "w-5 h-5"
1230
- }, Kt = ["src", "alt"], Qt = {
1217
+ }, Tt = ["src", "alt"], Yt = {
1231
1218
  key: 1,
1232
1219
  viewBox: "0 0 24 24",
1233
1220
  class: "w-5 h-5"
1234
- }, Ot = {
1221
+ }, Kt = {
1235
1222
  key: 2,
1236
1223
  class: "w-5 h-5 fill-current",
1237
1224
  viewBox: "0 0 24 24"
1238
- }, Et = {
1225
+ }, Qt = {
1239
1226
  key: 3,
1240
1227
  class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"
1241
- }, Ht = { class: "text-xs font-semibold text-neutral-600" }, Gt = { class: "font-medium" }, Rt = {
1228
+ }, Ot = { class: "text-xs font-semibold text-neutral-600" }, Et = { class: "font-medium" }, Ht = {
1242
1229
  key: 1,
1243
1230
  class: "divider-with-text"
1244
- }, Jt = {
1231
+ }, Gt = {
1245
1232
  key: 2,
1246
1233
  class: "mt-6 animate-fade-in"
1247
- }, _t = { class: "alert-error" }, $t = { class: "flex items-start gap-3" }, es = { class: "font-medium" }, ts = { class: "mt-8 text-center" }, ss = { class: "text-sm text-neutral-600" }, AA = /* @__PURE__ */ P({
1234
+ }, Rt = { class: "alert-error" }, Jt = { class: "flex items-start gap-3" }, _t = { class: "font-medium" }, $t = { class: "mt-8 text-center" }, es = { class: "text-sm text-neutral-600" }, tA = /* @__PURE__ */ k({
1248
1235
  __name: "StrandsSignUp",
1249
1236
  props: {
1250
1237
  redirectUrl: { default: "/" },
@@ -1252,634 +1239,627 @@ const lt = { class: "w-full max-w-md mx-auto animate-slide-up" }, nt = { class:
1252
1239
  config: {}
1253
1240
  },
1254
1241
  emits: ["success", "error", "switch-to-signin"],
1255
- setup(V, { emit: g }) {
1256
- const s = V, r = g, { getUrl: u } = de(s.config), {
1257
- enabledProviders: o,
1258
- loading: i,
1259
- error: n,
1260
- fetchProviders: b,
1242
+ setup(y, { emit: p }) {
1243
+ const s = y, l = p, { getUrl: d } = ie(s.config), {
1244
+ enabledProviders: i,
1245
+ loading: u,
1246
+ error: o,
1247
+ fetchProviders: g,
1261
1248
  redirectToProvider: c
1262
1249
  } = fe({
1263
1250
  redirectUrl: s.redirectUrl,
1264
1251
  scopes: s.oauthScopes
1265
1252
  });
1266
- ae(() => {
1267
- b().catch((h) => {
1268
- console.warn("Failed to fetch OAuth providers:", h);
1253
+ se(() => {
1254
+ g().catch((V) => {
1255
+ console.warn("Failed to fetch OAuth providers:", V);
1269
1256
  });
1270
1257
  });
1271
- const f = U(!1), t = U(""), p = J({
1258
+ const f = U(!1), t = U(""), m = H({
1272
1259
  email: ""
1273
1260
  });
1274
- N(() => p.email.trim() && p.email.includes("@"));
1275
- const m = async () => {
1261
+ x(() => m.email.trim() && m.email.includes("@"));
1262
+ const w = async () => {
1276
1263
  f.value = !0, t.value = "";
1277
1264
  try {
1278
- console.log("Magic link sign up attempt:", { email: p.email }), r("success", {
1279
- email: p.email
1265
+ console.log("Magic link sign up attempt:", { email: m.email }), l("success", {
1266
+ email: m.email
1280
1267
  });
1281
1268
  } catch {
1282
- t.value = "Failed to send magic link", r("error", t.value);
1269
+ t.value = "Failed to send magic link", l("error", t.value);
1283
1270
  } finally {
1284
1271
  f.value = !1;
1285
1272
  }
1286
- }, z = async (h) => {
1273
+ }, X = async (V) => {
1287
1274
  try {
1288
- await c(h, {
1275
+ await c(V, {
1289
1276
  redirectUrl: s.redirectUrl,
1290
1277
  scopes: s.oauthScopes
1291
1278
  });
1292
- } catch (l) {
1293
- const y = l instanceof Error ? l.message : `Failed to sign up with ${h}`;
1294
- t.value = y, r("error", y);
1279
+ } catch (n) {
1280
+ const a = n instanceof Error ? n.message : `Failed to sign up with ${V}`;
1281
+ t.value = a, l("error", a);
1295
1282
  }
1296
1283
  };
1297
- return (h, l) => (A(), a("div", jt, [
1298
- x(w(ue), { variant: "modern" }, {
1299
- default: D(() => {
1300
- var y, X;
1301
- return [
1302
- l[8] || (l[8] = e("div", { class: "text-center mb-8" }, [
1303
- e("h1", { class: "text-3xl font-bold text-gradient mb-2" }, "Create account"),
1304
- e("p", { class: "text-neutral-600" }, "We'll send you a magic link to get started")
1305
- ], -1)),
1306
- (y = w(o)) != null && y.length ? (A(), a("div", Zt, [
1307
- (A(!0), a(oe, null, ie(w(o), (v) => (A(), E(w(_), {
1308
- key: v.id,
1309
- variant: "outline",
1310
- "full-width": "",
1311
- disabled: w(i),
1312
- onClick: (F) => z(v.id),
1313
- class: "btn-oauth group"
1314
- }, {
1315
- default: D(() => [
1316
- e("div", Tt, [
1317
- v.iconUrl ? (A(), a("div", Yt, [
1318
- e("img", {
1319
- src: v.iconUrl,
1320
- alt: `${v.displayName || v.name} icon`,
1321
- class: "w-5 h-5"
1322
- }, null, 8, Kt)
1323
- ])) : v.id === "google" ? (A(), a("svg", Qt, l[2] || (l[2] = [
1324
- e("path", {
1325
- fill: "#4285F4",
1326
- d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
1327
- }, null, -1),
1328
- e("path", {
1329
- fill: "#34A853",
1330
- d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
1331
- }, null, -1),
1332
- e("path", {
1333
- fill: "#FBBC05",
1334
- d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
1335
- }, null, -1),
1336
- e("path", {
1337
- fill: "#EA4335",
1338
- d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
1339
- }, null, -1)
1340
- ]))) : v.id === "github" ? (A(), a("svg", Ot, l[3] || (l[3] = [
1341
- e("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)
1342
- ]))) : (A(), a("div", Et, [
1343
- e("span", Ht, L((v.displayName || v.name).charAt(0).toUpperCase()), 1)
1344
- ]))
1345
- ]),
1346
- e("span", Gt, "Continue with " + L(v.displayName || v.name), 1)
1284
+ return (V, n) => (A(), r("div", Pt, [
1285
+ N(b(oe), { variant: "modern" }, {
1286
+ default: z(() => [
1287
+ n[8] || (n[8] = e("div", { class: "text-center mb-8" }, [
1288
+ e("h1", { class: "text-3xl font-bold text-gradient mb-2" }, "Create account"),
1289
+ e("p", { class: "text-neutral-600" }, "We'll send you a magic link to get started")
1290
+ ], -1)),
1291
+ b(i)?.length ? (A(), r("div", It, [
1292
+ (A(!0), r(le, null, ne(b(i), (a) => (A(), Y(b(G), {
1293
+ key: a.id,
1294
+ variant: "outline",
1295
+ "full-width": "",
1296
+ disabled: b(u),
1297
+ onClick: (S) => X(a.id),
1298
+ class: "btn-oauth group"
1299
+ }, {
1300
+ default: z(() => [
1301
+ e("div", jt, [
1302
+ a.iconUrl ? (A(), r("div", Zt, [
1303
+ e("img", {
1304
+ src: a.iconUrl,
1305
+ alt: `${a.displayName || a.name} icon`,
1306
+ class: "w-5 h-5"
1307
+ }, null, 8, Tt)
1308
+ ])) : a.id === "google" ? (A(), r("svg", Yt, n[2] || (n[2] = [
1309
+ e("path", {
1310
+ fill: "#4285F4",
1311
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
1312
+ }, null, -1),
1313
+ e("path", {
1314
+ fill: "#34A853",
1315
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
1316
+ }, null, -1),
1317
+ e("path", {
1318
+ fill: "#FBBC05",
1319
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
1320
+ }, null, -1),
1321
+ e("path", {
1322
+ fill: "#EA4335",
1323
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
1324
+ }, null, -1)
1325
+ ]))) : a.id === "github" ? (A(), r("svg", Kt, n[3] || (n[3] = [
1326
+ e("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)
1327
+ ]))) : (A(), r("div", Qt, [
1328
+ e("span", Ot, L((a.displayName || a.name).charAt(0).toUpperCase()), 1)
1329
+ ]))
1347
1330
  ]),
1348
- _: 2
1349
- }, 1032, ["disabled", "onClick"]))), 128))
1350
- ])) : W("", !0),
1351
- (X = w(o)) != null && X.length ? (A(), a("div", Rt, l[4] || (l[4] = [
1352
- e("span", { class: "divider-text" }, "Or create account with email", -1)
1353
- ]))) : W("", !0),
1354
- e("form", {
1355
- onSubmit: re(m, ["prevent"]),
1356
- class: "space-y-6"
1357
- }, [
1358
- e("div", null, [
1359
- x(w(ee), {
1360
- id: "email",
1361
- modelValue: p.email,
1362
- "onUpdate:modelValue": l[0] || (l[0] = (v) => p.email = v),
1363
- type: "email",
1364
- label: "Email address",
1365
- placeholder: "Enter your email address",
1366
- autocomplete: "email",
1367
- required: "",
1368
- error: t.value
1369
- }, null, 8, ["modelValue", "error"])
1331
+ e("span", Et, "Continue with " + L(a.displayName || a.name), 1)
1370
1332
  ]),
1371
- x(w(_), {
1372
- type: "submit",
1373
- variant: "primary",
1374
- "full-width": "",
1375
- disabled: f.value,
1376
- loading: f.value,
1377
- "loading-text": "Sending magic link..."
1378
- }, {
1379
- default: D(() => l[5] || (l[5] = [
1380
- j(" Send magic link ", -1)
1381
- ])),
1382
- _: 1,
1383
- __: [5]
1384
- }, 8, ["disabled", "loading"])
1385
- ], 32),
1386
- t.value ? (A(), a("div", Jt, [
1387
- e("div", _t, [
1388
- e("div", $t, [
1389
- l[6] || (l[6] = e("svg", {
1390
- class: "w-4 h-4 mt-0.5 flex-shrink-0",
1391
- fill: "currentColor",
1392
- viewBox: "0 0 20 20"
1393
- }, [
1394
- e("path", {
1395
- "fill-rule": "evenodd",
1396
- d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",
1397
- "clip-rule": "evenodd"
1398
- })
1399
- ], -1)),
1400
- e("p", es, L(t.value), 1)
1401
- ])
1402
- ])
1403
- ])) : W("", !0),
1404
- e("div", ts, [
1405
- e("p", ss, [
1406
- l[7] || (l[7] = j(" Already have an account? ", -1)),
1407
- e("button", {
1408
- type: "button",
1409
- class: "font-semibold text-strands-500 hover:text-strands-600 transition-colors duration-200",
1410
- onClick: l[1] || (l[1] = (v) => h.$emit("switch-to-signin"))
1411
- }, " Sign in ")
1412
- ])
1333
+ _: 2
1334
+ }, 1032, ["disabled", "onClick"]))), 128))
1335
+ ])) : C("", !0),
1336
+ b(i)?.length ? (A(), r("div", Ht, n[4] || (n[4] = [
1337
+ e("span", { class: "divider-text" }, "Or create account with email", -1)
1338
+ ]))) : C("", !0),
1339
+ e("form", {
1340
+ onSubmit: Ae(w, ["prevent"]),
1341
+ class: "space-y-6"
1342
+ }, [
1343
+ e("div", null, [
1344
+ N(b(_), {
1345
+ id: "email",
1346
+ modelValue: m.email,
1347
+ "onUpdate:modelValue": n[0] || (n[0] = (a) => m.email = a),
1348
+ type: "email",
1349
+ label: "Email address",
1350
+ placeholder: "Enter your email address",
1351
+ autocomplete: "email",
1352
+ required: "",
1353
+ error: t.value
1354
+ }, null, 8, ["modelValue", "error"])
1413
1355
  ]),
1414
- x(le)
1415
- ];
1416
- }),
1356
+ N(b(G), {
1357
+ type: "submit",
1358
+ variant: "primary",
1359
+ "full-width": "",
1360
+ disabled: f.value,
1361
+ loading: f.value,
1362
+ "loading-text": "Sending magic link..."
1363
+ }, {
1364
+ default: z(() => n[5] || (n[5] = [
1365
+ F(" Send magic link ", -1)
1366
+ ])),
1367
+ _: 1,
1368
+ __: [5]
1369
+ }, 8, ["disabled", "loading"])
1370
+ ], 32),
1371
+ t.value ? (A(), r("div", Gt, [
1372
+ e("div", Rt, [
1373
+ e("div", Jt, [
1374
+ n[6] || (n[6] = e("svg", {
1375
+ class: "w-4 h-4 mt-0.5 flex-shrink-0",
1376
+ fill: "currentColor",
1377
+ viewBox: "0 0 20 20"
1378
+ }, [
1379
+ e("path", {
1380
+ "fill-rule": "evenodd",
1381
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",
1382
+ "clip-rule": "evenodd"
1383
+ })
1384
+ ], -1)),
1385
+ e("p", _t, L(t.value), 1)
1386
+ ])
1387
+ ])
1388
+ ])) : C("", !0),
1389
+ e("div", $t, [
1390
+ e("p", es, [
1391
+ n[7] || (n[7] = F(" Already have an account? ", -1)),
1392
+ e("button", {
1393
+ type: "button",
1394
+ class: "font-semibold text-strands-500 hover:text-strands-600 transition-colors duration-200",
1395
+ onClick: n[1] || (n[1] = (a) => V.$emit("switch-to-signin"))
1396
+ }, " Sign in ")
1397
+ ])
1398
+ ]),
1399
+ N(ae)
1400
+ ]),
1417
1401
  _: 1,
1418
1402
  __: [8]
1419
1403
  })
1420
1404
  ]));
1421
1405
  }
1422
- }), As = { class: "w-full max-w-2xl mx-auto animate-slide-up" }, as = { class: "card-modern" }, rs = { class: "flex flex-col items-center mb-8" }, ls = { class: "relative group" }, ns = { class: "w-24 h-24 rounded-full bg-gradient-to-r from-strands-400 to-strands-600 flex items-center justify-center text-white text-2xl font-bold shadow-large" }, os = { class: "grid grid-cols-1 md:grid-cols-2 gap-6" }, is = { class: "space-y-4" }, us = ["disabled"], ds = {
1406
+ }), ts = { class: "w-full max-w-2xl mx-auto animate-slide-up" }, ss = { class: "card-modern" }, As = { class: "flex flex-col items-center mb-8" }, as = { class: "relative group" }, rs = { class: "w-24 h-24 rounded-full bg-gradient-to-r from-strands-400 to-strands-600 flex items-center justify-center text-white text-2xl font-bold shadow-large" }, ls = { class: "grid grid-cols-1 md:grid-cols-2 gap-6" }, ns = { class: "space-y-4" }, os = ["disabled"], is = {
1423
1407
  key: 0,
1424
1408
  class: "mt-1 text-sm text-red-600"
1425
- }, cs = ["disabled"], ms = {
1409
+ }, us = ["disabled"], ds = {
1426
1410
  key: 0,
1427
1411
  class: "mt-1 text-sm text-red-600"
1428
- }, vs = ["disabled"], ps = {
1412
+ }, cs = ["disabled"], ms = {
1429
1413
  key: 0,
1430
1414
  class: "mt-1 text-sm text-red-600"
1431
- }, fs = {
1415
+ }, vs = {
1432
1416
  key: 1,
1433
1417
  class: "mt-1 text-sm text-yellow-600"
1434
- }, gs = ["disabled"], bs = {
1418
+ }, fs = ["disabled"], ps = {
1435
1419
  key: 0,
1436
1420
  class: "mt-1 text-sm text-red-600"
1437
- }, ws = { class: "space-y-4" }, ys = { class: "space-y-4 p-4 bg-neutral-50 rounded-xl" }, Vs = { class: "flex items-center justify-between" }, hs = {
1421
+ }, gs = { class: "space-y-4" }, bs = { class: "space-y-4 p-4 bg-neutral-50 rounded-xl" }, ws = { class: "flex items-center justify-between" }, ys = {
1438
1422
  key: 0,
1439
1423
  class: "space-y-3"
1440
- }, qs = ["disabled"], Cs = { class: "p-4 bg-neutral-50 rounded-xl" }, Ws = { class: "flex items-center justify-between" }, xs = { class: "text-sm text-neutral-600" }, Ns = { class: "p-4 bg-neutral-50 rounded-xl" }, Ls = { class: "flex items-center justify-between" }, Us = { class: "text-sm text-neutral-600" }, Ms = { class: "flex flex-col sm:flex-row gap-3 pt-6 border-t border-neutral-200" }, zs = ["disabled"], Ss = {
1424
+ }, Vs = ["disabled"], hs = { class: "p-4 bg-neutral-50 rounded-xl" }, qs = { class: "flex items-center justify-between" }, Cs = { class: "text-sm text-neutral-600" }, Ws = { class: "p-4 bg-neutral-50 rounded-xl" }, Ns = { class: "flex items-center justify-between" }, xs = { class: "text-sm text-neutral-600" }, Ls = { class: "flex flex-col sm:flex-row gap-3 pt-6 border-t border-neutral-200" }, Us = ["disabled"], Ms = {
1441
1425
  key: 0,
1442
1426
  class: "flex items-center justify-center gap-2"
1443
- }, Ds = { key: 1 }, Xs = ["disabled"], ks = {
1427
+ }, zs = { key: 1 }, Ss = ["disabled"], Ds = {
1444
1428
  key: 0,
1445
1429
  class: "mt-6 animate-fade-in"
1446
- }, Bs = { class: "alert-success" }, Fs = { class: "flex items-start gap-3" }, Ps = { class: "font-medium" }, Is = {
1430
+ }, Xs = { class: "alert-success" }, ks = { class: "flex items-start gap-3" }, Bs = { class: "font-medium" }, Fs = {
1447
1431
  key: 1,
1448
1432
  class: "mt-6 animate-fade-in"
1449
- }, js = { class: "alert-error" }, Zs = { class: "flex items-start gap-3" }, Ts = { class: "font-medium" }, aA = /* @__PURE__ */ P({
1433
+ }, Ps = { class: "alert-error" }, Is = { class: "flex items-start gap-3" }, js = { class: "font-medium" }, sA = /* @__PURE__ */ k({
1450
1434
  __name: "StrandsUserProfile",
1451
1435
  props: {
1452
1436
  user: {}
1453
1437
  },
1454
1438
  emits: ["profile-updated", "error", "manage-sessions", "mfa-toggle"],
1455
- setup(V, { emit: g }) {
1456
- const s = V, r = g, u = U(!1), o = U(!1), i = U(""), n = U(""), b = U([
1439
+ setup(y, { emit: p }) {
1440
+ const s = y, l = p, d = U(!1), i = U(!1), u = U(""), o = U(""), g = U([
1457
1441
  { id: "1", device: "Chrome on Mac", location: "San Francisco, CA", lastActive: "2 minutes ago", current: !0 },
1458
1442
  { id: "2", device: "Safari on iPhone", location: "San Francisco, CA", lastActive: "1 hour ago", current: !1 }
1459
- ]), c = J({
1443
+ ]), c = H({
1460
1444
  firstName: "",
1461
1445
  lastName: "",
1462
1446
  email: "",
1463
1447
  phone: ""
1464
- }), f = J({
1448
+ }), f = H({
1465
1449
  current: "",
1466
1450
  new: "",
1467
1451
  confirm: ""
1468
- }), t = J({
1452
+ }), t = H({
1469
1453
  firstName: "",
1470
1454
  lastName: "",
1471
1455
  email: "",
1472
1456
  phone: ""
1473
- }), p = N(() => s.user ? c.firstName !== s.user.firstName || c.lastName !== s.user.lastName || c.email !== s.user.email || c.phone !== (s.user.phone || "") : !1), m = N(() => f.current && f.new && f.confirm && f.new === f.confirm && f.new.length >= 8), z = (q, d) => !q && !d ? "U" : `${(q == null ? void 0 : q[0]) || ""}${(d == null ? void 0 : d[0]) || ""}`.toUpperCase();
1474
- ne(() => s.user, (q) => {
1475
- q && (c.firstName = q.firstName, c.lastName = q.lastName, c.email = q.email, c.phone = q.phone || "");
1457
+ }), m = x(() => s.user ? c.firstName !== s.user.firstName || c.lastName !== s.user.lastName || c.email !== s.user.email || c.phone !== (s.user.phone || "") : !1), w = x(() => f.current && f.new && f.confirm && f.new === f.confirm && f.new.length >= 8), X = (M, v) => !M && !v ? "U" : `${M?.[0] || ""}${v?.[0] || ""}`.toUpperCase();
1458
+ re(() => s.user, (M) => {
1459
+ M && (c.firstName = M.firstName, c.lastName = M.lastName, c.email = M.email, c.phone = M.phone || "");
1476
1460
  }, { immediate: !0 });
1477
- const h = () => {
1478
- i.value = "", n.value = "", Object.keys(t).forEach((q) => {
1479
- t[q] = "";
1461
+ const V = () => {
1462
+ u.value = "", o.value = "", Object.keys(t).forEach((M) => {
1463
+ t[M] = "";
1480
1464
  });
1481
- }, l = async () => {
1482
- h(), u.value = !0;
1465
+ }, n = async () => {
1466
+ V(), d.value = !0;
1483
1467
  try {
1484
- console.log("Profile update:", c), await new Promise((d) => setTimeout(d, 1e3));
1485
- const q = {
1468
+ console.log("Profile update:", c), await new Promise((v) => setTimeout(v, 1e3));
1469
+ const M = {
1486
1470
  ...s.user,
1487
1471
  ...c
1488
1472
  };
1489
- i.value = "Profile updated successfully", r("profile-updated", q);
1473
+ u.value = "Profile updated successfully", l("profile-updated", M);
1490
1474
  } catch {
1491
- n.value = "Failed to update profile", r("error", n.value);
1475
+ o.value = "Failed to update profile", l("error", o.value);
1492
1476
  } finally {
1493
- u.value = !1;
1477
+ d.value = !1;
1494
1478
  }
1495
- }, y = async () => {
1496
- if (m.value) {
1497
- h(), u.value = !0;
1479
+ }, a = async () => {
1480
+ if (w.value) {
1481
+ V(), d.value = !0;
1498
1482
  try {
1499
- console.log("Password change:", { current: "***", new: "***" }), await new Promise((q) => setTimeout(q, 1e3)), i.value = "Password updated successfully", o.value = !1, f.current = "", f.new = "", f.confirm = "";
1483
+ console.log("Password change:", { current: "***", new: "***" }), await new Promise((M) => setTimeout(M, 1e3)), u.value = "Password updated successfully", i.value = !1, f.current = "", f.new = "", f.confirm = "";
1500
1484
  } catch {
1501
- n.value = "Failed to update password";
1485
+ o.value = "Failed to update password";
1502
1486
  } finally {
1503
- u.value = !1;
1487
+ d.value = !1;
1504
1488
  }
1505
1489
  }
1506
- }, X = () => {
1490
+ }, S = () => {
1507
1491
  console.log("Image upload clicked");
1508
- }, v = () => {
1509
- var q;
1510
- r("mfa-toggle", !((q = s.user) != null && q.mfaEnabled));
1511
- }, F = () => {
1512
- s.user && (c.firstName = s.user.firstName, c.lastName = s.user.lastName, c.email = s.user.email, c.phone = s.user.phone || ""), h(), o.value = !1, f.current = "", f.new = "", f.confirm = "";
1492
+ }, D = () => {
1493
+ l("mfa-toggle", !s.user?.mfaEnabled);
1494
+ }, Z = () => {
1495
+ s.user && (c.firstName = s.user.firstName, c.lastName = s.user.lastName, c.email = s.user.email, c.phone = s.user.phone || ""), V(), i.value = !1, f.current = "", f.new = "", f.confirm = "";
1513
1496
  };
1514
- return (q, d) => {
1515
- var S, C, M, k, T, Q;
1516
- return A(), a("div", As, [
1517
- e("div", as, [
1518
- d[22] || (d[22] = e("div", { class: "text-center mb-8" }, [
1519
- e("h1", { class: "text-3xl font-bold text-gradient mb-2" }, "Profile Settings"),
1520
- e("p", { class: "text-neutral-600" }, "Manage your account information and preferences")
1521
- ], -1)),
1522
- e("div", rs, [
1523
- e("div", ls, [
1524
- e("div", ns, L(z((S = q.user) == null ? void 0 : S.firstName, (C = q.user) == null ? void 0 : C.lastName)), 1),
1525
- e("button", {
1526
- class: "absolute inset-0 rounded-full bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200",
1527
- onClick: X
1528
- }, d[9] || (d[9] = [
1529
- e("svg", {
1530
- class: "w-6 h-6 text-white",
1531
- fill: "none",
1532
- stroke: "currentColor",
1533
- viewBox: "0 0 24 24"
1534
- }, [
1535
- e("path", {
1536
- "stroke-linecap": "round",
1537
- "stroke-linejoin": "round",
1538
- "stroke-width": "2",
1539
- d: "M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"
1540
- }),
1541
- e("path", {
1542
- "stroke-linecap": "round",
1543
- "stroke-linejoin": "round",
1544
- "stroke-width": "2",
1545
- d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z"
1546
- })
1547
- ], -1)
1548
- ]))
1549
- ]),
1497
+ return (M, v) => (A(), r("div", ts, [
1498
+ e("div", ss, [
1499
+ v[22] || (v[22] = e("div", { class: "text-center mb-8" }, [
1500
+ e("h1", { class: "text-3xl font-bold text-gradient mb-2" }, "Profile Settings"),
1501
+ e("p", { class: "text-neutral-600" }, "Manage your account information and preferences")
1502
+ ], -1)),
1503
+ e("div", As, [
1504
+ e("div", as, [
1505
+ e("div", rs, L(X(M.user?.firstName, M.user?.lastName)), 1),
1550
1506
  e("button", {
1551
- class: "mt-3 text-sm text-strands-600 hover:text-strands-700 font-medium transition-colors duration-200",
1552
- onClick: X
1553
- }, " Change photo ")
1507
+ class: "absolute inset-0 rounded-full bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200",
1508
+ onClick: S
1509
+ }, v[9] || (v[9] = [
1510
+ e("svg", {
1511
+ class: "w-6 h-6 text-white",
1512
+ fill: "none",
1513
+ stroke: "currentColor",
1514
+ viewBox: "0 0 24 24"
1515
+ }, [
1516
+ e("path", {
1517
+ "stroke-linecap": "round",
1518
+ "stroke-linejoin": "round",
1519
+ "stroke-width": "2",
1520
+ d: "M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"
1521
+ }),
1522
+ e("path", {
1523
+ "stroke-linecap": "round",
1524
+ "stroke-linejoin": "round",
1525
+ "stroke-width": "2",
1526
+ d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z"
1527
+ })
1528
+ ], -1)
1529
+ ]))
1554
1530
  ]),
1555
- e("form", {
1556
- onSubmit: re(l, ["prevent"]),
1557
- class: "space-y-6"
1558
- }, [
1559
- e("div", os, [
1560
- e("div", is, [
1561
- d[14] || (d[14] = e("h3", { class: "text-lg font-semibold text-neutral-900 mb-4" }, "Personal Information", -1)),
1562
- e("div", null, [
1563
- d[10] || (d[10] = e("label", {
1564
- for: "firstName",
1565
- class: "label-modern"
1566
- }, "First name", -1)),
1567
- G(e("input", {
1568
- id: "firstName",
1569
- "onUpdate:modelValue": d[0] || (d[0] = (B) => c.firstName = B),
1570
- type: "text",
1571
- required: "",
1572
- autocomplete: "given-name",
1573
- class: I([
1574
- "input-modern",
1575
- t.firstName && "input-error"
1576
- ]),
1577
- placeholder: "Enter your first name",
1578
- disabled: u.value
1579
- }, null, 10, us), [
1580
- [R, c.firstName]
1531
+ e("button", {
1532
+ class: "mt-3 text-sm text-strands-600 hover:text-strands-700 font-medium transition-colors duration-200",
1533
+ onClick: S
1534
+ }, " Change photo ")
1535
+ ]),
1536
+ e("form", {
1537
+ onSubmit: Ae(n, ["prevent"]),
1538
+ class: "space-y-6"
1539
+ }, [
1540
+ e("div", ls, [
1541
+ e("div", ns, [
1542
+ v[14] || (v[14] = e("h3", { class: "text-lg font-semibold text-neutral-900 mb-4" }, "Personal Information", -1)),
1543
+ e("div", null, [
1544
+ v[10] || (v[10] = e("label", {
1545
+ for: "firstName",
1546
+ class: "label-modern"
1547
+ }, "First name", -1)),
1548
+ O(e("input", {
1549
+ id: "firstName",
1550
+ "onUpdate:modelValue": v[0] || (v[0] = (h) => c.firstName = h),
1551
+ type: "text",
1552
+ required: "",
1553
+ autocomplete: "given-name",
1554
+ class: B([
1555
+ "input-modern",
1556
+ t.firstName && "input-error"
1581
1557
  ]),
1582
- t.firstName ? (A(), a("p", ds, L(t.firstName), 1)) : W("", !0)
1558
+ placeholder: "Enter your first name",
1559
+ disabled: d.value
1560
+ }, null, 10, os), [
1561
+ [E, c.firstName]
1583
1562
  ]),
1584
- e("div", null, [
1585
- d[11] || (d[11] = e("label", {
1586
- for: "lastName",
1587
- class: "label-modern"
1588
- }, "Last name", -1)),
1589
- G(e("input", {
1590
- id: "lastName",
1591
- "onUpdate:modelValue": d[1] || (d[1] = (B) => c.lastName = B),
1592
- type: "text",
1593
- required: "",
1594
- autocomplete: "family-name",
1595
- class: I([
1596
- "input-modern",
1597
- t.lastName && "input-error"
1598
- ]),
1599
- placeholder: "Enter your last name",
1600
- disabled: u.value
1601
- }, null, 10, cs), [
1602
- [R, c.lastName]
1563
+ t.firstName ? (A(), r("p", is, L(t.firstName), 1)) : C("", !0)
1564
+ ]),
1565
+ e("div", null, [
1566
+ v[11] || (v[11] = e("label", {
1567
+ for: "lastName",
1568
+ class: "label-modern"
1569
+ }, "Last name", -1)),
1570
+ O(e("input", {
1571
+ id: "lastName",
1572
+ "onUpdate:modelValue": v[1] || (v[1] = (h) => c.lastName = h),
1573
+ type: "text",
1574
+ required: "",
1575
+ autocomplete: "family-name",
1576
+ class: B([
1577
+ "input-modern",
1578
+ t.lastName && "input-error"
1603
1579
  ]),
1604
- t.lastName ? (A(), a("p", ms, L(t.lastName), 1)) : W("", !0)
1580
+ placeholder: "Enter your last name",
1581
+ disabled: d.value
1582
+ }, null, 10, us), [
1583
+ [E, c.lastName]
1605
1584
  ]),
1606
- e("div", null, [
1607
- d[12] || (d[12] = e("label", {
1608
- for: "email",
1609
- class: "label-modern"
1610
- }, "Email address", -1)),
1611
- G(e("input", {
1612
- id: "email",
1613
- "onUpdate:modelValue": d[2] || (d[2] = (B) => c.email = B),
1614
- type: "email",
1615
- required: "",
1616
- autocomplete: "email",
1617
- class: I([
1618
- "input-modern",
1619
- t.email && "input-error"
1620
- ]),
1621
- placeholder: "Enter your email address",
1622
- disabled: u.value
1623
- }, null, 10, vs), [
1624
- [R, c.email]
1585
+ t.lastName ? (A(), r("p", ds, L(t.lastName), 1)) : C("", !0)
1586
+ ]),
1587
+ e("div", null, [
1588
+ v[12] || (v[12] = e("label", {
1589
+ for: "email",
1590
+ class: "label-modern"
1591
+ }, "Email address", -1)),
1592
+ O(e("input", {
1593
+ id: "email",
1594
+ "onUpdate:modelValue": v[2] || (v[2] = (h) => c.email = h),
1595
+ type: "email",
1596
+ required: "",
1597
+ autocomplete: "email",
1598
+ class: B([
1599
+ "input-modern",
1600
+ t.email && "input-error"
1625
1601
  ]),
1626
- t.email ? (A(), a("p", ps, L(t.email), 1)) : W("", !0),
1627
- c.email !== ((M = q.user) == null ? void 0 : M.email) ? (A(), a("p", fs, " Changing your email will require verification ")) : W("", !0)
1602
+ placeholder: "Enter your email address",
1603
+ disabled: d.value
1604
+ }, null, 10, cs), [
1605
+ [E, c.email]
1628
1606
  ]),
1629
- e("div", null, [
1630
- d[13] || (d[13] = e("label", {
1631
- for: "phone",
1632
- class: "label-modern"
1633
- }, "Phone number", -1)),
1634
- G(e("input", {
1635
- id: "phone",
1636
- "onUpdate:modelValue": d[3] || (d[3] = (B) => c.phone = B),
1637
- type: "tel",
1638
- autocomplete: "tel",
1639
- class: I([
1640
- "input-modern",
1641
- t.phone && "input-error"
1642
- ]),
1643
- placeholder: "Enter your phone number",
1644
- disabled: u.value
1645
- }, null, 10, gs), [
1646
- [R, c.phone]
1647
- ]),
1648
- t.phone ? (A(), a("p", bs, L(t.phone), 1)) : W("", !0)
1649
- ])
1607
+ t.email ? (A(), r("p", ms, L(t.email), 1)) : C("", !0),
1608
+ c.email !== M.user?.email ? (A(), r("p", vs, " Changing your email will require verification ")) : C("", !0)
1650
1609
  ]),
1651
- e("div", ws, [
1652
- d[18] || (d[18] = e("h3", { class: "text-lg font-semibold text-neutral-900 mb-4" }, "Security Settings", -1)),
1653
- e("div", ys, [
1654
- e("div", Vs, [
1655
- d[15] || (d[15] = e("div", null, [
1656
- e("h4", { class: "font-medium text-neutral-900" }, "Password"),
1657
- e("p", { class: "text-sm text-neutral-600" }, "Last updated 30 days ago")
1658
- ], -1)),
1659
- e("button", {
1660
- type: "button",
1661
- class: "btn-secondary !w-auto px-4 py-2 text-sm",
1662
- onClick: d[4] || (d[4] = (B) => o.value = !o.value)
1663
- }, L(o.value ? "Cancel" : "Change"), 1)
1610
+ e("div", null, [
1611
+ v[13] || (v[13] = e("label", {
1612
+ for: "phone",
1613
+ class: "label-modern"
1614
+ }, "Phone number", -1)),
1615
+ O(e("input", {
1616
+ id: "phone",
1617
+ "onUpdate:modelValue": v[3] || (v[3] = (h) => c.phone = h),
1618
+ type: "tel",
1619
+ autocomplete: "tel",
1620
+ class: B([
1621
+ "input-modern",
1622
+ t.phone && "input-error"
1664
1623
  ]),
1665
- o.value ? (A(), a("div", hs, [
1666
- G(e("input", {
1667
- "onUpdate:modelValue": d[5] || (d[5] = (B) => f.current = B),
1668
- type: "password",
1669
- placeholder: "Current password",
1670
- class: "input-modern",
1671
- autocomplete: "current-password"
1672
- }, null, 512), [
1673
- [R, f.current]
1674
- ]),
1675
- G(e("input", {
1676
- "onUpdate:modelValue": d[6] || (d[6] = (B) => f.new = B),
1677
- type: "password",
1678
- placeholder: "New password",
1679
- class: "input-modern",
1680
- autocomplete: "new-password"
1681
- }, null, 512), [
1682
- [R, f.new]
1683
- ]),
1684
- G(e("input", {
1685
- "onUpdate:modelValue": d[7] || (d[7] = (B) => f.confirm = B),
1686
- type: "password",
1687
- placeholder: "Confirm new password",
1688
- class: "input-modern",
1689
- autocomplete: "new-password"
1690
- }, null, 512), [
1691
- [R, f.confirm]
1692
- ]),
1693
- e("button", {
1694
- type: "button",
1695
- class: "btn-primary !w-auto px-4 py-2 text-sm",
1696
- onClick: y,
1697
- disabled: !m.value
1698
- }, " Update Password ", 8, qs)
1699
- ])) : W("", !0)
1624
+ placeholder: "Enter your phone number",
1625
+ disabled: d.value
1626
+ }, null, 10, fs), [
1627
+ [E, c.phone]
1700
1628
  ]),
1701
- e("div", Cs, [
1702
- e("div", Ws, [
1703
- e("div", null, [
1704
- d[16] || (d[16] = e("h4", { class: "font-medium text-neutral-900" }, "Two-Factor Authentication", -1)),
1705
- e("p", xs, L((k = q.user) != null && k.mfaEnabled ? "Enabled" : "Add extra security to your account"), 1)
1706
- ]),
1707
- e("button", {
1708
- type: "button",
1709
- class: I([
1710
- (T = q.user) != null && T.mfaEnabled ? "btn-secondary" : "btn-primary",
1711
- "!w-auto px-4 py-2 text-sm"
1712
- ]),
1713
- onClick: v
1714
- }, L((Q = q.user) != null && Q.mfaEnabled ? "Disable" : "Enable"), 3)
1715
- ])
1629
+ t.phone ? (A(), r("p", ps, L(t.phone), 1)) : C("", !0)
1630
+ ])
1631
+ ]),
1632
+ e("div", gs, [
1633
+ v[18] || (v[18] = e("h3", { class: "text-lg font-semibold text-neutral-900 mb-4" }, "Security Settings", -1)),
1634
+ e("div", bs, [
1635
+ e("div", ws, [
1636
+ v[15] || (v[15] = e("div", null, [
1637
+ e("h4", { class: "font-medium text-neutral-900" }, "Password"),
1638
+ e("p", { class: "text-sm text-neutral-600" }, "Last updated 30 days ago")
1639
+ ], -1)),
1640
+ e("button", {
1641
+ type: "button",
1642
+ class: "btn-secondary !w-auto px-4 py-2 text-sm",
1643
+ onClick: v[4] || (v[4] = (h) => i.value = !i.value)
1644
+ }, L(i.value ? "Cancel" : "Change"), 1)
1716
1645
  ]),
1717
- e("div", Ns, [
1718
- e("div", Ls, [
1719
- e("div", null, [
1720
- d[17] || (d[17] = e("h4", { class: "font-medium text-neutral-900" }, "Active Sessions", -1)),
1721
- e("p", Us, L(b.value.length) + " active device(s)", 1)
1646
+ i.value ? (A(), r("div", ys, [
1647
+ O(e("input", {
1648
+ "onUpdate:modelValue": v[5] || (v[5] = (h) => f.current = h),
1649
+ type: "password",
1650
+ placeholder: "Current password",
1651
+ class: "input-modern",
1652
+ autocomplete: "current-password"
1653
+ }, null, 512), [
1654
+ [E, f.current]
1655
+ ]),
1656
+ O(e("input", {
1657
+ "onUpdate:modelValue": v[6] || (v[6] = (h) => f.new = h),
1658
+ type: "password",
1659
+ placeholder: "New password",
1660
+ class: "input-modern",
1661
+ autocomplete: "new-password"
1662
+ }, null, 512), [
1663
+ [E, f.new]
1664
+ ]),
1665
+ O(e("input", {
1666
+ "onUpdate:modelValue": v[7] || (v[7] = (h) => f.confirm = h),
1667
+ type: "password",
1668
+ placeholder: "Confirm new password",
1669
+ class: "input-modern",
1670
+ autocomplete: "new-password"
1671
+ }, null, 512), [
1672
+ [E, f.confirm]
1673
+ ]),
1674
+ e("button", {
1675
+ type: "button",
1676
+ class: "btn-primary !w-auto px-4 py-2 text-sm",
1677
+ onClick: a,
1678
+ disabled: !w.value
1679
+ }, " Update Password ", 8, Vs)
1680
+ ])) : C("", !0)
1681
+ ]),
1682
+ e("div", hs, [
1683
+ e("div", qs, [
1684
+ e("div", null, [
1685
+ v[16] || (v[16] = e("h4", { class: "font-medium text-neutral-900" }, "Two-Factor Authentication", -1)),
1686
+ e("p", Cs, L(M.user?.mfaEnabled ? "Enabled" : "Add extra security to your account"), 1)
1687
+ ]),
1688
+ e("button", {
1689
+ type: "button",
1690
+ class: B([
1691
+ M.user?.mfaEnabled ? "btn-secondary" : "btn-primary",
1692
+ "!w-auto px-4 py-2 text-sm"
1722
1693
  ]),
1723
- e("button", {
1724
- type: "button",
1725
- class: "btn-secondary !w-auto px-4 py-2 text-sm",
1726
- onClick: d[8] || (d[8] = (B) => q.$emit("manage-sessions"))
1727
- }, " Manage ")
1728
- ])
1694
+ onClick: D
1695
+ }, L(M.user?.mfaEnabled ? "Disable" : "Enable"), 3)
1696
+ ])
1697
+ ]),
1698
+ e("div", Ws, [
1699
+ e("div", Ns, [
1700
+ e("div", null, [
1701
+ v[17] || (v[17] = e("h4", { class: "font-medium text-neutral-900" }, "Active Sessions", -1)),
1702
+ e("p", xs, L(g.value.length) + " active device(s)", 1)
1703
+ ]),
1704
+ e("button", {
1705
+ type: "button",
1706
+ class: "btn-secondary !w-auto px-4 py-2 text-sm",
1707
+ onClick: v[8] || (v[8] = (h) => M.$emit("manage-sessions"))
1708
+ }, " Manage ")
1729
1709
  ])
1730
1710
  ])
1731
- ]),
1732
- e("div", Ms, [
1733
- e("button", {
1734
- type: "submit",
1735
- disabled: u.value || !p.value,
1736
- class: "btn-primary"
1737
- }, [
1738
- u.value ? (A(), a("span", Ss, d[19] || (d[19] = [
1739
- e("svg", {
1740
- class: "animate-spin w-4 h-4",
1741
- fill: "none",
1742
- viewBox: "0 0 24 24"
1743
- }, [
1744
- e("circle", {
1745
- class: "opacity-25",
1746
- cx: "12",
1747
- cy: "12",
1748
- r: "10",
1749
- stroke: "currentColor",
1750
- "stroke-width": "4"
1751
- }),
1752
- e("path", {
1753
- class: "opacity-75",
1754
- fill: "currentColor",
1755
- d: "m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
1756
- })
1757
- ], -1),
1758
- j(" Saving changes... ", -1)
1759
- ]))) : (A(), a("span", Ds, "Save changes"))
1760
- ], 8, zs),
1761
- e("button", {
1762
- type: "button",
1763
- class: "btn-secondary",
1764
- onClick: F,
1765
- disabled: u.value
1766
- }, " Cancel ", 8, Xs)
1767
1711
  ])
1768
- ], 32),
1769
- i.value ? (A(), a("div", ks, [
1770
- e("div", Bs, [
1771
- e("div", Fs, [
1772
- d[20] || (d[20] = e("svg", {
1773
- class: "w-4 h-4 mt-0.5 flex-shrink-0",
1774
- fill: "currentColor",
1775
- viewBox: "0 0 20 20"
1712
+ ]),
1713
+ e("div", Ls, [
1714
+ e("button", {
1715
+ type: "submit",
1716
+ disabled: d.value || !m.value,
1717
+ class: "btn-primary"
1718
+ }, [
1719
+ d.value ? (A(), r("span", Ms, v[19] || (v[19] = [
1720
+ e("svg", {
1721
+ class: "animate-spin w-4 h-4",
1722
+ fill: "none",
1723
+ viewBox: "0 0 24 24"
1776
1724
  }, [
1725
+ e("circle", {
1726
+ class: "opacity-25",
1727
+ cx: "12",
1728
+ cy: "12",
1729
+ r: "10",
1730
+ stroke: "currentColor",
1731
+ "stroke-width": "4"
1732
+ }),
1777
1733
  e("path", {
1778
- "fill-rule": "evenodd",
1779
- d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.236 4.53L7.53 10.173a.75.75 0 00-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
1780
- "clip-rule": "evenodd"
1734
+ class: "opacity-75",
1735
+ fill: "currentColor",
1736
+ d: "m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
1781
1737
  })
1782
- ], -1)),
1783
- e("p", Ps, L(i.value), 1)
1784
- ])
1738
+ ], -1),
1739
+ F(" Saving changes... ", -1)
1740
+ ]))) : (A(), r("span", zs, "Save changes"))
1741
+ ], 8, Us),
1742
+ e("button", {
1743
+ type: "button",
1744
+ class: "btn-secondary",
1745
+ onClick: Z,
1746
+ disabled: d.value
1747
+ }, " Cancel ", 8, Ss)
1748
+ ])
1749
+ ], 32),
1750
+ u.value ? (A(), r("div", Ds, [
1751
+ e("div", Xs, [
1752
+ e("div", ks, [
1753
+ v[20] || (v[20] = e("svg", {
1754
+ class: "w-4 h-4 mt-0.5 flex-shrink-0",
1755
+ fill: "currentColor",
1756
+ viewBox: "0 0 20 20"
1757
+ }, [
1758
+ e("path", {
1759
+ "fill-rule": "evenodd",
1760
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.236 4.53L7.53 10.173a.75.75 0 00-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
1761
+ "clip-rule": "evenodd"
1762
+ })
1763
+ ], -1)),
1764
+ e("p", Bs, L(u.value), 1)
1785
1765
  ])
1786
- ])) : W("", !0),
1787
- n.value ? (A(), a("div", Is, [
1788
- e("div", js, [
1789
- e("div", Zs, [
1790
- d[21] || (d[21] = e("svg", {
1791
- class: "w-4 h-4 mt-0.5 flex-shrink-0",
1792
- fill: "currentColor",
1793
- viewBox: "0 0 20 20"
1794
- }, [
1795
- e("path", {
1796
- "fill-rule": "evenodd",
1797
- d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",
1798
- "clip-rule": "evenodd"
1799
- })
1800
- ], -1)),
1801
- e("p", Ts, L(n.value), 1)
1802
- ])
1766
+ ])
1767
+ ])) : C("", !0),
1768
+ o.value ? (A(), r("div", Fs, [
1769
+ e("div", Ps, [
1770
+ e("div", Is, [
1771
+ v[21] || (v[21] = e("svg", {
1772
+ class: "w-4 h-4 mt-0.5 flex-shrink-0",
1773
+ fill: "currentColor",
1774
+ viewBox: "0 0 20 20"
1775
+ }, [
1776
+ e("path", {
1777
+ "fill-rule": "evenodd",
1778
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",
1779
+ "clip-rule": "evenodd"
1780
+ })
1781
+ ], -1)),
1782
+ e("p", js, L(o.value), 1)
1803
1783
  ])
1804
- ])) : W("", !0),
1805
- x(le)
1806
- ])
1807
- ]);
1808
- };
1784
+ ])
1785
+ ])) : C("", !0),
1786
+ N(ae)
1787
+ ])
1788
+ ]));
1809
1789
  }
1810
- }), Ys = { class: "w-full max-w-md mx-auto animate-slide-up" }, Ks = { class: "mt-8 text-center" }, rA = /* @__PURE__ */ P({
1790
+ }), Zs = { class: "w-full max-w-md mx-auto animate-slide-up" }, Ts = { class: "mt-8 text-center" }, AA = /* @__PURE__ */ k({
1811
1791
  __name: "StrandsPasswordReset",
1812
1792
  emits: ["success", "error", "back-to-signin"],
1813
- setup(V, { emit: g }) {
1814
- const s = g, r = U(!1), u = U(""), o = U(!1), i = J({
1793
+ setup(y, { emit: p }) {
1794
+ const s = p, l = U(!1), d = U(""), i = U(!1), u = H({
1815
1795
  email: ""
1816
- }), n = async () => {
1817
- r.value = !0, u.value = "";
1796
+ }), o = async () => {
1797
+ l.value = !0, d.value = "";
1818
1798
  try {
1819
- console.log("Password reset request:", { email: i.email }), await new Promise((b) => setTimeout(b, 1e3)), o.value = !0, s("success", i.email);
1799
+ console.log("Password reset request:", { email: u.email }), await new Promise((g) => setTimeout(g, 1e3)), i.value = !0, s("success", u.email);
1820
1800
  } catch {
1821
- u.value = "Failed to send password reset email. Please try again.", s("error", u.value);
1801
+ d.value = "Failed to send password reset email. Please try again.", s("error", d.value);
1822
1802
  } finally {
1823
- r.value = !1;
1803
+ l.value = !1;
1824
1804
  }
1825
1805
  };
1826
- return (b, c) => (A(), a("div", Ys, [
1827
- x(w(ue), { variant: "modern" }, {
1828
- default: D(() => [
1806
+ return (g, c) => (A(), r("div", Zs, [
1807
+ N(b(oe), { variant: "modern" }, {
1808
+ default: z(() => [
1829
1809
  c[4] || (c[4] = e("div", { class: "text-center mb-8" }, [
1830
1810
  e("h1", { class: "text-3xl font-bold text-gradient mb-2" }, "Reset password"),
1831
1811
  e("p", { class: "text-neutral-600" }, "Enter your email address and we'll send you a link to reset your password")
1832
1812
  ], -1)),
1833
1813
  e("form", {
1834
- onSubmit: re(n, ["prevent"]),
1814
+ onSubmit: Ae(o, ["prevent"]),
1835
1815
  class: "space-y-6"
1836
1816
  }, [
1837
- x(w(ee), {
1817
+ N(b(_), {
1838
1818
  id: "email",
1839
- modelValue: i.email,
1840
- "onUpdate:modelValue": c[0] || (c[0] = (f) => i.email = f),
1819
+ modelValue: u.email,
1820
+ "onUpdate:modelValue": c[0] || (c[0] = (f) => u.email = f),
1841
1821
  type: "email",
1842
1822
  label: "Email address",
1843
1823
  placeholder: "Enter your email address",
1844
1824
  autocomplete: "email",
1845
1825
  required: "",
1846
- disabled: r.value || o.value,
1847
- error: u.value ? "Email address not found" : void 0
1826
+ disabled: l.value || i.value,
1827
+ error: d.value ? "Email address not found" : void 0
1848
1828
  }, null, 8, ["modelValue", "disabled", "error"]),
1849
- x(w(_), {
1829
+ N(b(G), {
1850
1830
  type: "submit",
1851
1831
  variant: "primary",
1852
1832
  "full-width": "",
1853
- disabled: r.value || !i.email.trim() || o.value,
1854
- loading: r.value,
1833
+ disabled: l.value || !u.email.trim() || i.value,
1834
+ loading: l.value,
1855
1835
  "loading-text": "Sending link..."
1856
1836
  }, {
1857
- default: D(() => [
1858
- j(L(o.value ? "Link sent!" : "Send reset link"), 1)
1837
+ default: z(() => [
1838
+ F(L(i.value ? "Link sent!" : "Send reset link"), 1)
1859
1839
  ]),
1860
1840
  _: 1
1861
1841
  }, 8, ["disabled", "loading"])
1862
1842
  ], 32),
1863
- o.value ? (A(), E(w(se), {
1843
+ i.value ? (A(), Y(b(ee), {
1864
1844
  key: 0,
1865
1845
  variant: "success",
1866
- message: `Check your email - We've sent a password reset link to ${i.email}`,
1846
+ message: `Check your email - We've sent a password reset link to ${u.email}`,
1867
1847
  class: "mt-6 animate-fade-in"
1868
- }, null, 8, ["message"])) : W("", !0),
1869
- u.value ? (A(), E(w(se), {
1848
+ }, null, 8, ["message"])) : C("", !0),
1849
+ d.value ? (A(), Y(b(ee), {
1870
1850
  key: 1,
1871
1851
  variant: "error",
1872
- message: u.value,
1852
+ message: d.value,
1873
1853
  class: "mt-6 animate-fade-in",
1874
1854
  dismissible: "",
1875
- onDismiss: c[1] || (c[1] = (f) => u.value = "")
1876
- }, null, 8, ["message"])) : W("", !0),
1877
- e("div", Ks, [
1878
- x(w(Ae), {
1879
- onClick: c[2] || (c[2] = (f) => b.$emit("back-to-signin")),
1855
+ onDismiss: c[1] || (c[1] = (f) => d.value = "")
1856
+ }, null, 8, ["message"])) : C("", !0),
1857
+ e("div", Ts, [
1858
+ N(b(te), {
1859
+ onClick: c[2] || (c[2] = (f) => g.$emit("back-to-signin")),
1880
1860
  class: "inline-flex items-center gap-2"
1881
1861
  }, {
1882
- default: D(() => c[3] || (c[3] = [
1862
+ default: z(() => c[3] || (c[3] = [
1883
1863
  e("svg", {
1884
1864
  class: "w-4 h-4",
1885
1865
  fill: "none",
@@ -1893,228 +1873,225 @@ const lt = { class: "w-full max-w-md mx-auto animate-slide-up" }, nt = { class:
1893
1873
  d: "M15 19l-7-7 7-7"
1894
1874
  })
1895
1875
  ], -1),
1896
- j(" Back to sign in ", -1)
1876
+ F(" Back to sign in ", -1)
1897
1877
  ])),
1898
1878
  _: 1,
1899
1879
  __: [3]
1900
1880
  })
1901
1881
  ]),
1902
- x(le)
1882
+ N(ae)
1903
1883
  ]),
1904
1884
  _: 1,
1905
1885
  __: [4]
1906
1886
  })
1907
1887
  ]));
1908
1888
  }
1909
- }), Qs = { class: "max-w-md mx-auto bg-white rounded-lg shadow-lg p-6" }, lA = /* @__PURE__ */ P({
1889
+ }), Ys = { class: "max-w-md mx-auto bg-white rounded-lg shadow-lg p-6" }, aA = /* @__PURE__ */ k({
1910
1890
  __name: "StrandsMFASetup",
1911
- setup(V) {
1912
- return (g, s) => (A(), a("div", Qs, s[0] || (s[0] = [
1913
- ve('<div class="text-center mb-6"><h2 class="text-2xl font-bold text-gray-900">Two-Factor Authentication</h2><p class="text-gray-600 mt-2">Secure your account with 2FA</p></div><div class="space-y-4"><p class="text-gray-500">MFA setup functionality will be implemented here.</p></div>', 2)
1891
+ setup(y) {
1892
+ return (p, s) => (A(), r("div", Ys, s[0] || (s[0] = [
1893
+ me('<div class="text-center mb-6"><h2 class="text-2xl font-bold text-gray-900">Two-Factor Authentication</h2><p class="text-gray-600 mt-2">Secure your account with 2FA</p></div><div class="space-y-4"><p class="text-gray-500">MFA setup functionality will be implemented here.</p></div>', 2)
1914
1894
  ])));
1915
1895
  }
1916
- }), K = U(null), $ = U(null), te = U(!1), O = U(!1), me = U(!1);
1917
- function Ve() {
1918
- const V = N(() => K.value !== null), g = async (n) => {
1919
- O.value = !0;
1896
+ }), j = U(null), J = U(null), $ = U(!1), T = U(!1), ce = U(!1);
1897
+ function we() {
1898
+ const y = x(() => j.value !== null), p = async (o) => {
1899
+ T.value = !0;
1920
1900
  try {
1921
- return console.log("Sign in with:", n), await new Promise((b) => setTimeout(b, 1e3)), K.value = {
1901
+ return console.log("Sign in with:", o), await new Promise((g) => setTimeout(g, 1e3)), j.value = {
1922
1902
  id: "1",
1923
- email: n.email,
1903
+ email: o.email,
1924
1904
  firstName: "John",
1925
1905
  lastName: "Doe",
1926
1906
  mfaEnabled: !1,
1927
1907
  createdAt: "2024-01-15T10:30:00Z",
1928
1908
  updatedAt: "2024-01-20T14:45:00Z"
1929
- }, $.value = {
1909
+ }, J.value = {
1930
1910
  accessToken: "mock-access-token",
1931
1911
  refreshToken: "mock-refresh-token",
1932
1912
  expiresAt: new Date(Date.now() + 300 * 1e3)
1933
1913
  // 5 minutes
1934
- }, K.value;
1914
+ }, j.value;
1935
1915
  } finally {
1936
- O.value = !1;
1916
+ T.value = !1;
1937
1917
  }
1938
- }, s = async (n) => {
1939
- O.value = !0;
1918
+ }, s = async (o) => {
1919
+ T.value = !0;
1940
1920
  try {
1941
- return console.log("Sign up with:", n), await new Promise((b) => setTimeout(b, 1e3)), K.value = {
1921
+ return console.log("Sign up with:", o), await new Promise((g) => setTimeout(g, 1e3)), j.value = {
1942
1922
  id: "1",
1943
- email: n.email,
1944
- firstName: n.firstName,
1945
- lastName: n.lastName,
1923
+ email: o.email,
1924
+ firstName: o.firstName,
1925
+ lastName: o.lastName,
1946
1926
  mfaEnabled: !1,
1947
1927
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
1948
1928
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
1949
- }, $.value = {
1929
+ }, J.value = {
1950
1930
  accessToken: "mock-access-token",
1951
1931
  refreshToken: "mock-refresh-token",
1952
1932
  expiresAt: new Date(Date.now() + 300 * 1e3)
1953
1933
  // 5 minutes
1954
- }, K.value;
1934
+ }, j.value;
1955
1935
  } finally {
1956
- O.value = !1;
1936
+ T.value = !1;
1957
1937
  }
1958
- }, r = async () => {
1959
- O.value = !0;
1938
+ }, l = async () => {
1939
+ T.value = !0;
1960
1940
  try {
1961
- console.log("Sign out"), await new Promise((n) => setTimeout(n, 500)), K.value = null, $.value = null;
1941
+ console.log("Sign out"), await new Promise((o) => setTimeout(o, 500)), j.value = null, J.value = null;
1962
1942
  } finally {
1963
- O.value = !1;
1943
+ T.value = !1;
1964
1944
  }
1965
- }, u = async () => {
1966
- if ($.value) {
1967
- te.value = !0;
1945
+ }, d = async () => {
1946
+ if (J.value) {
1947
+ $.value = !0;
1968
1948
  try {
1969
- console.log("Refresh token"), $.value.expiresAt = new Date(Date.now() + 300 * 1e3);
1949
+ console.log("Refresh token"), J.value.expiresAt = new Date(Date.now() + 300 * 1e3);
1970
1950
  } finally {
1971
- te.value = !1;
1951
+ $.value = !1;
1972
1952
  }
1973
1953
  }
1974
- }, o = async (n) => {
1975
- te.value = !0;
1954
+ }, i = async (o) => {
1955
+ $.value = !0;
1976
1956
  try {
1977
- console.log("Update profile:", n), K.value && Object.assign(K.value, n);
1957
+ console.log("Update profile:", o), j.value && Object.assign(j.value, o);
1978
1958
  } finally {
1979
- te.value = !1;
1959
+ $.value = !1;
1980
1960
  }
1981
- }, i = async () => {
1982
- if (!me.value) {
1983
- O.value = !0;
1961
+ }, u = async () => {
1962
+ if (!ce.value) {
1963
+ T.value = !0;
1984
1964
  try {
1985
- console.log("Initializing auth state"), await new Promise((n) => setTimeout(n, 500)), me.value = !0;
1986
- } catch (n) {
1987
- console.error("Auth initialization error:", n);
1965
+ console.log("Initializing auth state"), await new Promise((o) => setTimeout(o, 500)), ce.value = !0;
1966
+ } catch (o) {
1967
+ console.error("Auth initialization error:", o);
1988
1968
  } finally {
1989
- O.value = !1;
1969
+ T.value = !1;
1990
1970
  }
1991
1971
  }
1992
1972
  };
1993
- return me.value || i(), {
1973
+ return ce.value || u(), {
1994
1974
  // State
1995
- user: N(() => K.value),
1996
- currentUser: N(() => K.value),
1997
- currentSession: N(() => $.value),
1998
- isAuthenticated: V,
1999
- isLoading: N(() => O.value),
2000
- loading: N(() => te.value),
1975
+ user: x(() => j.value),
1976
+ currentUser: x(() => j.value),
1977
+ currentSession: x(() => J.value),
1978
+ isAuthenticated: y,
1979
+ isLoading: x(() => T.value),
1980
+ loading: x(() => $.value),
2001
1981
  // Methods
2002
- signIn: g,
1982
+ signIn: p,
2003
1983
  signUp: s,
2004
- signOut: r,
2005
- refreshToken: u,
2006
- updateProfile: o,
2007
- initialize: i
1984
+ signOut: l,
1985
+ refreshToken: d,
1986
+ updateProfile: i,
1987
+ initialize: u
2008
1988
  };
2009
1989
  }
2010
- const Os = {
1990
+ const Ks = {
2011
1991
  key: 0,
2012
1992
  class: "animate-fade-in"
2013
- }, Es = {
1993
+ }, Qs = {
2014
1994
  key: 1,
2015
1995
  class: "animate-fade-in"
2016
- }, nA = /* @__PURE__ */ P({
1996
+ }, rA = /* @__PURE__ */ k({
2017
1997
  __name: "SignedIn",
2018
1998
  props: {
2019
1999
  showFallback: { type: Boolean, default: !0 }
2020
2000
  },
2021
2001
  emits: ["sign-in-required"],
2022
- setup(V, { emit: g }) {
2023
- const s = g, { isAuthenticated: r, user: u, signOut: o } = Ve(), i = () => {
2002
+ setup(y, { emit: p }) {
2003
+ const s = p, { isAuthenticated: l, user: d, signOut: i } = we(), u = () => {
2024
2004
  s("sign-in-required");
2025
2005
  };
2026
- return (n, b) => w(r) ? (A(), a("div", Os, [
2027
- Z(n.$slots, "default", {
2028
- user: w(u),
2029
- signOut: w(o)
2006
+ return (o, g) => b(l) ? (A(), r("div", Ks, [
2007
+ P(o.$slots, "default", {
2008
+ user: b(d),
2009
+ signOut: b(i)
2030
2010
  })
2031
- ])) : n.showFallback ? (A(), a("div", Es, [
2032
- Z(n.$slots, "fallback", { signIn: i }, () => [
2011
+ ])) : o.showFallback ? (A(), r("div", Qs, [
2012
+ P(o.$slots, "fallback", { signIn: u }, () => [
2033
2013
  e("div", { class: "text-center py-8" }, [
2034
- b[0] || (b[0] = ve('<div class="w-16 h-16 mx-auto mb-4 bg-neutral-100 rounded-full flex items-center justify-center"><svg class="w-8 h-8 text-neutral-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><h3 class="text-lg font-semibold text-neutral-900 mb-2">Sign in required</h3><p class="text-neutral-600 mb-4">You need to be signed in to access this content.</p>', 3)),
2014
+ g[0] || (g[0] = me('<div class="w-16 h-16 mx-auto mb-4 bg-neutral-100 rounded-full flex items-center justify-center"><svg class="w-8 h-8 text-neutral-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><h3 class="text-lg font-semibold text-neutral-900 mb-2">Sign in required</h3><p class="text-neutral-600 mb-4">You need to be signed in to access this content.</p>', 3)),
2035
2015
  e("button", {
2036
- onClick: i,
2016
+ onClick: u,
2037
2017
  class: "btn-primary !w-auto px-6 py-2"
2038
2018
  }, " Sign in ")
2039
2019
  ])
2040
2020
  ])
2041
- ])) : W("", !0);
2021
+ ])) : C("", !0);
2042
2022
  }
2043
- }), Hs = {
2023
+ }), Os = {
2044
2024
  key: 0,
2045
2025
  class: "animate-fade-in"
2046
- }, Gs = {
2026
+ }, Es = {
2047
2027
  key: 1,
2048
2028
  class: "animate-fade-in"
2049
- }, Rs = { class: "text-center py-8" }, Js = { class: "text-neutral-600 mb-4" }, _s = {
2029
+ }, Hs = { class: "text-center py-8" }, Gs = { class: "text-neutral-600 mb-4" }, Rs = {
2050
2030
  key: 2,
2051
2031
  class: "animate-pulse"
2052
- }, oA = /* @__PURE__ */ P({
2032
+ }, lA = /* @__PURE__ */ k({
2053
2033
  __name: "SignedOut",
2054
2034
  props: {
2055
2035
  showFallback: { type: Boolean, default: !0 }
2056
2036
  },
2057
2037
  emits: ["sign-in-clicked", "sign-up-clicked"],
2058
- setup(V, { emit: g }) {
2059
- const s = g, { isAuthenticated: r, isLoading: u, user: o, signOut: i } = Ve(), n = () => {
2038
+ setup(y, { emit: p }) {
2039
+ const s = p, { isAuthenticated: l, isLoading: d, user: i, signOut: u } = we(), o = () => {
2060
2040
  s("sign-in-clicked");
2061
- }, b = () => {
2041
+ }, g = () => {
2062
2042
  s("sign-up-clicked");
2063
2043
  };
2064
- return (c, f) => !w(r) && !w(u) ? (A(), a("div", Hs, [
2065
- Z(c.$slots, "default", {
2066
- signIn: n,
2067
- signUp: b
2068
- })
2069
- ])) : c.showFallback && w(r) ? (A(), a("div", Gs, [
2070
- Z(c.$slots, "fallback", {
2071
- user: w(o),
2072
- signOut: w(i)
2073
- }, () => {
2074
- var t;
2075
- return [
2076
- e("div", Rs, [
2077
- f[1] || (f[1] = e("div", { class: "w-16 h-16 mx-auto mb-4 bg-strands-100 rounded-full flex items-center justify-center" }, [
2078
- e("svg", {
2079
- class: "w-8 h-8 text-strands-600",
2080
- fill: "none",
2081
- stroke: "currentColor",
2082
- viewBox: "0 0 24 24"
2083
- }, [
2084
- e("path", {
2085
- "stroke-linecap": "round",
2086
- "stroke-linejoin": "round",
2087
- "stroke-width": "2",
2088
- d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
2089
- })
2090
- ])
2091
- ], -1)),
2092
- f[2] || (f[2] = e("h3", { class: "text-lg font-semibold text-neutral-900 mb-2" }, "Already signed in", -1)),
2093
- e("p", Js, "You're currently signed in as " + L((t = w(o)) == null ? void 0 : t.email) + ".", 1),
2094
- e("button", {
2095
- onClick: f[0] || (f[0] = //@ts-ignore
2096
- (...p) => w(i) && w(i)(...p)),
2097
- class: "btn-secondary !w-auto px-6 py-2"
2098
- }, " Sign out ")
2099
- ])
2100
- ];
2044
+ return (c, f) => !b(l) && !b(d) ? (A(), r("div", Os, [
2045
+ P(c.$slots, "default", {
2046
+ signIn: o,
2047
+ signUp: g
2101
2048
  })
2102
- ])) : w(u) ? (A(), a("div", _s, [
2103
- Z(c.$slots, "loading", {}, () => [
2104
- f[3] || (f[3] = ve('<div class="text-center py-8"><div class="w-16 h-16 mx-auto mb-4 bg-neutral-200 rounded-full flex items-center justify-center"><svg class="animate-spin w-6 h-6 text-neutral-400" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg></div><p class="text-neutral-500">Checking authentication...</p></div>', 1))
2049
+ ])) : c.showFallback && b(l) ? (A(), r("div", Es, [
2050
+ P(c.$slots, "fallback", {
2051
+ user: b(i),
2052
+ signOut: b(u)
2053
+ }, () => [
2054
+ e("div", Hs, [
2055
+ f[1] || (f[1] = e("div", { class: "w-16 h-16 mx-auto mb-4 bg-strands-100 rounded-full flex items-center justify-center" }, [
2056
+ e("svg", {
2057
+ class: "w-8 h-8 text-strands-600",
2058
+ fill: "none",
2059
+ stroke: "currentColor",
2060
+ viewBox: "0 0 24 24"
2061
+ }, [
2062
+ e("path", {
2063
+ "stroke-linecap": "round",
2064
+ "stroke-linejoin": "round",
2065
+ "stroke-width": "2",
2066
+ d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
2067
+ })
2068
+ ])
2069
+ ], -1)),
2070
+ f[2] || (f[2] = e("h3", { class: "text-lg font-semibold text-neutral-900 mb-2" }, "Already signed in", -1)),
2071
+ e("p", Gs, "You're currently signed in as " + L(b(i)?.email) + ".", 1),
2072
+ e("button", {
2073
+ onClick: f[0] || (f[0] = //@ts-ignore
2074
+ (...t) => b(u) && b(u)(...t)),
2075
+ class: "btn-secondary !w-auto px-6 py-2"
2076
+ }, " Sign out ")
2077
+ ])
2078
+ ])
2079
+ ])) : b(d) ? (A(), r("div", Rs, [
2080
+ P(c.$slots, "loading", {}, () => [
2081
+ f[3] || (f[3] = me('<div class="text-center py-8"><div class="w-16 h-16 mx-auto mb-4 bg-neutral-200 rounded-full flex items-center justify-center"><svg class="animate-spin w-6 h-6 text-neutral-400" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg></div><p class="text-neutral-500">Checking authentication...</p></div>', 1))
2105
2082
  ])
2106
- ])) : W("", !0);
2083
+ ])) : C("", !0);
2107
2084
  }
2108
- }), iA = /* @__PURE__ */ P({
2085
+ }), nA = /* @__PURE__ */ k({
2109
2086
  __name: "StrandsLogo",
2110
2087
  props: {
2111
2088
  class: { default: "" }
2112
2089
  },
2113
- setup(V) {
2114
- return (g, s) => (A(), a("svg", {
2090
+ setup(y) {
2091
+ return (p, s) => (A(), r("svg", {
2115
2092
  viewBox: "0 0 22571 9413",
2116
2093
  xmlns: "http://www.w3.org/2000/svg",
2117
- class: I(g.class),
2094
+ class: B(p.class),
2118
2095
  role: "img",
2119
2096
  "aria-label": "Strands Services Logo"
2120
2097
  }, s[0] || (s[0] = [
@@ -2133,40 +2110,40 @@ const Os = {
2133
2110
  ], -1)
2134
2111
  ]), 2));
2135
2112
  }
2136
- }), uA = /* @__PURE__ */ P({
2113
+ }), oA = /* @__PURE__ */ k({
2137
2114
  __name: "StrandsConfigProvider",
2138
2115
  props: {
2139
2116
  config: {}
2140
2117
  },
2141
- setup(V) {
2142
- const g = V;
2143
- return ae(() => {
2144
- be(g.config);
2145
- }), be(g.config), (s, r) => Z(s.$slots, "default");
2118
+ setup(y) {
2119
+ const p = y;
2120
+ return se(() => {
2121
+ pe(p.config);
2122
+ }), pe(p.config), (s, l) => P(s.$slots, "default");
2146
2123
  }
2147
2124
  });
2148
2125
  export {
2149
- nA as SignedIn,
2150
- oA as SignedOut,
2151
- tA as StrandsAuth,
2152
- uA as StrandsConfigProvider,
2153
- iA as StrandsLogo,
2154
- lA as StrandsMFASetup,
2155
- rA as StrandsPasswordReset,
2156
- le as StrandsSecuredFooter,
2157
- sA as StrandsSignIn,
2158
- AA as StrandsSignUp,
2159
- aA as StrandsUserProfile,
2160
- se as UiAlert,
2161
- _ as UiButton,
2162
- ue as UiCard,
2163
- ee as UiInput,
2164
- Ae as UiLink,
2165
- tt as UiTabs,
2166
- be as provideStrandsConfig,
2167
- eA as setStrandsConfig,
2126
+ rA as SignedIn,
2127
+ lA as SignedOut,
2128
+ $s as StrandsAuth,
2129
+ oA as StrandsConfigProvider,
2130
+ nA as StrandsLogo,
2131
+ aA as StrandsMFASetup,
2132
+ AA as StrandsPasswordReset,
2133
+ ae as StrandsSecuredFooter,
2134
+ eA as StrandsSignIn,
2135
+ tA as StrandsSignUp,
2136
+ sA as StrandsUserProfile,
2137
+ ee as UiAlert,
2138
+ G as UiButton,
2139
+ oe as UiCard,
2140
+ _ as UiInput,
2141
+ te as UiLink,
2142
+ $e as UiTabs,
2143
+ pe as provideStrandsConfig,
2144
+ _s as setStrandsConfig,
2168
2145
  fe as useOAuthProviders,
2169
- Ve as useStrandsAuth,
2170
- de as useStrandsConfig
2146
+ we as useStrandsAuth,
2147
+ ie as useStrandsConfig
2171
2148
  };
2172
2149
  //# sourceMappingURL=strands-auth-ui.es.js.map