@strands.gg/accui 1.6.2 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accui.css +112 -87
- package/dist/nuxt/module.cjs.js.map +1 -1
- package/dist/nuxt/module.es.js.map +1 -1
- package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js.map +1 -1
- package/dist/nuxt/runtime/composables/useStrandsAuth.es.js.map +1 -1
- package/dist/nuxt/runtime/middleware/auth.global.cjs.js.map +1 -1
- package/dist/nuxt/runtime/middleware/auth.global.es.js.map +1 -1
- package/dist/nuxt/runtime/plugin.client.cjs.js.map +1 -1
- package/dist/nuxt/runtime/plugin.client.es.js.map +1 -1
- package/dist/nuxt/runtime/plugin.server.cjs.js.map +1 -1
- package/dist/nuxt/runtime/plugin.server.es.js.map +1 -1
- package/dist/nuxt-v4/module.cjs.js.map +1 -1
- package/dist/nuxt-v4/module.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/middleware/auth.global.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/middleware/auth.global.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/plugin.client.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/plugin.client.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/plugin.server.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/plugin.server.es.js.map +1 -1
- package/dist/strands-auth-ui.cjs.js +533 -447
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +533 -447
- package/dist/strands-auth-ui.es.js.map +1 -1
- package/dist/useStrandsAuth-CO9JEdxM.js.map +1 -1
- package/dist/useStrandsAuth-z4jAu9Uv.cjs.map +1 -1
- package/dist/useStrandsConfig-Bdk-g0jS.js.map +1 -1
- package/dist/useStrandsConfig-CtmQtE7Y.cjs.map +1 -1
- package/package.json +2 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/nuxt/module.d.ts +0 -5
- package/dist/nuxt/module.d.ts.map +0 -1
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts +0 -137
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts.map +0 -1
- package/dist/nuxt/runtime/middleware/auth.global.d.ts +0 -3
- package/dist/nuxt/runtime/middleware/auth.global.d.ts.map +0 -1
- package/dist/nuxt/runtime/plugin.client.d.ts +0 -3
- package/dist/nuxt/runtime/plugin.client.d.ts.map +0 -1
- package/dist/nuxt/runtime/plugin.server.d.ts +0 -3
- package/dist/nuxt/runtime/plugin.server.d.ts.map +0 -1
- package/dist/nuxt/runtime/styles.css +0 -78
- package/dist/nuxt/types.d.ts +0 -46
- package/dist/nuxt/types.d.ts.map +0 -1
- package/dist/nuxt-v4/module.d.ts +0 -5
- package/dist/nuxt-v4/module.d.ts.map +0 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts +0 -27
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts.map +0 -1
- package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts +0 -3
- package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts.map +0 -1
- package/dist/nuxt-v4/runtime/plugin.client.d.ts +0 -3
- package/dist/nuxt-v4/runtime/plugin.client.d.ts.map +0 -1
- package/dist/nuxt-v4/runtime/plugin.server.d.ts +0 -3
- package/dist/nuxt-v4/runtime/plugin.server.d.ts.map +0 -1
- package/dist/nuxt-v4/runtime/styles.css +0 -141
- package/dist/nuxt-v4/types.d.ts +0 -64
- package/dist/nuxt-v4/types.d.ts.map +0 -1
- package/dist/nuxt-v4.d.ts +0 -4
- package/dist/nuxt-v4.d.ts.map +0 -1
- package/dist/nuxt.d.ts +0 -3
- package/dist/nuxt.d.ts.map +0 -1
- package/dist/shared/defaults.d.ts +0 -3
- package/dist/shared/defaults.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -197
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/slots.d.ts +0 -2
- package/dist/utils/slots.d.ts.map +0 -1
- package/dist/utils/validation.d.ts +0 -13
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/vue/components/SignedIn.vue.d.ts +0 -51
- package/dist/vue/components/SignedIn.vue.d.ts.map +0 -1
- package/dist/vue/components/SignedOut.vue.d.ts +0 -54
- package/dist/vue/components/SignedOut.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsAuth.vue.d.ts +0 -23
- package/dist/vue/components/StrandsAuth.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts +0 -12
- package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts +0 -21
- package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsConfigProvider.vue.d.ts +0 -22
- package/dist/vue/components/StrandsConfigProvider.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsConfirmModal.vue.d.ts +0 -22
- package/dist/vue/components/StrandsConfirmModal.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts +0 -12
- package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts +0 -15
- package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsLogo.vue.d.ts +0 -8
- package/dist/vue/components/StrandsLogo.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsMFASetup.vue.d.ts +0 -16
- package/dist/vue/components/StrandsMFASetup.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsMfaModal.vue.d.ts +0 -12
- package/dist/vue/components/StrandsMfaModal.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsMfaVerification.vue.d.ts +0 -17
- package/dist/vue/components/StrandsMfaVerification.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsPasswordReset.vue.d.ts +0 -15
- package/dist/vue/components/StrandsPasswordReset.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsSecuredFooter.vue.d.ts +0 -22
- package/dist/vue/components/StrandsSecuredFooter.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsSettingsModal.vue.d.ts +0 -18
- package/dist/vue/components/StrandsSettingsModal.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsSignIn.vue.d.ts +0 -21
- package/dist/vue/components/StrandsSignIn.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsSignUp.vue.d.ts +0 -19
- package/dist/vue/components/StrandsSignUp.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts +0 -12
- package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsUserButton.vue.d.ts +0 -19
- package/dist/vue/components/StrandsUserButton.vue.d.ts.map +0 -1
- package/dist/vue/components/StrandsUserProfile.vue.d.ts +0 -26
- package/dist/vue/components/StrandsUserProfile.vue.d.ts.map +0 -1
- package/dist/vue/components/SvgIcon.vue.d.ts +0 -17
- package/dist/vue/components/SvgIcon.vue.d.ts.map +0 -1
- package/dist/vue/components/index.d.ts +0 -23
- package/dist/vue/components/index.d.ts.map +0 -1
- package/dist/vue/composables/useOAuthProviders.d.ts +0 -74
- package/dist/vue/composables/useOAuthProviders.d.ts.map +0 -1
- package/dist/vue/composables/useStrandsAuth.d.ts +0 -124
- package/dist/vue/composables/useStrandsAuth.d.ts.map +0 -1
- package/dist/vue/composables/useStrandsConfig.d.ts +0 -11
- package/dist/vue/composables/useStrandsConfig.d.ts.map +0 -1
- package/dist/vue/composables/useStrandsMfa.d.ts +0 -37
- package/dist/vue/composables/useStrandsMfa.d.ts.map +0 -1
- package/dist/vue/index.d.ts +0 -7
- package/dist/vue/index.d.ts.map +0 -1
- package/dist/vue/plugins/StrandsUIPlugin.d.ts +0 -18
- package/dist/vue/plugins/StrandsUIPlugin.d.ts.map +0 -1
- package/dist/vue/ui/UiAlert.vue.d.ts +0 -31
- package/dist/vue/ui/UiAlert.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiAvatarEditor.vue.d.ts +0 -24
- package/dist/vue/ui/UiAvatarEditor.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiAvatarEditorSimple.vue.d.ts +0 -25
- package/dist/vue/ui/UiAvatarEditorSimple.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiButton.vue.d.ts +0 -40
- package/dist/vue/ui/UiButton.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiCard.vue.d.ts +0 -29
- package/dist/vue/ui/UiCard.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiInput.vue.d.ts +0 -48
- package/dist/vue/ui/UiInput.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiLevelProgress.vue.d.ts +0 -19
- package/dist/vue/ui/UiLevelProgress.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiLink.vue.d.ts +0 -35
- package/dist/vue/ui/UiLink.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiLoader.vue.d.ts +0 -15
- package/dist/vue/ui/UiLoader.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiModal.vue.d.ts +0 -31
- package/dist/vue/ui/UiModal.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiTabs.vue.d.ts +0 -17
- package/dist/vue/ui/UiTabs.vue.d.ts.map +0 -1
- package/dist/vue/ui/UiToggle.vue.d.ts +0 -15
- package/dist/vue/ui/UiToggle.vue.d.ts.map +0 -1
- package/dist/vue/ui/index.d.ts +0 -19
- package/dist/vue/ui/index.d.ts.map +0 -1
- package/dist/vue/utils/levels.d.ts +0 -28
- package/dist/vue/utils/levels.d.ts.map +0 -1
- package/dist/vue/utils/sounds.d.ts +0 -57
- package/dist/vue/utils/sounds.d.ts.map +0 -1
|
@@ -317,6 +317,9 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
|
317
317
|
setup(__props) {
|
|
318
318
|
const props = __props;
|
|
319
319
|
const cardClasses = vue.computed(() => {
|
|
320
|
+
if (props.variant === "clean") {
|
|
321
|
+
return "";
|
|
322
|
+
}
|
|
320
323
|
const baseClasses = ["bg-white text-black border border-gray-200 flex flex-col gap-3"];
|
|
321
324
|
const variantClasses = {
|
|
322
325
|
default: "rounded-lg",
|
|
@@ -850,7 +853,7 @@ const _hoisted_14$c = { class: "bg-white border border-gray-200 rounded-xl p-5 s
|
|
|
850
853
|
const _hoisted_15$c = { class: "flex justify-center" };
|
|
851
854
|
const _hoisted_16$b = ["width", "height"];
|
|
852
855
|
const _hoisted_17$b = { class: "bg-white border border-gray-200 rounded-xl p-5 shadow-sm" };
|
|
853
|
-
const _hoisted_18$
|
|
856
|
+
const _hoisted_18$9 = { class: "space-y-3" };
|
|
854
857
|
const _hoisted_19$8 = { class: "flex items-center gap-3" };
|
|
855
858
|
const _hoisted_20$7 = { class: "flex-1 relative" };
|
|
856
859
|
const _hoisted_21$5 = ["min", "max"];
|
|
@@ -1298,7 +1301,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
|
1298
1301
|
]),
|
|
1299
1302
|
vue.createElementVNode("h3", { class: "text-sm font-semibold text-gray-700" }, "Zoom")
|
|
1300
1303
|
], -1)),
|
|
1301
|
-
vue.createElementVNode("div", _hoisted_18$
|
|
1304
|
+
vue.createElementVNode("div", _hoisted_18$9, [
|
|
1302
1305
|
vue.createElementVNode("div", _hoisted_19$8, [
|
|
1303
1306
|
vue.createElementVNode("button", {
|
|
1304
1307
|
onClick: _cache[6] || (_cache[6] = ($event) => {
|
|
@@ -1495,7 +1498,7 @@ const _hoisted_14$b = { class: "zoom-control" };
|
|
|
1495
1498
|
const _hoisted_15$b = ["min", "max"];
|
|
1496
1499
|
const _hoisted_16$a = { class: "action-buttons" };
|
|
1497
1500
|
const _hoisted_17$a = ["disabled"];
|
|
1498
|
-
const _hoisted_18$
|
|
1501
|
+
const _hoisted_18$8 = { class: "preview-section" };
|
|
1499
1502
|
const _hoisted_19$7 = { class: "preview-container" };
|
|
1500
1503
|
const _hoisted_20$6 = ["width", "height"];
|
|
1501
1504
|
const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -1936,7 +1939,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
1936
1939
|
])
|
|
1937
1940
|
])
|
|
1938
1941
|
]),
|
|
1939
|
-
vue.createElementVNode("div", _hoisted_18$
|
|
1942
|
+
vue.createElementVNode("div", _hoisted_18$8, [
|
|
1940
1943
|
_cache[9] || (_cache[9] = vue.createElementVNode("h3", { class: "text-sm font-medium text-gray-700 mb-3" }, "Preview", -1)),
|
|
1941
1944
|
vue.createElementVNode("div", _hoisted_19$7, [
|
|
1942
1945
|
vue.createElementVNode("canvas", {
|
|
@@ -3234,7 +3237,8 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
3234
3237
|
__name: "UiModal",
|
|
3235
3238
|
props: {
|
|
3236
3239
|
open: { type: Boolean, default: false },
|
|
3237
|
-
closeOnOverlayClick: { type: Boolean, default: true }
|
|
3240
|
+
closeOnOverlayClick: { type: Boolean, default: true },
|
|
3241
|
+
fullscreenOnMobile: { type: Boolean, default: true }
|
|
3238
3242
|
},
|
|
3239
3243
|
emits: ["close"],
|
|
3240
3244
|
setup(__props, { emit: __emit }) {
|
|
@@ -3253,7 +3257,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
3253
3257
|
onClick: handleOverlayClick
|
|
3254
3258
|
}, [
|
|
3255
3259
|
vue.createElementVNode("div", {
|
|
3256
|
-
class: "modal-container",
|
|
3260
|
+
class: vue.normalizeClass(["modal-container", { "modal-container-fullscreen-mobile": _ctx.fullscreenOnMobile }]),
|
|
3257
3261
|
onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
|
|
3258
3262
|
}, ["stop"]))
|
|
3259
3263
|
}, [
|
|
@@ -3268,13 +3272,13 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
3268
3272
|
vue.renderSlot(_ctx.$slots, "footer", {}, void 0, true)
|
|
3269
3273
|
])) : vue.createCommentVNode("", true)
|
|
3270
3274
|
])
|
|
3271
|
-
])
|
|
3275
|
+
], 2)
|
|
3272
3276
|
])) : vue.createCommentVNode("", true)
|
|
3273
3277
|
]);
|
|
3274
3278
|
};
|
|
3275
3279
|
}
|
|
3276
3280
|
});
|
|
3277
|
-
const StrandsUiModal = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-
|
|
3281
|
+
const StrandsUiModal = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-53bb98be"]]);
|
|
3278
3282
|
const _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABVgAAAHgCAYAAABQLAbaAAAEt2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNDgwIgogICB0aWZmOkltYWdlV2lkdGg9IjEzNjgiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLzEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIxMzY4IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iNDgwIgogICBleGlmOkNvbG9yU3BhY2U9IjEiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOk1vZGlmeURhdGU9IjIw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rYdCFBEBYXQHawB8r7uGOCph1YlP9yoKH2PS1V0EEREREREREZlFW8B6BZN5xLgbTELOcR5rdATEp7prOIeru4A4qiAxjZh0rwYAxwMQERERERER0Xu0BawAUIWc0vn4nZIQ66UY7G7fDSSk0R2sYMDasnr36ozuOpqVhNzQXQMRERERERERmUdrwFpfbrv4/7N3P8lNJGvb/79Z5l/E+/ziyBEHA6MuVoBYAWIF2JPGGiFWgFmBzQqAFWBGkj2xWYHFClCvgOoRjdwd0om3z/NiZFX+BlUC4baxZEvKzKrrE8HpPnRj3w1SqerKO+90WcMlVQaYPR16tRCx6wJ+5gomcV1DaAaYN65rmEI/77oXEREREREREfmB04AV4CrXt4C+6zouoTrg6KXrIkogdl3Az1jSkF/DC9el2QBqjsuYhrpXRURERERERORUzgPWZdb6KYR84BVAQ4delduxRgRMrEczNpigFiUizDvXNYiIiIiIiIiIn4zrAka6tA4Iq6PtH1J4fpv1V67rKJpPNOMlzEfXdfzMCuvevJd816X1Aai6rmMK/RXWl10XISIiIiIiIiJ+ct7BOmKwoXexEsHLQ5o113UUzRXPxwMQ9oiLhco7vUMKV0HjAURERERERETkJ7wJWPMDZEI+8AoAi9nr0Yxd1yELlbguIASHNGsWu+W6jmkZ7FvXNYiIiIiIiIiIv7wJWKEQB14BVAaYA4Wss2OIKq5rOEfor9m569GMLeaN6zouIMkXf0RERERERERETuVVwLrMWj/CPHVdxwzECllnJyX1OmBN4T+ua/BZj73KAHOA/6MeThH+6BIRERERERERmS+vAlaAf/N4H2i7rmMG8pB1z+twMAQG4/XvYQQ91zX47JivbwgyXIVhMa5FIiIiIiIiIjJH3gWsAEPsU4qx7ToecKSQ9ZJSrNe/fxb7u+safHXIzkuLXXVdxwVt36GeuC5CRERERERERPzmZcB6h3qSQlG25lYVskoZHbKzabEbruu4qKHGA4iIiIiIiIjIBLwMWAFus/6K4mzPVch6Cb6PCLCYInRbz1Qerm65ruMS2upeFREREREREZFJeBuwQqFGBYBC1guzno8IiLBFeY3ORAHCVYy6V0VERERERERkQl4HrAUbFQAKWaXgihCuAu2b1NuuixARERERERGRMHgdsEI2KsBg9l3XMUPV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";
|
|
3279
3283
|
const slotHasContent = (slotName, slots) => {
|
|
3280
3284
|
const slot = slots[slotName];
|
|
@@ -3559,7 +3563,7 @@ const _hoisted_14$a = { class: "flex items-center space-x-3" };
|
|
|
3559
3563
|
const _hoisted_15$a = { class: "text-2xl" };
|
|
3560
3564
|
const _hoisted_16$9 = { class: "font-medium text-gray-900" };
|
|
3561
3565
|
const _hoisted_17$9 = { class: "text-sm text-gray-500" };
|
|
3562
|
-
const _hoisted_18$
|
|
3566
|
+
const _hoisted_18$7 = {
|
|
3563
3567
|
key: 2,
|
|
3564
3568
|
class: "text-center"
|
|
3565
3569
|
};
|
|
@@ -3924,7 +3928,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
3924
3928
|
])
|
|
3925
3929
|
])
|
|
3926
3930
|
])) : vue.createCommentVNode("", true),
|
|
3927
|
-
selectedMethod.value?.device_type === "email" && !emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$
|
|
3931
|
+
selectedMethod.value?.device_type === "email" && !emailCodeSent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$7, [
|
|
3928
3932
|
_cache[10] || (_cache[10] = vue.createElementVNode("p", { class: "text-sm text-gray-600 mb-4" }, "Click below to receive your verification code", -1)),
|
|
3929
3933
|
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
3930
3934
|
variant: "primary",
|
|
@@ -4258,58 +4262,58 @@ function useOAuthProviders(options = {}) {
|
|
|
4258
4262
|
getProviderIcon
|
|
4259
4263
|
};
|
|
4260
4264
|
}
|
|
4261
|
-
const _hoisted_1$h = { class: "
|
|
4262
|
-
const _hoisted_2$g = {
|
|
4263
|
-
const _hoisted_3$g = {
|
|
4265
|
+
const _hoisted_1$h = { class: "text-center mb-8" };
|
|
4266
|
+
const _hoisted_2$g = {
|
|
4264
4267
|
key: 0,
|
|
4265
4268
|
class: "mb-8"
|
|
4266
4269
|
};
|
|
4267
|
-
const
|
|
4270
|
+
const _hoisted_3$g = {
|
|
4268
4271
|
key: 0,
|
|
4269
4272
|
class: "space-y-3 mb-6"
|
|
4270
4273
|
};
|
|
4271
|
-
const
|
|
4272
|
-
const
|
|
4274
|
+
const _hoisted_4$e = { class: "w-5 h-5 flex items-center justify-center" };
|
|
4275
|
+
const _hoisted_5$d = {
|
|
4273
4276
|
key: 0,
|
|
4274
4277
|
class: "w-5 h-5"
|
|
4275
4278
|
};
|
|
4276
|
-
const
|
|
4277
|
-
const
|
|
4279
|
+
const _hoisted_6$c = ["src", "alt"];
|
|
4280
|
+
const _hoisted_7$c = {
|
|
4278
4281
|
key: 1,
|
|
4279
4282
|
viewBox: "0 0 24 24",
|
|
4280
4283
|
class: "w-5 h-5"
|
|
4281
4284
|
};
|
|
4282
|
-
const
|
|
4285
|
+
const _hoisted_8$a = {
|
|
4283
4286
|
key: 2,
|
|
4284
4287
|
class: "w-5 h-5 fill-current",
|
|
4285
4288
|
viewBox: "0 0 24 24"
|
|
4286
4289
|
};
|
|
4287
|
-
const
|
|
4290
|
+
const _hoisted_9$a = {
|
|
4288
4291
|
key: 3,
|
|
4289
4292
|
class: "w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"
|
|
4290
4293
|
};
|
|
4291
|
-
const
|
|
4292
|
-
const
|
|
4293
|
-
const
|
|
4294
|
+
const _hoisted_10$a = { class: "text-xs font-semibold text-neutral-600" };
|
|
4295
|
+
const _hoisted_11$a = { class: "font-medium" };
|
|
4296
|
+
const _hoisted_12$a = {
|
|
4294
4297
|
key: 0,
|
|
4295
4298
|
class: "divider-with-text"
|
|
4296
4299
|
};
|
|
4297
|
-
const
|
|
4298
|
-
const
|
|
4300
|
+
const _hoisted_13$a = { class: "divider-text" };
|
|
4301
|
+
const _hoisted_14$9 = {
|
|
4299
4302
|
key: 0,
|
|
4300
4303
|
class: "mb-4"
|
|
4301
4304
|
};
|
|
4302
|
-
const
|
|
4303
|
-
const
|
|
4305
|
+
const _hoisted_15$9 = { class: "flex items-center justify-between mb-2" };
|
|
4306
|
+
const _hoisted_16$8 = {
|
|
4304
4307
|
key: 0,
|
|
4305
4308
|
class: "mt-8 text-center"
|
|
4306
4309
|
};
|
|
4307
|
-
const
|
|
4310
|
+
const _hoisted_17$8 = { class: "text-neutral-400 text-sm" };
|
|
4308
4311
|
const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
4309
4312
|
__name: "StrandsAuth",
|
|
4310
4313
|
props: {
|
|
4311
4314
|
mode: { default: "signin" },
|
|
4312
4315
|
redirectUrl: {},
|
|
4316
|
+
inModal: { type: Boolean, default: false },
|
|
4313
4317
|
config: {}
|
|
4314
4318
|
},
|
|
4315
4319
|
emits: ["success", "error", "forgot-password", "password-reset-sent", "mode-changed"],
|
|
@@ -4485,257 +4489,258 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
4485
4489
|
emit("mode-changed", newMode);
|
|
4486
4490
|
});
|
|
4487
4491
|
return (_ctx, _cache) => {
|
|
4488
|
-
return vue.openBlock(), vue.createElementBlock("div",
|
|
4489
|
-
vue.
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
class: "text-3xl font-bold text-gradient mb-2"
|
|
4500
|
-
}, vue.toDisplayString(isPasswordReset.value ? "Reset password" : isSignUp.value ? "Create account" : "Welcome back"), 1))
|
|
4501
|
-
]),
|
|
4502
|
-
_: 1
|
|
4503
|
-
}),
|
|
4504
|
-
vue.createVNode(vue.Transition, {
|
|
4505
|
-
name: "fade",
|
|
4506
|
-
mode: "out-in"
|
|
4507
|
-
}, {
|
|
4508
|
-
default: vue.withCtx(() => [
|
|
4509
|
-
(vue.openBlock(), vue.createElementBlock("p", {
|
|
4510
|
-
key: currentMode.value,
|
|
4511
|
-
class: "text-neutral-600"
|
|
4512
|
-
}, vue.toDisplayString(isPasswordReset.value ? "Enter your email address and we'll send you a link to reset your password" : isSignUp.value ? "We'll send you a magic link to get started" : "Sign in to your account to continue"), 1))
|
|
4513
|
-
]),
|
|
4514
|
-
_: 1
|
|
4515
|
-
})
|
|
4516
|
-
]),
|
|
4517
|
-
vue.createVNode(vue.Transition, { name: "height-fade" }, {
|
|
4518
|
-
default: vue.withCtx(() => [
|
|
4519
|
-
!isPasswordReset.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$g, [
|
|
4520
|
-
vue.createVNode(vue.unref(_sfc_main$s), {
|
|
4521
|
-
modelValue: currentMode.value,
|
|
4522
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => currentMode.value = $event),
|
|
4523
|
-
tabs: [
|
|
4524
|
-
{ label: "Sign In", value: "signin" },
|
|
4525
|
-
{ label: "Sign Up", value: "signup" }
|
|
4526
|
-
]
|
|
4527
|
-
}, null, 8, ["modelValue"])
|
|
4528
|
-
])) : vue.createCommentVNode("", true)
|
|
4529
|
-
]),
|
|
4530
|
-
_: 1
|
|
4531
|
-
}),
|
|
4532
|
-
vue.createVNode(vue.Transition, { name: "height-fade" }, {
|
|
4533
|
-
default: vue.withCtx(() => [
|
|
4534
|
-
!isPasswordReset.value && displayProviders.value?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$e, [
|
|
4535
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayProviders.value, (provider) => {
|
|
4536
|
-
return vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
4537
|
-
key: provider.id,
|
|
4538
|
-
variant: "outline",
|
|
4539
|
-
"full-width": "",
|
|
4540
|
-
disabled: vue.unref(oauthLoading),
|
|
4541
|
-
onClick: ($event) => handleOAuthAuth(provider.id),
|
|
4542
|
-
class: "btn-oauth group"
|
|
4543
|
-
}, {
|
|
4544
|
-
default: vue.withCtx(() => [
|
|
4545
|
-
vue.createElementVNode("div", _hoisted_5$d, [
|
|
4546
|
-
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$c, [
|
|
4547
|
-
vue.createElementVNode("img", {
|
|
4548
|
-
src: provider.icon || provider.iconUrl,
|
|
4549
|
-
alt: `${provider.displayName || provider.name} icon`,
|
|
4550
|
-
class: "w-5 h-5"
|
|
4551
|
-
}, null, 8, _hoisted_7$c)
|
|
4552
|
-
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$a, _cache[6] || (_cache[6] = [
|
|
4553
|
-
vue.createElementVNode("path", {
|
|
4554
|
-
fill: "#4285F4",
|
|
4555
|
-
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"
|
|
4556
|
-
}, null, -1),
|
|
4557
|
-
vue.createElementVNode("path", {
|
|
4558
|
-
fill: "#34A853",
|
|
4559
|
-
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"
|
|
4560
|
-
}, null, -1),
|
|
4561
|
-
vue.createElementVNode("path", {
|
|
4562
|
-
fill: "#FBBC05",
|
|
4563
|
-
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"
|
|
4564
|
-
}, null, -1),
|
|
4565
|
-
vue.createElementVNode("path", {
|
|
4566
|
-
fill: "#EA4335",
|
|
4567
|
-
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"
|
|
4568
|
-
}, null, -1)
|
|
4569
|
-
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$a, _cache[7] || (_cache[7] = [
|
|
4570
|
-
vue.createElementVNode("path", { d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" }, null, -1)
|
|
4571
|
-
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$a, [
|
|
4572
|
-
vue.createElementVNode("span", _hoisted_11$a, vue.toDisplayString((provider.displayName || provider.name).charAt(0).toUpperCase()), 1)
|
|
4573
|
-
]))
|
|
4574
|
-
]),
|
|
4575
|
-
vue.createElementVNode("span", _hoisted_12$a, " Continue with " + vue.toDisplayString(provider.displayName || provider.name.charAt(0).toUpperCase() + provider.name.slice(1)), 1)
|
|
4576
|
-
]),
|
|
4577
|
-
_: 2
|
|
4578
|
-
}, 1032, ["disabled", "onClick"]);
|
|
4579
|
-
}), 128))
|
|
4580
|
-
])) : vue.createCommentVNode("", true)
|
|
4581
|
-
]),
|
|
4582
|
-
_: 1
|
|
4583
|
-
}),
|
|
4584
|
-
vue.createVNode(vue.Transition, { name: "height-fade" }, {
|
|
4492
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
4493
|
+
class: vue.normalizeClass(props.inModal ? "auth-container-modal w-full min-w-90" : "auth-container w-full min-w-100 max-w-md mx-auto animate-slide-up")
|
|
4494
|
+
}, [
|
|
4495
|
+
vue.createElementVNode("div", {
|
|
4496
|
+
class: vue.normalizeClass(props.inModal ? "auth-content-modal" : "auth-content card-modern")
|
|
4497
|
+
}, [
|
|
4498
|
+
vue.createElementVNode("div", _hoisted_1$h, [
|
|
4499
|
+
vue.createVNode(vue.Transition, {
|
|
4500
|
+
name: "fade",
|
|
4501
|
+
mode: "out-in"
|
|
4502
|
+
}, {
|
|
4585
4503
|
default: vue.withCtx(() => [
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4504
|
+
(vue.openBlock(), vue.createElementBlock("h1", {
|
|
4505
|
+
key: currentMode.value,
|
|
4506
|
+
class: "text-3xl font-bold text-gradient mb-2"
|
|
4507
|
+
}, vue.toDisplayString(isPasswordReset.value ? "Reset password" : isSignUp.value ? "Create account" : "Welcome back"), 1))
|
|
4589
4508
|
]),
|
|
4590
4509
|
_: 1
|
|
4591
4510
|
}),
|
|
4592
|
-
vue.createElementVNode("form", {
|
|
4593
|
-
onSubmit: vue.withModifiers(handleAuth, ["prevent"]),
|
|
4594
|
-
class: "space-y-6"
|
|
4595
|
-
}, [
|
|
4596
|
-
vue.createElementVNode("div", null, [
|
|
4597
|
-
vue.createElementVNode("div", {
|
|
4598
|
-
class: vue.normalizeClass(["email-field-spacing", !isPasswordReset.value && !isSignUp.value ? "has-password" : "no-password"])
|
|
4599
|
-
}, [
|
|
4600
|
-
vue.createVNode(vue.unref(StrandsUiInput), {
|
|
4601
|
-
modelValue: form.email,
|
|
4602
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form.email = $event),
|
|
4603
|
-
type: "email",
|
|
4604
|
-
label: "Email address",
|
|
4605
|
-
placeholder: "Enter your email",
|
|
4606
|
-
required: "",
|
|
4607
|
-
autocomplete: "email",
|
|
4608
|
-
error: error.value && !form.email ? "Email is required" : ""
|
|
4609
|
-
}, null, 8, ["modelValue", "error"])
|
|
4610
|
-
], 2),
|
|
4611
|
-
vue.createVNode(vue.Transition, { name: "password-fade" }, {
|
|
4612
|
-
default: vue.withCtx(() => [
|
|
4613
|
-
!isPasswordReset.value && !isSignUp.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$9, [
|
|
4614
|
-
vue.createElementVNode("div", _hoisted_16$8, [
|
|
4615
|
-
_cache[9] || (_cache[9] = vue.createElementVNode("span", { class: "text-sm font-medium text-gray-700" }, "Password", -1)),
|
|
4616
|
-
vue.createVNode(vue.unref(_sfc_main$t), {
|
|
4617
|
-
variant: "primary",
|
|
4618
|
-
size: "sm",
|
|
4619
|
-
onClick: _cache[2] || (_cache[2] = ($event) => currentMode.value = "reset-password")
|
|
4620
|
-
}, {
|
|
4621
|
-
default: vue.withCtx(() => _cache[8] || (_cache[8] = [
|
|
4622
|
-
vue.createTextVNode(" Forgot password? ", -1)
|
|
4623
|
-
])),
|
|
4624
|
-
_: 1,
|
|
4625
|
-
__: [8]
|
|
4626
|
-
})
|
|
4627
|
-
]),
|
|
4628
|
-
vue.createVNode(vue.unref(StrandsUiInput), {
|
|
4629
|
-
modelValue: form.password,
|
|
4630
|
-
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => form.password = $event),
|
|
4631
|
-
type: "password",
|
|
4632
|
-
placeholder: "Enter your password",
|
|
4633
|
-
required: "",
|
|
4634
|
-
autocomplete: "current-password",
|
|
4635
|
-
error: error.value && !form.password ? "Password is required" : ""
|
|
4636
|
-
}, null, 8, ["modelValue", "error"])
|
|
4637
|
-
])) : vue.createCommentVNode("", true)
|
|
4638
|
-
]),
|
|
4639
|
-
_: 1
|
|
4640
|
-
})
|
|
4641
|
-
]),
|
|
4642
|
-
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
4643
|
-
type: "submit",
|
|
4644
|
-
variant: "primary",
|
|
4645
|
-
"full-width": "",
|
|
4646
|
-
disabled: buttonLoading.value || !isFormValid.value,
|
|
4647
|
-
loading: buttonLoading.value,
|
|
4648
|
-
"loading-text": vue.unref(loadingMessage)
|
|
4649
|
-
}, {
|
|
4650
|
-
default: vue.withCtx(() => [
|
|
4651
|
-
vue.createTextVNode(vue.toDisplayString(isPasswordReset.value ? isPasswordResetSubmitted.value ? "Link sent!" : "Send reset link" : isSignUp.value ? "Send magic link" : "Sign in"), 1)
|
|
4652
|
-
]),
|
|
4653
|
-
_: 1
|
|
4654
|
-
}, 8, ["disabled", "loading", "loading-text"])
|
|
4655
|
-
], 32),
|
|
4656
4511
|
vue.createVNode(vue.Transition, {
|
|
4657
|
-
name: "
|
|
4512
|
+
name: "fade",
|
|
4658
4513
|
mode: "out-in"
|
|
4659
4514
|
}, {
|
|
4660
4515
|
default: vue.withCtx(() => [
|
|
4661
|
-
|
|
4662
|
-
key:
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
class: "mt-6 animate-fade-in"
|
|
4666
|
-
}, null, 8, ["message"])) : vue.createCommentVNode("", true)
|
|
4516
|
+
(vue.openBlock(), vue.createElementBlock("p", {
|
|
4517
|
+
key: currentMode.value,
|
|
4518
|
+
class: "text-neutral-600"
|
|
4519
|
+
}, vue.toDisplayString(isPasswordReset.value ? "Enter your email address and we'll send you a link to reset your password" : isSignUp.value ? "We'll send you a magic link to get started" : "Sign in to your account to continue"), 1))
|
|
4667
4520
|
]),
|
|
4668
4521
|
_: 1
|
|
4669
|
-
})
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4522
|
+
})
|
|
4523
|
+
]),
|
|
4524
|
+
vue.createVNode(vue.Transition, { name: "height-fade" }, {
|
|
4525
|
+
default: vue.withCtx(() => [
|
|
4526
|
+
!isPasswordReset.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$g, [
|
|
4527
|
+
vue.createVNode(vue.unref(_sfc_main$s), {
|
|
4528
|
+
modelValue: currentMode.value,
|
|
4529
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => currentMode.value = $event),
|
|
4530
|
+
tabs: [
|
|
4531
|
+
{ label: "Sign In", value: "signin" },
|
|
4532
|
+
{ label: "Sign Up", value: "signup" }
|
|
4533
|
+
]
|
|
4534
|
+
}, null, 8, ["modelValue"])
|
|
4535
|
+
])) : vue.createCommentVNode("", true)
|
|
4536
|
+
]),
|
|
4537
|
+
_: 1
|
|
4538
|
+
}),
|
|
4539
|
+
vue.createVNode(vue.Transition, { name: "height-fade" }, {
|
|
4540
|
+
default: vue.withCtx(() => [
|
|
4541
|
+
!isPasswordReset.value && displayProviders.value?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$g, [
|
|
4542
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayProviders.value, (provider) => {
|
|
4543
|
+
return vue.openBlock(), vue.createBlock(vue.unref(StrandsUiButton), {
|
|
4544
|
+
key: provider.id,
|
|
4545
|
+
variant: "outline",
|
|
4546
|
+
"full-width": "",
|
|
4547
|
+
disabled: vue.unref(oauthLoading),
|
|
4548
|
+
onClick: ($event) => handleOAuthAuth(provider.id),
|
|
4549
|
+
class: "btn-oauth group"
|
|
4676
4550
|
}, {
|
|
4677
|
-
default: vue.withCtx(() =>
|
|
4678
|
-
vue.createElementVNode("
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
|
|
4682
|
-
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4686
|
-
"
|
|
4687
|
-
|
|
4688
|
-
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
4551
|
+
default: vue.withCtx(() => [
|
|
4552
|
+
vue.createElementVNode("div", _hoisted_4$e, [
|
|
4553
|
+
provider.icon || provider.iconUrl ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$d, [
|
|
4554
|
+
vue.createElementVNode("img", {
|
|
4555
|
+
src: provider.icon || provider.iconUrl,
|
|
4556
|
+
alt: `${provider.displayName || provider.name} icon`,
|
|
4557
|
+
class: "w-5 h-5"
|
|
4558
|
+
}, null, 8, _hoisted_6$c)
|
|
4559
|
+
])) : provider.id === "google" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_7$c, _cache[6] || (_cache[6] = [
|
|
4560
|
+
vue.createElementVNode("path", {
|
|
4561
|
+
fill: "#4285F4",
|
|
4562
|
+
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"
|
|
4563
|
+
}, null, -1),
|
|
4564
|
+
vue.createElementVNode("path", {
|
|
4565
|
+
fill: "#34A853",
|
|
4566
|
+
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"
|
|
4567
|
+
}, null, -1),
|
|
4568
|
+
vue.createElementVNode("path", {
|
|
4569
|
+
fill: "#FBBC05",
|
|
4570
|
+
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"
|
|
4571
|
+
}, null, -1),
|
|
4572
|
+
vue.createElementVNode("path", {
|
|
4573
|
+
fill: "#EA4335",
|
|
4574
|
+
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"
|
|
4575
|
+
}, null, -1)
|
|
4576
|
+
]))) : provider.id === "github" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_8$a, _cache[7] || (_cache[7] = [
|
|
4577
|
+
vue.createElementVNode("path", { d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" }, null, -1)
|
|
4578
|
+
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$a, [
|
|
4579
|
+
vue.createElementVNode("span", _hoisted_10$a, vue.toDisplayString((provider.displayName || provider.name).charAt(0).toUpperCase()), 1)
|
|
4580
|
+
]))
|
|
4581
|
+
]),
|
|
4582
|
+
vue.createElementVNode("span", _hoisted_11$a, " Continue with " + vue.toDisplayString(provider.displayName || provider.name.charAt(0).toUpperCase() + provider.name.slice(1)), 1)
|
|
4583
|
+
]),
|
|
4584
|
+
_: 2
|
|
4585
|
+
}, 1032, ["disabled", "onClick"]);
|
|
4586
|
+
}), 128))
|
|
4587
|
+
])) : vue.createCommentVNode("", true)
|
|
4588
|
+
]),
|
|
4589
|
+
_: 1
|
|
4590
|
+
}),
|
|
4591
|
+
vue.createVNode(vue.Transition, { name: "height-fade" }, {
|
|
4592
|
+
default: vue.withCtx(() => [
|
|
4593
|
+
!isPasswordReset.value && displayProviders.value?.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$a, [
|
|
4594
|
+
vue.createElementVNode("span", _hoisted_13$a, "Or " + vue.toDisplayString(isSignUp.value ? "create account" : "sign in") + " with email", 1)
|
|
4595
|
+
])) : vue.createCommentVNode("", true)
|
|
4596
|
+
]),
|
|
4597
|
+
_: 1
|
|
4598
|
+
}),
|
|
4599
|
+
vue.createElementVNode("form", {
|
|
4600
|
+
onSubmit: vue.withModifiers(handleAuth, ["prevent"]),
|
|
4601
|
+
class: "space-y-6"
|
|
4602
|
+
}, [
|
|
4603
|
+
vue.createElementVNode("div", null, [
|
|
4604
|
+
vue.createElementVNode("div", {
|
|
4605
|
+
class: vue.normalizeClass(["email-field-spacing", !isPasswordReset.value && !isSignUp.value ? "has-password" : "no-password"])
|
|
4606
|
+
}, [
|
|
4607
|
+
vue.createVNode(vue.unref(StrandsUiInput), {
|
|
4608
|
+
modelValue: form.email,
|
|
4609
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form.email = $event),
|
|
4610
|
+
type: "email",
|
|
4611
|
+
label: "Email address",
|
|
4612
|
+
placeholder: "Enter your email",
|
|
4613
|
+
required: "",
|
|
4614
|
+
autocomplete: "email",
|
|
4615
|
+
error: error.value && !form.email ? "Email is required" : ""
|
|
4616
|
+
}, null, 8, ["modelValue", "error"])
|
|
4617
|
+
], 2),
|
|
4618
|
+
vue.createVNode(vue.Transition, { name: "password-fade" }, {
|
|
4619
|
+
default: vue.withCtx(() => [
|
|
4620
|
+
!isPasswordReset.value && !isSignUp.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$9, [
|
|
4621
|
+
vue.createElementVNode("div", _hoisted_15$9, [
|
|
4622
|
+
_cache[9] || (_cache[9] = vue.createElementVNode("span", { class: "text-sm font-medium text-gray-700" }, "Password", -1)),
|
|
4719
4623
|
vue.createVNode(vue.unref(_sfc_main$t), {
|
|
4720
4624
|
variant: "primary",
|
|
4721
|
-
|
|
4625
|
+
size: "sm",
|
|
4626
|
+
onClick: _cache[2] || (_cache[2] = ($event) => currentMode.value = "reset-password")
|
|
4722
4627
|
}, {
|
|
4723
|
-
default: vue.withCtx(() => _cache[
|
|
4724
|
-
vue.createTextVNode("
|
|
4628
|
+
default: vue.withCtx(() => _cache[8] || (_cache[8] = [
|
|
4629
|
+
vue.createTextVNode(" Forgot password? ", -1)
|
|
4725
4630
|
])),
|
|
4726
4631
|
_: 1,
|
|
4727
|
-
__: [
|
|
4728
|
-
}
|
|
4729
|
-
])
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4632
|
+
__: [8]
|
|
4633
|
+
})
|
|
4634
|
+
]),
|
|
4635
|
+
vue.createVNode(vue.unref(StrandsUiInput), {
|
|
4636
|
+
modelValue: form.password,
|
|
4637
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => form.password = $event),
|
|
4638
|
+
type: "password",
|
|
4639
|
+
placeholder: "Enter your password",
|
|
4640
|
+
required: "",
|
|
4641
|
+
autocomplete: "current-password",
|
|
4642
|
+
error: error.value && !form.password ? "Password is required" : ""
|
|
4643
|
+
}, null, 8, ["modelValue", "error"])
|
|
4644
|
+
])) : vue.createCommentVNode("", true)
|
|
4645
|
+
]),
|
|
4646
|
+
_: 1
|
|
4647
|
+
})
|
|
4648
|
+
]),
|
|
4649
|
+
vue.createVNode(vue.unref(StrandsUiButton), {
|
|
4650
|
+
type: "submit",
|
|
4651
|
+
variant: "primary",
|
|
4652
|
+
"full-width": "",
|
|
4653
|
+
disabled: buttonLoading.value || !isFormValid.value,
|
|
4654
|
+
loading: buttonLoading.value,
|
|
4655
|
+
"loading-text": vue.unref(loadingMessage)
|
|
4656
|
+
}, {
|
|
4657
|
+
default: vue.withCtx(() => [
|
|
4658
|
+
vue.createTextVNode(vue.toDisplayString(isPasswordReset.value ? isPasswordResetSubmitted.value ? "Link sent!" : "Send reset link" : isSignUp.value ? "Send magic link" : "Sign in"), 1)
|
|
4733
4659
|
]),
|
|
4734
4660
|
_: 1
|
|
4735
|
-
}, 8, ["
|
|
4736
|
-
]),
|
|
4737
|
-
|
|
4738
|
-
|
|
4661
|
+
}, 8, ["disabled", "loading", "loading-text"])
|
|
4662
|
+
], 32),
|
|
4663
|
+
vue.createVNode(vue.Transition, {
|
|
4664
|
+
name: "expand",
|
|
4665
|
+
mode: "out-in"
|
|
4666
|
+
}, {
|
|
4667
|
+
default: vue.withCtx(() => [
|
|
4668
|
+
isPasswordReset.value && isPasswordResetSubmitted.value ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$x), {
|
|
4669
|
+
key: "reset-success",
|
|
4670
|
+
variant: "success",
|
|
4671
|
+
message: `Check your email - We've sent a password reset link to ${form.email}`,
|
|
4672
|
+
class: "mt-6 animate-fade-in"
|
|
4673
|
+
}, null, 8, ["message"])) : vue.createCommentVNode("", true)
|
|
4674
|
+
]),
|
|
4675
|
+
_: 1
|
|
4676
|
+
}),
|
|
4677
|
+
vue.createVNode(vue.Transition, { name: "height-fade" }, {
|
|
4678
|
+
default: vue.withCtx(() => [
|
|
4679
|
+
isPasswordReset.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$8, [
|
|
4680
|
+
vue.createVNode(vue.unref(_sfc_main$t), {
|
|
4681
|
+
onClick: _cache[4] || (_cache[4] = ($event) => currentMode.value = "signin"),
|
|
4682
|
+
class: "inline-flex items-center gap-2"
|
|
4683
|
+
}, {
|
|
4684
|
+
default: vue.withCtx(() => _cache[10] || (_cache[10] = [
|
|
4685
|
+
vue.createElementVNode("svg", {
|
|
4686
|
+
class: "w-4 h-4",
|
|
4687
|
+
fill: "none",
|
|
4688
|
+
stroke: "currentColor",
|
|
4689
|
+
viewBox: "0 0 24 24"
|
|
4690
|
+
}, [
|
|
4691
|
+
vue.createElementVNode("path", {
|
|
4692
|
+
"stroke-linecap": "round",
|
|
4693
|
+
"stroke-linejoin": "round",
|
|
4694
|
+
"stroke-width": "2",
|
|
4695
|
+
d: "M15 19l-7-7 7-7"
|
|
4696
|
+
})
|
|
4697
|
+
], -1),
|
|
4698
|
+
vue.createTextVNode(" Back to sign in ", -1)
|
|
4699
|
+
])),
|
|
4700
|
+
_: 1,
|
|
4701
|
+
__: [10]
|
|
4702
|
+
})
|
|
4703
|
+
])) : vue.createCommentVNode("", true)
|
|
4704
|
+
]),
|
|
4705
|
+
_: 1
|
|
4706
|
+
}),
|
|
4707
|
+
error.value ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$x), {
|
|
4708
|
+
key: 0,
|
|
4709
|
+
variant: "error",
|
|
4710
|
+
message: error.value,
|
|
4711
|
+
class: "mt-6 animate-fade-in",
|
|
4712
|
+
dismissible: "",
|
|
4713
|
+
onDismiss: _cache[5] || (_cache[5] = ($event) => error.value = "")
|
|
4714
|
+
}, null, 8, ["message"])) : vue.createCommentVNode("", true),
|
|
4715
|
+
vue.createVNode(_sfc_main$l, {
|
|
4716
|
+
config: props.config
|
|
4717
|
+
}, {
|
|
4718
|
+
default: vue.withCtx(() => [
|
|
4719
|
+
vue.unref(getSupportEmail)() ? (vue.openBlock(), vue.createBlock(vue.Transition, {
|
|
4720
|
+
key: 0,
|
|
4721
|
+
name: "support-fade"
|
|
4722
|
+
}, {
|
|
4723
|
+
default: vue.withCtx(() => [
|
|
4724
|
+
vue.createElementVNode("p", _hoisted_17$8, [
|
|
4725
|
+
_cache[12] || (_cache[12] = vue.createTextVNode(" Need help? ", -1)),
|
|
4726
|
+
vue.createVNode(vue.unref(_sfc_main$t), {
|
|
4727
|
+
variant: "primary",
|
|
4728
|
+
href: `mailto:${vue.unref(getSupportEmail)()}`
|
|
4729
|
+
}, {
|
|
4730
|
+
default: vue.withCtx(() => _cache[11] || (_cache[11] = [
|
|
4731
|
+
vue.createTextVNode(" Contact Support ", -1)
|
|
4732
|
+
])),
|
|
4733
|
+
_: 1,
|
|
4734
|
+
__: [11]
|
|
4735
|
+
}, 8, ["href"])
|
|
4736
|
+
])
|
|
4737
|
+
]),
|
|
4738
|
+
_: 1
|
|
4739
|
+
})) : vue.createCommentVNode("", true)
|
|
4740
|
+
]),
|
|
4741
|
+
_: 1
|
|
4742
|
+
}, 8, ["config"])
|
|
4743
|
+
], 2),
|
|
4739
4744
|
vue.createVNode(_sfc_main$k, {
|
|
4740
4745
|
show: showMfaVerification.value,
|
|
4741
4746
|
"available-mfa-methods": vue.unref(availableMfaMethods),
|
|
@@ -4743,11 +4748,11 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
4743
4748
|
onClose: handleMfaClose,
|
|
4744
4749
|
onError: handleMfaError
|
|
4745
4750
|
}, null, 8, ["show", "available-mfa-methods"])
|
|
4746
|
-
]);
|
|
4751
|
+
], 2);
|
|
4747
4752
|
};
|
|
4748
4753
|
}
|
|
4749
4754
|
});
|
|
4750
|
-
const StrandsAuth = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-
|
|
4755
|
+
const StrandsAuth = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-d0fd51f5"]]);
|
|
4751
4756
|
const _hoisted_1$g = { class: "w-full min-w-100 max-w-md mx-auto animate-slide-up" };
|
|
4752
4757
|
const _hoisted_2$f = {
|
|
4753
4758
|
key: 0,
|
|
@@ -11956,7 +11961,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
11956
11961
|
user: vue.unref(user),
|
|
11957
11962
|
signOut: vue.unref(signOut)
|
|
11958
11963
|
})
|
|
11959
|
-
])) : _ctx.showFallback && !showLoading.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2, [
|
|
11964
|
+
])) : !vue.unref(isAuthenticated) && _ctx.showFallback && !showLoading.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2, [
|
|
11960
11965
|
vue.renderSlot(_ctx.$slots, "fallback", { signIn }, () => [
|
|
11961
11966
|
vue.createElementVNode("div", { class: "text-center py-8" }, [
|
|
11962
11967
|
_cache[0] || (_cache[0] = vue.createStaticVNode('<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)),
|
|
@@ -12276,14 +12281,16 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
12276
12281
|
__name: "StrandsUserButton",
|
|
12277
12282
|
props: {
|
|
12278
12283
|
hideUser: { type: Boolean, default: false },
|
|
12279
|
-
variant: { default: "minimal" }
|
|
12284
|
+
variant: { default: "minimal" },
|
|
12285
|
+
redirectUrl: { default: "/" }
|
|
12280
12286
|
},
|
|
12281
|
-
emits: ["profile-updated", "signed-out"],
|
|
12287
|
+
emits: ["profile-updated", "signed-out", "signed-in"],
|
|
12282
12288
|
setup(__props, { emit: __emit }) {
|
|
12283
12289
|
const emit = __emit;
|
|
12284
12290
|
const { currentUser: user, signOut } = useStrandsAuth.useStrandsAuth();
|
|
12285
12291
|
const showDropdown = vue.ref(false);
|
|
12286
12292
|
const showProfileModal = vue.ref(false);
|
|
12293
|
+
const showSignInModal = vue.ref(false);
|
|
12287
12294
|
const containerRef = vue.ref();
|
|
12288
12295
|
const profileButtonRef = vue.ref();
|
|
12289
12296
|
const displayName = vue.computed(() => {
|
|
@@ -12338,6 +12345,19 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
12338
12345
|
const handleProfileError = (error) => {
|
|
12339
12346
|
console.error("Profile error:", error);
|
|
12340
12347
|
};
|
|
12348
|
+
const openSignIn = () => {
|
|
12349
|
+
showSignInModal.value = true;
|
|
12350
|
+
};
|
|
12351
|
+
const closeSignIn = () => {
|
|
12352
|
+
showSignInModal.value = false;
|
|
12353
|
+
};
|
|
12354
|
+
const handleSignedIn = () => {
|
|
12355
|
+
closeSignIn();
|
|
12356
|
+
emit("signed-in");
|
|
12357
|
+
};
|
|
12358
|
+
const handleSignInError = (error) => {
|
|
12359
|
+
console.error("Sign in error:", error);
|
|
12360
|
+
};
|
|
12341
12361
|
const handleSignOut = async () => {
|
|
12342
12362
|
try {
|
|
12343
12363
|
await signOut();
|
|
@@ -12363,206 +12383,272 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
12363
12383
|
ref_key: "containerRef",
|
|
12364
12384
|
ref: containerRef
|
|
12365
12385
|
}, [
|
|
12366
|
-
vue.
|
|
12367
|
-
|
|
12368
|
-
|
|
12369
|
-
|
|
12370
|
-
|
|
12371
|
-
|
|
12372
|
-
|
|
12373
|
-
|
|
12374
|
-
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
}, [
|
|
12379
|
-
vue.createElementVNode("div", _hoisted_2, [
|
|
12380
|
-
!_ctx.hideUser ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
12381
|
-
vue.createElementVNode("div", _hoisted_4, vue.toDisplayString(displayName.value), 1)
|
|
12382
|
-
])) : vue.createCommentVNode("", true),
|
|
12383
|
-
vue.createElementVNode("div", _hoisted_5, [
|
|
12384
|
-
vue.createElementVNode("div", _hoisted_6, [
|
|
12385
|
-
vue.unref(user)?.avatar ? (vue.openBlock(), vue.createElementBlock("img", {
|
|
12386
|
-
key: 0,
|
|
12387
|
-
src: vue.unref(user).avatar,
|
|
12388
|
-
alt: `${vue.unref(user).firstName || vue.unref(user).email}'s avatar`,
|
|
12389
|
-
class: "w-8 h-8 rounded-full object-cover"
|
|
12390
|
-
}, null, 8, _hoisted_7)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, _cache[0] || (_cache[0] = [
|
|
12391
|
-
vue.createElementVNode("svg", {
|
|
12392
|
-
class: "w-5 h-5 text-gray-600",
|
|
12393
|
-
fill: "currentColor",
|
|
12394
|
-
viewBox: "0 0 20 20"
|
|
12395
|
-
}, [
|
|
12396
|
-
vue.createElementVNode("path", {
|
|
12397
|
-
"fill-rule": "evenodd",
|
|
12398
|
-
d: "M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z",
|
|
12399
|
-
"clip-rule": "evenodd"
|
|
12400
|
-
})
|
|
12401
|
-
], -1)
|
|
12402
|
-
])))
|
|
12403
|
-
])
|
|
12404
|
-
]),
|
|
12405
|
-
(vue.openBlock(), vue.createElementBlock("svg", {
|
|
12406
|
-
class: vue.normalizeClass(["w-4 h-4 text-gray-400 transition-transform duration-150", { "transform rotate-180": showDropdown.value }]),
|
|
12407
|
-
fill: "none",
|
|
12408
|
-
stroke: "currentColor",
|
|
12409
|
-
viewBox: "0 0 24 24"
|
|
12410
|
-
}, _cache[1] || (_cache[1] = [
|
|
12411
|
-
vue.createElementVNode("path", {
|
|
12412
|
-
"stroke-linecap": "round",
|
|
12413
|
-
"stroke-linejoin": "round",
|
|
12414
|
-
"stroke-width": "2",
|
|
12415
|
-
d: "M19 9l-7 7-7-7"
|
|
12416
|
-
}, null, -1)
|
|
12417
|
-
]), 2))
|
|
12418
|
-
]),
|
|
12419
|
-
vue.createVNode(vue.Transition, { name: "dropdown" }, {
|
|
12420
|
-
default: vue.withCtx(() => [
|
|
12421
|
-
showDropdown.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
12422
|
-
key: 0,
|
|
12423
|
-
class: "absolute right-0 top-full mt-2 w-72 bg-white rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none z-50",
|
|
12424
|
-
role: "menu",
|
|
12425
|
-
"aria-orientation": "vertical",
|
|
12426
|
-
onKeydown: [
|
|
12427
|
-
vue.withKeys(closeDropdown, ["escape"]),
|
|
12428
|
-
vue.withKeys(vue.withModifiers(focusPrevious, ["prevent"]), ["arrow-up"]),
|
|
12429
|
-
vue.withKeys(vue.withModifiers(focusNext, ["prevent"]), ["arrow-down"]),
|
|
12430
|
-
vue.withKeys(vue.withModifiers(focusFirst, ["prevent"]), ["home"]),
|
|
12431
|
-
vue.withKeys(vue.withModifiers(focusLast, ["prevent"]), ["end"])
|
|
12432
|
-
]
|
|
12386
|
+
vue.createVNode(vue.unref(_sfc_main$5), null, {
|
|
12387
|
+
fallback: vue.withCtx(() => [
|
|
12388
|
+
vue.createElementVNode("button", {
|
|
12389
|
+
onClick: openSignIn,
|
|
12390
|
+
class: "relative flex items-center gap-2 py-2 px-4 rounded-full bg-strands-500 text-white text-sm font-medium hover:bg-strands-600 focus:outline-none focus:ring-2 focus:ring-strands-500 focus:ring-offset-2 transition-all duration-150",
|
|
12391
|
+
"aria-label": "Sign in"
|
|
12392
|
+
}, _cache[8] || (_cache[8] = [
|
|
12393
|
+
vue.createElementVNode("svg", {
|
|
12394
|
+
class: "w-4 h-4",
|
|
12395
|
+
fill: "none",
|
|
12396
|
+
stroke: "currentColor",
|
|
12397
|
+
viewBox: "0 0 24 24"
|
|
12433
12398
|
}, [
|
|
12434
|
-
vue.createElementVNode("
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
|
|
12442
|
-
|
|
12443
|
-
|
|
12444
|
-
|
|
12445
|
-
|
|
12446
|
-
|
|
12447
|
-
|
|
12448
|
-
|
|
12449
|
-
|
|
12450
|
-
|
|
12451
|
-
|
|
12452
|
-
|
|
12453
|
-
|
|
12454
|
-
|
|
12455
|
-
|
|
12456
|
-
|
|
12457
|
-
|
|
12458
|
-
|
|
12459
|
-
|
|
12460
|
-
|
|
12461
|
-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
|
|
12468
|
-
])
|
|
12469
|
-
])
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
|
|
12479
|
-
|
|
12480
|
-
|
|
12481
|
-
|
|
12482
|
-
|
|
12483
|
-
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12487
|
-
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
|
|
12492
|
-
|
|
12493
|
-
|
|
12494
|
-
|
|
12495
|
-
|
|
12496
|
-
|
|
12497
|
-
|
|
12498
|
-
|
|
12499
|
-
|
|
12500
|
-
|
|
12399
|
+
vue.createElementVNode("path", {
|
|
12400
|
+
"stroke-linecap": "round",
|
|
12401
|
+
"stroke-linejoin": "round",
|
|
12402
|
+
"stroke-width": "2",
|
|
12403
|
+
d: "M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
|
|
12404
|
+
})
|
|
12405
|
+
], -1),
|
|
12406
|
+
vue.createElementVNode("span", null, "Sign In", -1)
|
|
12407
|
+
])),
|
|
12408
|
+
vue.createVNode(vue.unref(StrandsUiModal), {
|
|
12409
|
+
open: showSignInModal.value,
|
|
12410
|
+
onClose: closeSignIn,
|
|
12411
|
+
"fullscreen-on-mobile": false
|
|
12412
|
+
}, {
|
|
12413
|
+
header: vue.withCtx(() => [
|
|
12414
|
+
vue.createElementVNode("div", { class: "flex items-center justify-between" }, [
|
|
12415
|
+
_cache[10] || (_cache[10] = vue.createElementVNode("h2", { class: "text-xl font-semibold text-gray-900" }, "Sign In", -1)),
|
|
12416
|
+
vue.createElementVNode("button", {
|
|
12417
|
+
onClick: closeSignIn,
|
|
12418
|
+
class: "p-1 rounded-lg text-gray-400 hover:text-gray-600 hover:bg-gray-100 transition-colors",
|
|
12419
|
+
"aria-label": "Close sign in"
|
|
12420
|
+
}, _cache[9] || (_cache[9] = [
|
|
12421
|
+
vue.createElementVNode("svg", {
|
|
12422
|
+
class: "w-5 h-5",
|
|
12423
|
+
fill: "none",
|
|
12424
|
+
stroke: "currentColor",
|
|
12425
|
+
viewBox: "0 0 24 24"
|
|
12426
|
+
}, [
|
|
12427
|
+
vue.createElementVNode("path", {
|
|
12428
|
+
"stroke-linecap": "round",
|
|
12429
|
+
"stroke-linejoin": "round",
|
|
12430
|
+
"stroke-width": "2",
|
|
12431
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
12432
|
+
})
|
|
12433
|
+
], -1)
|
|
12434
|
+
]))
|
|
12435
|
+
])
|
|
12436
|
+
]),
|
|
12437
|
+
default: vue.withCtx(() => [
|
|
12438
|
+
vue.createVNode(vue.unref(StrandsAuth), {
|
|
12439
|
+
onSignedIn: handleSignedIn,
|
|
12440
|
+
onError: handleSignInError,
|
|
12441
|
+
"redirect-url": _ctx.redirectUrl,
|
|
12442
|
+
"in-modal": ""
|
|
12443
|
+
}, null, 8, ["redirect-url"])
|
|
12444
|
+
]),
|
|
12445
|
+
_: 1
|
|
12446
|
+
}, 8, ["open"])
|
|
12447
|
+
]),
|
|
12448
|
+
default: vue.withCtx(() => [
|
|
12449
|
+
vue.createElementVNode("button", {
|
|
12450
|
+
onClick: toggleDropdown,
|
|
12451
|
+
onKeydown: [
|
|
12452
|
+
vue.withKeys(toggleDropdown, ["enter"]),
|
|
12453
|
+
vue.withKeys(vue.withModifiers(toggleDropdown, ["prevent"]), ["space"]),
|
|
12454
|
+
vue.withKeys(closeDropdown, ["escape"]),
|
|
12455
|
+
vue.withKeys(vue.withModifiers(openDropdown, ["prevent"]), ["arrow-down"])
|
|
12456
|
+
],
|
|
12457
|
+
class: "relative flex items-center py-2 px-3 rounded-full bg-gray-100 text-gray-900 text-sm font-medium hover:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 transition-all duration-150",
|
|
12458
|
+
"aria-haspopup": "true",
|
|
12459
|
+
"aria-expanded": showDropdown.value,
|
|
12460
|
+
"aria-label": "User menu"
|
|
12461
|
+
}, [
|
|
12462
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
12463
|
+
!_ctx.hideUser ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
12464
|
+
vue.createElementVNode("div", _hoisted_4, vue.toDisplayString(displayName.value), 1)
|
|
12465
|
+
])) : vue.createCommentVNode("", true),
|
|
12466
|
+
vue.createElementVNode("div", _hoisted_5, [
|
|
12467
|
+
vue.createElementVNode("div", _hoisted_6, [
|
|
12468
|
+
vue.unref(user)?.avatar ? (vue.openBlock(), vue.createElementBlock("img", {
|
|
12469
|
+
key: 0,
|
|
12470
|
+
src: vue.unref(user).avatar,
|
|
12471
|
+
alt: `${vue.unref(user).firstName || vue.unref(user).email}'s avatar`,
|
|
12472
|
+
class: "w-8 h-8 rounded-full object-cover"
|
|
12473
|
+
}, null, 8, _hoisted_7)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, _cache[0] || (_cache[0] = [
|
|
12501
12474
|
vue.createElementVNode("svg", {
|
|
12502
|
-
class: "w-
|
|
12503
|
-
fill: "
|
|
12504
|
-
|
|
12505
|
-
viewBox: "0 0 24 24"
|
|
12475
|
+
class: "w-5 h-5 text-gray-600",
|
|
12476
|
+
fill: "currentColor",
|
|
12477
|
+
viewBox: "0 0 20 20"
|
|
12506
12478
|
}, [
|
|
12507
12479
|
vue.createElementVNode("path", {
|
|
12508
|
-
"
|
|
12509
|
-
"
|
|
12510
|
-
"
|
|
12511
|
-
d: "M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"
|
|
12480
|
+
"fill-rule": "evenodd",
|
|
12481
|
+
d: "M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z",
|
|
12482
|
+
"clip-rule": "evenodd"
|
|
12512
12483
|
})
|
|
12513
|
-
], -1)
|
|
12514
|
-
|
|
12515
|
-
]))
|
|
12484
|
+
], -1)
|
|
12485
|
+
])))
|
|
12516
12486
|
])
|
|
12517
|
-
])
|
|
12518
|
-
|
|
12519
|
-
|
|
12520
|
-
_: 1
|
|
12521
|
-
})
|
|
12522
|
-
], 40, _hoisted_1),
|
|
12523
|
-
vue.createVNode(vue.unref(StrandsUiModal), {
|
|
12524
|
-
open: showProfileModal.value,
|
|
12525
|
-
onClose: closeProfile,
|
|
12526
|
-
"fullscreen-on-mobile": false
|
|
12527
|
-
}, {
|
|
12528
|
-
header: vue.withCtx(() => [
|
|
12529
|
-
vue.createElementVNode("div", { class: "flex items-center justify-between" }, [
|
|
12530
|
-
_cache[7] || (_cache[7] = vue.createElementVNode("h2", { class: "text-xl font-semibold text-gray-900" }, "User Profile", -1)),
|
|
12531
|
-
vue.createElementVNode("button", {
|
|
12532
|
-
onClick: closeProfile,
|
|
12533
|
-
class: "p-1 rounded-lg text-gray-400 hover:text-gray-600 hover:bg-gray-100 transition-colors",
|
|
12534
|
-
"aria-label": "Close profile"
|
|
12535
|
-
}, _cache[6] || (_cache[6] = [
|
|
12536
|
-
vue.createElementVNode("svg", {
|
|
12537
|
-
class: "w-5 h-5",
|
|
12487
|
+
]),
|
|
12488
|
+
(vue.openBlock(), vue.createElementBlock("svg", {
|
|
12489
|
+
class: vue.normalizeClass(["w-4 h-4 text-gray-400 transition-transform duration-150", { "transform rotate-180": showDropdown.value }]),
|
|
12538
12490
|
fill: "none",
|
|
12539
12491
|
stroke: "currentColor",
|
|
12540
12492
|
viewBox: "0 0 24 24"
|
|
12541
|
-
}, [
|
|
12493
|
+
}, _cache[1] || (_cache[1] = [
|
|
12542
12494
|
vue.createElementVNode("path", {
|
|
12543
12495
|
"stroke-linecap": "round",
|
|
12544
12496
|
"stroke-linejoin": "round",
|
|
12545
12497
|
"stroke-width": "2",
|
|
12546
|
-
d: "
|
|
12547
|
-
})
|
|
12548
|
-
],
|
|
12549
|
-
])
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12498
|
+
d: "M19 9l-7 7-7-7"
|
|
12499
|
+
}, null, -1)
|
|
12500
|
+
]), 2))
|
|
12501
|
+
]),
|
|
12502
|
+
vue.createVNode(vue.Transition, { name: "dropdown" }, {
|
|
12503
|
+
default: vue.withCtx(() => [
|
|
12504
|
+
showDropdown.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
12505
|
+
key: 0,
|
|
12506
|
+
class: "absolute right-0 top-full mt-2 w-72 bg-white rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none z-50",
|
|
12507
|
+
role: "menu",
|
|
12508
|
+
"aria-orientation": "vertical",
|
|
12509
|
+
onKeydown: [
|
|
12510
|
+
vue.withKeys(closeDropdown, ["escape"]),
|
|
12511
|
+
vue.withKeys(vue.withModifiers(focusPrevious, ["prevent"]), ["arrow-up"]),
|
|
12512
|
+
vue.withKeys(vue.withModifiers(focusNext, ["prevent"]), ["arrow-down"]),
|
|
12513
|
+
vue.withKeys(vue.withModifiers(focusFirst, ["prevent"]), ["home"]),
|
|
12514
|
+
vue.withKeys(vue.withModifiers(focusLast, ["prevent"]), ["end"])
|
|
12515
|
+
]
|
|
12516
|
+
}, [
|
|
12517
|
+
vue.createElementVNode("div", _hoisted_10, [
|
|
12518
|
+
vue.createElementVNode("div", _hoisted_11, [
|
|
12519
|
+
vue.unref(user) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12, [
|
|
12520
|
+
vue.createVNode(vue.unref(StrandsUiLevelProgress), {
|
|
12521
|
+
size: 80,
|
|
12522
|
+
value: vue.unref(user).xp,
|
|
12523
|
+
max: vue.unref(user).next_level_xp,
|
|
12524
|
+
level: vue.unref(user).level,
|
|
12525
|
+
"level-label": `LEVEL ${vue.unref(user).level}`,
|
|
12526
|
+
"user-settings": vue.unref(user).settings,
|
|
12527
|
+
class: "absolute z-10 top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 pointer-events-none"
|
|
12528
|
+
}, null, 8, ["value", "max", "level", "level-label", "user-settings"]),
|
|
12529
|
+
vue.unref(user)?.avatar ? (vue.openBlock(), vue.createElementBlock("img", {
|
|
12530
|
+
key: 0,
|
|
12531
|
+
src: vue.unref(user).avatar,
|
|
12532
|
+
alt: `${vue.unref(user).firstName || vue.unref(user).email}'s avatar`,
|
|
12533
|
+
class: "w-14 h-14 rounded-full object-cover"
|
|
12534
|
+
}, null, 8, _hoisted_13)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_14, _cache[2] || (_cache[2] = [
|
|
12535
|
+
vue.createElementVNode("svg", {
|
|
12536
|
+
class: "w-5 h-5 text-gray-600",
|
|
12537
|
+
fill: "currentColor",
|
|
12538
|
+
viewBox: "0 0 20 20"
|
|
12539
|
+
}, [
|
|
12540
|
+
vue.createElementVNode("path", {
|
|
12541
|
+
"fill-rule": "evenodd",
|
|
12542
|
+
d: "M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z",
|
|
12543
|
+
"clip-rule": "evenodd"
|
|
12544
|
+
})
|
|
12545
|
+
], -1)
|
|
12546
|
+
])))
|
|
12547
|
+
])) : vue.createCommentVNode("", true),
|
|
12548
|
+
vue.createElementVNode("div", _hoisted_15, [
|
|
12549
|
+
vue.createElementVNode("div", _hoisted_16, vue.toDisplayString(displayName.value), 1),
|
|
12550
|
+
vue.createElementVNode("div", _hoisted_17, vue.toDisplayString(vue.unref(user)?.email), 1)
|
|
12551
|
+
])
|
|
12552
|
+
]),
|
|
12553
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("div", { class: "h-px bg-gray-200 my-2" }, null, -1)),
|
|
12554
|
+
vue.createElementVNode("div", _hoisted_18, [
|
|
12555
|
+
vue.createElementVNode("button", {
|
|
12556
|
+
ref_key: "profileButtonRef",
|
|
12557
|
+
ref: profileButtonRef,
|
|
12558
|
+
onClick: openProfile,
|
|
12559
|
+
class: "w-full flex items-center space-x-3 px-3 py-2 text-sm text-gray-700 rounded-lg hover:bg-gray-100 focus:bg-gray-100 focus:outline-none transition-colors duration-150",
|
|
12560
|
+
role: "menuitem",
|
|
12561
|
+
tabindex: "-1"
|
|
12562
|
+
}, _cache[3] || (_cache[3] = [
|
|
12563
|
+
vue.createElementVNode("svg", {
|
|
12564
|
+
class: "w-4 h-4 text-gray-400",
|
|
12565
|
+
fill: "none",
|
|
12566
|
+
stroke: "currentColor",
|
|
12567
|
+
viewBox: "0 0 24 24"
|
|
12568
|
+
}, [
|
|
12569
|
+
vue.createElementVNode("path", {
|
|
12570
|
+
"stroke-linecap": "round",
|
|
12571
|
+
"stroke-linejoin": "round",
|
|
12572
|
+
"stroke-width": "2",
|
|
12573
|
+
d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
|
|
12574
|
+
})
|
|
12575
|
+
], -1),
|
|
12576
|
+
vue.createTextVNode(" Profile ", -1)
|
|
12577
|
+
]), 512),
|
|
12578
|
+
vue.createElementVNode("button", {
|
|
12579
|
+
onClick: handleSignOut,
|
|
12580
|
+
class: "w-full flex items-center space-x-3 px-3 py-2 text-sm text-red-600 rounded-lg hover:bg-red-50 focus:bg-red-50 focus:outline-none transition-colors duration-150",
|
|
12581
|
+
role: "menuitem",
|
|
12582
|
+
tabindex: "-1"
|
|
12583
|
+
}, _cache[4] || (_cache[4] = [
|
|
12584
|
+
vue.createElementVNode("svg", {
|
|
12585
|
+
class: "w-4 h-4 text-red-500",
|
|
12586
|
+
fill: "none",
|
|
12587
|
+
stroke: "currentColor",
|
|
12588
|
+
viewBox: "0 0 24 24"
|
|
12589
|
+
}, [
|
|
12590
|
+
vue.createElementVNode("path", {
|
|
12591
|
+
"stroke-linecap": "round",
|
|
12592
|
+
"stroke-linejoin": "round",
|
|
12593
|
+
"stroke-width": "2",
|
|
12594
|
+
d: "M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"
|
|
12595
|
+
})
|
|
12596
|
+
], -1),
|
|
12597
|
+
vue.createTextVNode(" Sign Out ", -1)
|
|
12598
|
+
]))
|
|
12599
|
+
])
|
|
12600
|
+
])
|
|
12601
|
+
], 40, _hoisted_9)) : vue.createCommentVNode("", true)
|
|
12602
|
+
]),
|
|
12603
|
+
_: 1
|
|
12604
|
+
})
|
|
12605
|
+
], 40, _hoisted_1),
|
|
12606
|
+
vue.createVNode(vue.unref(StrandsUiModal), {
|
|
12607
|
+
open: showProfileModal.value,
|
|
12608
|
+
onClose: closeProfile,
|
|
12609
|
+
"fullscreen-on-mobile": false
|
|
12610
|
+
}, {
|
|
12611
|
+
header: vue.withCtx(() => [
|
|
12612
|
+
vue.createElementVNode("div", { class: "flex items-center justify-between" }, [
|
|
12613
|
+
_cache[7] || (_cache[7] = vue.createElementVNode("h2", { class: "text-xl font-semibold text-gray-900" }, "User Profile", -1)),
|
|
12614
|
+
vue.createElementVNode("button", {
|
|
12615
|
+
onClick: closeProfile,
|
|
12616
|
+
class: "p-1 rounded-lg text-gray-400 hover:text-gray-600 hover:bg-gray-100 transition-colors",
|
|
12617
|
+
"aria-label": "Close profile"
|
|
12618
|
+
}, _cache[6] || (_cache[6] = [
|
|
12619
|
+
vue.createElementVNode("svg", {
|
|
12620
|
+
class: "w-5 h-5",
|
|
12621
|
+
fill: "none",
|
|
12622
|
+
stroke: "currentColor",
|
|
12623
|
+
viewBox: "0 0 24 24"
|
|
12624
|
+
}, [
|
|
12625
|
+
vue.createElementVNode("path", {
|
|
12626
|
+
"stroke-linecap": "round",
|
|
12627
|
+
"stroke-linejoin": "round",
|
|
12628
|
+
"stroke-width": "2",
|
|
12629
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
12630
|
+
})
|
|
12631
|
+
], -1)
|
|
12632
|
+
]))
|
|
12633
|
+
])
|
|
12634
|
+
]),
|
|
12635
|
+
default: vue.withCtx(() => [
|
|
12636
|
+
vue.createVNode(vue.unref(StrandsUserProfile), {
|
|
12637
|
+
onProfileUpdated: handleProfileUpdated,
|
|
12638
|
+
onError: handleProfileError,
|
|
12639
|
+
"in-modal": ""
|
|
12640
|
+
})
|
|
12641
|
+
]),
|
|
12642
|
+
_: 1
|
|
12643
|
+
}, 8, ["open"])
|
|
12558
12644
|
]),
|
|
12559
12645
|
_: 1
|
|
12560
|
-
}
|
|
12646
|
+
})
|
|
12561
12647
|
], 512);
|
|
12562
12648
|
};
|
|
12563
12649
|
}
|
|
12564
12650
|
});
|
|
12565
|
-
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
12651
|
+
const StrandsUserButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6fbc9411"]]);
|
|
12566
12652
|
const components = {
|
|
12567
12653
|
StrandsUiAlert: _sfc_main$x,
|
|
12568
12654
|
StrandsUiButton,
|