@strands.gg/accui 2.1.2 → 2.1.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/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/nuxt/module.d.ts +6 -0
- package/dist/nuxt/module.d.ts.map +1 -0
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.cjs.js +1 -1
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.cjs.js.map +1 -1
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.d.ts +21 -0
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.d.ts.map +1 -0
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.es.js +5 -2
- package/dist/nuxt/runtime/composables/useAuthenticatedFetch.es.js.map +1 -1
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts +143 -0
- package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts.map +1 -0
- package/dist/nuxt/runtime/middleware/auth.d.ts +8 -0
- package/dist/nuxt/runtime/middleware/auth.d.ts.map +1 -0
- package/dist/nuxt/runtime/middleware/auth.global.d.ts +4 -0
- package/dist/nuxt/runtime/middleware/auth.global.d.ts.map +1 -0
- package/dist/nuxt/runtime/middleware/guest.d.ts +8 -0
- package/dist/nuxt/runtime/middleware/guest.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.client.d.ts +4 -0
- package/dist/nuxt/runtime/plugin.client.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.server.d.ts +4 -0
- package/dist/nuxt/runtime/plugin.server.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugins/auth-interceptor.client.d.ts +4 -0
- package/dist/nuxt/runtime/plugins/auth-interceptor.client.d.ts.map +1 -0
- package/dist/nuxt/types.d.ts +46 -0
- package/dist/nuxt/types.d.ts.map +1 -0
- package/dist/nuxt-v4/module.d.ts +6 -0
- package/dist/nuxt-v4/module.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.cjs.js +1 -1
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.d.ts +21 -0
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.es.js +5 -2
- package/dist/nuxt-v4/runtime/composables/useAuthenticatedFetch.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts +28 -0
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js +1 -0
- package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js.map +1 -1
- package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts +4 -0
- package/dist/nuxt-v4/runtime/middleware/auth.global.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugin.client.d.ts +4 -0
- package/dist/nuxt-v4/runtime/plugin.client.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugin.server.d.ts +4 -0
- package/dist/nuxt-v4/runtime/plugin.server.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.cjs.js.map +1 -1
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.d.ts +4 -0
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.d.ts.map +1 -0
- package/dist/nuxt-v4/runtime/plugins/auth-interceptor.client.es.js.map +1 -1
- package/dist/nuxt-v4/types.d.ts +64 -0
- package/dist/nuxt-v4/types.d.ts.map +1 -0
- package/dist/nuxt-v4.d.ts +5 -0
- package/dist/nuxt-v4.d.ts.map +1 -0
- package/dist/nuxt.d.ts +5 -0
- package/dist/nuxt.d.ts.map +1 -0
- package/dist/shared/defaults.d.ts +3 -0
- package/dist/shared/defaults.d.ts.map +1 -0
- package/dist/strands-auth-ui.cjs.js +1 -1
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +4 -2
- package/dist/strands-auth-ui.es.js.map +1 -1
- package/dist/types/index.d.ts +237 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/slots.d.ts +2 -0
- package/dist/utils/slots.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +13 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/vue/components/SignedIn.vue.d.ts +55 -0
- package/dist/vue/components/SignedIn.vue.d.ts.map +1 -0
- package/dist/vue/components/SignedOut.vue.d.ts +55 -0
- package/dist/vue/components/SignedOut.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsAuth.vue.d.ts +26 -0
- package/dist/vue/components/StrandsAuth.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsBackupCodesModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts +22 -0
- package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsConfigProvider.vue.d.ts +23 -0
- package/dist/vue/components/StrandsConfigProvider.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsConfirmModal.vue.d.ts +23 -0
- package/dist/vue/components/StrandsConfirmModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsEmailMfaSetupModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts +16 -0
- package/dist/vue/components/StrandsHardwareKeySetupModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsLogo.vue.d.ts +9 -0
- package/dist/vue/components/StrandsLogo.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsMFASetup.vue.d.ts +17 -0
- package/dist/vue/components/StrandsMFASetup.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsMfaModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsMfaModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsMfaVerification.vue.d.ts +18 -0
- package/dist/vue/components/StrandsMfaVerification.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsPasswordReset.vue.d.ts +16 -0
- package/dist/vue/components/StrandsPasswordReset.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSecuredFooter.vue.d.ts +23 -0
- package/dist/vue/components/StrandsSecuredFooter.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSessionsModal.vue.d.ts +15 -0
- package/dist/vue/components/StrandsSessionsModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSettingsModal.vue.d.ts +19 -0
- package/dist/vue/components/StrandsSettingsModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSignIn.vue.d.ts +22 -0
- package/dist/vue/components/StrandsSignIn.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsSignUp.vue.d.ts +20 -0
- package/dist/vue/components/StrandsSignUp.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts +13 -0
- package/dist/vue/components/StrandsTotpSetupModal.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsUserButton.vue.d.ts +31 -0
- package/dist/vue/components/StrandsUserButton.vue.d.ts.map +1 -0
- package/dist/vue/components/StrandsUserProfile.vue.d.ts +27 -0
- package/dist/vue/components/StrandsUserProfile.vue.d.ts.map +1 -0
- package/dist/vue/components/SvgIcon.vue.d.ts +18 -0
- package/dist/vue/components/SvgIcon.vue.d.ts.map +1 -0
- package/dist/vue/components/VirtualList.vue.d.ts +38 -0
- package/dist/vue/components/VirtualList.vue.d.ts.map +1 -0
- package/dist/vue/components/icons/IconGithub.vue.d.ts +4 -0
- package/dist/vue/components/icons/IconGithub.vue.d.ts.map +1 -0
- package/dist/vue/components/icons/IconGoogle.vue.d.ts +4 -0
- package/dist/vue/components/icons/IconGoogle.vue.d.ts.map +1 -0
- package/dist/vue/components/icons/index.d.ts +3 -0
- package/dist/vue/components/icons/index.d.ts.map +1 -0
- package/dist/vue/components/index.d.ts +27 -0
- package/dist/vue/components/index.d.ts.map +1 -0
- package/dist/vue/composables/useAuthenticatedFetch.d.ts +21 -0
- package/dist/vue/composables/useAuthenticatedFetch.d.ts.map +1 -0
- package/dist/vue/composables/useOAuthProviders.d.ts +75 -0
- package/dist/vue/composables/useOAuthProviders.d.ts.map +1 -0
- package/dist/vue/composables/useStrandsAuth.d.ts +131 -0
- package/dist/vue/composables/useStrandsAuth.d.ts.map +1 -0
- package/dist/vue/composables/useStrandsConfig.d.ts +12 -0
- package/dist/vue/composables/useStrandsConfig.d.ts.map +1 -0
- package/dist/vue/composables/useStrandsMfa.d.ts +39 -0
- package/dist/vue/composables/useStrandsMfa.d.ts.map +1 -0
- package/dist/vue/index.d.ts +13 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/plugins/StrandsUIPlugin.d.ts +20 -0
- package/dist/vue/plugins/StrandsUIPlugin.d.ts.map +1 -0
- package/dist/vue/ui/UiAlert.vue.d.ts +32 -0
- package/dist/vue/ui/UiAlert.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiAvatarEditor.vue.d.ts +26 -0
- package/dist/vue/ui/UiAvatarEditor.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiButton.vue.d.ts +55 -0
- package/dist/vue/ui/UiButton.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiCard.vue.d.ts +30 -0
- package/dist/vue/ui/UiCard.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiInput.vue.d.ts +49 -0
- package/dist/vue/ui/UiInput.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiLevelProgress.vue.d.ts +20 -0
- package/dist/vue/ui/UiLevelProgress.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiLink.vue.d.ts +43 -0
- package/dist/vue/ui/UiLink.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiLoader.vue.d.ts +16 -0
- package/dist/vue/ui/UiLoader.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiModal.vue.d.ts +34 -0
- package/dist/vue/ui/UiModal.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiTabs.vue.d.ts +18 -0
- package/dist/vue/ui/UiTabs.vue.d.ts.map +1 -0
- package/dist/vue/ui/UiToggle.vue.d.ts +16 -0
- package/dist/vue/ui/UiToggle.vue.d.ts.map +1 -0
- package/dist/vue/ui/index.d.ts +30 -0
- package/dist/vue/ui/index.d.ts.map +1 -0
- package/dist/vue/utils/contrast.d.ts +80 -0
- package/dist/vue/utils/contrast.d.ts.map +1 -0
- package/dist/vue/utils/debounce.d.ts +13 -0
- package/dist/vue/utils/debounce.d.ts.map +1 -0
- package/dist/vue/utils/fontPreloader.d.ts +20 -0
- package/dist/vue/utils/fontPreloader.d.ts.map +1 -0
- package/dist/vue/utils/iconProps.d.ts +10 -0
- package/dist/vue/utils/iconProps.d.ts.map +1 -0
- package/dist/vue/utils/lazyComponents.d.ts +3 -0
- package/dist/vue/utils/lazyComponents.d.ts.map +1 -0
- package/dist/vue/utils/levels.d.ts +28 -0
- package/dist/vue/utils/levels.d.ts.map +1 -0
- package/dist/vue/utils/performanceInit.d.ts +41 -0
- package/dist/vue/utils/performanceInit.d.ts.map +1 -0
- package/dist/vue/utils/requestCache.d.ts +50 -0
- package/dist/vue/utils/requestCache.d.ts.map +1 -0
- package/dist/vue/utils/sounds.d.ts +57 -0
- package/dist/vue/utils/sounds.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");;/* empty css */const t=require("./useStrandsConfig-Z9_36OcV.cjs"),a=require("./useStrandsAuth-CTlaiFqK.cjs"),o={class:"accui-component-scope"},l={class:"alert-content"},r={class:"alert-icon-container"},n={class:"alert-main-icon",fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true"},i=["d"],s={class:"alert-text-container"},c={key:0,class:"alert-dismiss-container"},d=(e,t)=>{const a=e.__vccOpts||e;for(const[o,l]of t)a[o]=l;return a},u=d(e.defineComponent({__name:"UiAlert",props:{variant:{default:"info"},title:{},message:{},dismissible:{type:Boolean,default:!1}},emits:["dismiss"],setup(t){const a=t,d=e.computed(()=>({success:"alert alert-success",error:"alert alert-error",warning:"alert alert-warning",info:"alert alert-info"}[a.variant])),u=e.computed(()=>"alert-title"),m=e.computed(()=>"alert-message"),p=e.computed(()=>({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",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",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",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"}[a.variant]));return(t,a)=>(e.openBlock(),e.createElementBlock("div",o,[e.createElementVNode("div",{class:e.normalizeClass(d.value),role:"alert"},[e.createElementVNode("div",l,[e.createElementVNode("div",r,[(e.openBlock(),e.createElementBlock("svg",n,[e.createElementVNode("path",{"fill-rule":"evenodd",d:p.value,"clip-rule":"evenodd"},null,8,i)]))]),e.createElementVNode("div",s,[t.title?(e.openBlock(),e.createElementBlock("h3",{key:0,class:e.normalizeClass(u.value)},e.toDisplayString(t.title),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(m.value)},[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)],!0)],2)]),t.dismissible?(e.openBlock(),e.createElementBlock("div",c,[e.createElementVNode("button",{type:"button",class:"alert-dismiss-button",onClick:a[0]||(a[0]=e=>t.$emit("dismiss"))},a[1]||(a[1]=[e.createElementVNode("span",{class:"sr-only"},"Dismiss",-1),e.createElementVNode("svg",{class:"alert-dismiss-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)]))])):e.createCommentVNode("",!0)])],2)]))}}),[["__scopeId","data-v-a396f50a"]]),m={red:"#ef4444",blue:"#3b82f6",green:"#10b981",yellow:"#eab308",purple:"#8b5cf6",pink:"#ec4899",gray:"#6b7280",indigo:"#6366f1",orange:"#f97316",teal:"#14b8a6",cyan:"#06b6d4",emerald:"#10b981",lime:"#84cc16",amber:"#f59e0b",rose:"#f43f5e",slate:"#64748b",zinc:"#71717a",neutral:"#737373",stone:"#78716c",strands:"#EA00A8",primary:"#EA00A8"},p=(e,t,a)=>{let o=.2126729*Math.pow(e/255,2.4)+.7151522*Math.pow(t/255,2.4)+.072175*Math.pow(a/255,2.4);return o<.022&&(o+=Math.pow(.022-o,1.414)),o},v=(e,t)=>{let a=0;return t>e?(a=1.14*(Math.pow(t,.56)-Math.pow(e,.57)),100*a<15?0:100*a-15):(a=1.14*(Math.pow(t,.65)-Math.pow(e,.62)),100*a>-15?0:100*a+15)},f=e=>{const t=e.includes("-")?e.split("-")[0]:e.includes("/")?e.split("/")[0]:e,a=(e=>{const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null})(m[t]||"#6b7280")||{r:107,g:114,b:128};let o={...a};if(e.includes("-")){const t=parseInt(e.split("-")[1],10);if(!isNaN(t)&&500!==t)if(t<500){const e=(500-t)/400*.45;o.r=Math.round(a.r+(255-a.r)*e),o.g=Math.round(a.g+(255-a.g)*e),o.b=Math.round(a.b+(255-a.b)*e)}else{const e=(t-500)/450*.45;o.r=Math.round(a.r*(1-e)),o.g=Math.round(a.g*(1-e)),o.b=Math.round(a.b*(1-e))}}if(e.includes("/")){const t=parseInt(e.split("/")[1],10);if(!isNaN(t)){const e=t/100,a={r:255,g:255,b:255};o.r=Math.round(o.r*e+a.r*(1-e)),o.g=Math.round(o.g*e+a.g*(1-e)),o.b=Math.round(o.b*e+a.b*(1-e))}}return o},h=(e,t=400,a=16)=>{const o=f(e),l=p(o.r,o.g,o.b),r=p(0,0,0),n=p(255,255,255),i=Math.abs(v(r,l)),s=Math.abs(v(n,l)),c=((e=400,t=16)=>e>=700?t>=24?30:t>=18?35:40:e>=600?t>=24?35:t>=18?40:45:e>=500?t>=24?40:t>=18?45:50:t>=24?45:t>=18?50:60)(t,a);return i>=c&&s>=c?i>s?"#000000":"#ffffff":i>=c?"#000000":s>=c?"#ffffff":i>s?"#000000":"#ffffff"},g=e=>{if(e.includes("-")){const[t,a]=e.split("-"),o=m[t];if(o&&a){const e=parseInt(a,10);if(500===e)return o;if(e<500){const t=Math.round((500-e)/400*45),a=Math.min(Math.max(t,3),45);return`color-mix(in srgb, ${o} ${100-a}%, white ${a}%)`}{const t=Math.round((e-500)/450*45),a=Math.min(Math.max(t,3),45);return`color-mix(in srgb, ${o} ${100-a}%, black ${a}%)`}}}if(e.includes("/")){const[t,a]=e.split("/"),o=m[t]||t,l=parseInt(a,10);return`light-dark(hsl(from ${o} h s l / ${l}%), color-mix(in srgb, ${m[t]||t} ${l}%, transparent))`}return m[e]||`var(--color-${e}, ${e})`},y=["type","disabled"],k={key:0,class:"button-loading-content"},E={key:1,class:"button-content"},N=d(e.defineComponent({__name:"UiButton",props:{variant:{default:"primary"},size:{default:"md"},type:{default:"button"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingText:{},fullWidth:{type:Boolean,default:!1},color:{},fontWeight:{default:600}},emits:["click"],setup(t){const a=t,o=e=>`hsl(from ${g(e)} h s 95% / 0.8)`,l=e.computed(()=>["ui-button",`ui-button-${a.variant}`,`ui-button-${a.size}`,a.fullWidth?"ui-button-full-width":"",a.color?"ui-button-custom-color":""].filter(Boolean).join(" ")),r=e.computed(()=>{if(!a.color)return{};const{fontSize:e}=(e=>{switch(e){case"sm":default:return{fontSize:14};case"lg":return{fontSize:16}}})(a.size),t=a.fontWeight||600,l=g(a.color),r=(n=a.color,`color-mix(in srgb, ${g(n)} 85%, black 15%)`);var n;const i=o(a.color),s=h(a.color||"gray",t,e),c=((e,t,a)=>{const o=e.includes("-")?`${e.split("-")[0]}-${Math.min(parseInt(e.split("-")[1])+100,950)}`:`${e}-600`;return h(o,t,a)})(a.color||"gray",t,e),d=`${a.color}-100`,u=h(d,t,e),m={"--button-color":l,"--button-hover-color":r,"--button-light-color":i,"--button-contrast-color":s,"--button-hover-contrast-color":c,"--button-light-contrast-color":u,fontWeight:t};switch(a.variant){case"primary":return{...m,backgroundColor:l,color:s,boxShadow:"0 1px 2px 0 rgb(0 0 0 / 0.05)","--button-text-color":s};case"secondary":return{...m,backgroundColor:i,color:u,border:`1px solid ${o(a.color)}`,"--button-text-color":u};case"ghost":return{...m,color:l,backgroundColor:"transparent","--button-text-color":l};case"outline":return{...m,borderColor:l,color:l,backgroundColor:"transparent",borderWidth:"1px",borderStyle:"solid","--button-text-color":l};default:return{...m,backgroundColor:l,color:s,"--button-text-color":s}}});return(t,a)=>(e.openBlock(),e.createElementBlock("button",{type:t.type,disabled:t.disabled||t.loading,class:e.normalizeClass(l.value),style:e.normalizeStyle(r.value),onClick:a[0]||(a[0]=e=>t.$emit("click",e))},[t.loading?(e.openBlock(),e.createElementBlock("span",k,[a[1]||(a[1]=e.createElementVNode("svg",{class:"button-loading-icon",fill:"none",viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"button-loading-track",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.createElementVNode("path",{class:"button-loading-spinner",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"})],-1)),e.createElementVNode("span",null,e.toDisplayString(t.loadingText||"Loading..."),1)])):(e.openBlock(),e.createElementBlock("span",E,[e.renderSlot(t.$slots,"icon",{},void 0,!0),e.renderSlot(t.$slots,"default",{},void 0,!0)]))],14,y))}}),[["__scopeId","data-v-7f9ac656"]]),w={key:0,class:"ui-card-header"},V={class:"ui-card-content"},b={key:1,class:"ui-card-footer"},C=d(e.defineComponent({__name:"UiCard",props:{variant:{default:"default"},padding:{default:"md"},shadow:{default:"sm"}},setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["ui-card",[`ui-card-${t.variant}`,`ui-card-padding-${t.padding}`,`ui-card-shadow-${t.shadow}`]])},[t.$slots.header?(e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(t.$slots,"header",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",V,[e.renderSlot(t.$slots,"default",{},void 0,!0)]),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",b,[e.renderSlot(t.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)],2))}),[["__scopeId","data-v-c8b506ee"]]),x={class:"accui-component-scope"},I={class:"input-container"},B=["for"],A={key:0,class:"input-required"},S={class:"input-wrapper"},M=["id","type","value","placeholder","disabled","required","autocomplete","name","inputmode","maxlength"],z={key:0,class:"input-toggle-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},R={key:1,class:"input-toggle-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},T={key:1,class:"input-icon-container"},D={key:1,class:"input-error-text"},L={key:2,class:"input-help-text"},U=d(e.defineComponent({__name:"UiInput",props:{modelValue:{},type:{default:"text"},label:{},placeholder:{},disabled:{type:Boolean},required:{type:Boolean},error:{},helpText:{},autocomplete:{},name:{},inputmode:{},maxlength:{},size:{default:"md"}},emits:["update:modelValue","blur","focus","keydown"],setup(t,{emit:a}){const o=t,l=a,r=e.useSlots(),n=e.ref(!1),i=e.ref(`input-${Math.random().toString(36).substr(2,9)}`),s=e.computed(()=>"password"===o.type?n.value?"text":"password":o.type),c=e.computed(()=>{const e=o.error?"input-error":"",t=r.icon?"input-with-icon":"",a="password"===o.type?"input-with-password":"";return["input-field",{sm:"input-size-sm",md:"input-size-md",lg:"input-size-lg"}[o.size],e,t,a].filter(Boolean).join(" ")}),d=e=>{const t=e.target;l("update:modelValue",t.value)},u=()=>{n.value=!n.value};return(t,a)=>(e.openBlock(),e.createElementBlock("div",x,[e.createElementVNode("div",I,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"input-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",A,"*")):e.createCommentVNode("",!0)],8,B)):e.createCommentVNode("",!0),e.createElementVNode("div",S,[e.createElementVNode("input",{id:i.value,type:s.value,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,required:t.required,autocomplete:t.autocomplete,name:t.name,inputmode:t.inputmode,maxlength:t.maxlength,class:e.normalizeClass(c.value),onInput:d,onBlur:a[0]||(a[0]=e=>t.$emit("blur",e)),onFocus:a[1]||(a[1]=e=>t.$emit("focus",e)),onKeydown:a[2]||(a[2]=e=>t.$emit("keydown",e))},null,42,M),"password"===t.type?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"input-password-toggle",onClick:u},[n.value?(e.openBlock(),e.createElementBlock("svg",z,a[3]||(a[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1)]))):(e.openBlock(),e.createElementBlock("svg",R,a[4]||(a[4]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1)])))])):e.createCommentVNode("",!0),t.$slots.icon?(e.openBlock(),e.createElementBlock("div",T,[e.renderSlot(t.$slots,"icon",{},void 0,!0)])):e.createCommentVNode("",!0)]),t.error?(e.openBlock(),e.createElementBlock("p",D,e.toDisplayString("string"==typeof t.error?t.error:t.error.message),1)):t.helpText?(e.openBlock(),e.createElementBlock("p",L,e.toDisplayString(t.helpText),1)):e.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-e2c3cc83"]]),j=d(e.defineComponent({__name:"UiLink",props:{href:{},to:{},variant:{default:"primary"},size:{default:"md"},disabled:{type:Boolean,default:!1},external:{type:Boolean,default:!1},color:{}},emits:["click"],setup(t,{emit:a}){const o=t,l=a,r=e.computed(()=>o.to?"router-link":o.href?"a":"button"),n=e.computed(()=>{const e={};return o.to?e.to=o.to:o.href?(e.href=o.href,o.external&&(e.target="_blank",e.rel="noopener noreferrer")):e.type="button",o.disabled&&(e.disabled=!0,e["aria-disabled"]=!0),e}),i=e.computed(()=>{if(!o.color)return{};const e=g(o.color);var t;const a={"--link-color":e,"--link-hover-color":(t=o.color,`color-mix(in srgb, ${g(t)} 85%, black 15%)`),color:e};return"underline"===o.variant?{...a,textDecorationColor:e}:a}),s=e=>{o.disabled||l("click",e)};return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({class:["ui-link",[`ui-link-${t.variant}`,`ui-link-${t.size}`,{"ui-link-disabled":t.disabled},{"ui-link-custom-color":t.color}]],style:i.value},n.value,{onClick:s}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},void 0,!0)]),_:3},16,["class","style"]))}}),[["__scopeId","data-v-878f97a6"]]),P={class:"tabs-container"},X={class:"tabs-wrapper"},Y={class:"tabs-list",role:"tablist"},H=["aria-selected","aria-controls","id","onClick"],F=d(e.defineComponent({__name:"UiTabs",props:{modelValue:{},tabs:{}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,l=a,r=e.ref([]),n=e.ref({width:"0px",left:"0px",opacity:"0"});let i=-1,s=!1;const c=async e=>{if(!r.value[e]||e===i)return;s=!0;const t=r.value[e],a=t.parentElement;if(!a)return;const o=t.getBoundingClientRect(),l=a.getBoundingClientRect(),c=o.left-l.left,d=o.width;if(-1===i)return n.value={width:`${d}px`,left:`${c}px`,opacity:"1"},i=e,void(s=!1);const u=r.value[i].getBoundingClientRect(),m=u.left-l.left,p=u.width,v=e>i,f=v?m:c,h=v?c+d-m:m+p-c;n.value={width:`${h}px`,left:`${f}px`,opacity:"1"},setTimeout(()=>{n.value={width:`${d}px`,left:`${c}px`,opacity:"1"},i=e,setTimeout(()=>{s=!1},150)},120)};e.onMounted(async()=>{await e.nextTick();const t=o.tabs.findIndex(e=>e.value===o.modelValue);-1!==t&&c(t)}),e.computed(()=>o.tabs.findIndex(e=>e.value===o.modelValue));const{modelValue:d}=e.toRefs(o);return e.watch(d,async()=>{await e.nextTick();const t=o.tabs.findIndex(e=>e.value===o.modelValue);-1!==t&&c(t)}),(t,a)=>(e.openBlock(),e.createElementBlock("div",P,[e.createElementVNode("div",X,[e.createElementVNode("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(t,a)=>(e.openBlock(),e.createElementBlock("button",{key:t.value,ref_for:!0,ref_key:"tabButtons",ref:r,class:e.normalizeClass(["tab-button",{"tab-button-active":e.unref(d)===t.value}]),"aria-selected":e.unref(d)===t.value,"aria-controls":`tabpanel-${t.value}`,id:`tab-${t.value}`,role:"tab",onClick:o=>(async(t,a)=>{s||(l("update:modelValue",t),await e.nextTick(),c(a))})(t.value,a)},e.toDisplayString(t.label),11,H))),128)),e.createElementVNode("div",{class:"tab-underline",style:e.normalizeStyle(n.value)},null,4)])])]))}}),[["__scopeId","data-v-c14b9ef2"]]),W={class:"loader-icon"},O=["width","height"],q=["d","stroke","stroke-width"],Z=["d","stroke","stroke-width"],G=d(e.defineComponent({__name:"UiLoader",props:{size:{default:80},variant:{default:"auto"},text:{},centered:{type:Boolean,default:!0},weight:{default:30}},setup(t){const a='<svg width="302" height="438" viewBox="0 0 302 438" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M71.5001 96C71.5001 96 132 106 137 61.5C142 17 117.5 3.50005 94.5001 1.50003C71.5001 -0.499996 16.0001 8.5 2.00014 72.5C-6.5 130.5 71.5003 227.5 165 218C258.5 208.5 280.758 148.5 283.5 121C286.242 93.5 277.5 61.5 238.5 61.5C153 61.5 150.501 185 170.5 235C190.5 285 199 279 213 314C227.001 349 217.296 411.458 183 427C129.456 450.65 92 426 78.5 407.5C65 389 68.0003 357 94.5001 344.5C121 332 212.41 393.5 301.5 361" stroke="black"/>\n</svg>\n'.replace(/<svg[^>]*>/,"").replace(/<\/svg>/,"").trim(),o=a.match(/d="([^"]*)"/)?.[1]||"",l=t,r=e.computed(()=>"light"===l.variant?"#EA00A810":(l.variant,"#ffffff10")),n=e.computed(()=>"light"===l.variant?"#EA00A8":(l.variant,"#ffffff"));return(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["loader-container",{"loader-centered":t.centered}])},[e.createElementVNode("div",W,[(e.openBlock(),e.createElementBlock("svg",{width:t.size,height:t.size,viewBox:"0 0 500 500"},[e.createElementVNode("path",{d:e.unref(o),fill:"none",stroke:r.value,"stroke-width":t.weight,"stroke-linecap":"round","stroke-linejoin":"round",transform:"translate(81, 13) scale(1.0)"},null,8,q),e.createElementVNode("path",{d:e.unref(o),fill:"none",stroke:n.value,"stroke-width":t.weight,"stroke-linecap":"round","stroke-linejoin":"round",class:"loader-animated-path",transform:"translate(81, 13) scale(1.0)"},null,8,Z)],8,O))]),t.text?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(["loader-text",{[`loader-text-${t.variant}`]:"auto"!==t.variant}])},e.toDisplayString(t.text),3)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-1e521ef1"]]),Q=["aria-pressed","aria-labelledby"],J=d(e.defineComponent({__name:"UiToggle",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,l=a,r=e.computed(()=>["ui-toggle",{"ui-toggle--on":o.modelValue,"ui-toggle--off":!o.modelValue,"ui-toggle--disabled":o.disabled}]),n=e.computed(()=>[{"ui-toggle-thumb--on":o.modelValue,"ui-toggle-thumb--off":!o.modelValue}]),i=()=>{o.disabled||l("update:modelValue",!o.modelValue)};return(t,a)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(r.value),"aria-pressed":t.modelValue,"aria-labelledby":t.id?`${t.id}-label`:void 0,onClick:i},[e.createElementVNode("span",{class:e.normalizeClass(["ui-toggle-thumb",n.value])},null,2)],10,Q))}}),[["__scopeId","data-v-f9c38813"]]),K={class:"accui-component-scope"},_={class:"avatar-editor-simple"},$={key:1,class:"editor-container"},ee={class:"editor-main"},te={class:"canvas-container"},ae=["width","height"],oe={class:"crop-overlay"},le={class:"crop-backdrop"},re={class:"crop-svg"},ne={id:"backdrop-mask"},ie=["width","height"],se=["cx","cy","r"],ce=["width","height"],de={class:"crop-svg"},ue=["cx","cy","r"],me={class:"controls"},pe={class:"zoom-control"},ve=["min","max"],fe={class:"action-buttons"},he=["disabled"],ge={class:"preview-section"},ye={class:"preview-container"},ke=["width","height"],Ee=e.defineComponent({__name:"UiAvatarEditor",props:{size:{default:300},previewSize:{default:100},maxFileSize:{default:5242880},uploading:{type:Boolean,default:!1},preselectedFile:{}},emits:["upload","error"],setup(t,{emit:a}){const o=t,l=a,r=e.ref(),n=e.ref(),i=e.ref(),s=e.ref(""),c=e.ref(),d=e.ref(o.size),u=e.ref(o.previewSize),m=e.ref(o.size/2.5),p=e.reactive({x:0,y:0}),v=e.ref(1),f=e.ref(.1),h=e.ref(3),g=e.ref(!1),y=e.ref(!1),k=e.ref(!1),E=e.reactive({x:0,y:0,imageX:0,imageY:0});e.onMounted(()=>{if(n.value){const e=n.value.getContext("2d");e&&(e.fillStyle="#f9fafb",e.fillRect(0,0,d.value,d.value))}});const N=()=>{r.value?.click()},w=e=>{const t=e.target,a=t.files?.[0];a&&b(a)},V=e=>{e.preventDefault();const t=e.dataTransfer?.files[0];t&&b(t)},b=e=>{if(!e.type.startsWith("image/"))return void l("error","Please select an image file");if(e.size>o.maxFileSize)return void l("error",`File size must be less than ${Math.round(o.maxFileSize/1024/1024)}MB`);const t=new FileReader;t.onload=e=>{const t=e.target?.result;C(t)},t.readAsDataURL(e)},C=t=>{s.value=t;const a=new Image;a.onload=()=>{c.value=a,y.value=!0;const t=Math.max(2*m.value/a.width,2*m.value/a.height),o=t;f.value=t,h.value=Math.max(1,t);const l=a.width*o,r=a.height*o;p.x=(d.value-l)/2,p.y=(d.value-r)/2,v.value=o,A(),e.nextTick(()=>{y.value=!1}),e.nextTick(()=>{x()})},a.src=t},x=()=>{if(!c.value||!n.value)return;const e=n.value.getContext("2d");if(!e)return;e.fillStyle="#f9fafb",e.fillRect(0,0,d.value,d.value);const t=c.value,a=t.width*v.value,o=t.height*v.value;e.drawImage(t,p.x,p.y,a,o),I()},I=()=>{if(!c.value||!i.value||!n.value)return;const e=i.value.getContext("2d");if(!e)return;e.fillStyle="#ffffff",e.fillRect(0,0,u.value,u.value),e.save(),e.beginPath(),e.arc(u.value/2,u.value/2,u.value/2,0,2*Math.PI),e.clip();const t=d.value/2-m.value,a=d.value/2-m.value,o=2*m.value;e.drawImage(n.value,t,a,o,o,0,0,u.value,u.value),e.restore()},B=e=>{c.value&&(g.value=!0,E.x=e.clientX,E.y=e.clientY,E.imageX=p.x,E.imageY=p.y,document.addEventListener("mousemove",S),document.addEventListener("mouseup",M))},A=()=>{if(!c.value)return;const e=c.value,t=e.width*v.value,a=e.height*v.value,o=d.value/2-m.value,l=d.value/2-m.value,r=d.value/2+m.value-t,n=o,i=d.value/2+m.value-a,s=l;p.x=Math.min(n,Math.max(r,p.x)),p.y=Math.min(s,Math.max(i,p.y))},S=e=>{if(!g.value)return;const t=e.clientX-E.x,a=e.clientY-E.y;p.x=E.imageX+t,p.y=E.imageY+a,A(),x()},M=()=>{g.value=!1,document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",M)},z=e=>{e.preventDefault();const t=e.deltaY>0?-.05:.05,a=Math.max(f.value,Math.min(h.value,v.value+t));if(a!==v.value&&c.value){k.value=!0;const e=c.value,t=d.value/2,o=e.width*v.value,l=e.height*v.value,r=e.width*a,n=e.height*a,i=p.x+o/2-t,s=p.y+l/2-t,u=a/v.value,m=i*u,f=s*u;p.x=t+m-r/2,p.y=t+f-n/2,v.value=a,A(),x(),setTimeout(()=>{k.value=!1},16)}},R=()=>{if(!c.value)return;const t=c.value;y.value=!0;const a=Math.max(2*m.value/t.width,2*m.value/t.height),o=a;f.value=a,h.value=Math.max(1,a);const l=t.width*o,r=t.height*o;p.x=(d.value-l)/2,p.y=(d.value-r)/2,v.value=o,A(),e.nextTick(()=>{y.value=!1}),x()},T=async()=>{if(!c.value||!n.value)return;const e=document.createElement("canvas");e.width=256,e.height=256;const t=e.getContext("2d");if(!t)return;t.fillStyle="#ffffff",t.fillRect(0,0,256,256),t.save(),t.beginPath(),t.arc(128,128,128,0,2*Math.PI),t.clip();const a=d.value/2-m.value,o=d.value/2-m.value,r=2*m.value;t.drawImage(n.value,a,o,r,r,0,0,256,256),t.restore(),e.toBlob(e=>{if(e){const t=new File([e],"avatar.jpg",{type:"image/jpeg"});l("upload",t)}},"image/jpeg",.9)},D=()=>{N()};return e.watch(v,(e,t)=>{if(!y.value&&!k.value){if(e!==t&&c.value&&t>0&&1!==t){const a=c.value,o=d.value/2,l=a.width*t,r=a.height*t,n=a.width*e,i=a.height*e,s=e/t,u=(p.x+l/2-o)*s,m=(p.y+r/2-o)*s;p.x=o+u-n/2,p.y=o+m-i/2}x()}}),e.watch(()=>o.preselectedFile,e=>{e&&b(e)},{immediate:!0}),(t,a)=>(e.openBlock(),e.createElementBlock("div",K,[e.createElementVNode("div",_,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",accept:"image/*",class:"hidden-input",onChange:w},null,544),s.value?(e.openBlock(),e.createElementBlock("div",$,[e.createElementVNode("div",ee,[e.createElementVNode("div",te,[e.createElementVNode("canvas",{ref_key:"canvas",ref:n,width:d.value,height:d.value,class:"canvas",onMousedown:B,onWheel:z},null,40,ae),e.createElementVNode("div",oe,[e.createElementVNode("div",le,[(e.openBlock(),e.createElementBlock("svg",re,[e.createElementVNode("defs",null,[e.createElementVNode("mask",ne,[e.createElementVNode("rect",{x:"0",y:"0",width:d.value,height:d.value,fill:"white"},null,8,ie),e.createElementVNode("circle",{cx:d.value/2,cy:d.value/2,r:m.value,fill:"black"},null,8,se)])]),e.createElementVNode("rect",{x:"0",y:"0",width:d.value,height:d.value,fill:"black",opacity:"0.5",mask:"url(#backdrop-mask)"},null,8,ce)]))]),(e.openBlock(),e.createElementBlock("svg",de,[e.createElementVNode("circle",{cx:d.value/2,cy:d.value/2,r:m.value,fill:"none",stroke:"white","stroke-width":"2",class:"crop-circle"},null,8,ue)]))])]),e.createElementVNode("div",me,[e.createElementVNode("div",pe,[e.createElementVNode("button",{onClick:a[2]||(a[2]=e=>{v.value=Math.max(f.value,v.value-.1),A(),x()}),class:"zoom-button"},a[7]||(a[7]=[e.createElementVNode("svg",{class:"zoom-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 12H4"})],-1)])),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":a[3]||(a[3]=e=>v.value=e),min:f.value,max:h.value,step:.01,class:"zoom-slider",onInput:a[4]||(a[4]=e=>{A(),x()})},null,40,ve),[[e.vModelText,v.value,void 0,{number:!0}]]),e.createElementVNode("button",{onClick:a[5]||(a[5]=e=>{v.value=Math.min(h.value,v.value+.1),A(),x()}),class:"zoom-button"},a[8]||(a[8]=[e.createElementVNode("svg",{class:"zoom-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)]))]),e.createElementVNode("div",fe,[e.createElementVNode("button",{onClick:R,class:"btn-secondary"}," Reset "),e.createElementVNode("button",{onClick:D,class:"btn-secondary"}," Change Photo "),e.createElementVNode("button",{onClick:T,disabled:t.uploading,class:"btn-primary"},e.toDisplayString(t.uploading?"Saving...":"Save Avatar"),9,he)])])]),e.createElementVNode("div",ge,[a[9]||(a[9]=e.createElementVNode("h3",{class:"preview-title"},"Preview",-1)),e.createElementVNode("div",ye,[e.createElementVNode("canvas",{ref_key:"previewCanvas",ref:i,width:u.value,height:u.value,class:"preview-canvas"},null,8,ke)]),a[10]||(a[10]=e.createElementVNode("p",{class:"preview-instructions"},[e.createTextVNode(" Drag image to reposition"),e.createElementVNode("br"),e.createTextVNode(" Scroll to zoom ")],-1))])])):(e.openBlock(),e.createElementBlock("div",{key:0,class:"upload-area",onClick:N,onDrop:V,onDragover:a[0]||(a[0]=e.withModifiers(()=>{},["prevent"])),onDragenter:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},a[6]||(a[6]=[e.createStaticVNode('<div class="upload-content"><svg class="upload-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><h3 class="upload-title">Upload your photo</h3><p class="upload-subtitle">Drag and drop or click to browse</p><div class="upload-formats"><span class="format-tag">JPG</span><span class="format-tag">PNG</span><span class="format-tag">GIF</span></div></div>',1)]),32))])]))}});class Ne{static audioContext=null;static getAudioContext(){try{return this.audioContext||(this.audioContext=new(window.AudioContext||window.webkitAudioContext)),"suspended"===this.audioContext.state&&this.audioContext.resume(),this.audioContext}catch(e){return null}}static playLevelUp(e,t){const a=e&&[10,25,50,100,150,200].includes(e);if(t){if(a&&!1===t.milestoneSounds)return;if(!a&&!1===t.levelUpSounds)return}a?this.playMilestoneLevelUp():this.playRegularLevelUp()}static playRegularLevelUp(){const e=this.getAudioContext();if(!e)return;const t=.8,a=e.currentTime;[523.25,659.25,783.99].forEach((o,l)=>{const r=e.createOscillator(),n=e.createGain();r.connect(n),n.connect(e.destination),r.type="sine",r.frequency.setValueAtTime(o,a),r.frequency.exponentialRampToValueAtTime(1.05*o,a+.1*t),r.frequency.exponentialRampToValueAtTime(1.02*o,a+t);const i=.05*l;n.gain.setValueAtTime(0,a),n.gain.linearRampToValueAtTime(.15,a+i+.02),n.gain.exponentialRampToValueAtTime(.01,a+i+t),r.start(a+i),r.stop(a+i+t)});const o=e.createOscillator(),l=e.createGain();o.connect(l),l.connect(e.destination),o.type="triangle",o.frequency.setValueAtTime(1046.5,a),l.gain.setValueAtTime(0,a),l.gain.linearRampToValueAtTime(.08,a+.01),l.gain.exponentialRampToValueAtTime(.001,a+.3),o.start(a),o.stop(a+.3)}static playMilestoneLevelUp(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime;[{time:0,frequencies:[523.25,659.25,783.99]},{time:.4,frequencies:[587.33,698.46,880]},{time:.8,frequencies:[622.25,783.99,987.77]},{time:1.2,frequencies:[523.25,659.25,783.99]}].forEach((a,o)=>{a.frequencies.forEach((o,l)=>{const r=e.createOscillator(),n=e.createGain();r.connect(n),n.connect(e.destination),r.type="sine",r.frequency.setValueAtTime(o,t+a.time),r.frequency.exponentialRampToValueAtTime(1.03*o,t+a.time+.05),r.frequency.exponentialRampToValueAtTime(1.01*o,t+a.time+.35);const i=.03*l;n.gain.setValueAtTime(0,t+a.time),n.gain.linearRampToValueAtTime(.12,t+a.time+i+.02),n.gain.exponentialRampToValueAtTime(.02,t+a.time+.35),n.gain.exponentialRampToValueAtTime(.001,t+a.time+.4),r.start(t+a.time+i),r.stop(t+a.time+.45)})});for(let o=0;o<8;o++){const a=t+.2+.15*o,l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="sine";const n=1568+800*Math.random();l.frequency.setValueAtTime(n,a),l.frequency.exponentialRampToValueAtTime(1.5*n,a+.1),r.gain.setValueAtTime(0,a),r.gain.linearRampToValueAtTime(.06,a+.01),r.gain.exponentialRampToValueAtTime(.001,a+.12),l.start(a),l.stop(a+.15)}const a=t+1.6;[1046.5,1318.5,1567.98].forEach((t,o)=>{const l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="triangle",l.frequency.setValueAtTime(t,a),l.frequency.exponentialRampToValueAtTime(1.02*t,a+.8);const n=.02*o;r.gain.setValueAtTime(0,a),r.gain.linearRampToValueAtTime(.15,a+n+.03),r.gain.exponentialRampToValueAtTime(.001,a+.9),l.start(a+n),l.stop(a+.95)})}static playSuccess(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime;[659.25,830.61].forEach((a,o)=>{const l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="sine",l.frequency.setValueAtTime(a,t);const n=.1*o;r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.2,t+n+.01),r.gain.exponentialRampToValueAtTime(.01,t+n+.15),l.start(t+n),l.stop(t+n+.15)})}static playError(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime,a=e.createOscillator(),o=e.createGain();a.connect(o),o.connect(e.destination),a.type="sawtooth",a.frequency.setValueAtTime(200,t),a.frequency.exponentialRampToValueAtTime(100,t+.3),o.gain.setValueAtTime(.15,t),o.gain.exponentialRampToValueAtTime(.01,t+.3),a.start(t),a.stop(t+.3)}static playClick(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime,a=e.createOscillator(),o=e.createGain();a.connect(o),o.connect(e.destination),a.type="sine",a.frequency.setValueAtTime(1e3,t),o.gain.setValueAtTime(.1,t),o.gain.exponentialRampToValueAtTime(.01,t+.03),a.start(t),a.stop(t+.03)}static playNotification(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime;[880,1174.66].forEach((a,o)=>{const l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="sine",l.frequency.setValueAtTime(a,t);const n=.15*o;r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.12,t+n+.02),r.gain.exponentialRampToValueAtTime(.01,t+n+.4),l.start(t+n),l.stop(t+n+.4)})}static playXpGain(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime,a=e.createOscillator(),o=e.createGain();a.connect(o),o.connect(e.destination),a.type="sine",a.frequency.setValueAtTime(440,t),a.frequency.exponentialRampToValueAtTime(880,t+.15),o.gain.setValueAtTime(0,t),o.gain.linearRampToValueAtTime(.15,t+.01),o.gain.exponentialRampToValueAtTime(.01,t+.2),a.start(t),a.stop(t+.2)}}const we={class:"level-progress-container"},Ve=["width","height","viewBox"],be={key:0},Ce=["r"],xe=["y"],Ie=["d","stroke-width"],Be=["d","stroke","stroke-width"],Ae=["d"],Se=["d","stroke","stroke-width"],Me={"font-size":"30","font-weight":"bold",fill:"var(--purple-100)",style:{"font-family":"'Montserrat', sans-serif","letter-spacing":"8px"}},ze={"xlink:href":"#labelTextArc",startOffset:"50%","text-anchor":"middle","alignment-baseline":"hanging","dominant-baseline":"hanging","text-length":"100%"},Re=["x1","y1","x2","y2"],Te=400,De=d(e.defineComponent({__name:"UiLevelProgress",props:{value:{},max:{},level:{},levelLabel:{},size:{},thickness:{},labelThickness:{},staticArcAngle:{},gapAngle:{},userSettings:{}},emits:["levelup"],setup(t,{emit:a}){const o=t,l=a,r=e.ref(!1),n=e.ref(o.value),i=e.ref("forward");let s=null,c=o.value,d=o.level;const u=o.size??Te,m=200,p=e.computed(()=>o.thickness??24),v=e.computed(()=>o.labelThickness??46),f=e.computed(()=>o.gapAngle??16),h=e.computed(()=>(Te-p.value)/2-18),g=e.computed(()=>(Te-v.value)/1.9-18),y=e.computed(()=>g.value+10),k=e.computed(()=>h.value-p.value/2-18),E=e.computed(()=>o.levelLabel?.length??0),N=e.computed(()=>8*E.value+12),w=e.computed(()=>-N.value/2),V=e.computed(()=>N.value/2),b=e.computed(()=>R(m,m,g.value,w.value,V.value)),C=e.computed(()=>R(m,m,y.value,-90,90)),x=e.computed(()=>{const e=V.value+f.value,t=e+(360-N.value-3*f.value)*Math.max(0,Math.min(1,n.value/o.max));return R(m,m,h.value,e,t)}),I=e.computed(()=>{const e=V.value+f.value,t=360-N.value-3*f.value,a=Math.max(0,Math.min(1,n.value/o.max)),l=0===a?e:e+t*a+f.value,r=w.value-f.value+360;return R(m,m,h.value,l,r)}),B=e.computed(()=>"url(#staticGradient)"),A=e.computed(()=>"url(#progressGradient)"),S=e.computed(()=>{const e=V.value+f.value;return z(m,m,h.value,e)}),M=e.computed(()=>{const e=V.value+f.value+(360-N.value-3*f.value)*Math.max(0,Math.min(1,n.value/o.max));return z(m,m,h.value,e)});function z(e,t,a,o){const l=(o-90)*Math.PI/180;return{x:e+a*Math.cos(l),y:t+a*Math.sin(l)}}function R(e,t,a,o,l){const r=z(e,t,a,l%360),n=z(e,t,a,o%360),i=(l-o+360)%360<=180?"0":"1";return["M",r.x,r.y,"A",a,a,0,i,0,n.x,n.y].join(" ")}function T(){var e,t;r.value=!0,e=o.level,t=o.userSettings,Ne.playLevelUp(e,t),l("levelup");const a=[10,25,50,100,150,200].includes(o.level);setTimeout(()=>{r.value=!1},a?2e3:1200)}return e.watch(()=>o.value,e=>{i.value=e>=c?"forward":"backward",function(e,t){s&&cancelAnimationFrame(s);const a=t,o=e-a,l=performance.now();s=requestAnimationFrame(function t(r){const i=r-l,c=Math.min(i/600,1),d=function(e){return e<.5?2*e*e:(4-2*e)*e-1}(c);n.value=a+o*d,c<1?s=requestAnimationFrame(t):(n.value=e,s=null)})}(e,c),c=e}),e.watch(()=>o.level,e=>{e!==d&&e>d&&T(),d=e}),(t,a)=>(e.openBlock(),e.createElementBlock("div",we,[(e.openBlock(),e.createElementBlock("svg",{width:e.unref(u),height:e.unref(u),viewBox:`0 0 ${e.unref(400)} ${e.unref(400)}`,style:{position:"relative"}},[r.value?(e.openBlock(),e.createElementBlock("g",be,[e.createElementVNode("circle",{cx:m,cy:m,r:k.value,fill:"#a800ff",opacity:"0.92"},null,8,Ce),e.createElementVNode("text",{x:m,y:215,"text-anchor":"middle","font-size":"38","font-weight":"bold",fill:"#fff",style:{"font-family":"'Montserrat', sans-serif"}},"Level Up",8,xe)])):e.createCommentVNode("",!0),n.value>=0&&n.value<o.max?(e.openBlock(),e.createElementBlock("path",{key:1,d:I.value,stroke:"#ddd","stroke-width":p.value,fill:"none","stroke-linecap":"round"},null,8,Ie)):e.createCommentVNode("",!0),e.createElementVNode("path",{d:b.value,stroke:B.value,"stroke-width":v.value,fill:"none","stroke-linecap":"round"},null,8,Be),e.createElementVNode("path",{id:"labelTextArc",d:C.value,stroke:"transparent",fill:"none",transform:"scale(-1, 1) translate(-400, 0)"},null,8,Ae),n.value>0&&n.value<o.max?(e.openBlock(),e.createElementBlock("path",{key:2,d:x.value,stroke:A.value,"stroke-width":p.value,fill:"none","stroke-linecap":"round"},null,8,Se)):e.createCommentVNode("",!0),e.createElementVNode("text",Me,[e.createElementVNode("textPath",ze,e.toDisplayString(t.levelLabel),1)]),e.createElementVNode("defs",null,[a[1]||(a[1]=e.createElementVNode("linearGradient",{id:"staticGradient",x1:"0",y1:"0",x2:"1",y2:"0"},[e.createElementVNode("stop",{offset:"0%","stop-color":"var(--strands-500)"}),e.createElementVNode("stop",{offset:"100%","stop-color":"var(--strands-600)"})],-1)),e.createElementVNode("linearGradient",{id:"progressGradient",gradientUnits:"userSpaceOnUse",x1:S.value.x,y1:S.value.y,x2:M.value.x,y2:M.value.y},a[0]||(a[0]=[e.createElementVNode("stop",{offset:"0%","stop-color":"var(--strands-600)"},null,-1),e.createElementVNode("stop",{offset:"100%","stop-color":"var(--strands-400)"},null,-1)]),8,Re)])],8,Ve))]))}}),[["__scopeId","data-v-09b7355c"]]),Le={class:"accui-component-scope"},Ue={class:"modal-card"},je={key:0,class:"modal-header"},Pe={class:"modal-content"},Xe={key:1,class:"modal-footer"},Ye=d(e.defineComponent({__name:"UiModal",props:{open:{type:Boolean,default:!1},closeOnOverlayClick:{type:Boolean,default:!0},fullscreenOnMobile:{type:Boolean,default:!0}},emits:["close"],setup(t,{emit:a}){const o=t,l=a,r=()=>{o.closeOnOverlayClick&&l("close")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Le,[(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.open?(e.openBlock(),e.createElementBlock("div",{key:0,class:"modal-overlay",onClick:r},[e.createElementVNode("div",{class:e.normalizeClass(["modal-container",{"modal-container-fullscreen-mobile":t.fullscreenOnMobile}]),onClick:a[0]||(a[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Ue,[t.$slots.header?(e.openBlock(),e.createElementBlock("div",je,[e.renderSlot(t.$slots,"header",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Pe,[e.renderSlot(t.$slots,"default",{},void 0,!0)]),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",Xe,[e.renderSlot(t.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)])],2)])):e.createCommentVNode("",!0)]))]))}}),[["__scopeId","data-v-8a7cf999"]]),He={class:"accui-component-scope"},Fe={key:0,class:"secured-logo"},We=["src"],Oe=d(e.defineComponent({__name:"StrandsSecuredFooter",props:{config:{}},setup(a){const o=a,{config:l}=t.useStrandsConfig(o.config),r=e.computed(()=>"https://accounts.strands.gg"!==l.value.baseUrl),n=e.useSlots(),i=e.computed(()=>((e,t)=>{const a=t[e];if(!a)return!1;if("function"==typeof a){const e=a();return Array.isArray(e)&&e.length>0}return Array.isArray(a)&&a.length>0})("default",n));return(t,a)=>(e.openBlock(),e.createElementBlock("div",He,[r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["secured-footer",{"secured-footer-with-content":i.value,"secured-footer-centered":!i.value}])},[e.renderSlot(t.$slots,"default",{},void 0,!0),r.value?(e.openBlock(),e.createElementBlock("div",Fe,[e.createElementVNode("img",{src:e.unref("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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"),class:"secured-logo-image"},null,8,We)])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-6dfcdb8c"]]),qe=e.ref([]),Ze=e.ref(!1),Ge=e.ref(!1);function Qe(){const{getUrl:o}=t.useStrandsConfig(),{currentSession:l}=a.useStrandsAuth(),r=e.computed(()=>qe.value.length>0),n=e.computed(()=>qe.value.filter(e=>e.is_active&&"hardware"!==e.device_type&&"passkey"!==e.device_type)),i=async(e,t={})=>{if(!l.value?.accessToken)throw new Error("No access token available");const a=await fetch(e,{...t,headers:{"Content-Type":"application/json",Authorization:`Bearer ${l.value.accessToken}`,...t.headers}});if(!a.ok){const e=await a.text();let t=`Request failed: ${a.status} ${a.statusText}`;try{t=JSON.parse(e).message||t}catch{e&&(t=e)}throw new Error(t)}return a.json()},s=async()=>{Ge.value=!0;try{const e=await i(o("mfaDevices"),{method:"GET"});return qe.value=e.devices||[],Ze.value=e.mfa_enabled||!1,e}finally{Ge.value=!1}};return{mfaDevices:e.computed(()=>qe.value),mfaEnabled:e.computed(()=>Ze.value),loading:e.computed(()=>Ge.value),hasMfaDevices:r,activeMfaDevices:n,fetchMfaDevices:s,setupTotp:async e=>{Ge.value=!0;try{const t=await i(o("mfaTotpSetup"),{method:"POST",body:JSON.stringify({device_name:e})});return await s(),t}finally{Ge.value=!1}},verifyTotpSetup:async(e,t)=>{Ge.value=!0;try{await i(o("mfaTotpVerify"),{method:"POST",body:JSON.stringify({device_id:e,totp_code:t})}),await s()}finally{Ge.value=!1}},setupEmailMfa:async e=>{Ge.value=!0;try{const t=await i(o("mfaEmailSetup"),{method:"POST",body:JSON.stringify({device_name:e})});return await s(),t}finally{Ge.value=!1}},sendEmailMfaCode:async e=>{Ge.value=!0;try{await i(o("mfaEmailSend"),{method:"POST",body:JSON.stringify({device_id:e})})}finally{Ge.value=!1}},verifyEmailMfaCode:async(e,t)=>{Ge.value=!0;try{return(await i(o("mfaEmailVerify"),{method:"POST",body:JSON.stringify({device_id:e,code:t})})).verified||!1}finally{Ge.value=!1}},disableMfaDevice:async e=>{Ge.value=!0;try{await i(o("mfaDeviceDisable"),{method:"POST",body:JSON.stringify({device_id:e})}),await s()}finally{Ge.value=!1}},regenerateBackupCodes:async e=>{Ge.value=!0;try{return await i(o("mfaBackupCodes"),{method:"POST",body:JSON.stringify({device_id:e})})}finally{Ge.value=!1}},getDeviceTypeIcon:e=>{switch(e){case"totp":return"📱";case"email":return"📧";case"hardware":return"🔑";case"passkey":return"🔐";default:return"🔒"}},getDeviceTypeName:e=>{switch(e){case"totp":return"Authenticator App";case"email":return"Email Verification";case"hardware":return"Hardware Key";case"passkey":return"Passkey";default:return"Unknown"}},formatLastUsed:e=>{if(!e)return"Never";const t=new Date(e),a=(new Date).getTime()-t.getTime(),o=Math.floor(a/864e5);return 0===o?"Today":1===o?"Yesterday":o<30?`${o} days ago`:t.toLocaleDateString()}}}const Je={class:"accui-component-scope"},Ke={class:"mfa-verification-content"},_e={key:0,class:"mfa-verification-loading"},$e={class:"mfa-verification-loading-text"},et={key:1,class:"mfa-verification-form"},tt={key:0,class:"mfa-methods-section"},at={class:"mfa-methods-grid"},ot=["onClick"],lt={class:"mfa-method-info"},rt={class:"mfa-method-name"},nt={class:"mfa-method-type"},it={key:0,class:"mfa-method-check"},st={key:1,class:"mfa-single-method"},ct={class:"mfa-single-method-content"},dt={class:"mfa-single-method-name"},ut={class:"mfa-single-method-type"},mt={key:2,class:"mfa-email-request"},pt={key:3,class:"mfa-hardware-section"},vt={class:"mfa-hardware-prompt"},ft={class:"mfa-hardware-prompt-content"},ht={class:"mfa-hardware-prompt-icon"},gt={class:"mfa-hardware-prompt-text"},yt={class:"mfa-hardware-prompt-title"},kt={class:"mfa-hardware-prompt-description"},Et={class:"mfa-backup-option"},Nt={key:0,class:"mfa-backup-input-section"},wt={class:"mfa-backup-warning"},Vt={key:0,class:"mfa-email-confirmation"},bt={class:"mfa-email-confirmation-content"},Ct={key:1,class:"mfa-totp-help",id:"totp-description"},xt={class:"mfa-device-name-text"},It={key:2,class:"mfa-email-resend"},Bt={class:"mfa-backup-option"},At={key:3,class:"mfa-backup-input-section"},St={class:"mfa-backup-warning"},Mt={class:"mfa-verification-footer"},zt=d(e.defineComponent({__name:"StrandsMfaVerification",props:{show:{type:Boolean},availableMfaMethods:{},sessionId:{}},emits:["close","success","error"],setup(t,{emit:o}){const l={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},r={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0 0 16 -16 0 z"}),e.h("path",{d:"m22 6-10 7L2 6"})])}},n={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("circle",{cx:"7.5",cy:"15.5",r:"5.5"}),e.h("path",{d:"m21 2-9.6 9.6"}),e.h("path",{d:"m15.5 7.5 3 3L22 7l-3-3"})])}},i={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})])}},s={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),e.h("polyline",{points:"22,4 12,14.01 9,11.01"})])}},c={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"}),e.h("path",{d:"M12 9v4"}),e.h("path",{d:"m12 17 .01 0"})])}},d=t,u=o,{loading:m,getDeviceTypeName:p}=Qe(),{verifyMfa:v,sendMfaEmailCode:f,getMfaWebAuthnChallenge:h,mfaSessionId:g,loading:y,loadingMessage:k,isSendingMfaEmail:E,isVerifyingMfa:w}=a.useStrandsAuth(),V=e.computed(()=>m.value||y.value),b=e.ref(null),C=e.ref(""),x=e.ref(""),I=e.ref(""),B=e.ref(""),A=e.ref(!1),S=e.ref(!1),M=e.ref(!1),z=e.ref(0);let R=null;const T=e.computed(()=>(d.availableMfaMethods||[]).filter(e=>"hardware"!==e.device_type&&"passkey"!==e.device_type));e.watch(()=>T.value,e=>{1===e.length?b.value=e[0]:0===e.length&&(b.value=null)},{immediate:!0}),e.watch(()=>d.show,async e=>{e?(C.value="",x.value="",I.value="",B.value="",A.value=!1,S.value=!1,M.value=!1,z.value=0,R&&(clearInterval(R),R=null),1===T.value.length&&(b.value=T.value[0],"email"===b.value.device_type&&setTimeout(async()=>{try{await f(b.value.id),S.value=!0,H()}catch(e){u("error",e instanceof Error?e.message:"Failed to send email code")}},100))):b.value=null}),e.onBeforeUnmount(()=>{R&&clearInterval(R)});const D=()=>{u("close")},L=e=>{C.value=e.replace(/\D/g,"").slice(0,6),x.value=""},j=e=>{e.preventDefault();const t=(e.clipboardData?.getData("text/plain")||"").replace(/\D/g,"").slice(0,6);C.value=t,x.value=""},P=e=>{let t=e.replace(/[^a-zA-Z0-9-]/g,"").toLowerCase();if(!/[-]/.test(t)&&t.length>4){const e=t.substring(0,4),a=t.substring(4,8);t=a?`${e}-${a}`:e}t.replace(/-/g,"").length<=8&&(I.value=t),B.value=""},X=e=>{e.preventDefault();let t=(e.clipboardData?.getData("text/plain")||"").replace(/[^a-zA-Z0-9-]/g,"").toLowerCase();if(!/[-]/.test(t)&&t.length>4){const e=t.substring(0,4),a=t.substring(4,8);t=a?`${e}-${a}`:e}t.replace(/-/g,"").length<=8&&(I.value=t),B.value=""},Y=async()=>{if(b.value&&"email"===b.value.device_type)try{await f(b.value.id),S.value=!0,H()}catch(e){u("error",e instanceof Error?e.message:"Failed to send email code")}},H=()=>{M.value=!0,z.value=30,R=setInterval(()=>{z.value-=1,z.value<=0&&(M.value=!1,R&&(clearInterval(R),R=null))},1e3)},F=async()=>{if(b.value&&C.value){x.value="";try{await v(b.value.id,C.value),u("success")}catch(e){x.value=e instanceof Error?e.message:"Invalid verification code"}}},W=async()=>{if(I.value){B.value="";try{await v("",I.value,!0),u("success")}catch(e){B.value=e instanceof Error?e.message:"Invalid backup code"}}},O=e=>{switch(e){case"totp":return l;case"email":return r;case"hardware":return n;default:return i}},q=async()=>{const e=d.sessionId||g.value;if(b.value&&("hardware"===b.value.device_type||"passkey"===b.value.device_type)&&e)try{if(!window.navigator.credentials||!window.PublicKeyCredential)throw new Error("Hardware keys are not supported in this browser");const e=await h(b.value.id),t=e.challenge.publicKey||e.challenge,a=e=>{if(!e||"string"!=typeof e)return new Uint8Array(0);const t=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),a=window.atob(t),o=new Uint8Array(a.length);for(let l=0;l<a.length;++l)o[l]=a.charCodeAt(l);return o},o="passkey"===b.value.device_type,l={...t,challenge:t.challenge?a(t.challenge):new Uint8Array(32),timeout:o?3e5:t.timeout||6e4,userVerification:o?"required":"discouraged"};t.allowCredentials&&Array.isArray(t.allowCredentials)&&(l.allowCredentials=t.allowCredentials.map(e=>({...e,id:a(e.id)})));const r=await navigator.credentials.get({publicKey:l});if(!r)throw new Error(("passkey"===b.value.device_type?"Passkey":"Hardware key")+" authentication was cancelled");const n=new Uint8Array(r.response.authenticatorData);let i="Security Key";if(n.length>=53){const e=Array.from(n.slice(37,53)).map(e=>e.toString(16).padStart(2,"0")).join("");i={"00000000000000000000000000000000":"Generic Security Key",ee882879721c491397753dfcce97072a:"YubiKey 5 Series",f8a011f38c0a4d15800617111f9edc7d:"YubiKey 5 Series","2fc0579f811347eab116bb5a8db9202a":"YubiKey 5 Series",c5ef55ffad9a4b9fb580adcb7c15e233:"YubiKey 5 Series","6d44ba9bf6ec2e49b9300200c9a3376d":"Google Titan Security Key",de1e552d14e14b1f9390f6d61b56e4d1:"Feitian Security Key","12ded745aa4e4b4f84be2736d6b1b2a5":"SoloKeys Solo","8876631bd4a0427f57730ec71c9e0279":"Nitrokey FIDO2"}[e]||`Security Key (${e.substring(0,8)}...)`}const s={id:r.id,rawId:Array.from(new Uint8Array(r.rawId)),response:{clientDataJSON:Array.from(new Uint8Array(r.response.clientDataJSON)),authenticatorData:Array.from(new Uint8Array(r.response.authenticatorData)),signature:Array.from(new Uint8Array(r.response.signature)),userHandle:r.response.userHandle?Array.from(new Uint8Array(r.response.userHandle)):null},type:r.type,deviceInfo:i};await v(b.value.id,JSON.stringify(s)),u("success")}catch(t){u("error",t instanceof Error?t.message:"Hardware key authentication failed")}else u("error","Missing requirements for hardware key authentication")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Je,[e.createVNode(Ye,{open:t.show,"card-class":"mfa-verification-modal",class:"mfa-verification-modal-wrapper"},{header:e.withCtx(()=>a[6]||(a[6]=[e.createElementVNode("div",{class:"mfa-verification-header"},[e.createElementVNode("h2",{class:"mfa-verification-title"},"Two-Factor Authentication"),e.createElementVNode("p",{class:"mfa-verification-subtitle"},"Enter your verification code to continue")],-1)])),footer:e.withCtx(()=>[e.createElementVNode("div",Mt,[e.createVNode(e.unref(N),{variant:"secondary",onClick:D,disabled:V.value},{default:e.withCtx(()=>a[14]||(a[14]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[14]},8,["disabled"]),b.value&&"hardware"!==b.value.device_type&&"passkey"!==b.value.device_type&&("email"!==b.value.device_type||S.value)||("hardware"===b.value?.device_type||"passkey"===b.value?.device_type)&&A.value?(e.openBlock(),e.createBlock(e.unref(N),{key:0,variant:"primary",onClick:a[5]||(a[5]=e=>A.value?W():F()),disabled:!C.value.trim()&&!I.value.trim()||V.value,loading:V.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A.value?"Verify Backup Code":"Verify"),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.createElementVNode("div",Ke,[V.value&&!S.value?(e.openBlock(),e.createElementBlock("div",_e,[e.createVNode(e.unref(G),{size:24}),e.createElementVNode("span",$e,e.toDisplayString(e.unref(E)||e.unref(w)?e.unref(k):"Loading..."),1)])):(e.openBlock(),e.createElementBlock("div",et,[T.value.length>1?(e.openBlock(),e.createElementBlock("div",tt,[a[7]||(a[7]=e.createElementVNode("p",{class:"mfa-methods-title"},"Choose verification method:",-1)),e.createElementVNode("div",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,t=>(e.openBlock(),e.createElementBlock("button",{key:t.id,onClick:e=>(e=>{b.value=e,C.value="",x.value="",S.value=!1,A.value=!1})(t),class:e.normalizeClass(["mfa-method-button",b.value?.id===t.id?"mfa-method-button-selected":"mfa-method-button-default"])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(O(t.device_type)),{size:20,class:"mfa-method-icon"})),e.createElementVNode("div",lt,[e.createElementVNode("p",rt,e.toDisplayString(t.device_name),1),e.createElementVNode("p",nt,e.toDisplayString(e.unref(p)(t.device_type)),1)]),b.value?.id===t.id?(e.openBlock(),e.createElementBlock("div",it,[e.createVNode(s,{size:20})])):e.createCommentVNode("",!0)],10,ot))),128))])])):b.value?(e.openBlock(),e.createElementBlock("div",st,[e.createElementVNode("div",ct,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(O(b.value.device_type)),{size:24,class:"mfa-single-method-icon"})),e.createElementVNode("div",null,[e.createElementVNode("h3",dt,e.toDisplayString(b.value.device_name),1),e.createElementVNode("p",ut,e.toDisplayString(e.unref(p)(b.value.device_type)),1)])])])):e.createCommentVNode("",!0),"email"!==b.value?.device_type||S.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",mt,[a[9]||(a[9]=e.createElementVNode("p",{class:"mfa-email-request-text"},"Click below to receive your verification code",-1)),e.createVNode(e.unref(N),{variant:"primary",onClick:Y,disabled:V.value,loading:V.value},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Send Verification Code ",-1)])),_:1,__:[8]},8,["disabled","loading"])])),"hardware"===b.value?.device_type||"passkey"===b.value?.device_type?(e.openBlock(),e.createElementBlock("div",pt,[e.createElementVNode("div",vt,[e.createElementVNode("div",ft,[e.createElementVNode("div",ht,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent("passkey"===b.value.device_type?i:n),{size:24,class:"mfa-hardware-icon-svg"}))]),e.createElementVNode("div",gt,[e.createElementVNode("h4",yt,e.toDisplayString("passkey"===b.value.device_type?"Use your passkey":"Touch your hardware key"),1),e.createElementVNode("p",kt,e.toDisplayString("passkey"===b.value.device_type?"Use biometrics, PIN, or device security to authenticate":"Insert and touch your hardware key to authenticate"),1)])])]),e.createVNode(e.unref(N),{variant:"primary",onClick:q,disabled:V.value,loading:V.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString("passkey"===b.value.device_type?"Authenticate with Passkey":"Authenticate with Hardware Key"),1)]),_:1},8,["disabled","loading"]),e.createElementVNode("div",Et,[e.createVNode(e.unref(N),{variant:"ghost",size:"sm",onClick:a[0]||(a[0]=e=>A.value=!A.value),class:"mfa-backup-toggle-button"},{default:e.withCtx(()=>[e.createVNode(n,{size:16,class:"mfa-backup-toggle-icon"}),e.createTextVNode(" "+e.toDisplayString(A.value?"Hide backup code":"passkey"===b.value.device_type?"Can't access your passkey? Use backup code":"Can't access your key? Use backup code"),1)]),_:1})]),A.value?(e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("div",wt,[e.createVNode(c,{size:20,class:"mfa-backup-warning-icon"}),a[10]||(a[10]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"mfa-backup-warning-title"},"Backup Code Recovery"),e.createElementVNode("p",{class:"mfa-backup-warning-description"}," Enter one of your backup codes. Each code can only be used once. ")],-1))]),e.createVNode(e.unref(U),{modelValue:I.value,"onUpdate:modelValue":a[1]||(a[1]=e=>I.value=e),label:"Backup Code",placeholder:"abcd-1234",error:B.value,disabled:V.value,onInput:P,onPaste:X,onKeydown:e.withKeys(W,["enter"]),class:"mfa-backup-input",name:"backup-code-1",autocomplete:"off",inputmode:"text","data-lpignore":"false","data-form-type":"other",spellcheck:"false"},null,8,["modelValue","error","disabled"])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),b.value&&"hardware"!==b.value.device_type&&"passkey"!==b.value.device_type&&("email"!==b.value.device_type||S.value)?(e.openBlock(),e.createElementBlock("form",{key:4,class:"mfa-code-section",onSubmit:e.withModifiers(F,["prevent"]),novalidate:"",autocomplete:"off"},["email"===b.value.device_type&&S.value?(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("div",bt,[e.createVNode(s,{size:20,class:"mfa-email-confirmation-icon"}),a[11]||(a[11]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"mfa-email-confirmation-title"},"Code Sent!"),e.createElementVNode("p",{class:"mfa-email-confirmation-description"},"Check your email for the verification code")],-1))])])):e.createCommentVNode("",!0),e.createVNode(e.unref(U),{modelValue:C.value,"onUpdate:modelValue":a[2]||(a[2]=e=>C.value=e),label:"Verification Code",placeholder:(b.value.device_type,"123456"),maxlength:"6",error:x.value,disabled:V.value,onInput:L,onKeydown:e.withKeys(F,["enter"]),onPaste:j,autofocus:"",name:"totp",id:"totp-input",autocomplete:"one-time-code",inputmode:"numeric","data-lpignore":"false","data-form-type":"other","data-bwignore":"false","data-1p-ignore":"false","data-testid":"totp-input",spellcheck:"false","aria-label":"Enter your verification code","aria-describedby":"totp-description",role:"textbox",tabindex:"0",pattern:"[0-9]{6}",minlength:"6",title:"Enter 6-digit verification code"},null,8,["modelValue","placeholder","error","disabled"]),"totp"===b.value.device_type?(e.openBlock(),e.createElementBlock("div",Ct,[a[12]||(a[12]=e.createTextVNode(" Open your authenticator app and enter the 6-digit code for ",-1)),e.createElementVNode("span",xt,'"'+e.toDisplayString(b.value.device_name)+'"',1)])):e.createCommentVNode("",!0),"email"===b.value.device_type?(e.openBlock(),e.createElementBlock("div",It,[e.createVNode(e.unref(N),{variant:"ghost",size:"sm",onClick:Y,disabled:V.value||M.value,class:"mfa-resend-button"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(M.value?`Resend in ${z.value}s`:"Resend Code"),1)]),_:1},8,["disabled"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Bt,[e.createVNode(e.unref(N),{variant:"ghost",size:"sm",onClick:a[3]||(a[3]=e=>A.value=!A.value),class:"mfa-backup-toggle-button"},{default:e.withCtx(()=>[e.createVNode(n,{size:16,class:"mfa-backup-toggle-icon"}),e.createTextVNode(" "+e.toDisplayString(A.value?"Hide backup code":"Use backup code instead"),1)]),_:1})]),A.value?(e.openBlock(),e.createElementBlock("div",At,[e.createElementVNode("div",St,[e.createVNode(c,{size:20,class:"mfa-backup-warning-icon"}),a[13]||(a[13]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"mfa-backup-warning-title"},"Backup Code Recovery"),e.createElementVNode("p",{class:"mfa-backup-warning-description"}," Enter one of your backup codes. Each code can only be used once. ")],-1))]),e.createVNode(e.unref(U),{modelValue:I.value,"onUpdate:modelValue":a[4]||(a[4]=e=>I.value=e),label:"Backup Code",placeholder:"abcd-1234",error:B.value,disabled:V.value,onInput:P,onPaste:X,onKeydown:e.withKeys(W,["enter"]),class:"mfa-backup-input",name:"backup-code-2",autocomplete:"off",inputmode:"text","data-lpignore":"false","data-form-type":"other",spellcheck:"false"},null,8,["modelValue","error","disabled"])])):e.createCommentVNode("",!0)],32)):e.createCommentVNode("",!0)]))])]),_:1},8,["open"])]))}}),[["__scopeId","data-v-8023293b"]]);function Rt(a={}){const{getUrl:o,config:l}=t.useStrandsConfig(),r=e.ref([]),n=e.ref(!1),i=e.ref(null),s=e.computed(()=>r.value.filter(e=>e.enabled));return{providers:e.computed(()=>r.value),enabledProviders:s,loading:e.computed(()=>n.value),error:e.computed(()=>i.value),fetchProviders:async()=>{n.value=!0,i.value=null;try{let e=o("oauthProviders");const t=a.redirectUrl||l.value?.oauth2RedirectUrl;if(t){const a=new URLSearchParams;let o=t;if(t.startsWith("/")){o=`${window.location.origin}${t}`}a.append("redirect_url",o),e=`${e}?${a.toString()}`}const n=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.error?.message||`HTTP ${n.status}: ${n.statusText}`)}const i=await n.json();r.value=i.providers||[]}catch(e){const t=e instanceof Error?e.message:"Failed to fetch OAuth providers";i.value=t}finally{n.value=!1}},getProviderAuthUrl:async(e,t)=>{const l={...a,...t},r=new URLSearchParams;if(l.redirectUrl){let e=l.redirectUrl;if(l.redirectUrl.startsWith("/")){e=`${window.location.origin}${l.redirectUrl}`}r.append("redirect_url",e)}l.scopes&&l.scopes.length>0&&r.append("scopes",l.scopes.join(","));const n=r.toString(),i=o("oauthProvider").replace("{provider_id}",e),s=n?`${i}?${n}`:i;try{const e=await fetch(s,{method:"GET",headers:{"Content-Type":"application/json"}});if(!e.ok){const t=await e.json().catch(()=>({}));throw new Error(t.error?.message||`HTTP ${e.status}: ${e.statusText}`)}const t=await e.json();if(!t.success)throw new Error(t.error?.message||"Failed to get OAuth auth URL");return t.data.authUrl}catch(c){const e=c instanceof Error?c.message:"Failed to get OAuth auth URL";throw new Error(e)}},redirectToProvider:async(e,t)=>{try{const t=r.value.find(t=>t.id===e);if(!t)throw new Error(`OAuth provider '${e}' not found`);if(!t.auth_url)throw new Error(`No auth URL configured for provider '${e}'`);window.location.href=t.auth_url}catch(a){throw i.value=a instanceof Error?a.message:"Failed to redirect to OAuth provider",a}},getProviderById:e=>r.value.find(t=>t.id===e),getProviderIcon:e=>{if(e.iconUrl)return e.iconUrl;switch(e.id.toLowerCase()){case"google":return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik0yMi41NiAxMi4yNWMwLS43OC0uMDctMS41My0uMi0yLjI1SDEydjQuMjZoNS45MmMtLjI2IDEuMzctMS4wNCAyLjUzLTIuMjEgMy4zMXYyLjc3aDMuNTdjMi4wOC0xLjkyIDMuMjgtNC43NCAzLjI4LTguMDl6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTEyIDIzYzIuOTcgMCA1LjQ2LS45OCA3LjI4LTIuNjZsLTMuNTctMi43N2MtLjk4LjY2LTIuMjMgMS4wNi0zLjcxIDEuMDYtMi44NiAwLTUuMjktMS45My02LjE2LTQuNTNIMi4xOHYyLjg0QzMuOTkgMjAuNTMgNy43IDIzIDEyIDIzeiIvPjxwYXRoIGZpbGw9IiNGQkJDMDUiIGQ9Ik01Ljg0IDE0LjA5Yy0uMjItLjY2LS4zNS0xLjM2LS4zNS0yLjA5cy4xMy0xLjQzLjM1LTIuMDlWNy4wN0gyLjE4QzEuNDMgOC41NSAxIDEwLjIyIDEgMTJzLjQzIDMuNDUgMS4xOCA0LjkzbDIuODUtMi4yMi44MS0uNjJ6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTEyIDUuMzhjMS42MiAwIDMuMDYuNTYgNC4yMSAxLjY0bDMuMTUtMy4xNUMxNy40NSAyLjA5IDE0Ljk3IDEgMTIgMSA3LjcgMSAzLjk5IDMuNDcgMi4xOCA3LjA3bDMuNjYgMi44NGMuODctMi42IDMuMy00LjUzIDYuMTYtNC41M3oiLz48L3N2Zz4=";case"github":return"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyIDBoLTEyYy02LjYyNiAwLTEyIDUuMzczLTEyIDEyIDAgNS4zMDIgMy40MzggOS44IDguMjA3IDExLjM4Ny41OTkuMTExLjc5My0uMjYxLjc5My0uNTc3di0yLjIzNGMtMy4zMzguNzI2LTQuMDMzLTEuNDE2LTQuMDMzLTEuNDE2LS41NDYtMS4zODctMS4zMzMtMS43NTYtMS4zMzMtMS43NTYtMS4wODktLjc0NS4wODMtLjcyOS4wODMtLjcyOSAxLjIwNS4wODQgMS44MzkgMS4yMzcgMS44MzkgMS4yMzcgMS4wNyAxLjgzNCAyLjgwNyAxLjMwNCAzLjQ5Mi45OTcuMTA3LS43NzUuNDE4LTEuMzA1Ljc2Mi0xLjYwNC0yLjY2NS0uMzA1LTUuNDY3LTEuMzM0LTUuNDY3LTUuOTMxIDAtMS4zMTEuNDY5LTIuMzgxIDEuMjM2LTMuMjIxLS4xMjQtLjMwMy0uNTM1LTEuNTI0LjExNy0zLjE3NiAwIDAgMS4wMDgtLjMyMiAzLjMwMSAxLjIzLjk1Ny0uMjY2IDEuOTgzLS4zOTkgMy4wMDMtLjQwNCAxLjAyLjAwNSAyLjA0Ny4xMzggMy4wMDYuNDA0IDIuMjkxLTEuNTUyIDMuMjk3LTEuMjMgMy4yOTctMS4yMy42NTMgMS42NTMuMjQyIDIuODc0LjExOCAzLjE3Ni43Ny44NCAxLjIzNSAxLjkxMSAxLjIzNSAzLjIyMSAwIDQuNjA5LTIuODA3IDUuNjI0LTUuNDc5IDUuOTIxLjQzLjM3Mi44MjMgMS4xMDIuODIzIDIuMjIydjMuMjkzYzAgLjMxOS4xOTIuNjk0LjgwMS41NzYgNC43NjUtMS41ODkgOC4xOTktNi4wODYgOC4xOTktMTEuMzg2IDAtNi42MjctNS4zNzMtMTItMTItMTJ6Ii8+PC9zdmc+";case"microsoft":case"azure":return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxyZWN0IGZpbGw9IiNmMjUwMjIiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIvPjxyZWN0IGZpbGw9IiM3ZmJhMDAiIHg9IjEzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiLz48cmVjdCBmaWxsPSIjMDBhNGVmIiB5PSIxMyIgd2lkdGg9IjExIiBoZWlnaHQ9IjExIi8+PHJlY3QgZmlsbD0iI2ZmYjkwMCIgeD0iMTMiIHk9IjEzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiLz48L3N2Zz4=";case"discord":return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiM1ODY1RjIiPjxwYXRoIGQ9Ik0yMC4zMTcgNC4zNjk2QTE5Ljc5MTMgMTkuNzkxMyAwIDAgMCAxOC4yMDU4IDMuMzY5NmMtLjk2NDIuMzU2NC0xLjk5NTguNjE1NC0zLjA1OC43NzNhMTQuNzI0NCAxNC43MjQ0IDAgMCAwLTYuMjk1NCAwIDEzLjU0OTQgMTMuNTQ5NCAwIDAgMC0zLjA1OC0uNzczIDEzLjY5MyAxMy42OTMgMCAwIDAtNS4wNjc2LTEuMjc5NCAyMC4xOTg0IDIwLjE5ODQgMCAwIDAtMi42NDk3IDkuMTE2MyAyMC4yODE4IDIwLjI4MTggMCAwIDAgMi4zNzU4IDIuNjNjMS4zMzIyLjEyNTggMi42NjUuMTcyMiA0LjA0NC4xNzIyaDEuMzE1NGMxLjM3OSAwIDIuNzExOC0uMDQ2NCA0LjA0NC0uMTcyMmEyMC4yODE4IDIwLjI4MTggMCAwIDAgMi4zNzU4LTIuNjMgMjAuMTk4NCAyMC4xOTg0IDAgMCAwIDIuNjQ5Ny05LjExNjNBMTkuNzkxMyAxOS43OTEzIDAgMCAwIDIwLjMxNyA0LjM2OTZ6TTE4LjE5IDEyQzE3LjY3IDE0LjQ5IDEzLjk5IDE2IDEyIDE2UzYuMzMgMTQuNDkgNS44MSAxMmMuNTItMi40OSA0LjE5LTQgNi4xOS00UzE3LjY3IDkuNTEgMTguMTkgMTJ6Ii8+PC9zdmc+";default:return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48dGV4dCB4PSIxMiIgeT0iMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IndoaXRlIiBmb250LXNpemU9IjEyIj57cHJvdmlkZXIuaWQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9PC90ZXh0Pjwvc3ZnPg=="}}}}const Tt={class:"accui-component-scope"},Dt={class:"auth-header"},Lt={key:0,class:"auth-tabs-container"},Ut={key:0,class:"auth-oauth-providers"},jt={class:"auth-oauth-icon-container"},Pt={key:0,class:"auth-oauth-icon"},Xt=["src","alt"],Yt={key:1,viewBox:"0 0 24 24",class:"auth-oauth-icon"},Ht={key:2,class:"auth-oauth-icon auth-oauth-github",viewBox:"0 0 24 24"},Ft={key:3,class:"auth-oauth-generic-icon"},Wt={class:"auth-oauth-generic-text"},Ot={class:"auth-oauth-text"},qt={key:0,class:"auth-divider"},Zt={class:"auth-divider-text"},Gt={key:0,class:"auth-password-field"},Qt={class:"auth-password-header"},Jt={key:0,class:"auth-back-link-container"},Kt={class:"auth-support-text"},_t=e.defineComponent({__name:"StrandsAuth",props:{mode:{default:"signin"},redirectUrl:{},inModal:{type:Boolean,default:!1},config:{}},emits:["success","error","forgot-password","password-reset-sent","mode-changed"],setup(o,{emit:l}){const r=o,n=l,{getUrl:i,getSupportEmail:s}=t.useStrandsConfig(r.config),{signIn:c,setAuthData:d,mfaRequired:m,availableMfaMethods:p,verifyMfa:v,sendMfaEmailCode:f,currentUser:h,loadingMessage:g}=a.useStrandsAuth(),{enabledProviders:y,loading:k,error:E,fetchProviders:w,redirectToProvider:V,getProviderIcon:b}=Rt({redirectUrl:r.redirectUrl});e.onMounted(()=>{w().catch(e=>{})});const C=e.computed(()=>y.value),x={async signIn(e,t){const a=await fetch(i("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t})});if(!a.ok)throw 401===a.status?new Error("Invalid email or password"):403===a.status?new Error("Please verify your email address before signing in"):new Error(`Sign in failed: ${a.status} ${a.statusText}`);return await a.json()},async signUp(e,t,a,o){const l=await fetch(i("signUp"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t,firstName:a,lastName:o})});if(!l.ok){const e=await l.json().catch(()=>({}));throw new Error(e.error?.message||`HTTP ${l.status}: ${l.statusText}`)}return(await l.json()).message},async requestPasswordReset(e){throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.")}},I=e.ref(r.mode),B=e.ref(!1),A=e.ref(""),S=e.ref(!1),M=e.ref(!1),z=e.reactive({firstName:"",lastName:"",email:"",password:"",confirmPassword:""}),R=e.computed(()=>"signup"===I.value),T=e.computed(()=>"reset-password"===I.value);e.computed(()=>z.password===z.confirmPassword);const D=e.computed(()=>T.value?z.email.trim()&&!S.value:R.value?z.email.trim():z.email.trim()&&z.password);e.watch(m,e=>{e&&(M.value=!0)},{immediate:!0});const L=()=>{M.value=!1,n("success",h.value)},P=()=>{M.value=!1},X=e=>{A.value=e,n("error",e)},Y=async()=>{B.value=!0,A.value="";try{if(T.value)await x.requestPasswordReset(z.email),S.value=!0,n("password-reset-sent",z.email);else if(R.value){const e=await x.signUp(z.email,z.password,z.firstName,z.lastName);n("success",e.user)}else{const e=await c({email:z.email,password:z.password});e.mfa_required||n("success",e.user)}}catch(e){const t=e instanceof Error?e.message:"An unexpected error occurred";A.value=t,n("error",t)}finally{B.value=!1}};e.watch(()=>r.mode,e=>{I.value=e}),e.watch(I,e=>{A.value="",S.value=!1,z.firstName="",z.lastName="",z.email="",z.password="",z.confirmPassword="",n("mode-changed",e)});let H=0;const W=e=>{const t=e;t.style.height="0",t.style.opacity="0",t.style.marginTop="0",t.style.marginBottom="0",t.style.paddingTop="0",t.style.paddingBottom="0",t.style.overflow="hidden"},O=(e,t)=>{const a=e,o=H++;setTimeout(()=>{a.offsetHeight,a.style.height="auto";const e=a.offsetHeight;a.style.height="0",a.offsetHeight,a.style.transition="height 350ms cubic-bezier(0.23, 1, 0.32, 1), opacity 350ms cubic-bezier(0.23, 1, 0.32, 1), margin 350ms cubic-bezier(0.23, 1, 0.32, 1), padding 350ms cubic-bezier(0.23, 1, 0.32, 1)",requestAnimationFrame(()=>{a.style.height=e+"px",a.style.opacity="1",a.style.marginTop="",a.style.marginBottom="",a.style.paddingTop="",a.style.paddingBottom=""}),setTimeout(()=>{a.style.height="",a.style.transition="",a.style.overflow="",t()},350)},50*o)},q=e=>{const t=e,a=t.offsetHeight;t.style.height=a+"px",t.style.overflow="hidden",H=0},Z=(e,t)=>{const a=e,o=H++;setTimeout(()=>{a.offsetHeight,a.style.transition="height 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1), margin 300ms cubic-bezier(0.23, 1, 0.32, 1), padding 300ms cubic-bezier(0.23, 1, 0.32, 1)",requestAnimationFrame(()=>{a.style.height="0",a.style.opacity="0",a.style.marginTop="0",a.style.marginBottom="0",a.style.paddingTop="0",a.style.paddingBottom="0"}),setTimeout(()=>{a.style.height="",a.style.opacity="",a.style.margin="",a.style.padding="",a.style.transition="",a.style.overflow="",t()},300)},30*o)},G=e=>{const t=e;t.style.height="",t.style.opacity="",t.style.margin="",t.style.padding="",t.style.transition="",t.style.overflow=""};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Tt,[e.createElementVNode("div",{class:e.normalizeClass(r.inModal?"auth-container-modal auth-full-width auth-min-width":"auth-container auth-full-width auth-min-width auth-max-width auth-center auth-slide-up")},[e.createElementVNode("div",{class:e.normalizeClass(r.inModal?"auth-content-modal":"auth-content auth-card-modern")},[e.createElementVNode("div",Dt,[e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("h1",{key:I.value,class:"auth-title"},e.toDisplayString(T.value?"Reset password":R.value?"Create account":"Welcome back"),1))]),_:1}),e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("p",{key:I.value,class:"auth-subtitle"},e.toDisplayString(T.value?"Enter your email address and we'll send you a link":R.value?"We'll send you a magic link to get started":"Sign in to your account to continue"),1))]),_:1})]),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[T.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Lt,[e.createVNode(e.unref(F),{modelValue:I.value,"onUpdate:modelValue":a[0]||(a[0]=e=>I.value=e),tabs:[{label:"Sign In",value:"signin"},{label:"Sign Up",value:"signup"}]},null,8,["modelValue"])]))]),_:1}),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[!T.value&&C.value?.length?(e.openBlock(),e.createElementBlock("div",Ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,t=>(e.openBlock(),e.createBlock(e.unref(N),{key:t.id,variant:"outline","full-width":"",disabled:e.unref(k),onClick:e=>(async e=>{try{await V(e,{redirectUrl:r.redirectUrl})}catch(t){const a=t instanceof Error?t.message:`Failed to ${R.value?"sign up":"sign in"} with ${e}`;A.value=a,n("error",a)}})(t.id),class:"auth-oauth-button"},{default:e.withCtx(()=>[e.createElementVNode("div",jt,[t.icon||t.iconUrl?(e.openBlock(),e.createElementBlock("div",Pt,[e.createElementVNode("img",{src:t.icon||t.iconUrl,alt:`${t.displayName||t.name} icon`,class:"auth-oauth-icon"},null,8,Xt)])):"google"===t.id?(e.openBlock(),e.createElementBlock("svg",Yt,a[6]||(a[6]=[e.createElementVNode("path",{fill:"#4285F4",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"},null,-1),e.createElementVNode("path",{fill:"#34A853",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"},null,-1),e.createElementVNode("path",{fill:"#FBBC05",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"},null,-1),e.createElementVNode("path",{fill:"#EA4335",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"},null,-1)]))):"github"===t.id?(e.openBlock(),e.createElementBlock("svg",Ht,a[7]||(a[7]=[e.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)]))):(e.openBlock(),e.createElementBlock("div",Ft,[e.createElementVNode("span",Wt,e.toDisplayString((t.displayName||t.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Ot," Continue with "+e.toDisplayString(t.displayName||t.name.charAt(0).toUpperCase()+t.name.slice(1)),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[!T.value&&C.value?.length?(e.openBlock(),e.createElementBlock("div",qt,[e.createElementVNode("span",Zt,"Or "+e.toDisplayString(R.value?"create account":"sign in")+" with email",1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("form",{onSubmit:e.withModifiers(Y,["prevent"]),class:"auth-form"},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass(["email-field-spacing",T.value||R.value?"no-password":"has-password"])},[e.createVNode(e.unref(U),{modelValue:z.email,"onUpdate:modelValue":a[1]||(a[1]=e=>z.email=e),type:"email",label:"Email address",placeholder:"Enter your email",required:"",autocomplete:"email",error:A.value&&!z.email?"Email is required":""},null,8,["modelValue","error"])],2),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[T.value||R.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Gt,[e.createElementVNode("div",Qt,[a[9]||(a[9]=e.createElementVNode("span",{class:"auth-password-label"},"Password",-1)),e.createVNode(e.unref(j),{variant:"primary",size:"sm",onClick:a[2]||(a[2]=e=>I.value="reset-password")},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(e.unref(U),{modelValue:z.password,"onUpdate:modelValue":a[3]||(a[3]=e=>z.password=e),type:"password",placeholder:"Enter your password",required:"",autocomplete:"current-password",error:A.value&&!z.password?"Password is required":""},null,8,["modelValue","error"])]))]),_:1})]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:B.value||!D.value,loading:B.value,"loading-text":e.unref(g)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.value?S.value?"Link sent!":"Send reset link":R.value?"Send magic link":"Sign in"),1)]),_:1},8,["disabled","loading","loading-text"])],32),e.createVNode(e.Transition,{name:"expand",mode:"out-in"},{default:e.withCtx(()=>[T.value&&S.value?(e.openBlock(),e.createBlock(e.unref(u),{key:"reset-success",variant:"success",message:`Check your email - We've sent a password reset link to ${z.email}`,class:"auth-success-alert"},null,8,["message"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[T.value?(e.openBlock(),e.createElementBlock("div",Jt,[e.createVNode(e.unref(j),{onClick:a[4]||(a[4]=e=>I.value="signin"),class:"auth-back-link"},{default:e.withCtx(()=>a[10]||(a[10]=[e.createElementVNode("svg",{class:"auth-back-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),e.createTextVNode(" Back to sign in ",-1)])),_:1,__:[10]})])):e.createCommentVNode("",!0)]),_:1}),A.value?(e.openBlock(),e.createBlock(e.unref(u),{key:0,variant:"error",message:A.value,class:"auth-error-alert",dismissible:"",onDismiss:a[5]||(a[5]=e=>A.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createVNode(Oe,{config:r.config},{default:e.withCtx(()=>[e.unref(s)()?(e.openBlock(),e.createBlock(e.Transition,{key:0,name:"support-fade"},{default:e.withCtx(()=>[e.createElementVNode("p",Kt,[a[12]||(a[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(s)()}`},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[11]},8,["href"])])]),_:1})):e.createCommentVNode("",!0)]),_:1},8,["config"])],2)],2),e.createVNode(zt,{show:M.value,"available-mfa-methods":e.unref(p),onSuccess:L,onClose:P,onError:X},null,8,["show","available-mfa-methods"])]))}}),$t=d(_t,[["__scopeId","data-v-ba0feb8a"]]),ea={viewBox:"0 0 24 24",class:"accui-w-5 accui-h-5"},ta=e.defineComponent({__name:"IconGoogle",setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("svg",ea,a[0]||(a[0]=[e.createElementVNode("path",{fill:"#4285F4",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"},null,-1),e.createElementVNode("path",{fill:"#34A853",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"},null,-1),e.createElementVNode("path",{fill:"#FBBC05",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"},null,-1),e.createElementVNode("path",{fill:"#EA4335",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"},null,-1)])))}),aa={class:"accui-w-5 accui-h-5 accui-fill-current",viewBox:"0 0 24 24"},oa=e.defineComponent({__name:"IconGithub",setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("svg",aa,a[0]||(a[0]=[e.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)])))}),la={class:"accui-component-scope"},ra={class:"accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up"},na={key:0,class:"accui-space-y-3 accui-mb-6"},ia={class:"accui-w-5 accui-h-5 accui-flex accui-items-center accui-justify-center"},sa={key:0,class:"accui-w-5 accui-h-5"},ca=["src","alt"],da={key:3,class:"accui-w-5 accui-h-5 accui-rounded-full accui-bg-neutral-300 accui-flex accui-items-center accui-justify-center"},ua={class:"accui-text-xs accui-font-semibold accui-text-neutral-600"},ma={class:"accui-font-medium"},pa={key:1,class:"divider-with-text"},va={class:"email-field-spacing has-password"},fa={class:"accui-mb-4"},ha={class:"accui-text-center accui-mt-4"},ga={class:"accui-mt-8 accui-text-center"},ya={class:"accui-text-sm accui-text-neutral-600"},ka={key:0},Ea={class:"accui-text-neutral-400 accui-text-sm"},Na=e.defineComponent({__name:"StrandsSignIn",props:{redirectUrl:{},oauthScopes:{default:()=>[]},config:{}},emits:["success","error","forgot-password","switch-to-signup"],setup(o,{emit:l}){const r=o,n=l,{getUrl:i,getSupportEmail:s}=t.useStrandsConfig(r.config),{signIn:c,mfaRequired:d,mfaSessionId:m,availableMfaMethods:p,loading:v,currentUser:f,sendMfaEmailCode:h}=a.useStrandsAuth(),{enabledProviders:g,loading:y,error:k,fetchProviders:E,redirectToProvider:w}=Rt({redirectUrl:r.redirectUrl,scopes:r.oauthScopes});e.onMounted(()=>{E().catch(e=>{})});const V=e.computed(()=>v.value),b=e.ref(""),x=e.ref(!1);e.watch(d,e=>{e&&(x.value=!0)});const I=e.reactive({email:"",password:""}),B=async()=>{b.value="";try{const e=await c({email:I.email,password:I.password});e.mfa_required||n("success",e.user)}catch(e){const t=e instanceof Error?e.message:"Sign in failed";b.value=t,n("error",t)}},A=()=>{x.value=!1,n("success",f.value)},S=()=>{x.value=!1},M=e=>{b.value=e,n("error",e)};return(t,a)=>(e.openBlock(),e.createElementBlock("div",la,[e.createElementVNode("div",ra,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[a[15]||(a[15]=e.createElementVNode("div",{class:"accui-text-center accui-mb-8"},[e.createElementVNode("h1",{class:"accui-text-3xl accui-font-bold accui-text-gradient accui-mb-2"},"Welcome back"),e.createElementVNode("p",{class:"accui-text-neutral-600"},"Sign in to your account to continue")],-1)),e.unref(g)?.length?(e.openBlock(),e.createElementBlock("div",na,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),(t,a,o,l)=>{const i=[t.id,t.name,t.displayName,e.unref(y)];if(l&&l.key===t.id&&e.isMemoSame(l,i))return l;const s=(e.openBlock(),e.createBlock(e.unref(N),{key:t.id,variant:"outline","full-width":"",disabled:e.unref(y),onClick:e=>(async e=>{try{await w(e,{redirectUrl:r.redirectUrl,scopes:r.oauthScopes})}catch(t){const a=t instanceof Error?t.message:`Failed to sign in with ${e}`;b.value=a,n("error",a)}})(t.id),class:"btn-oauth accui-group"},{default:e.withCtx(()=>[e.createElementVNode("div",ia,[t.icon||t.iconUrl?(e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("img",{src:t.icon||t.iconUrl,alt:`${t.displayName||t.name} icon`,class:"accui-w-5 accui-h-5"},null,8,ca)])):"google"===t.id?(e.openBlock(),e.createBlock(e.unref(ta),{key:1})):"github"===t.id?(e.openBlock(),e.createBlock(e.unref(oa),{key:2})):(e.openBlock(),e.createElementBlock("div",da,[e.createElementVNode("span",ua,e.toDisplayString((t.displayName||t.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",ma,"Continue with "+e.toDisplayString(t.displayName||t.name),1)]),_:2},1032,["disabled","onClick"]));return s.memo=i,s},a,0),128))])):e.createCommentVNode("",!0),e.unref(g)?.length?(e.openBlock(),e.createElementBlock("div",pa,a[7]||(a[7]=[e.createElementVNode("span",{class:"divider-text"},"Or sign in with email",-1)]))):e.createCommentVNode("",!0),e.createElementVNode("form",{onSubmit:e.withModifiers(B,["prevent"]),class:"accui-gap-6 accui-flex accui-flex-col"},[e.createElementVNode("div",null,[e.createElementVNode("div",va,[e.createVNode(e.unref(U),{id:"email",modelValue:I.email,"onUpdate:modelValue":a[2]||(a[2]=e=>I.email=e),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:b.value?"Invalid email or password":void 0},null,8,["modelValue","error"])]),e.createElementVNode("div",fa,[a[8]||(a[8]=e.createElementVNode("span",{class:"accui-text-sm accui-font-medium accui-text-neutral-700 accui-block accui-mb-2"},"Password",-1)),e.createVNode(e.unref(U),{id:"password",modelValue:I.password,"onUpdate:modelValue":a[3]||(a[3]=e=>I.password=e),type:"password",placeholder:"Enter your password",autocomplete:"current-password",required:"",error:b.value?"Invalid email or password":void 0},null,8,["modelValue","error"])])]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:V.value||!I.email||!I.password,loading:V.value,"loading-text":"Signing in..."},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Sign in ",-1)])),_:1,__:[9]},8,["disabled","loading"])],32),e.createElementVNode("div",ha,[e.createVNode(e.unref(j),{onClick:a[4]||(a[4]=e=>t.$emit("forgot-password")),class:"accui-text-sm"},{default:e.withCtx(()=>a[10]||(a[10]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[10]})]),b.value?(e.openBlock(),e.createBlock(e.unref(u),{key:2,variant:"error",message:b.value,class:"accui-mt-6 accui-animate-fade-in",dismissible:"",onDismiss:a[5]||(a[5]=e=>b.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createElementVNode("div",ga,[e.createElementVNode("p",ya,[a[12]||(a[12]=e.createTextVNode(" Don't have an account? ",-1)),e.createVNode(e.unref(j),{onClick:a[6]||(a[6]=e=>t.$emit("switch-to-signup"))},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Sign up ",-1)])),_:1,__:[11]})])]),e.createVNode(Oe,{config:r.config},{default:e.withCtx(()=>[e.unref(s)()?(e.openBlock(),e.createElementBlock("div",ka,[e.createElementVNode("p",Ea,[a[14]||(a[14]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(s)()}`},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[13]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1,__:[15]}),e.createVNode(zt,{show:x.value,"available-mfa-methods":e.unref(p),"session-id":e.unref(m),onSuccess:A,onClose:S,onError:M},null,8,["show","available-mfa-methods","session-id"])])]))}}),wa=d(Na,[["__scopeId","data-v-e48ce4b7"]]),Va={class:"accui-component-scope"},ba={class:"signup-container"},Ca={class:"signup-success"},xa={class:"signup-success-title"},Ia={class:"signup-success-message"},Ba={key:0,class:"signup-success-email"},Aa={key:0,class:"oauth-providers"},Sa={class:"oauth-icon-container"},Ma={key:0,class:"oauth-icon"},za=["src","alt"],Ra={key:1,viewBox:"0 0 24 24",class:"oauth-icon"},Ta={key:2,class:"oauth-icon oauth-icon-github",viewBox:"0 0 24 24"},Da={key:3,class:"oauth-icon-fallback"},La={class:"oauth-icon-fallback-text"},Ua={class:"oauth-button-text"},ja={key:1,class:"divider-with-text"},Pa={key:2,class:"signup-error"},Xa={class:"signup-error-content"},Ya={class:"signup-error-icon-container"},Ha={class:"signup-error-message"},Fa={class:"signup-signin-link"},Wa={class:"signup-signin-text"},Oa={key:0},qa={class:"signup-support-text"},Za=e.defineComponent({__name:"StrandsSignUp",props:{redirectUrl:{},oauthScopes:{default:()=>[]},config:{}},emits:["success","error","switch-to-signin"],setup(a,{emit:o}){const l=a,r=o,{getUrl:n,getSupportEmail:i}=t.useStrandsConfig(l.config),{enabledProviders:s,loading:c,error:d,fetchProviders:u,redirectToProvider:m}=Rt({redirectUrl:l.redirectUrl,scopes:l.oauthScopes});e.onMounted(()=>{u().catch(e=>{})});const p=e.ref(!1),v=e.ref(""),f=e.ref(!1),h=e.ref(""),g=e.ref("Magic Link Sent!"),y=e.ref(""),k=e.reactive({email:""});e.computed(()=>k.email.trim()&&k.email.includes("@"));const E=async()=>{p.value=!0,v.value="";try{const e=n("signUp"),t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:k.email})});if(process.env.NODE_ENV,!t.ok){let e=`Sign up failed (${t.status})`;try{const a=await t.json();e=a.message||a.error||e}catch{e=await t.text()||e}throw new Error(e)}const a=await t.json();f.value=!0,y.value=k.email,h.value=a.message||"Magic link sent! Check your email.",a.message&&(a.message.includes("already have an account")||a.message.includes("Welcome back")?g.value="Welcome Back!":a.message.includes("Magic link sent")||a.message.includes("Check your email")?g.value="Magic Link Sent!":g.value="Success!"),r("success",{email:k.email,message:a.message||"Magic link sent! Check your email."})}catch(e){let t="Unable to send magic link. Please try again.";if(e instanceof Error)if(e.message.includes("fetch"))t="Unable to connect to authentication service. Please check your internet connection and try again.";else if(e.message.includes("CORS")){const e=i();t=e?`Authentication service configuration error. Please contact ${e}.`:"Authentication service configuration error."}else t=e.message;v.value=t,r("error",t)}finally{p.value=!1}},w=()=>{f.value=!1,h.value="",g.value="Magic Link Sent!",y.value="",k.email="",v.value=""};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Va,[e.createElementVNode("div",ba,[f.value?(e.openBlock(),e.createBlock(e.unref(C),{key:0,variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ca,[a[3]||(a[3]=e.createElementVNode("div",{class:"signup-success-icon"},"📧",-1)),e.createElementVNode("h1",xa,e.toDisplayString(g.value),1),e.createElementVNode("p",Ia,e.toDisplayString(h.value),1),y.value?(e.openBlock(),e.createElementBlock("div",Ba,[e.createElementVNode("strong",null,e.toDisplayString(y.value),1)])):e.createCommentVNode("",!0),a[4]||(a[4]=e.createElementVNode("p",{class:"signup-success-instructions"}," Click the link in your email to complete your account setup. The link will expire in 24 hours. ",-1)),e.createVNode(e.unref(N),{variant:"outline","full-width":"",onClick:w},{default:e.withCtx(()=>a[2]||(a[2]=[e.createTextVNode(" Send Another Link ",-1)])),_:1,__:[2]})])]),_:1})):(e.openBlock(),e.createBlock(e.unref(C),{key:1,variant:"modern"},{default:e.withCtx(()=>[a[13]||(a[13]=e.createElementVNode("div",{class:"signup-header"},[e.createElementVNode("h1",{class:"signup-title"},"Create account"),e.createElementVNode("p",{class:"signup-subtitle"},"We'll send you a magic link to get started")],-1)),e.unref(s)?.length?(e.openBlock(),e.createElementBlock("div",Aa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),t=>(e.openBlock(),e.createBlock(e.unref(N),{key:t.id,variant:"outline","full-width":"",disabled:e.unref(c),onClick:e=>(async e=>{try{await m(e,{redirectUrl:l.redirectUrl,scopes:l.oauthScopes})}catch(t){const a=t instanceof Error?t.message:`Failed to sign up with ${e}`;v.value=a,r("error",a)}})(t.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Sa,[t.icon||t.iconUrl?(e.openBlock(),e.createElementBlock("div",Ma,[e.createElementVNode("img",{src:t.icon||t.iconUrl,alt:`${t.displayName||t.name} icon`,class:"oauth-icon-image"},null,8,za)])):"google"===t.id?(e.openBlock(),e.createElementBlock("svg",Ra,a[5]||(a[5]=[e.createElementVNode("path",{fill:"#4285F4",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"},null,-1),e.createElementVNode("path",{fill:"#34A853",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"},null,-1),e.createElementVNode("path",{fill:"#FBBC05",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"},null,-1),e.createElementVNode("path",{fill:"#EA4335",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"},null,-1)]))):"github"===t.id?(e.openBlock(),e.createElementBlock("svg",Ta,a[6]||(a[6]=[e.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)]))):(e.openBlock(),e.createElementBlock("div",Da,[e.createElementVNode("span",La,e.toDisplayString((t.displayName||t.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Ua,"Continue with "+e.toDisplayString(t.displayName||t.name),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("",!0),e.unref(s)?.length?(e.openBlock(),e.createElementBlock("div",ja,a[7]||(a[7]=[e.createElementVNode("span",{class:"divider-text"},"Or create account with email",-1)]))):e.createCommentVNode("",!0),e.createElementVNode("form",{onSubmit:e.withModifiers(E,["prevent"]),class:"signup-form"},[e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"email",modelValue:k.email,"onUpdate:modelValue":a[0]||(a[0]=e=>k.email=e),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:v.value},null,8,["modelValue","error"])]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:p.value,loading:p.value,"loading-text":"Sending magic link..."},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Send magic link ",-1)])),_:1,__:[8]},8,["disabled","loading"])],32),v.value?(e.openBlock(),e.createElementBlock("div",Pa,[e.createElementVNode("div",Xa,[e.createElementVNode("div",Ya,[a[9]||(a[9]=e.createElementVNode("svg",{class:"signup-error-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"})],-1)),e.createElementVNode("p",Ha,e.toDisplayString(v.value),1)])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Fa,[e.createElementVNode("p",Wa,[a[10]||(a[10]=e.createTextVNode(" Already have an account? ",-1)),e.createElementVNode("button",{type:"button",class:"signup-signin-button",onClick:a[1]||(a[1]=e=>t.$emit("switch-to-signin"))}," Sign in ")])]),e.createVNode(Oe,{config:l.config},{default:e.withCtx(()=>[e.unref(i)()?(e.openBlock(),e.createElementBlock("div",Oa,[e.createElementVNode("p",qa,[a[12]||(a[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(i)()}`},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[11]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1,__:[13]}))])]))}}),Ga=d(Za,[["__scopeId","data-v-ab42f1ba"]]),Qa={class:"accui-component-scope"},Ja={key:0,class:"complete-signup-container"},Ka={class:"complete-signup-success"},_a={key:1,class:"complete-signup-container"},$a={class:"complete-signup-error"},eo={key:2,class:"complete-signup-container"},to={class:"complete-signup-header"},ao={key:0,class:"complete-signup-email-info"},oo={class:"complete-signup-email-text"},lo={class:"complete-signup-email-highlight"},ro={key:0,class:"complete-signup-support"},no={class:"complete-signup-support-text"},io={key:3,class:"complete-signup-container"},so={class:"complete-signup-warning"},co=e.defineComponent({__name:"StrandsCompleteSignUp",props:{token:{},redirectUrl:{},config:{}},emits:["success","error","invalid-token","request-new-link","start-registration"],setup(o,{emit:l}){const r=o,n=l,{getUrl:i,getSupportEmail:s}=t.useStrandsConfig(r.config),{setAuthData:c}=a.useStrandsAuth(),d=e.ref(!1),m=e.ref(!1),p=e.ref(!1),v=e.ref(""),f=e.ref(""),h=e.reactive({firstName:"",lastName:"",password:""}),g=e.reactive({firstName:"",lastName:"",password:""}),y=e.computed(()=>{const e=h.password.trim(),t=h.password.length>=8,a=!!r.token;return e&&t&&a});e.watch(()=>h.password,e=>{e&&e.length<8?g.password="Password must be at least 8 characters long":g.password=""});const k=e.computed(()=>r.redirectUrl||window.location.origin);e.onMounted(()=>{if(r.token)try{const e=r.token.split(".");if(3===e.length){const t=JSON.parse(atob(e[1]));t.email&&(f.value=t.email)}}catch(e){}});const E=()=>{k.value&&(window.location.href=k.value)},w=async()=>{if(r.token)if(v.value="",Object.keys(g).forEach(e=>{g[e]=""}),y.value){p.value=!0;try{const e={"Content-Type":"application/json"};"undefined"!=typeof window&&window.location&&(e.Origin=window.location.origin);const t=await fetch(i("completeRegistration"),{method:"POST",headers:e,body:JSON.stringify({token:r.token,password:h.password,first_name:h.firstName||null,last_name:h.lastName||null})});if(!t.ok){const e=await t.text();throw new Error(`Failed to complete registration: ${e}`)}const a=await t.json();a.access_token&&a.refresh_token&&a.user&&c(a),d.value=!0,n("success",a),setTimeout(()=>{E()},2e3)}catch(e){e instanceof Error?e.message.includes("CONFLICT")||e.message.includes("409")?v.value="This account already exists. Please try signing in instead.":e.message.includes("BAD_REQUEST")||e.message.includes("400")?(v.value="Invalid or expired registration link. Please request a new one.",m.value=!0,n("invalid-token")):v.value=e.message:v.value="Failed to complete registration. Please try again.",n("error",v.value)}finally{p.value=!1}}else v.value="Please fill in all required fields correctly";else v.value="Registration token is required"};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Qa,[d.value?(e.openBlock(),e.createElementBlock("div",Ja,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ka,[a[7]||(a[7]=e.createElementVNode("div",{class:"complete-signup-success-icon"},"🎉",-1)),a[8]||(a[8]=e.createElementVNode("h1",{class:"complete-signup-success-title"},"Welcome to Strands!",-1)),a[9]||(a[9]=e.createElementVNode("p",{class:"complete-signup-success-message"}," Your account has been created successfully. ",-1)),a[10]||(a[10]=e.createElementVNode("p",{class:"complete-signup-success-instructions"}," You are now signed in and can access your dashboard. ",-1)),e.createVNode(e.unref(N),{variant:"primary","full-width":"",onClick:E},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" Go to Dashboard ",-1)])),_:1,__:[6]})]),e.createVNode(Oe)]),_:1})])):m.value?(e.openBlock(),e.createElementBlock("div",_a,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",$a,[a[12]||(a[12]=e.createElementVNode("div",{class:"complete-signup-error-icon"},"❌",-1)),a[13]||(a[13]=e.createElementVNode("h1",{class:"complete-signup-error-title"},"Invalid Link",-1)),a[14]||(a[14]=e.createElementVNode("p",{class:"complete-signup-error-message"}," This registration link is invalid or has expired. ",-1)),a[15]||(a[15]=e.createElementVNode("p",{class:"complete-signup-error-instructions"}," Please request a new magic link to complete your registration. ",-1)),e.createVNode(e.unref(N),{variant:"primary","full-width":"",onClick:a[0]||(a[0]=e=>t.$emit("request-new-link"))},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Request New Link ",-1)])),_:1,__:[11]})]),e.createVNode(Oe)]),_:1})])):t.token?(e.openBlock(),e.createElementBlock("div",eo,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",to,[a[17]||(a[17]=e.createElementVNode("h1",{class:"complete-signup-title"},"Complete Your Registration",-1)),a[18]||(a[18]=e.createElementVNode("p",{class:"complete-signup-subtitle"},"Set up your account details to finish registration",-1)),f.value?(e.openBlock(),e.createElementBlock("div",ao,[e.createElementVNode("p",oo,[a[16]||(a[16]=e.createTextVNode("Creating account for: ",-1)),e.createElementVNode("span",lo,e.toDisplayString(f.value),1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("form",{onSubmit:e.withModifiers(w,["prevent"]),class:"complete-signup-form"},[e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"firstName",modelValue:h.firstName,"onUpdate:modelValue":a[1]||(a[1]=e=>h.firstName=e),type:"text",label:"First Name (Optional)",placeholder:"Enter your first name",autocomplete:"given-name",error:g.firstName},null,8,["modelValue","error"])]),e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"lastName",modelValue:h.lastName,"onUpdate:modelValue":a[2]||(a[2]=e=>h.lastName=e),type:"text",label:"Last Name (Optional)",placeholder:"Enter your last name",autocomplete:"family-name",error:g.lastName},null,8,["modelValue","error"])]),e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"password",modelValue:h.password,"onUpdate:modelValue":a[3]||(a[3]=e=>h.password=e),type:"password",label:"Password",placeholder:"Create a strong password",autocomplete:"new-password",required:"",minlength:"8",error:g.password},null,8,["modelValue","error"]),a[19]||(a[19]=e.createElementVNode("div",{class:"complete-signup-password-hint"}," Password must be at least 8 characters long ",-1))]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:p.value||!y.value,loading:p.value,"loading-text":"Creating account..."},{default:e.withCtx(()=>a[20]||(a[20]=[e.createTextVNode(" Complete Registration ",-1)])),_:1,__:[20]},8,["disabled","loading"])],32),v.value?(e.openBlock(),e.createBlock(e.unref(u),{key:0,variant:"error",message:v.value,class:"complete-signup-error-alert",dismissible:"",onDismiss:a[4]||(a[4]=e=>v.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createVNode(Oe,{config:r.config},{default:e.withCtx(()=>[e.unref(s)()?(e.openBlock(),e.createElementBlock("div",ro,[e.createElementVNode("p",no,[a[22]||(a[22]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(s)()}`},{default:e.withCtx(()=>a[21]||(a[21]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[21]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1})])):(e.openBlock(),e.createElementBlock("div",io,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",so,[a[24]||(a[24]=e.createElementVNode("div",{class:"complete-signup-warning-icon"},"⚠️",-1)),a[25]||(a[25]=e.createElementVNode("h1",{class:"complete-signup-warning-title"},"Missing Token",-1)),a[26]||(a[26]=e.createElementVNode("p",{class:"complete-signup-warning-message"}," No registration token was provided. ",-1)),a[27]||(a[27]=e.createElementVNode("p",{class:"complete-signup-warning-instructions"}," This page requires a valid registration token from the magic link in your email. ",-1)),e.createVNode(e.unref(N),{variant:"primary","full-width":"",onClick:a[5]||(a[5]=e=>t.$emit("start-registration"))},{default:e.withCtx(()=>a[23]||(a[23]=[e.createTextVNode(" Start Registration ",-1)])),_:1,__:[23]})]),e.createVNode(Oe)]),_:1})]))]))}}),uo=d(co,[["__scopeId","data-v-558285a4"]]),mo={class:"accui-component-scope"},po={key:0,class:"step-container"},vo={class:"step-actions"},fo={key:1,class:"step-container"},ho={class:"qr-container"},go={key:0,class:"qr-wrapper"},yo=["src"],ko={key:1,class:"qr-loading"},Eo={class:"manual-entry"},No={class:"manual-code"},wo={key:0,class:"bg-yellow-50 border border-yellow-200 rounded-lg p-4"},Vo={class:"flex justify-end space-x-3 pt-4"},bo={key:2,class:"space-y-4"},Co={class:"totp-setup-step-actions"},xo={key:3,class:"totp-setup-step"},Io={class:"totp-setup-backup-codes"},Bo={class:"totp-setup-backup-grid-wrapper"},Ao={class:"totp-setup-backup-grid"},So={class:"totp-setup-backup-actions"},Mo={class:"totp-setup-final-actions"},zo=e.defineComponent({__name:"StrandsTotpSetupModal",props:{show:{type:Boolean}},emits:["close","success"],setup(t,{emit:a}){const o=t,l=a,{setupTotp:r,verifyTotpSetup:n,loading:i}=Qe(),s=e.ref(1),c=e.ref(""),d=e.ref(""),u=e.ref(""),m=e.ref(""),p=e.ref(null),v=e.ref("");e.watch(()=>o.show,e=>{e&&(s.value=1,c.value="",d.value="",u.value="",m.value="",p.value=null,v.value="")}),e.watch(()=>p.value,async e=>{if(e?.qr_code_url)try{const t=`https://api.qrserver.com/v1/create-qr-code/?size=192x192&data=${encodeURIComponent(e.qr_code_url)}&bgcolor=ffffff&color=000000`;v.value=t}catch(t){}});const f=()=>{l("close")},h=async()=>{if(c.value.trim()){d.value="";try{const e=await r(c.value.trim());p.value=e,s.value=2}catch(e){d.value=e instanceof Error?e.message:"Failed to setup TOTP"}}else d.value="Device name is required"},g=e=>{u.value=e.replace(/\D/g,"").slice(0,6),m.value=""},y=async()=>{if(p.value&&u.value){m.value="";try{await n(p.value.device_id,u.value),s.value=4}catch(e){m.value=e instanceof Error?e.message:"Invalid verification code"}}},k=async()=>{if(p.value?.backup_codes)try{const e=p.value.backup_codes.join("\n");await navigator.clipboard.writeText(e)}catch(e){}},E=()=>{l("success")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",mo,[e.createVNode(Ye,{open:t.show,onClose:f,"card-class":"modal-card"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"modal-header"},[a[6]||(a[6]=e.createElementVNode("h2",{class:"modal-title"},"Setup Authenticator App",-1)),e.createElementVNode("button",{onClick:f,class:"modal-close-button"},a[5]||(a[5]=[e.createElementVNode("svg",{class:"modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[1===s.value?(e.openBlock(),e.createElementBlock("div",po,[a[9]||(a[9]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"step-title"},"Name Your Device"),e.createElementVNode("p",{class:"step-description"},' Give this authenticator a memorable name (e.g., "iPhone", "Work Phone") ')],-1)),e.createVNode(e.unref(U),{modelValue:c.value,"onUpdate:modelValue":a[0]||(a[0]=e=>c.value=e),label:"Device Name",placeholder:"My Authenticator",error:d.value,disabled:e.unref(i)},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",vo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:f,disabled:e.unref(i)},{default:e.withCtx(()=>a[7]||(a[7]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[7]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:h,disabled:!c.value.trim()||e.unref(i),loading:e.unref(i)},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Continue ",-1)])),_:1,__:[8]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),2===s.value?(e.openBlock(),e.createElementBlock("div",fo,[a[14]||(a[14]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"step-title"},"Scan QR Code"),e.createElementVNode("p",{class:"step-description"}," Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.) ")],-1)),e.createElementVNode("div",ho,[v.value?(e.openBlock(),e.createElementBlock("div",go,[e.createElementVNode("img",{src:v.value,alt:"TOTP QR Code",class:"qr-image"},null,8,yo)])):(e.openBlock(),e.createElementBlock("div",ko,[e.createVNode(e.unref(G),{size:24})]))]),e.createElementVNode("div",Eo,[a[10]||(a[10]=e.createElementVNode("p",{class:"manual-label"}," Can't scan? Enter this code manually: ",-1)),e.createElementVNode("code",No,e.toDisplayString(p.value?.secret||"..."),1)]),p.value?.backup_codes?(e.openBlock(),e.createElementBlock("div",wo,a[11]||(a[11]=[e.createElementVNode("div",{class:"flex items-start space-x-2"},[e.createElementVNode("svg",{class:"w-5 h-5 text-yellow-600 mt-0.5 flex-shrink-0",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"text-sm font-medium text-yellow-800"},"Save Your Backup Codes"),e.createElementVNode("p",{class:"text-sm text-yellow-700 mt-1"}," After setup, you'll receive backup codes. Store them safely - they're your only way to recover access if you lose your device. ")])],-1)]))):e.createCommentVNode("",!0),e.createElementVNode("div",Vo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[1]||(a[1]=e=>s.value=1),disabled:e.unref(i)},{default:e.withCtx(()=>a[12]||(a[12]=[e.createTextVNode(" Back ",-1)])),_:1,__:[12]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:a[2]||(a[2]=e=>s.value=3),disabled:e.unref(i)},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" I've Added It ",-1)])),_:1,__:[13]},8,["disabled"])])])):e.createCommentVNode("",!0),3===s.value?(e.openBlock(),e.createElementBlock("div",bo,[a[17]||(a[17]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"text-lg font-semibold text-gray-900 mb-2"},"Verify Setup"),e.createElementVNode("p",{class:"text-sm text-gray-600 mb-4"}," Enter the 6-digit code from your authenticator app to complete setup ")],-1)),e.createVNode(e.unref(U),{modelValue:u.value,"onUpdate:modelValue":a[3]||(a[3]=e=>u.value=e),label:"Verification Code",placeholder:"123456",maxlength:"6",error:m.value,disabled:e.unref(i),onInput:g},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",Co,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[4]||(a[4]=e=>s.value=2),disabled:e.unref(i)},{default:e.withCtx(()=>a[15]||(a[15]=[e.createTextVNode(" Back ",-1)])),_:1,__:[15]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:y,disabled:6!==u.value.length||e.unref(i),loading:e.unref(i)},{default:e.withCtx(()=>a[16]||(a[16]=[e.createTextVNode(" Verify & Enable ",-1)])),_:1,__:[16]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),4===s.value?(e.openBlock(),e.createElementBlock("div",xo,[a[21]||(a[21]=e.createElementVNode("div",{class:"totp-setup-success"},[e.createElementVNode("div",{class:"totp-setup-success-icon"},[e.createElementVNode("svg",{class:"totp-setup-check-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])]),e.createElementVNode("h3",{class:"totp-setup-step-title"},"TOTP Setup Complete!"),e.createElementVNode("p",{class:"totp-setup-success-description"}," Your authenticator app is now active for two-factor authentication. ")],-1)),e.createElementVNode("div",Io,[a[19]||(a[19]=e.createElementVNode("div",{class:"totp-setup-backup-header"},[e.createElementVNode("svg",{class:"totp-setup-backup-warning-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"totp-setup-backup-header-title"},"Save These Backup Codes"),e.createElementVNode("p",{class:"totp-setup-backup-header-description"}," Store these codes in a safe place. Each code can only be used once. ")])],-1)),e.createElementVNode("div",Bo,[e.createElementVNode("div",Ao,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value?.backup_codes,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:a,class:"totp-setup-backup-code"},e.toDisplayString(t),1))),128))])]),e.createElementVNode("div",So,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:k},{default:e.withCtx(()=>a[18]||(a[18]=[e.createTextVNode(" 📋 Copy Codes ",-1)])),_:1,__:[18]})])]),e.createElementVNode("div",Mo,[e.createVNode(e.unref(N),{variant:"primary",onClick:E},{default:e.withCtx(()=>a[20]||(a[20]=[e.createTextVNode(" Done ",-1)])),_:1,__:[20]})])])):e.createCommentVNode("",!0)]),_:1},8,["open"])]))}}),Ro=d(zo,[["__scopeId","data-v-d3ba73e3"]]),To={class:"accui-component-scope"},Do={key:0,class:"email-mfa-setup-step"},Lo={class:"email-mfa-setup-step-actions"},Uo={key:1,class:"email-mfa-setup-step"},jo={class:"email-mfa-setup-resend-section"},Po={class:"email-mfa-setup-step-actions"},Xo={key:2,class:"email-mfa-setup-step"},Yo={class:"email-mfa-setup-final-actions"},Ho=e.defineComponent({__name:"StrandsEmailMfaSetupModal",props:{show:{type:Boolean}},emits:["close","success"],setup(t,{emit:a}){const o=t,l=a,{setupEmailMfa:r,sendEmailMfaCode:n,verifyEmailMfaCode:i,loading:s}=Qe(),c=e.ref(1),d=e.ref(""),u=e.ref(""),m=e.ref(""),p=e.ref(""),v=e.ref(null),f=e.ref(!1),h=e.ref(0);let g=null;e.watch(()=>o.show,e=>{e&&(c.value=1,d.value="",u.value="",m.value="",p.value="",v.value=null,f.value=!1,h.value=0,g&&(clearInterval(g),g=null))}),e.onBeforeUnmount(()=>{g&&clearInterval(g)});const y=()=>{l("close")},k=async()=>{if(d.value.trim()){u.value="";try{const e=await r(d.value.trim());v.value=e.device_id,await n(e.device_id),c.value=2,b()}catch(e){u.value=e instanceof Error?e.message:"Failed to setup email MFA"}}else u.value="Device name is required"},E=e=>{m.value=e.replace(/\D/g,"").slice(0,6),p.value=""},w=async()=>{if(v.value&&m.value){p.value="";try{await i(v.value,m.value)?c.value=3:p.value="Invalid verification code"}catch(e){p.value=e instanceof Error?e.message:"Invalid verification code"}}},V=async()=>{if(v.value&&!f.value)try{await n(v.value),b()}catch(e){}},b=()=>{f.value=!0,h.value=30,g=setInterval(()=>{h.value-=1,h.value<=0&&(f.value=!1,g&&(clearInterval(g),g=null))},1e3)},C=()=>{l("success")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",To,[e.createVNode(Ye,{open:t.show,onClose:y,"card-class":"email-mfa-setup-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"email-mfa-setup-header"},[a[4]||(a[4]=e.createElementVNode("h2",{class:"email-mfa-setup-title"},"Setup Email 2FA",-1)),e.createElementVNode("button",{onClick:y,class:"email-mfa-setup-close-button"},a[3]||(a[3]=[e.createElementVNode("svg",{class:"email-mfa-setup-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[1===c.value?(e.openBlock(),e.createElementBlock("div",Do,[a[7]||(a[7]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"email-mfa-setup-step-title"},"Name Your Email 2FA"),e.createElementVNode("p",{class:"email-mfa-setup-step-description"},' Give this email 2FA method a memorable name (e.g., "Personal Email", "Work Email") ')],-1)),e.createVNode(e.unref(U),{modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=e=>d.value=e),label:"Device Name",placeholder:"Personal Email",error:u.value,disabled:e.unref(s)},null,8,["modelValue","error","disabled"]),a[8]||(a[8]=e.createElementVNode("div",{class:"email-mfa-setup-info"},[e.createElementVNode("div",{class:"email-mfa-setup-info-content"},[e.createElementVNode("svg",{class:"email-mfa-setup-info-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"email-mfa-setup-info-title"},"Email 2FA"),e.createElementVNode("p",{class:"email-mfa-setup-info-description"}," Verification codes will be sent to your registered email address when logging in. ")])])],-1)),e.createElementVNode("div",Lo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:y,disabled:e.unref(s)},{default:e.withCtx(()=>a[5]||(a[5]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[5]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:k,disabled:!d.value.trim()||e.unref(s),loading:e.unref(s)},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" Setup Email 2FA ",-1)])),_:1,__:[6]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),2===c.value?(e.openBlock(),e.createElementBlock("div",Uo,[a[11]||(a[11]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"email-mfa-setup-step-title"},"Test Email 2FA"),e.createElementVNode("p",{class:"email-mfa-setup-step-description"}," We've sent a test verification code to your email. Enter it below to complete setup. ")],-1)),a[12]||(a[12]=e.createElementVNode("div",{class:"email-mfa-setup-success-notification"},[e.createElementVNode("div",{class:"email-mfa-setup-success-content"},[e.createElementVNode("svg",{class:"email-mfa-setup-success-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"email-mfa-setup-success-title"},"Code Sent!"),e.createElementVNode("p",{class:"email-mfa-setup-success-description"}," Check your email inbox for the verification code. ")])])],-1)),e.createVNode(e.unref(U),{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=e=>m.value=e),label:"Verification Code",placeholder:"123456",maxlength:"6",error:p.value,disabled:e.unref(s),onInput:E},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",jo,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:V,disabled:e.unref(s)||f.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value?`Resend in ${h.value}s`:"Resend Code"),1)]),_:1},8,["disabled"])]),e.createElementVNode("div",Po,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[2]||(a[2]=e=>c.value=1),disabled:e.unref(s)},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Back ",-1)])),_:1,__:[9]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:w,disabled:6!==m.value.length||e.unref(s),loading:e.unref(s)},{default:e.withCtx(()=>a[10]||(a[10]=[e.createTextVNode(" Verify & Enable ",-1)])),_:1,__:[10]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),3===c.value?(e.openBlock(),e.createElementBlock("div",Xo,[a[14]||(a[14]=e.createElementVNode("div",{class:"email-mfa-setup-completion"},[e.createElementVNode("div",{class:"email-mfa-setup-completion-icon"},[e.createElementVNode("svg",{class:"email-mfa-setup-check-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])]),e.createElementVNode("h3",{class:"email-mfa-setup-step-title"},"Email 2FA Setup Complete!"),e.createElementVNode("p",{class:"email-mfa-setup-completion-description"}," Email verification is now active for your account. You'll receive codes at your registered email address. ")],-1)),a[15]||(a[15]=e.createElementVNode("div",{class:"email-mfa-setup-info"},[e.createElementVNode("div",{class:"email-mfa-setup-info-content"},[e.createElementVNode("svg",{class:"email-mfa-setup-info-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"email-mfa-setup-info-title"},"How it works"),e.createElementVNode("p",{class:"email-mfa-setup-info-description"}," When logging in, you'll receive a 6-digit code at your email address. Enter this code to complete authentication. ")])])],-1)),e.createElementVNode("div",Yo,[e.createVNode(e.unref(N),{variant:"primary",onClick:C},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" Done ",-1)])),_:1,__:[13]})])])):e.createCommentVNode("",!0)]),_:1},8,["open"])]))}}),Fo=d(Ho,[["__scopeId","data-v-188dcefe"]]),Wo={class:"accui-component-scope"},Oo={key:0,class:"hardware-key-setup-step"},qo={class:"hardware-key-setup-actions"},Zo={key:1,class:"hardware-key-setup-step"},Go={class:"hardware-key-setup-instructions"},Qo={class:"hardware-key-setup-instructions-header"},Jo={class:"hardware-key-setup-instructions-list"},Ko={class:"hardware-key-setup-actions"},_o={key:2,class:"hardware-key-setup-step"},$o={class:"hardware-key-setup-progress"},el={class:"hardware-key-setup-progress-icon"},tl={class:"hardware-key-setup-progress-message"},al={key:3,class:"hardware-key-setup-step"},ol={class:"hardware-key-setup-backup-codes"},ll={class:"hardware-key-setup-codes-container"},rl={class:"hardware-key-setup-codes-grid"},nl={class:"hardware-key-setup-copy-action"},il={class:"hardware-key-setup-final-action"},sl={key:4,class:"hardware-key-setup-step"},cl={class:"hardware-key-setup-error"},dl={class:"hardware-key-setup-error-message"},ul={class:"hardware-key-setup-actions"},ml=e.defineComponent({__name:"StrandsHardwareKeySetupModal",props:{show:{type:Boolean},deviceType:{default:"hardware"}},emits:["close","success"],setup(t,{emit:o}){const l=t,r=o,{loading:n}=Qe(),{registerHardwareKey:i,completeHardwareKeyRegistration:s,currentSession:c}=a.useStrandsAuth(),d=e.ref(!1),u=e.computed(()=>n.value||d.value),m=e.ref(1),p=e.ref(""),v=e.ref(""),f=e.ref("Please touch your hardware key when prompted"),h=e.ref(""),g=e.ref([]);e.watch(()=>l.show,e=>{e&&(m.value=1,p.value="",v.value="",f.value="Please touch your hardware key when prompted",h.value="",g.value=[])});const y=()=>{r("close")},k=e=>"passkey"===e?{authenticatorAttachment:void 0,requireResidentKey:!0,residentKey:"required",userVerification:"required"}:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,residentKey:"discouraged",userVerification:"discouraged"},E=async()=>{p.value.trim()?(v.value="",m.value=2):v.value="Device name is required"},w=async()=>{d.value=!0,m.value=3,f.value=`Starting ${"passkey"===l.deviceType?"passkey":"hardware key"} registration...`;try{if(!window.navigator.credentials||!window.PublicKeyCredential)throw new Error("WebAuthn is not supported in this browser");try{await(PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?.());if(PublicKeyCredential.isConditionalMediationAvailable){await PublicKeyCredential.isConditionalMediationAvailable()}}catch(e){}if(!c.value?.accessToken)throw new Error("Not authenticated. Please sign in again.");const{device_id:a,challenge:o}=await i(p.value.trim(),c.value.accessToken);if(!o||"object"!=typeof o)throw new Error("Invalid challenge received from server");o.user;const r=((e,t)=>{const a=e=>{try{if(!e)return new Uint8Array(32);if(e instanceof Uint8Array)return new Uint8Array(e);if(e&&"object"==typeof e&&e.buffer)return new Uint8Array(e.buffer);if(Array.isArray(e))return new Uint8Array(e);if("string"==typeof e){const t=atob(e),a=new Uint8Array(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return a}return crypto.getRandomValues(new Uint8Array(32))}catch(t){return crypto.getRandomValues(new Uint8Array(32))}};try{const o={rp:e.rp||{name:"Strands Accounts"},user:{id:a(e.user?.id),name:e.user?.name||"user",displayName:e.user?.displayName||e.user?.name||"User"},challenge:a(e.challenge),pubKeyCredParams:e.pubKeyCredParams||[{type:"public-key",alg:-7},{type:"public-key",alg:-35},{type:"public-key",alg:-36},{type:"public-key",alg:-257},{type:"public-key",alg:-258},{type:"public-key",alg:-259},{type:"public-key",alg:-37},{type:"public-key",alg:-38},{type:"public-key",alg:-39},{type:"public-key",alg:-8}],timeout:e.timeout||("passkey"===t?3e5:12e4),authenticatorSelection:e.authenticatorSelection||k(t),attestation:e.attestation||("passkey"===t?"none":"direct")};return e.excludeCredentials&&Array.isArray(e.excludeCredentials)&&e.excludeCredentials.length>0&&(o.excludeCredentials=e.excludeCredentials.map(e=>({type:"public-key",id:a(e.id)}))),o}catch(o){throw new Error("Unable to process WebAuthn challenge data")}})(o,l.deviceType);f.value="Please touch your hardware key now...";const n=await navigator.credentials.create({publicKey:r});if(!n)throw new Error("Hardware key registration was cancelled");f.value="Completing registration...";const d=n.response;try{if(!n.rawId)throw new Error("Missing rawId in credential");if(!d.clientDataJSON)throw new Error("Missing clientDataJSON in credential response");if(!d.attestationObject)throw new Error("Missing attestationObject in credential response");const e=n.rawId instanceof ArrayBuffer?Array.from(new Uint8Array(n.rawId)):Array.from(n.rawId),t=d.clientDataJSON instanceof ArrayBuffer?Array.from(new Uint8Array(d.clientDataJSON)):Array.from(d.clientDataJSON),o=d.attestationObject instanceof ArrayBuffer?Array.from(new Uint8Array(d.attestationObject)):Array.from(d.attestationObject),l={id:n.id,rawId:e,response:{clientDataJSON:t,attestationObject:o},type:n.type},r=await s(a,l,c.value.accessToken);g.value=r.backup_codes||[],m.value=4}catch(t){throw new Error(`Failed to process hardware key data: ${t instanceof Error?t.message:String(t)}`)}}catch(a){let e="Hardware key registration failed";if(a instanceof Error){const t=a.message.toLowerCase();e=t.includes("not supported")||t.includes("webauthn")?"WebAuthn is not supported in this browser. Please use Chrome, Firefox, Safari, or Edge.":t.includes("cancelled")||t.includes("aborted")?"Hardware key registration was cancelled. Please try again and touch your key when prompted.":t.includes("timeout")?"Hardware key registration timed out. Please ensure your key is connected and try again.":t.includes("not allowed")||t.includes("invalid state")?"This hardware key may already be registered or cannot be used. Try a different key or contact support.":t.includes("can't be used")||t.includes("newer or different")?"Your hardware key is not compatible. Please ensure you have a FIDO2/WebAuthn compatible key like YubiKey 5 Series, and that it's properly connected.":t.includes("user verification")||t.includes("pin")?"Hardware key verification failed. If your key has a PIN, please enter it when prompted.":a.message}h.value=e,m.value=5}finally{d.value=!1}},V=async()=>{if(g.value.length)try{const e=g.value.join("\n");await navigator.clipboard.writeText(e)}catch(e){}},b=()=>{r("success")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Wo,[e.createVNode(Ye,{open:t.show,onClose:y,"card-class":"hardware-key-setup-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"hardware-key-setup-header"},[a[4]||(a[4]=e.createElementVNode("h2",{class:"hardware-key-setup-title"},"Setup Hardware Key",-1)),e.createElementVNode("button",{onClick:y,class:"hardware-key-setup-close"},a[3]||(a[3]=[e.createElementVNode("svg",{class:"hardware-key-setup-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[1===m.value?(e.openBlock(),e.createElementBlock("div",Oo,[a[7]||(a[7]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Name Your Hardware Key"),e.createElementVNode("p",{class:"hardware-key-setup-step-description"},' Give your hardware key a memorable name (e.g., "YubiKey 5", "Work Security Key") ')],-1)),e.createVNode(e.unref(U),{modelValue:p.value,"onUpdate:modelValue":a[0]||(a[0]=e=>p.value=e),label:"Device Name",placeholder:"My Hardware Key",error:v.value,disabled:u.value},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",qo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:y,disabled:u.value},{default:e.withCtx(()=>a[5]||(a[5]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[5]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:E,disabled:!p.value.trim()||u.value,loading:u.value},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" Continue ",-1)])),_:1,__:[6]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),2===m.value?(e.openBlock(),e.createElementBlock("div",Zo,[a[18]||(a[18]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Register Hardware Key"),e.createElementVNode("p",{class:"hardware-key-setup-step-description"}," Insert your hardware key and follow your browser's prompts to complete registration. ")],-1)),a[19]||(a[19]=e.createElementVNode("div",{class:"hardware-key-setup-illustration"},[e.createElementVNode("div",{class:"hardware-key-setup-illustration-content"},[e.createElementVNode("div",{class:"hardware-key-setup-icon-container"},[e.createElementVNode("svg",{class:"hardware-key-setup-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 7a2 2 0 012 2m0 0a2 2 0 012 2v6a2 2 0 01-2 2H9a2 2 0 01-2-2V9a2 2 0 012-2m0 0V7a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h3m0 0v8m0-8h8m-8 8h8"})])]),e.createElementVNode("p",{class:"hardware-key-setup-status"},"Hardware Key Ready"),e.createElementVNode("p",{class:"hardware-key-setup-substatus"},'Click "Register Key" when ready')])],-1)),e.createElementVNode("div",Go,[e.createElementVNode("div",Qo,[a[15]||(a[15]=e.createElementVNode("svg",{class:"hardware-key-setup-info-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})],-1)),e.createElementVNode("div",null,[a[14]||(a[14]=e.createElementVNode("p",{class:"hardware-key-setup-instructions-title"},"Setup Instructions",-1)),e.createElementVNode("ul",Jo,["passkey"===l.deviceType?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a[8]||(a[8]=e.createElementVNode("li",null,"• Your browser will prompt you to create a passkey",-1)),a[9]||(a[9]=e.createElementVNode("li",null,"• Use Touch ID, Face ID, Windows Hello, or PIN",-1)),a[10]||(a[10]=e.createElementVNode("li",null,"• Follow the prompts to complete setup",-1))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[a[11]||(a[11]=e.createElementVNode("li",null,"• Insert your hardware key into a USB port",-1)),a[12]||(a[12]=e.createElementVNode("li",null,"• Your browser will prompt you to interact with the key",-1)),a[13]||(a[13]=e.createElementVNode("li",null,"• Touch the key's button or sensor when prompted",-1))],64))])])])]),e.createElementVNode("div",Ko,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[1]||(a[1]=e=>m.value=1),disabled:u.value},{default:e.withCtx(()=>a[16]||(a[16]=[e.createTextVNode(" Back ",-1)])),_:1,__:[16]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:w,disabled:u.value,loading:u.value},{default:e.withCtx(()=>a[17]||(a[17]=[e.createTextVNode(" Register Key ",-1)])),_:1,__:[17]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),3===m.value?(e.openBlock(),e.createElementBlock("div",_o,[e.createElementVNode("div",$o,[e.createElementVNode("div",el,[e.createVNode(e.unref(G),{size:24,class:"hardware-key-setup-loader"})]),a[20]||(a[20]=e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Registering Hardware Key",-1)),e.createElementVNode("p",tl,e.toDisplayString(f.value),1)]),a[21]||(a[21]=e.createElementVNode("div",{class:"hardware-key-setup-progress-indicator"},[e.createElementVNode("div",{class:"hardware-key-setup-progress-content"},[e.createElementVNode("div",{class:"hardware-key-setup-progress-check"},[e.createElementVNode("div",{class:"hardware-key-setup-check-icon"},[e.createElementVNode("svg",{class:"hardware-key-setup-check",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])])]),e.createElementVNode("p",{class:"hardware-key-setup-progress-text"},"Touch your hardware key to complete registration")])],-1))])):e.createCommentVNode("",!0),4===m.value?(e.openBlock(),e.createElementBlock("div",al,[a[25]||(a[25]=e.createElementVNode("div",{class:"hardware-key-setup-success"},[e.createElementVNode("div",{class:"hardware-key-setup-success-icon"},[e.createElementVNode("svg",{class:"hardware-key-setup-success-check",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])]),e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Hardware Key Setup Complete!"),e.createElementVNode("p",{class:"hardware-key-setup-success-message"}," Your hardware key is now active for two-factor authentication. ")],-1)),e.createElementVNode("div",ol,[a[23]||(a[23]=e.createElementVNode("div",{class:"hardware-key-setup-backup-codes-header"},[e.createElementVNode("svg",{class:"hardware-key-setup-warning-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"hardware-key-setup-backup-codes-title"},"Save These Backup Codes"),e.createElementVNode("p",{class:"hardware-key-setup-backup-codes-description"}," Store these codes in a safe place. Each code can only be used once if you lose your hardware key. ")])],-1)),e.createElementVNode("div",ll,[e.createElementVNode("div",rl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:a,class:"hardware-key-setup-code"},e.toDisplayString(t),1))),128))])]),e.createElementVNode("div",nl,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:V},{default:e.withCtx(()=>a[22]||(a[22]=[e.createTextVNode(" 📋 Copy Codes ",-1)])),_:1,__:[22]})])]),e.createElementVNode("div",il,[e.createVNode(e.unref(N),{variant:"primary",onClick:b},{default:e.withCtx(()=>a[24]||(a[24]=[e.createTextVNode(" Done ",-1)])),_:1,__:[24]})])])):e.createCommentVNode("",!0),5===m.value?(e.openBlock(),e.createElementBlock("div",sl,[e.createElementVNode("div",cl,[a[26]||(a[26]=e.createElementVNode("div",{class:"hardware-key-setup-error-icon"},[e.createElementVNode("svg",{class:"hardware-key-setup-error-x",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})])],-1)),a[27]||(a[27]=e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Registration Failed",-1)),e.createElementVNode("p",dl,e.toDisplayString(h.value),1)]),e.createElementVNode("div",ul,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[2]||(a[2]=e=>m.value=1)},{default:e.withCtx(()=>a[28]||(a[28]=[e.createTextVNode(" Start Over ",-1)])),_:1,__:[28]}),e.createVNode(e.unref(N),{variant:"primary",onClick:y},{default:e.withCtx(()=>a[29]||(a[29]=[e.createTextVNode(" Close ",-1)])),_:1,__:[29]})])])):e.createCommentVNode("",!0)]),_:1},8,["open"])]))}}),pl=d(ml,[["__scopeId","data-v-4bb5b430"]]),vl={class:"accui-component-scope"},fl={key:0,class:"backup-codes-loading"},hl={key:1,class:"backup-codes-content"},gl={key:0,class:"backup-codes-device-info"},yl={class:"backup-codes-device-content"},kl={class:"backup-codes-device-name"},El={class:"backup-codes-device-type"},Nl={key:1},wl={class:"backup-codes-grid-wrapper"},Vl={class:"backup-codes-grid"},bl={class:"backup-codes-actions"},Cl={class:"backup-codes-main-actions"},xl={class:"backup-codes-main-actions-content"},Il={key:2,class:"backup-codes-regenerate-warning"},Bl={class:"backup-codes-regenerate-content"},Al={class:"backup-codes-regenerate-actions"},Sl=e.defineComponent({__name:"StrandsBackupCodesModal",props:{show:{type:Boolean},device:{}},emits:["close"],setup(t,{emit:a}){const o=t,l=a,{regenerateBackupCodes:r,loading:n,getDeviceTypeName:i}=Qe(),s=e.ref([]),c=e.ref(!1);e.watch(()=>o.show,async e=>{e&&o.device&&(c.value=!1,s.value=[])}),e.onMounted(async()=>{o.show&&o.device&&(s.value=[])});const d=()=>{l("close")},u=()=>{c.value=!0},m=async()=>{if(o.device)try{const e=await r(o.device.id);s.value=e.backup_codes,c.value=!1}catch(e){}},p=async()=>{if(0!==s.value.length)try{const e=s.value.join("\n");await navigator.clipboard.writeText(e)}catch(e){}},v=()=>{if(0===s.value.length)return;const e=`strands-backup-codes-${o.device?.device_name||"device"}-${(new Date).toISOString().split("T")[0]}.txt`,t=["Strands Account Backup Codes","============================","",`Device: ${o.device?.device_name}`,`Generated: ${(new Date).toLocaleString()}`,"","IMPORTANT:","- Each code can only be used once","- Store these codes in a safe place","- Use these if you lose access to your authenticator","","Backup Codes:",...s.value.map((e,t)=>`${t+1}. ${e}`),"","============================"].join("\n"),a=new Blob([t],{type:"text/plain"}),l=URL.createObjectURL(a),r=document.createElement("a");r.href=l,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(l)};return(t,a)=>(e.openBlock(),e.createElementBlock("div",vl,[e.createVNode(Ye,{open:t.show,onClose:d,"card-class":"backup-codes-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"backup-codes-header"},[a[2]||(a[2]=e.createElementVNode("h2",{class:"backup-codes-title"},"Backup Codes",-1)),e.createElementVNode("button",{onClick:d,class:"backup-codes-close-button"},a[1]||(a[1]=[e.createElementVNode("svg",{class:"backup-codes-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.unref(n)?(e.openBlock(),e.createElementBlock("div",fl,[e.createVNode(e.unref(G),{size:24}),a[3]||(a[3]=e.createElementVNode("span",{class:"backup-codes-loading-text"},"Loading backup codes...",-1))])):(e.openBlock(),e.createElementBlock("div",hl,[t.device?(e.openBlock(),e.createElementBlock("div",gl,[e.createElementVNode("div",yl,[a[4]||(a[4]=e.createElementVNode("span",{class:"backup-codes-device-icon"},"📱",-1)),e.createElementVNode("div",null,[e.createElementVNode("h3",kl,e.toDisplayString(t.device.device_name),1),e.createElementVNode("p",El,e.toDisplayString(e.unref(i)(t.device.device_type)),1)])])])):e.createCommentVNode("",!0),a[15]||(a[15]=e.createElementVNode("div",{class:"backup-codes-warning"},[e.createElementVNode("div",{class:"backup-codes-warning-content"},[e.createElementVNode("svg",{class:"backup-codes-warning-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"backup-codes-warning-title"},"Important Security Information"),e.createElementVNode("ul",{class:"backup-codes-warning-list"},[e.createElementVNode("li",null,"• Each backup code can only be used once"),e.createElementVNode("li",null,"• Store these codes in a safe place"),e.createElementVNode("li",null,"• Use backup codes if you lose access to your authenticator"),e.createElementVNode("li",null,"• Regenerating codes will invalidate all previous codes")])])])],-1)),s.value.length>0?(e.openBlock(),e.createElementBlock("div",Nl,[a[7]||(a[7]=e.createElementVNode("h3",{class:"backup-codes-section-title"},"Your Backup Codes",-1)),e.createElementVNode("div",wl,[e.createElementVNode("div",Vl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:a,class:"backup-codes-code-item"},e.toDisplayString(t),1))),128))])]),e.createElementVNode("div",bl,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:p},{default:e.withCtx(()=>a[5]||(a[5]=[e.createTextVNode(" 📋 Copy All Codes ",-1)])),_:1,__:[5]}),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:v},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" 💾 Download ",-1)])),_:1,__:[6]})])])):e.createCommentVNode("",!0),e.createElementVNode("div",Cl,[e.createElementVNode("div",xl,[e.createVNode(e.unref(N),{variant:"secondary",onClick:u,disabled:e.unref(n),loading:e.unref(n)},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" 🔄 Regenerate Codes ",-1)])),_:1,__:[8]},8,["disabled","loading"]),e.createVNode(e.unref(N),{variant:"primary",onClick:d},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Done ",-1)])),_:1,__:[9]})])]),c.value?(e.openBlock(),e.createElementBlock("div",Il,[e.createElementVNode("div",Bl,[a[14]||(a[14]=e.createElementVNode("svg",{class:"backup-codes-regenerate-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)),e.createElementVNode("div",null,[a[12]||(a[12]=e.createElementVNode("p",{class:"backup-codes-regenerate-title"},"Regenerate Backup Codes?",-1)),a[13]||(a[13]=e.createElementVNode("p",{class:"backup-codes-regenerate-description"}," This will invalidate all current backup codes. Make sure to save the new ones. ",-1)),e.createElementVNode("div",Al,[e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:m,disabled:e.unref(n),loading:e.unref(n)},{default:e.withCtx(()=>a[10]||(a[10]=[e.createTextVNode(" Yes, Regenerate ",-1)])),_:1,__:[10]},8,["disabled","loading"]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[0]||(a[0]=e=>c.value=!1)},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[11]})])])])])):e.createCommentVNode("",!0)]))]),_:1},8,["open"])]))}}),Ml=d(Sl,[["__scopeId","data-v-ab2930f9"]]),zl={class:"accui-component-scope"},Rl={class:"confirm-modal-title"},Tl={class:"confirm-modal-message"},Dl={class:"confirm-modal-actions"},Ll=e.defineComponent({__name:"StrandsConfirmModal",props:{show:{type:Boolean},title:{},message:{},confirmText:{default:"Confirm"},cancelText:{default:"Cancel"},variant:{default:"primary"}},emits:["confirm","cancel"],setup(t,{emit:a}){const o=a,l=e.ref(!1),r=()=>{l.value=!0,o("confirm")},n=()=>{o("cancel")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",zl,[e.createVNode(Ye,{open:t.show,"card-class":"confirm-modal"},{header:e.withCtx(()=>[e.createElementVNode("h2",Rl,e.toDisplayString(t.title),1)]),default:e.withCtx(()=>[e.createElementVNode("p",Tl,e.toDisplayString(t.message),1),e.createElementVNode("div",Dl,[e.createVNode(e.unref(N),{variant:"secondary",onClick:n,disabled:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelText),1)]),_:1},8,["disabled"]),e.createVNode(e.unref(N),{variant:t.variant,onClick:r,disabled:l.value,loading:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.confirmText),1)]),_:1},8,["variant","disabled","loading"])])]),_:1},8,["open"])]))}}),Ul=d(Ll,[["__scopeId","data-v-22fcdfc7"]]),jl={class:"accui-component-scope"},Pl={key:0,class:"mfa-loading"},Xl={key:1,class:"mfa-content"},Yl={class:"mfa-status-overview"},Hl={class:"mfa-status-content"},Fl={class:"mfa-status-subtitle"},Wl={class:"mfa-status-badges"},Ol={key:0,class:"mfa-status-badge mfa-status-badge-enabled"},ql={key:1,class:"mfa-status-badge mfa-status-badge-disabled"},Zl={class:"mfa-tabs-container"},Gl={class:"mfa-tabs-nav","aria-label":"Tabs"},Ql={key:0,class:"mfa-add-devices"},Jl={class:"mfa-device-options"},Kl={class:"mfa-device-layout"},_l={class:"mfa-device-icon-container mfa-device-icon-totp"},$l={class:"mfa-device-action"},er={class:"mfa-device-layout"},tr={class:"mfa-device-icon-container mfa-device-icon-email"},ar={class:"mfa-device-action"},or={key:1,class:"mfa-manage-devices"},lr={class:"mfa-devices-list"},rr={class:"mfa-device-card-content"},nr={class:"mfa-device-card-info"},ir={class:"mfa-device-card-details"},sr={class:"mfa-device-card-name"},cr={class:"mfa-device-card-type"},dr={class:"mfa-device-card-last-used"},ur={class:"mfa-device-card-actions"},mr=d(e.defineComponent({__name:"StrandsMfaModal",props:{show:{type:Boolean}},emits:["close","mfa-updated"],setup(t,{emit:a}){const o={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},l={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0c1.1 0 2 .9 2 2l0 12c0 1.1-.9 2-2 2l-16 0c-1.1 0-2-.9-2-2l0-12c0-1.1.9-2 2-2z"}),e.h("polyline",{points:"22,6 12,13 2,6"})])}},r={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"}),e.h("circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor"})])}},n={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})])}},i={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m3 6 18 0"}),e.h("path",{d:"m19 6-1 14c0 1-1 2-2 2l-8 0c-1 0-2-1-2-2l-1-14"}),e.h("path",{d:"m8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"}),e.h("line",{x1:"10",x2:"10",y1:"11",y2:"17"}),e.h("line",{x1:"14",x2:"14",y1:"11",y2:"17"})])}},s=t,c=a,{mfaEnabled:d,loading:u,activeMfaDevices:m,fetchMfaDevices:p,disableMfaDevice:v,sendEmailMfaCode:f,getDeviceTypeName:h,formatLastUsed:g}=Qe(),y=e.computed(()=>s.show),k=e.ref("add"),E=e.ref(!1),w=e.ref(!1),V=e.ref(!1),b=e.ref(!1),C=e.ref(!1),x=e.ref(!1),I=e.ref(null);e.watch(()=>s.show,async e=>{e&&await p()}),e.onMounted(async()=>{s.show&&await p()});const B=()=>{c("close")},A=()=>{E.value=!0},S=()=>{w.value=!0},M=async()=>{if(I.value)try{await v(I.value.id),x.value=!1,I.value=null,c("mfa-updated")}catch(e){}},z=async()=>{E.value=!1,await p(),k.value="manage",c("mfa-updated")},R=async()=>{w.value=!1,await p(),k.value="manage",c("mfa-updated")},T=async()=>{V.value=!1,await p(),k.value="manage",c("mfa-updated")},D=async()=>{b.value=!1,await p(),k.value="manage",c("mfa-updated")},L=e=>{switch(e){case"totp":return"mfa-device-bg-blue";case"email":return"mfa-device-bg-green";case"hardware":return"mfa-device-bg-purple";case"passkey":return"mfa-device-bg-indigo";default:return"mfa-device-bg-gray"}},U=e=>{switch(e){case"totp":return o;case"email":return l;case"hardware":return r;default:return n}};return(t,a)=>(e.openBlock(),e.createElementBlock("div",jl,[e.createVNode(Ye,{open:y.value,onClose:B,"card-class":"mfa-modal-card"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"mfa-modal-header"},[a[9]||(a[9]=e.createElementVNode("h2",{class:"mfa-modal-title"},"Two-Factor Authentication",-1)),e.createElementVNode("button",{onClick:B,class:"mfa-modal-close"},a[8]||(a[8]=[e.createElementVNode("svg",{class:"mfa-modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.unref(u)?(e.openBlock(),e.createElementBlock("div",Pl,[e.createVNode(e.unref(G),{size:32}),a[10]||(a[10]=e.createElementVNode("span",{class:"mfa-loading-text"},"Loading MFA settings...",-1))])):(e.openBlock(),e.createElementBlock("div",Xl,[e.createElementVNode("div",Yl,[e.createElementVNode("div",Hl,[e.createElementVNode("div",null,[a[11]||(a[11]=e.createElementVNode("h3",{class:"mfa-status-title"},"Two-Factor Authentication",-1)),e.createElementVNode("p",Fl,e.toDisplayString(e.unref(d)?"Enabled":"Add extra security to your account"),1)]),e.createElementVNode("div",Wl,[e.unref(d)?(e.openBlock(),e.createElementBlock("span",Ol,[e.createVNode(n,{size:12,class:"mfa-badge-icon"}),a[12]||(a[12]=e.createTextVNode(" Enabled ",-1))])):(e.openBlock(),e.createElementBlock("span",ql," Not Enabled "))])])]),e.createElementVNode("div",Zl,[e.createElementVNode("nav",Gl,[e.createElementVNode("button",{onClick:a[0]||(a[0]=e=>k.value="add"),class:e.normalizeClass(["mfa-tab-button","add"===k.value?"mfa-tab-button-active":"mfa-tab-button-inactive"])}," Add New Device ",2),e.unref(m).length>0?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:a[1]||(a[1]=e=>k.value="manage"),class:e.normalizeClass(["mfa-tab-button","manage"===k.value?"mfa-tab-button-active":"mfa-tab-button-inactive"])}," Active Devices ("+e.toDisplayString(e.unref(m).length)+") ",3)):e.createCommentVNode("",!0)])]),"add"===k.value?(e.openBlock(),e.createElementBlock("div",Ql,[e.createElementVNode("div",null,[a[17]||(a[17]=e.createElementVNode("h3",{class:"mfa-section-title"},"Choose Your Authentication Method",-1)),e.createElementVNode("div",Jl,[e.createElementVNode("div",{class:"mfa-device-option",onClick:A},[e.createElementVNode("div",Kl,[e.createElementVNode("div",_l,[e.createVNode(o,{size:24,class:"mfa-device-icon"})]),a[14]||(a[14]=e.createElementVNode("div",{class:"mfa-device-content"},[e.createElementVNode("div",{class:"mfa-device-info"},[e.createElementVNode("h4",{class:"mfa-device-title"},"Authenticator App"),e.createElementVNode("p",{class:"mfa-device-description"}," Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes ")])],-1)),e.createElementVNode("div",$l,[e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(A,["stop"]),disabled:e.unref(u)},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" Setup ",-1)])),_:1,__:[13]},8,["disabled"])])])]),e.createElementVNode("div",{class:"mfa-device-option",onClick:S},[e.createElementVNode("div",er,[e.createElementVNode("div",tr,[e.createVNode(l,{size:24,class:"mfa-device-icon"})]),a[16]||(a[16]=e.createElementVNode("div",{class:"mfa-device-content"},[e.createElementVNode("div",{class:"mfa-device-info"},[e.createElementVNode("h4",{class:"mfa-device-title"},"Email Verification"),e.createElementVNode("p",{class:"mfa-device-description"}," Receive verification codes directly in your email inbox for easy access ")])],-1)),e.createElementVNode("div",ar,[e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(S,["stop"]),disabled:e.unref(u)},{default:e.withCtx(()=>a[15]||(a[15]=[e.createTextVNode(" Setup ",-1)])),_:1,__:[15]},8,["disabled"])])])])])])])):"manage"===k.value&&e.unref(m).length>0?(e.openBlock(),e.createElementBlock("div",or,[e.createElementVNode("div",null,[a[21]||(a[21]=e.createElementVNode("h3",{class:"mfa-section-title"},"Manage Your Active Devices",-1)),e.createElementVNode("div",lr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),t=>(e.openBlock(),e.createElementBlock("div",{key:t.id,class:"mfa-device-card"},[e.createElementVNode("div",rr,[e.createElementVNode("div",nr,[e.createElementVNode("div",{class:e.normalizeClass(["mfa-device-card-icon-container",L(t.device_type)])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(U(t.device_type)),{size:24,class:"mfa-device-card-icon"}))],2),e.createElementVNode("div",ir,[e.createElementVNode("h4",sr,e.toDisplayString(t.device_name),1),e.createElementVNode("p",cr,e.toDisplayString(e.unref(h)(t.device_type)),1),e.createElementVNode("p",dr," Last used "+e.toDisplayString(e.unref(g)(t.last_used_at)),1)])]),e.createElementVNode("div",ur,["totp"===t.device_type||"hardware"===t.device_type||"passkey"===t.device_type?(e.openBlock(),e.createBlock(e.unref(N),{key:0,variant:"secondary",size:"sm",onClick:e=>(e=>{I.value=e,C.value=!0})(t),disabled:e.unref(u)},{default:e.withCtx(()=>[e.createVNode(r,{size:14,class:"mfa-button-icon"}),a[18]||(a[18]=e.createTextVNode(" Backup Codes ",-1))]),_:2,__:[18]},1032,["onClick","disabled"])):e.createCommentVNode("",!0),"email"===t.device_type?(e.openBlock(),e.createBlock(e.unref(N),{key:1,variant:"secondary",size:"sm",onClick:e=>(async e=>{try{await f(e.id)}catch(t){}})(t),disabled:e.unref(u)},{default:e.withCtx(()=>[e.createVNode(l,{size:14,class:"mfa-button-icon"}),a[19]||(a[19]=e.createTextVNode(" Send Test Code ",-1))]),_:2,__:[19]},1032,["onClick","disabled"])):e.createCommentVNode("",!0),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:e=>(e=>{I.value=e,x.value=!0})(t),disabled:e.unref(u),class:"mfa-remove-button"},{default:e.withCtx(()=>[e.createVNode(i,{size:14,class:"mfa-button-icon"}),a[20]||(a[20]=e.createTextVNode(" Remove ",-1))]),_:2,__:[20]},1032,["onClick","disabled"])])])]))),128))])])])):e.createCommentVNode("",!0)])),E.value?(e.openBlock(),e.createBlock(Ro,{key:2,show:E.value,onClose:a[2]||(a[2]=e=>E.value=!1),onSuccess:z},null,8,["show"])):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createBlock(Fo,{key:3,show:w.value,onClose:a[3]||(a[3]=e=>w.value=!1),onSuccess:R},null,8,["show"])):e.createCommentVNode("",!0),V.value?(e.openBlock(),e.createBlock(pl,{key:4,show:V.value,"device-type":"hardware",onClose:a[4]||(a[4]=e=>V.value=!1),onSuccess:T},null,8,["show"])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createBlock(pl,{key:5,show:b.value,"device-type":"passkey",onClose:a[5]||(a[5]=e=>b.value=!1),onSuccess:D},null,8,["show"])):e.createCommentVNode("",!0),C.value?(e.openBlock(),e.createBlock(Ml,{key:6,show:C.value,device:I.value,onClose:a[6]||(a[6]=e=>C.value=!1)},null,8,["show","device"])):e.createCommentVNode("",!0)]),_:1},8,["open"]),x.value?(e.openBlock(),e.createBlock(Ul,{key:0,show:x.value,title:"Remove MFA Device",message:`Are you sure you want to remove '${I.value?.device_name}'? This action cannot be undone.`,"confirm-text":"Remove Device","cancel-text":"Keep Device",variant:"secondary",onConfirm:M,onCancel:a[7]||(a[7]=e=>x.value=!1)},null,8,["show","message"])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-d3be8e53"]]),pr={class:"accui-component-scope"},vr={class:"settings-header"},fr={class:"settings-content"},hr={class:"settings-section"},gr={class:"settings-option"},yr={class:"settings-option-content"},kr={class:"settings-option"},Er={class:"settings-option-content"},Nr={class:"settings-footer"},wr=d(e.defineComponent({__name:"StrandsSettingsModal",props:{open:{type:Boolean,default:!1}},emits:["close","settings-updated"],setup(t,{emit:o}){const l=o,{currentUser:r,updateUserSettings:n}=a.useStrandsAuth(),i=e.ref(!1),s=e.reactive({levelUpSounds:r.value?.settings?.levelUpSounds??!0,milestoneSounds:r.value?.settings?.milestoneSounds??!0});e.watch(()=>r.value?.settings,e=>{e&&(s.levelUpSounds=e.levelUpSounds??!0,s.milestoneSounds=e.milestoneSounds??!0)},{deep:!0});const c=(e,t)=>{s[e]=t},d=async()=>{if(!i.value){i.value=!0;try{await n({...r.value?.settings,...s}),l("settings-updated",{...s}),l("close")}catch(e){}finally{i.value=!1}}};return(t,a)=>(e.openBlock(),e.createElementBlock("div",pr,[e.createVNode(Ye,{open:!0,onClose:a[6]||(a[6]=e=>t.$emit("close")),"card-class":"max-w-lg"},{header:e.withCtx(()=>[e.createElementVNode("div",vr,[a[8]||(a[8]=e.createElementVNode("h2",{class:"settings-title"},"Settings",-1)),e.createElementVNode("button",{class:"settings-close-button",onClick:a[0]||(a[0]=e=>t.$emit("close")),type:"button"},a[7]||(a[7]=[e.createElementVNode("svg",{class:"settings-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),footer:e.withCtx(()=>[e.createElementVNode("div",Nr,[e.createVNode(N,{variant:"secondary",onClick:a[5]||(a[5]=e=>t.$emit("close"))},{default:e.withCtx(()=>a[12]||(a[12]=[e.createTextVNode(" Close ",-1)])),_:1,__:[12]}),e.createVNode(N,{variant:"primary",onClick:d,loading:i.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.value?"Saving...":"Save Settings"),1)]),_:1},8,["loading"])])]),default:e.withCtx(()=>[e.createElementVNode("div",fr,[e.createElementVNode("div",hr,[a[11]||(a[11]=e.createElementVNode("h3",{class:"settings-section-title"},"Audio Preferences",-1)),e.createElementVNode("div",gr,[e.createElementVNode("div",yr,[a[9]||(a[9]=e.createElementVNode("div",{class:"settings-option-info"},[e.createElementVNode("label",{for:"level-up-sounds",class:"settings-option-label"}," Level Up Sounds "),e.createElementVNode("p",{class:"settings-option-description"}," Play sound effects when you level up ")],-1)),e.createVNode(J,{id:"level-up-sounds",modelValue:s.levelUpSounds,"onUpdate:modelValue":[a[1]||(a[1]=e=>s.levelUpSounds=e),a[2]||(a[2]=e=>c("levelUpSounds",e))]},null,8,["modelValue"])])]),e.createElementVNode("div",kr,[e.createElementVNode("div",Er,[a[10]||(a[10]=e.createElementVNode("div",{class:"settings-option-info"},[e.createElementVNode("label",{for:"milestone-sounds",class:"settings-option-label"}," Milestone Level Sounds "),e.createElementVNode("p",{class:"settings-option-description"}," Play special celebration sounds for milestone levels (10, 25, 50, 100, 150, 200) ")],-1)),e.createVNode(J,{id:"milestone-sounds",modelValue:s.milestoneSounds,"onUpdate:modelValue":[a[3]||(a[3]=e=>s.milestoneSounds=e),a[4]||(a[4]=e=>c("milestoneSounds",e))]},null,8,["modelValue"])])])])])]),_:1})]))}}),[["__scopeId","data-v-f0e4ff21"]]),Vr={class:"modal-header-content"},br={class:"modal-subtitle"},Cr={class:"strands-sessions-modal"},xr={key:0,class:"sessions-loading"},Ir={key:1,class:"sessions-empty"},Br={key:2,class:"sessions-container"},Ar={key:0,class:"session-stats"},Sr={class:"stat-card"},Mr={class:"stat-value"},zr={class:"stat-card"},Rr={class:"stat-value"},Tr={key:0,class:"stat-card"},Dr={class:"stat-value"},Lr={class:"sessions-list"},Ur={class:"session-header"},jr={class:"session-device"},Pr={class:"device-icon"},Xr={class:"device-info"},Yr={class:"device-name"},Hr={key:0,class:"current-badge"},Fr={class:"device-type"},Wr={key:1},Or={key:1},qr={class:"session-details"},Zr={class:"detail-row"},Gr={class:"detail-icon"},Qr={class:"detail-text"},Jr={key:0,class:"detail-row"},Kr={class:"detail-icon"},_r={class:"detail-text"},$r={class:"detail-row"},en={class:"detail-icon"},tn={class:"detail-text"},an={class:"detail-row"},on={class:"detail-icon"},ln={class:"detail-text"},rn={key:1,class:"bulk-actions"},nn={key:1},sn=d(e.defineComponent({__name:"StrandsSessionsModal",props:{modelValue:{type:Boolean}},emits:["update:modelValue","sessionsUpdated","currentSessionRevoked"],setup(t,{emit:o}){const l={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"2",y:"7",width:"20",height:"10",rx:"2",ry:"2"}),e.h("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),e.h("line",{x1:"12",y1:"17",x2:"12",y2:"21"})])}},r={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},n={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},i={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"}),e.h("circle",{cx:"12",cy:"10",r:"3"})])}},s={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("circle",{cx:"12",cy:"12",r:"10"}),e.h("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),e.h("path",{d:"M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"})])}},c={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("circle",{cx:"12",cy:"12",r:"10"}),e.h("polyline",{points:"12 6 12 12 16 14"})])}},d={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),e.h("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),e.h("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),e.h("line",{x1:"3",y1:"10",x2:"21",y2:"10"})])}},u=t,m=o,{getUserSessions:p,getSessionStats:v,revokeSession:f,revokeAllOtherSessions:h,signOut:g}=a.useStrandsAuth(),y=e.ref(u.modelValue),k=e.ref(!1),E=e.ref([]),w=e.ref(null),V=e.ref(null),b=e.ref(!1),C=e.ref(null);e.watch(()=>u.modelValue,e=>{y.value=e,e&&x()});const x=async()=>{k.value=!0,C.value=null;try{const[e,t]=await Promise.all([p(),v()]);E.value=e||[],w.value=t||null}catch(e){C.value="Failed to load sessions. Please try again.",E.value=[]}finally{k.value=!1}},I=()=>{y.value=!1,m("update:modelValue",!1)},B=async()=>{if(confirm("Are you sure you want to end all other sessions? You will be signed out on all other devices.")){b.value=!0;try{await h(),await x(),m("sessionsUpdated")}catch(e){alert("Failed to end sessions. Please try again.")}finally{b.value=!1}}},A=e=>{switch(e?.toLowerCase()){case"mobile":return r;case"tablet":return n;default:return l}},S=e=>{if(!e)return"Unknown";const t=new Date,a=new Date(e),o=Math.floor((t.getTime()-a.getTime())/1e3);return o<60?"just now":o<3600?`${Math.floor(o/60)} minutes ago`:o<86400?`${Math.floor(o/3600)} hours ago`:o<604800?`${Math.floor(o/86400)} days ago`:a.toLocaleDateString()};return y.value&&x(),(t,a)=>(e.openBlock(),e.createBlock(e.unref(Ye),{open:y.value,onClose:I},{header:e.withCtx(()=>[e.createElementVNode("div",Vr,[a[0]||(a[0]=e.createElementVNode("h2",{class:"modal-title"},"Active Sessions",-1)),e.createElementVNode("p",br,"Manage your "+e.toDisplayString(E.value.length)+" active device"+e.toDisplayString(1!==E.value.length?"s":""),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Cr,[k.value?(e.openBlock(),e.createElementBlock("div",xr,[e.createVNode(e.unref(G),{size:40}),a[1]||(a[1]=e.createElementVNode("p",{class:"loading-text"},"Loading sessions...",-1))])):0===E.value.length?(e.openBlock(),e.createElementBlock("div",Ir,a[2]||(a[2]=[e.createElementVNode("div",{class:"empty-icon"},[e.createElementVNode("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e.createElementVNode("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2"}),e.createElementVNode("line",{x1:"8",y1:"10",x2:"16",y2:"10"}),e.createElementVNode("line",{x1:"8",y1:"14",x2:"12",y2:"14"})])],-1),e.createElementVNode("h3",{class:"empty-title"},"No Active Sessions",-1),e.createElementVNode("p",{class:"empty-description"},"You don't have any active sessions at the moment.",-1)]))):(e.openBlock(),e.createElementBlock("div",Br,[w.value?(e.openBlock(),e.createElementBlock("div",Ar,[e.createElementVNode("div",Sr,[a[3]||(a[3]=e.createElementVNode("span",{class:"stat-label"},"Total Sessions",-1)),e.createElementVNode("span",Mr,e.toDisplayString(w.value.total_sessions),1)]),e.createElementVNode("div",zr,[a[4]||(a[4]=e.createElementVNode("span",{class:"stat-label"},"Active Devices",-1)),e.createElementVNode("span",Rr,e.toDisplayString(w.value.active_sessions),1)]),w.value.unique_locations&&w.value.unique_locations.length>0?(e.openBlock(),e.createElementBlock("div",Tr,[a[5]||(a[5]=e.createElementVNode("span",{class:"stat-label"},"Locations",-1)),e.createElementVNode("span",Dr,e.toDisplayString(w.value.unique_locations.length),1)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Lr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,t=>{return e.openBlock(),e.createElementBlock("div",{key:t.id,class:e.normalizeClass(["session-card",{"current-session":t.is_current}])},[e.createElementVNode("div",Ur,[e.createElementVNode("div",jr,[e.createElementVNode("div",Pr,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(A(t.device_type)),{size:20}))]),e.createElementVNode("div",Xr,[e.createElementVNode("h4",Yr,[e.createTextVNode(e.toDisplayString(t.device_name||"Unknown Device")+" ",1),t.is_current?(e.openBlock(),e.createElementBlock("span",Hr,"Current")):e.createCommentVNode("",!0)]),e.createElementVNode("p",Fr,e.toDisplayString(t.device_type||"Unknown type"),1)])]),t.is_current?(e.openBlock(),e.createBlock(e.unref(N),{key:0,variant:"outline",size:"sm",onClick:e=>(async e=>{if(confirm("Are you sure you want to sign out? You will need to sign in again to access your account.")){V.value=e;try{await f(e),await g(),y.value=!1,m("update:modelValue",!1),m("sessionsUpdated"),m("currentSessionRevoked")}catch(t){alert("Failed to sign out. Please try again.")}finally{V.value=null}}})(t.id),disabled:V.value===t.id,class:"current-session-button"},{default:e.withCtx(()=>[V.value===t.id?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:16})):(e.openBlock(),e.createElementBlock("span",Wr,"Sign Out"))]),_:2},1032,["onClick","disabled"])):(e.openBlock(),e.createBlock(e.unref(N),{key:1,variant:"outline",size:"sm",onClick:e=>(async e=>{if(confirm("Are you sure you want to end this session? The device will be signed out.")){V.value=e;try{await f(e),await x(),m("sessionsUpdated")}catch(t){alert("Failed to end session. Please try again.")}finally{V.value=null}}})(t.id),disabled:V.value===t.id},{default:e.withCtx(()=>[V.value===t.id?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:16})):(e.openBlock(),e.createElementBlock("span",Or,"End Session"))]),_:2},1032,["onClick","disabled"]))]),e.createElementVNode("div",qr,[e.createElementVNode("div",Zr,[e.createElementVNode("span",Gr,[e.createVNode(i,{size:14})]),e.createElementVNode("span",Qr,[t.city&&t.country?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.city)+", "+e.toDisplayString(t.country),1)],64)):t.country?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.country),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(" Location unknown ")],64))])]),t.ip_address?(e.openBlock(),e.createElementBlock("div",Jr,[e.createElementVNode("span",Kr,[e.createVNode(s,{size:14})]),e.createElementVNode("span",_r,e.toDisplayString(t.ip_address),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",$r,[e.createElementVNode("span",en,[e.createVNode(c,{size:14})]),e.createElementVNode("span",tn," Last active "+e.toDisplayString(S(t.last_activity_at||t.created_at)),1)]),e.createElementVNode("div",an,[e.createElementVNode("span",on,[e.createVNode(d,{size:14})]),e.createElementVNode("span",ln," Started "+e.toDisplayString((a=t.created_at,a?new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"}):"Unknown")),1)])])],2);var a}),128))]),E.value.length>1?(e.openBlock(),e.createElementBlock("div",rn,[e.createVNode(e.unref(N),{variant:"outline",onClick:B,disabled:b.value},{default:e.withCtx(()=>[b.value?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:16})):(e.openBlock(),e.createElementBlock("span",nn,"End All Other Sessions"))]),_:1},8,["disabled"]),a[6]||(a[6]=e.createElementVNode("p",{class:"bulk-actions-hint"}," This will sign you out on all other devices ",-1))])):e.createCommentVNode("",!0)]))])]),_:1},8,["open"]))}}),[["__scopeId","data-v-37b09615"]]),cn={class:"accui-component-scope"},dn={class:"profile-image-section"},un={class:"profile-image-container"},mn={class:"profile-image-wrapper"},pn={key:0,class:"profile-avatar profile-avatar-with-image"},vn=["src","alt"],fn={key:1,class:"profile-avatar profile-avatar-initials"},hn=["disabled"],gn={key:1,class:"profile-upload-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},yn={class:"profile-form-grid"},kn={class:"profile-section"},En={class:"profile-setting-card"},Nn={class:"profile-setting-header"},wn={class:"profile-setting-subtitle"},Vn={key:0,class:"profile-change-form"},bn={class:"profile-field-section"},Cn={class:"profile-field-header"},xn={class:"profile-field-subtitle"},In={key:0,class:"profile-change-form"},Bn={class:"profile-password-section"},An={class:"profile-field-section"},Sn={class:"profile-field-header"},Mn={class:"profile-field-subtitle"},zn={key:0,class:"profile-change-form"},Rn={class:"profile-field-section"},Tn={class:"profile-field-header profile-field-header-vertical"},Dn={class:"profile-mfa-content"},Ln={class:"profile-field-subtitle"},Un={key:0,class:"profile-mfa-chips"},jn={class:"profile-field-section"},Pn={class:"profile-field-header"},Xn={class:"profile-field-subtitle"},Yn={key:0},Hn={key:1},Fn={class:"profile-field-actions"},Wn={key:0,class:"profile-actions-section"},On={key:0,class:"animate-fade-in"},qn={class:"alert-success"},Zn={class:"profile-help-item"},Gn={class:"profile-alert-message"},Qn={key:1,class:"animate-fade-in"},Jn={class:"alert-error"},Kn={class:"profile-help-item"},_n={class:"profile-alert-message"},$n={class:"profile-footer-actions"},ei={key:0},ti={class:"profile-footer-text"},ai={key:1,class:"profile-avatar-modal-overlay"},oi={class:"profile-avatar-modal"},li={class:"profile-avatar-modal-content"},ri=d(e.defineComponent({__name:"StrandsUserProfile",props:{user:{},config:{},autoFetch:{type:Boolean,default:!0},inModal:{type:Boolean,default:!1}},emits:["profile-updated","error","manage-sessions","mfa-toggle"],setup(o,{emit:l}){const r={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},n={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0c1.1 0 2 .9 2 2l0 12c0 1.1-.9 2-2 2l-16 0c-1.1 0-2-.9-2-2l0-12c0-1.1.9-2 2-2z"}),e.h("polyline",{points:"22,6 12,13 2,6"})])}},i={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"}),e.h("circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor"})])}},s=o,c=l,{getSupportEmail:d,getUrl:u}=t.useStrandsConfig(s.config),{fetchProfile:m,updateProfile:p,changeEmail:v,changeUsername:f,getUsernameCooldown:h,checkUsernameAvailability:g,getUserSessions:y,currentUser:k,currentSession:E,isAuthenticated:w,refreshToken:V,signOut:b}=a.useStrandsAuth(),{activeMfaDevices:C,fetchMfaDevices:x}=Qe(),I=e.ref(null),B=e.ref(!1),A=e.computed(()=>k.value||s.user||I.value),S=e.ref(!1),M=e.ref(!1),z=e.ref(!1),R=e.ref(!1),T=e.ref(!1),D=e.ref(!1),L=e.ref(!1),P=e.ref(!1),X=e.ref(!1),Y=e.ref(!1),H=e.ref(!1),F=e.ref(null),W=e.ref(""),O=e.ref(""),q=e.ref([]),Z=e.ref(!1),Q=e.ref(!1),J=e.reactive({canChange:!0,cooldownEnd:null,daysRemaining:0}),K=e.reactive({available:!1,message:"",checking:!1}),_=e.ref(),$=e.reactive({firstName:"",lastName:"",email:""}),ee=e.reactive({newEmail:"",password:"",errors:{newEmail:"",password:""}}),te=e.reactive({current:"",new:"",confirm:""}),ae=e.reactive({username:"",errors:{username:""}}),oe=e.reactive({firstName:"",lastName:"",email:""}),le=e.computed(()=>{const e=A.value;return!!e&&($.firstName!==(e.firstName||"")||$.lastName!==(e.lastName||""))}),re=e.computed(()=>te.current&&te.new&&te.confirm&&te.new===te.confirm&&te.new.length>=8),ne=e.computed(()=>ee.newEmail&&ee.password&&ee.newEmail!==A.value?.email&&ee.newEmail.includes("@")),ie=e.computed(()=>ae.username&&/^[a-zA-Z0-9_-]{3,30}$/.test(ae.username)&&ae.username!==A.value?.username&&!K.checking),se=e.computed(()=>{const e=A.value;if(!e)return"Never";const t=e.passwordUpdatedAt||e.createdAt;if(!t)return"Never";const a=new Date(t),o=(new Date).getTime()-a.getTime(),l=Math.floor(o/864e5);if(0===l)return"Today";if(1===l)return"Yesterday";if(l<30)return`${l} days ago`;if(l<365){const e=Math.floor(l/30);return 1===e?"1 month ago":`${e} months ago`}const r=Math.floor(l/365);return 1===r?"1 year ago":`${r} years ago`}),ce=e.computed(()=>{const e=C.value||[],t={totp:0,email:0,hardware:0,passkey:0};return e.forEach(e=>{e.device_type in t&&t[e.device_type]++}),t}),de=e.computed(()=>{const e=[],t=ce.value;if(t.totp>0&&e.push({type:"totp",count:t.totp,label:1===t.totp?"Auth app":"Auth apps",icon:r,color:"chip-blue"}),t.email>0&&e.push({type:"email",count:t.email,label:"Email",icon:n,color:"chip-green"}),t.hardware>0||t.passkey>0){const a=t.hardware+t.passkey;e.push({type:"hardware",count:a,label:1===a?"Key":"Keys",icon:i,color:"chip-purple"})}return e}),ue=e=>{if(e<=1)return 0;let t=0;for(let a=1;a<e;a++)t+=4*a+Math.pow(1.5,a/4);return Math.floor(t)},me=e.computed(()=>(e=>{let t=1;for(;!(e<ue(t+1))&&(t++,!(t>1e3)););return t})(A.value?.xp||0)),pe=e.computed(()=>{const e=me.value,t=ue(e);return(A.value?.xp||0)-t}),ve=e.computed(()=>{const e=me.value,t=ue(e);return ue(e+1)-t}),fe=e.computed(()=>Math.round(pe.value/ve.value*100)),he=e.computed(()=>2*Math.PI*54),ge=e.computed(()=>fe.value/100*he.value);e.computed(()=>{const e=5*he.value/360;return he.value-ge.value-e});const ye=async()=>{if(w.value){Z.value=!0;try{const e=await y();q.value=e||[]}catch(e){}finally{Z.value=!1}}};e.watch(()=>A.value,e=>{e&&($.firstName=e.firstName||"",$.lastName=e.lastName||"",$.email=e.email)},{immediate:!0}),e.watch(()=>w.value,(e,t)=>{e&&!t?setTimeout(()=>{ye()},500):e||(q.value=[])},{immediate:!1}),e.watch(()=>E.value,e=>{e&&w.value&&setTimeout(()=>{ye()},100)}),e.onMounted(()=>{(async()=>{if(s.autoFetch&&!s.user&&w.value){B.value=!0;try{await m(),w.value&&await x()}catch(e){const t=e instanceof Error?e.message:"Failed to load profile";O.value=t,c("error",t)}finally{B.value=!1}}})(),ye()});const ke=()=>{W.value="",O.value="",Object.keys(oe).forEach(e=>{oe[e]=""})},Ne=async()=>{ke(),S.value=!0;try{const e=await p({firstName:$.firstName,lastName:$.lastName});e&&(W.value="Profile updated successfully",c("profile-updated",e))}catch(e){const t=e instanceof Error?e.message:"Failed to update profile";O.value=t,c("error",t)}finally{S.value=!1}},we=async()=>{if(re.value){ke(),S.value=!0;try{await new Promise(e=>setTimeout(e,1e3)),W.value="Password updated successfully",R.value=!1,te.current="",te.new="",te.confirm=""}catch(e){O.value="Failed to update password"}finally{S.value=!1}}},Ve=async()=>{if(ne.value){ee.errors.newEmail="",ee.errors.password="",ke(),D.value=!0;try{const e=await v(ee.newEmail,ee.password);W.value=e.message||"Email updated successfully. Please verify your new email address.",T.value=!1,ee.newEmail="",ee.password="",A.value&&c("profile-updated",A.value)}catch(e){const t=e instanceof Error?e.message:"Failed to update email";t.includes("password")?ee.errors.password="Invalid password":t.includes("email")?ee.errors.newEmail=t:O.value=t,c("error",t)}finally{D.value=!1}}},be=async()=>{if(L.value)L.value=!1,ae.username="",ae.errors.username="",K.available=!1,K.message="";else{P.value=!0;try{const e=await h();J.canChange=e.can_change,J.cooldownEnd=e.cooldown_end?new Date(e.cooldown_end):null,J.daysRemaining=e.days_remaining||0,J.canChange?(L.value=!0,ae.username=A.value?.username||""):O.value=`You can change your username again in ${J.daysRemaining} days`}catch(e){O.value="Failed to check username cooldown",L.value=!0}finally{P.value=!1}}},Ce=async()=>{if(!ie.value){if(!/^[a-zA-Z0-9_-]{3,30}$/.test(ae.username))return void(ae.errors.username="Username must be 3-30 characters and contain only letters, numbers, hyphens, and underscores");K.checking=!0,K.message="Checking availability...";try{const e=await g(ae.username);if(K.available=e.available,K.message=e.message,!e.available)return void(ae.errors.username="Username is not available")}catch(e){return void(ae.errors.username="Failed to check username availability")}finally{K.checking=!1}}ke(),P.value=!0;try{const e=await f(ae.username);W.value=e.message||"Username updated successfully",L.value=!1,ae.username="",ae.errors.username="",K.available=!1,K.message="",A.value&&c("profile-updated",A.value)}catch(e){const t=e instanceof Error?e.message:"Failed to update username";t.includes("taken")?ae.errors.username="Username is already taken":t.includes("cooldown")||t.includes("30 days")?(O.value=t,L.value=!1):ae.errors.username=t,c("error",t)}finally{P.value=!1}},xe=()=>{M.value||_.value?.click()},Ie=e=>{const t=e.target,a=t.files?.[0];if(a){if(!a.type.startsWith("image/"))return void(O.value="Please select an image file");if(a.size>5242880)return void(O.value="File size must be less than 5MB");F.value=a,H.value=!0}t&&(t.value="")},Be=async e=>{await Me(e),H.value=!1,F.value=null},Ae=e=>{O.value=e},Se=()=>{H.value=!1,F.value=null},Me=async e=>{M.value=!0,ke();try{if(!E.value?.accessToken)throw new Error("No access token available. Please sign in again.");const a=new FormData;a.append("avatar",e);const o=await fetch(u("avatar"),{method:"POST",body:a,headers:{Authorization:`Bearer ${E.value.accessToken}`}});if(!o.ok){if(401!==o.status){const e=await o.json().catch(()=>({}));throw new Error(e.message||`Upload failed: ${o.status} ${o.statusText}`)}try{if(await V()&&E.value?.accessToken){const e=await fetch(u("avatar"),{method:"POST",body:a,headers:{Authorization:`Bearer ${E.value.accessToken}`}});if(!e.ok){const t=await e.json().catch(()=>({}));throw new Error(t.message||`Upload failed: ${e.status} ${e.statusText}`)}const o=await e.json();k.value&&(k.value.avatar=o.avatar_url,"undefined"!=typeof window&&localStorage.setItem("strands_auth_user",JSON.stringify(k.value))),I.value&&(I.value.avatar=o.avatar_url);try{await m()}catch(t){}return W.value="Avatar updated successfully",void(A.value&&c("profile-updated",A.value))}throw new Error("Authentication expired. Please sign in again.")}catch(t){throw new Error("Authentication expired. Please sign in again.")}}const l=await o.json();k.value&&(k.value.avatar=l.avatar_url,"undefined"!=typeof window&&localStorage.setItem("strands_auth_user",JSON.stringify(k.value))),I.value&&(I.value.avatar=l.avatar_url);try{await m()}catch(t){}W.value="Avatar updated successfully",A.value&&c("profile-updated",A.value)}catch(a){const e=a instanceof Error?a.message:"Failed to upload avatar";O.value=e,c("error",e)}finally{M.value=!1}},ze=async()=>{try{await m(),await x(),W.value="MFA settings updated successfully",c("mfa-toggle",A.value?.mfaEnabled||!1)}catch(e){}},Re=e=>{W.value="Settings updated successfully"},Te=()=>{ye()},Le=()=>{const e=A.value;e&&($.firstName=e.firstName||"",$.lastName=e.lastName||"",$.email=e.email),ke(),R.value=!1,T.value=!1,te.current="",te.new="",te.confirm="",ee.newEmail="",ee.password="",ee.errors.newEmail="",ee.errors.password=""},Ue=async()=>{z.value=!0,ke();try{await b(),W.value="Signed out successfully"}catch(e){const t=e instanceof Error?e.message:"Failed to sign out";O.value=t,c("error",t),z.value=!1}};return e.onMounted(async()=>{if(A.value&&w.value)try{const e=await h();J.canChange=e.can_change,J.cooldownEnd=e.cooldown_end?new Date(e.cooldown_end):null,J.daysRemaining=e.days_remaining||0}catch(e){}}),(t,a)=>{return e.openBlock(),e.createElementBlock("div",cn,[e.createElementVNode("div",{class:e.normalizeClass(t.inModal?"profile-container-modal profile-container-width":"profile-container profile-container-width profile-max-width profile-centered profile-animated")},[e.createElementVNode("div",{class:e.normalizeClass(t.inModal?"profile-content-modal profile-content-layout":"profile-content profile-card-modern profile-content-layout")},[a[32]||(a[32]=e.createElementVNode("div",{class:"profile-header"},[e.createElementVNode("h1",{class:"profile-title"},"Profile Settings"),e.createElementVNode("p",{class:"profile-subtitle"},"Manage your account information and preferences")],-1)),e.createElementVNode("div",dn,[e.createElementVNode("div",un,[e.createElementVNode("div",mn,[e.createVNode(e.unref(De),{size:140,value:A.value?.xp||0,max:A.value?.next_level_xp||1,level:A.value?.level||0,"level-label":`LEVEL ${A.value?.level||0}`,"user-settings":A.value?.settings,class:"profile-progress-ring"},null,8,["value","max","level","level-label","user-settings"]),A.value?.avatar?(e.openBlock(),e.createElementBlock("div",pn,[e.createElementVNode("img",{src:A.value.avatar,alt:`${A.value.firstName} ${A.value.lastName}`,class:"profile-avatar-image"},null,8,vn)])):(e.openBlock(),e.createElementBlock("div",fn,e.toDisplayString((o=A.value?.firstName,l=A.value?.lastName,o||l?`${o?.[0]||""}${l?.[0]||""}`.toUpperCase():"U")),1)),e.createElementVNode("button",{class:"profile-upload-overlay",onClick:xe,disabled:M.value},[M.value?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:24,variant:"dark"})):(e.openBlock(),e.createElementBlock("svg",gn,a[16]||(a[16]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 13a3 3 0 11-6 0 3 3 0 616 0z"},null,-1)])))],8,hn)])]),e.createElementVNode("input",{ref_key:"avatarFileInput",ref:_,type:"file",accept:"image/*",class:"profile-file-input",onChange:Ie},null,544)]),e.createElementVNode("form",{onSubmit:e.withModifiers(Ne,["prevent"]),class:"profile-form"},[e.createElementVNode("div",yn,[e.createElementVNode("div",kn,[a[19]||(a[19]=e.createElementVNode("h3",{class:"profile-section-title"},"Personal Information",-1)),e.createVNode(e.unref(U),{id:"firstName",modelValue:$.firstName,"onUpdate:modelValue":a[0]||(a[0]=e=>$.firstName=e),type:"text",label:"First name",placeholder:"Enter your first name",autocomplete:"given-name",disabled:S.value||B.value,error:oe.firstName},null,8,["modelValue","disabled","error"]),e.createVNode(e.unref(U),{id:"lastName",modelValue:$.lastName,"onUpdate:modelValue":a[1]||(a[1]=e=>$.lastName=e),type:"text",label:"Last name",placeholder:"Enter your last name",autocomplete:"family-name",disabled:S.value||B.value,error:oe.lastName},null,8,["modelValue","disabled","error"]),e.createElementVNode("div",En,[e.createElementVNode("div",Nn,[e.createElementVNode("div",null,[a[17]||(a[17]=e.createElementVNode("h4",{class:"profile-setting-title"},"Email Address",-1)),e.createElementVNode("p",wn,e.toDisplayString(A.value?.email),1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[2]||(a[2]=e=>T.value=!T.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.value?"Cancel":"Change"),1)]),_:1})]),e.createVNode(e.Transition,{name:"expand"},{default:e.withCtx(()=>[T.value?(e.openBlock(),e.createElementBlock("div",Vn,[e.createVNode(e.unref(U),{modelValue:ee.newEmail,"onUpdate:modelValue":a[3]||(a[3]=e=>ee.newEmail=e),type:"email",placeholder:"New email address",autocomplete:"email",error:ee.errors.newEmail},null,8,["modelValue","error"]),e.createVNode(e.unref(U),{modelValue:ee.password,"onUpdate:modelValue":a[4]||(a[4]=e=>ee.password=e),type:"password",placeholder:"Current password",autocomplete:"current-password",error:ee.errors.password},null,8,["modelValue","error"]),e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:Ve,disabled:!ne.value||D.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(D.value?"Updating...":"Update Email"),1)]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",bn,[e.createElementVNode("div",Cn,[e.createElementVNode("div",null,[a[18]||(a[18]=e.createElementVNode("h4",{class:"profile-field-title"},"Username",-1)),e.createElementVNode("p",xn,e.toDisplayString(A.value?.username||"No username set"),1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",disabled:!J.canChange||P.value,onClick:be},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(J.cooldownEnd?`Wait ${J.daysRemaining} day${1===J.daysRemaining?"":"s"} to change`:L.value?"Cancel":A.value?.username?"Change":"Set Username"),1)]),_:1},8,["disabled"])]),e.createVNode(e.Transition,{name:"expand"},{default:e.withCtx(()=>[L.value?(e.openBlock(),e.createElementBlock("div",In,[e.createVNode(e.unref(U),{modelValue:ae.username,"onUpdate:modelValue":a[5]||(a[5]=e=>ae.username=e),type:"text",placeholder:"Enter username (3-30 characters)",autocomplete:"username",error:ae.errors.username},null,8,["modelValue","error"]),K.message?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["profile-availability-message",K.available?"success":"error"])},e.toDisplayString(K.message),3)):e.createCommentVNode("",!0),e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:Ce,disabled:!ie.value||P.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(P.value?"Updating...":"Update Username"),1)]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),_:1})])]),e.createElementVNode("div",Bn,[a[25]||(a[25]=e.createElementVNode("h3",{class:"profile-section-title"},"Security Settings",-1)),e.createElementVNode("div",An,[e.createElementVNode("div",Sn,[e.createElementVNode("div",null,[a[20]||(a[20]=e.createElementVNode("h4",{class:"profile-field-title"},"Password",-1)),e.createElementVNode("p",Mn,"Last updated "+e.toDisplayString(se.value),1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[6]||(a[6]=e=>R.value=!R.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(R.value?"Cancel":"Change"),1)]),_:1})]),e.createVNode(e.Transition,{name:"expand"},{default:e.withCtx(()=>[R.value?(e.openBlock(),e.createElementBlock("div",zn,[e.createVNode(e.unref(U),{modelValue:te.current,"onUpdate:modelValue":a[7]||(a[7]=e=>te.current=e),type:"password",placeholder:"Current password",autocomplete:"current-password"},null,8,["modelValue"]),e.createVNode(e.unref(U),{modelValue:te.new,"onUpdate:modelValue":a[8]||(a[8]=e=>te.new=e),type:"password",placeholder:"New password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(e.unref(U),{modelValue:te.confirm,"onUpdate:modelValue":a[9]||(a[9]=e=>te.confirm=e),type:"password",placeholder:"Confirm new password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:we,disabled:!re.value},{default:e.withCtx(()=>a[21]||(a[21]=[e.createTextVNode(" Update Password ",-1)])),_:1,__:[21]},8,["disabled"])])):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",Rn,[e.createElementVNode("div",Tn,[e.createElementVNode("div",Dn,[e.createElementVNode("div",null,[a[22]||(a[22]=e.createElementVNode("h4",{class:"profile-field-title"},"Two-Factor Authentication",-1)),e.createElementVNode("p",Ln,e.toDisplayString(A.value?.mfaEnabled?"Enabled":"Add extra security to your account"),1)]),de.value.length>0?(e.openBlock(),e.createElementBlock("div",Un,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(de.value,t=>(e.openBlock(),e.createElementBlock("div",{key:t.type,class:e.normalizeClass(["mfa-device-chip",t.color])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon),{size:12})),e.createElementVNode("span",null,e.toDisplayString(t.count),1),e.createElementVNode("span",null,e.toDisplayString(t.label),1)],2))),128))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(N),{variant:A.value?.mfaEnabled?"secondary":"primary",size:"sm",onClick:a[10]||(a[10]=e=>X.value=!0),class:"profile-toggle-container"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A.value?.mfaEnabled?"Manage":"Setup"),1)]),_:1},8,["variant"])])]),e.createElementVNode("div",jn,[e.createElementVNode("div",Pn,[e.createElementVNode("div",null,[a[23]||(a[23]=e.createElementVNode("h4",{class:"profile-field-title"},"Active Sessions",-1)),e.createElementVNode("p",Xn,[Z.value?(e.openBlock(),e.createElementBlock("span",Yn,"Loading sessions...")):(e.openBlock(),e.createElementBlock("span",Hn,e.toDisplayString(q.value.length)+" active device"+e.toDisplayString(1!==q.value.length?"s":""),1))])]),e.createElementVNode("div",Fn,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[11]||(a[11]=e=>Q.value=!0),disabled:Z.value},{default:e.withCtx(()=>a[24]||(a[24]=[e.createTextVNode(" Manage ",-1)])),_:1,__:[24]},8,["disabled"])])])])])]),le.value?(e.openBlock(),e.createElementBlock("div",Wn,[e.createVNode(e.unref(N),{type:"submit",variant:"primary",disabled:S.value,loading:S.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.value?"Saving changes...":"Save changes"),1)]),_:1},8,["disabled","loading"]),e.createVNode(e.unref(N),{variant:"secondary",onClick:Le,disabled:S.value},{default:e.withCtx(()=>a[26]||(a[26]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[26]},8,["disabled"])])):e.createCommentVNode("",!0)],32),W.value?(e.openBlock(),e.createElementBlock("div",On,[e.createElementVNode("div",qn,[e.createElementVNode("div",Zn,[a[27]||(a[27]=e.createElementVNode("svg",{class:"profile-help-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"})],-1)),e.createElementVNode("p",Gn,e.toDisplayString(W.value),1)])])])):e.createCommentVNode("",!0),O.value?(e.openBlock(),e.createElementBlock("div",Qn,[e.createElementVNode("div",Jn,[e.createElementVNode("div",Kn,[a[28]||(a[28]=e.createElementVNode("svg",{class:"profile-help-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"})],-1)),e.createElementVNode("p",_n,e.toDisplayString(O.value),1)])])])):e.createCommentVNode("",!0),e.createVNode(Oe,{config:s.config},{default:e.withCtx(()=>[e.createElementVNode("div",$n,[e.createVNode(e.unref(N),{color:"red",onClick:Ue,disabled:z.value,class:"profile-sign-out-button"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(z.value?"Signing out...":"Sign Out"),1)]),_:1},8,["disabled"]),e.createVNode(e.unref(N),{variant:"secondary",onClick:a[12]||(a[12]=e=>Y.value=!0),class:"profile-sign-out-button"},{default:e.withCtx(()=>a[29]||(a[29]=[e.createElementVNode("svg",{class:"profile-action-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])),_:1,__:[29]})]),e.unref(d)()?(e.openBlock(),e.createElementBlock("div",ei,[e.createElementVNode("p",ti,[a[31]||(a[31]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(d)()}`},{default:e.withCtx(()=>a[30]||(a[30]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[30]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])],2),e.createVNode(mr,{show:X.value,onClose:a[13]||(a[13]=e=>X.value=!1),onMfaUpdated:ze},null,8,["show"]),Y.value?(e.openBlock(),e.createBlock(wr,{key:0,onClose:a[14]||(a[14]=e=>Y.value=!1),onSettingsUpdated:Re})):e.createCommentVNode("",!0),e.createVNode(sn,{modelValue:Q.value,"onUpdate:modelValue":a[15]||(a[15]=e=>Q.value=e),onSessionsUpdated:Te},null,8,["modelValue"]),H.value?(e.openBlock(),e.createElementBlock("div",ai,[e.createElementVNode("div",oi,[e.createElementVNode("div",li,[e.createElementVNode("div",{class:"profile-avatar-modal-header"},[a[34]||(a[34]=e.createElementVNode("h2",{class:"profile-modal-title"},"Edit Avatar",-1)),e.createElementVNode("button",{onClick:Se,class:"profile-avatar-modal-close"},a[33]||(a[33]=[e.createElementVNode("svg",{class:"profile-avatar-modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))]),e.createVNode(e.unref(Ee),{uploading:M.value,"preselected-file":F.value,onUpload:Be,onError:Ae},null,8,["uploading","preselected-file"])])])])):e.createCommentVNode("",!0)],2)]);var o,l}}}),[["__scopeId","data-v-c0a279c1"]]),ni={class:"accui-component-scope"},ii={class:"accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up"},si={class:"accui-mt-8 accui-text-center"},ci={key:0,class:"accui-mt-6 accui-text-center"},di={class:"accui-text-neutral-400 accui-text-sm"},ui=d(e.defineComponent({__name:"StrandsPasswordReset",props:{config:{}},emits:["success","error","back-to-signin"],setup(a,{emit:o}){const l=a,r=o,{getSupportEmail:n}=t.useStrandsConfig(l.config),i=e.ref(!1),s=e.ref(""),c=e.ref(!1),d=e.reactive({email:""}),m=async()=>{i.value=!0,s.value="";try{await new Promise(e=>setTimeout(e,1e3)),c.value=!0,r("success",d.email)}catch(e){s.value="Failed to send password reset email. Please try again.",r("error",s.value)}finally{i.value=!1}};return(t,a)=>(e.openBlock(),e.createElementBlock("div",ni,[e.createElementVNode("div",ii,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[a[6]||(a[6]=e.createElementVNode("div",{class:"accui-text-center accui-mb-8"},[e.createElementVNode("h1",{class:"accui-text-3xl accui-font-bold accui-text-gradient accui-mb-2"},"Reset password"),e.createElementVNode("p",{class:"accui-text-neutral-600"},"Enter your email address and we'll send you a link to reset your password")],-1)),e.createElementVNode("form",{onSubmit:e.withModifiers(m,["prevent"]),class:"accui-space-y-6"},[e.createVNode(e.unref(U),{id:"email",modelValue:d.email,"onUpdate:modelValue":a[0]||(a[0]=e=>d.email=e),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",disabled:i.value||c.value,error:s.value?"Email address not found":void 0},null,8,["modelValue","disabled","error"]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:i.value||!d.email.trim()||c.value,loading:i.value,"loading-text":"Sending link..."},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.value?"Link sent!":"Send reset link"),1)]),_:1},8,["disabled","loading"])],32),c.value?(e.openBlock(),e.createBlock(e.unref(u),{key:0,variant:"success",message:`Check your email - We've sent a password reset link to ${d.email}`,class:"accui-mt-6 accui-animate-fade-in"},null,8,["message"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createBlock(e.unref(u),{key:1,variant:"error",message:s.value,class:"accui-mt-6 accui-animate-fade-in",dismissible:"",onDismiss:a[1]||(a[1]=e=>s.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createElementVNode("div",si,[e.createVNode(e.unref(j),{onClick:a[2]||(a[2]=e=>t.$emit("back-to-signin")),class:"accui-inline-flex accui-items-center accui-gap-2"},{default:e.withCtx(()=>a[3]||(a[3]=[e.createElementVNode("svg",{class:"accui-w-4 accui-h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),e.createTextVNode(" Back to sign in ",-1)])),_:1,__:[3]})]),e.createVNode(Oe,{config:l.config},{default:e.withCtx(()=>[e.unref(n)()?(e.openBlock(),e.createElementBlock("div",ci,[e.createElementVNode("p",di,[a[5]||(a[5]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(n)()}`},{default:e.withCtx(()=>a[4]||(a[4]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[4]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1,__:[6]})])]))}}),[["__scopeId","data-v-0943ff6b"]]),mi={key:0,class:"animate-fade-in"},pi={key:1,class:"animate-fade-in"},vi={key:2,class:"animate-fade-in"},fi=d(e.defineComponent({__name:"SignedIn",props:{showFallback:{type:Boolean,default:!0},invert:{type:Boolean,default:!1}},emits:["sign-in-required"],setup(t,{emit:o}){const l=t,r=l.invert??!1,n=e.computed(()=>(d.value&&!r||!d.value&&r)&&!f.value),i=e.computed(()=>(d.value&&r||!d.value&&!r)&&l.showFallback&&!f.value),s=o,c=e.ref(!1),{isAuthenticated:d,isInitializing:u,isSigningIn:m,user:p,signOut:v}=a.useStrandsAuth(),f=e.computed(()=>u.value&&!m.value||!c.value);e.onMounted(()=>{setTimeout(()=>{c.value=!0},100)});const h=()=>{s("sign-in-required")};return(t,a)=>n.value?(e.openBlock(),e.createElementBlock("div",mi,[e.renderSlot(t.$slots,"default",{user:e.unref(p),signOut:e.unref(v),invert:e.unref(r)},void 0,!0)])):i.value?(e.openBlock(),e.createElementBlock("div",pi,[e.renderSlot(t.$slots,"fallback",{signIn:h},()=>[e.createElementVNode("div",{class:"signed-in-fallback"},[a[0]||(a[0]=e.createStaticVNode('<div class="signed-in-icon-container" data-v-669fa3b4><svg class="signed-in-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-669fa3b4><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" data-v-669fa3b4></path></svg></div><h3 class="signed-in-title" data-v-669fa3b4>Sign in required</h3><p class="signed-in-subtitle" data-v-669fa3b4>You need to be signed in to access this content.</p>',3)),e.createElementVNode("button",{onClick:h,class:"signed-in-button"}," Sign in ")])],!0)])):f.value?(e.openBlock(),e.createElementBlock("div",vi,[e.renderSlot(t.$slots,"loading",{},()=>[e.createVNode(e.unref(G),{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})],!0)])):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-669fa3b4"]]),hi={key:0,class:"animate-fade-in"},gi={key:1,class:"animate-fade-in"},yi={class:"signed-out-fallback"},ki={class:"signed-out-subtitle"},Ei={key:2,class:"animate-fade-in"},Ni=d(e.defineComponent({__name:"SignedOut",props:{showFallback:{type:Boolean,default:!0}},emits:["sign-in-clicked","sign-up-clicked"],setup(t,{emit:o}){const l=o,{isAuthenticated:r,isLoading:n,user:i,signOut:s}=a.useStrandsAuth(),c=()=>{l("sign-in-clicked")},d=()=>{l("sign-up-clicked")};return(t,a)=>e.unref(r)||e.unref(n)?t.showFallback&&e.unref(r)&&!e.unref(n)?(e.openBlock(),e.createElementBlock("div",gi,[e.renderSlot(t.$slots,"fallback",{user:e.unref(i),signOut:e.unref(s)},()=>[e.createElementVNode("div",yi,[a[1]||(a[1]=e.createElementVNode("div",{class:"signed-out-icon-container"},[e.createElementVNode("svg",{class:"signed-out-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})])],-1)),a[2]||(a[2]=e.createElementVNode("h3",{class:"signed-out-title"},"Already signed in",-1)),e.createElementVNode("p",ki,"You're currently signed in as "+e.toDisplayString(e.unref(i)?.email)+".",1),e.createElementVNode("button",{onClick:a[0]||(a[0]=(...t)=>e.unref(s)&&e.unref(s)(...t)),class:"signed-out-button"}," Sign out ")])],!0)])):e.unref(n)?(e.openBlock(),e.createElementBlock("div",Ei,[e.renderSlot(t.$slots,"loading",{},()=>[e.createVNode(e.unref(G),{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})],!0)])):e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",hi,[e.renderSlot(t.$slots,"default",{signIn:c,signUp:d},void 0,!0)]))}}),[["__scopeId","data-v-9b5919fc"]]),wi={class:"accui-component-scope"},Vi=e.defineComponent({__name:"StrandsLogo",props:{class:{default:""}},setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("div",wi,[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 22571 9413",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(t.class),role:"img","aria-label":"Strands Services Logo"},a[0]||(a[0]=[e.createElementVNode("g",null,[e.createElementVNode("text",{x:"3798.06",y:"7203.65",style:{"font-family":"'CourierNewPS-BoldMT', 'Courier New', monospace","font-weight":"700","font-size":"5295.12px",fill:"currentColor"}}," trands ")],-1),e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M2370.75,8047.43c-172.831,0 -349.758,-28.381 -520.19,-86.274c-362.325,-122.988 -626.515,-354.842 -724.651,-635.835c-94.464,-270.121 -70.883,-674.383 204.038,-923.606c318.411,-288.759 731.429,-170.714 1168.59,-45.891c186.811,53.375 395.367,112.962 625.668,152.923c-0.424,-11.579 -0.988,-21.181 -1.412,-28.806c-14.12,-228.042 -92.911,-347.217 -223.524,-544.618c-83.592,-126.376 -178.48,-269.696 -272.097,-466.956c-74.978,-158.006 -138.096,-327.308 -188.082,-502.822c-408.216,-4.095 -801.606,-101.666 -1135.83,-290.313c-874.468,-493.079 -1531.48,-1711.66 -1068.34,-2543.62c195.283,-350.747 599.829,-639.082 1030.5,-734.394c321.095,-71.166 618.185,-23.298 836.343,134.707c228.183,165.207 391.131,461.309 425.16,772.66c29.371,267.862 -42.784,514.825 -203.049,695.423c-247.669,279.016 -675.371,371.786 -1089.66,236.232l175.515,-536.852c194.295,63.541 396.497,32.9 491.809,-74.414c68.059,-76.673 72.436,-183.14 64.105,-259.107c-18.356,-167.889 -111.973,-316.576 -195,-376.728c-85.569,-61.988 -221.547,-76.532 -382.8,-40.666c-271.533,60.152 -542.641,248.375 -659.133,457.778c-126.942,228.042 -103.784,560.433 63.541,912.027c171.137,359.643 465.968,682.997 788.616,865.007c216.181,121.999 473.593,192.882 744.843,211.097c-19.91,-172.69 -27.111,-345.522 -20.475,-513.977c23.864,-608.865 225.642,-1098.41 567.917,-1378.28c338.604,-276.898 921.487,-426.997 1334.79,-159.7c453.119,293.136 534.452,990.394 350.041,1468.36c-164.077,425.444 -583.307,786.075 -1150.24,989.406c-130.048,46.738 -262.355,83.451 -395.226,110.28c35.583,109.432 77.379,215.192 125.105,315.446c76.673,161.253 156.17,281.558 233.126,397.767c150.521,227.619 292.854,442.67 316.152,821.517c1.694,28.522 3.248,65.659 3.53,109.431c88.534,-1.694 179.61,-7.766 273.086,-19.344c234.819,-28.947 692.521,-185.215 954.251,-408.635l202.34,499.143c-286.222,212.469 -804.15,435.189 -1087.4,470.066c-144.592,17.791 -283.817,24.851 -417.395,24.004c-75.684,261.648 -223.665,536.852 -507.34,722.674c-206.438,135.272 -466.251,204.885 -736.795,204.885l-0.424,0Zm-542.076,-1260.51c-52.669,-0 -93.617,9.743 -119.316,33.182c-79.073,71.731 -79.78,234.114 -50.127,318.977c38.69,110.702 185.116,223.523 373.057,287.347c271.956,92.346 572.576,70.319 765.882,-56.34c114.374,-74.837 189.353,-185.258 238.209,-303.303c-263.484,-45.185 -495.48,-111.409 -693.022,-167.89c-205.873,-58.881 -391.978,-111.973 -514.683,-111.973Zm1872.91,-4019.61c-153.346,0 -336.768,62.27 -471.193,172.126c-212.227,173.538 -343.828,524.708 -361.055,963.283c-5.93,149.393 1.271,302.88 20.192,455.802c110.421,-21.463 219.994,-51.257 327.167,-89.805c406.239,-145.721 710.531,-392.966 814.032,-661.11c98.842,-256.141 62.835,-666.052 -130.047,-790.875c-51.963,-33.606 -121.717,-49.421 -199.096,-49.421Z",style:{fill:"currentColor","fill-rule":"nonzero"}})],-1)]),2))]))}),bi=e.defineComponent({__name:"StrandsConfigProvider",props:{config:{}},setup(a){const o=a;return e.onMounted(()=>{t.provideStrandsConfig(o.config)}),t.provideStrandsConfig(o.config),(t,a)=>e.renderSlot(t.$slots,"default")}}),Ci=["fill","stroke","viewBox","aria-hidden"],xi=e.defineComponent({__name:"SvgIcon",props:{name:{},class:{default:""},size:{default:"md"},fill:{default:"none"},stroke:{default:"currentColor"},ariaHidden:{type:Boolean,default:!0}},setup(t){const a=t,o={xs:"w-3 h-3",sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6",xl:"w-8 h-8"},l=e.computed(()=>`${o[a.size]} ${a.class}`),r=e.computed(()=>"0 0 24 24"),n={eye:()=>e.h("g",[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})]),"eye-slash":()=>e.h("g",[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})]),camera:()=>e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0710.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"}),"chevron-left":()=>e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"}),loading:()=>e.h("g",[e.h("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.h("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"})]),"check-circle":()=>e.h("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"}),"x-circle":()=>e.h("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"}),lock:()=>e.h("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"}),user:()=>e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"}),google:()=>e.h("g",{fill:"currentColor"},[e.h("path",{fill:"#4285F4",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"}),e.h("path",{fill:"#34A853",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"}),e.h("path",{fill:"#FBBC05",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"}),e.h("path",{fill:"#EA4335",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"})]),github:()=>e.h("path",{"fill-rule":"evenodd",d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z","clip-rule":"evenodd"})},i=e.computed(()=>{const t=n[a.name];return t?t():e.h("path",{d:""})});return(t,a)=>(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(l.value),fill:t.fill,stroke:t.stroke,viewBox:r.value,"aria-hidden":t.ariaHidden},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value)))],10,Ci))}}),Ii=["onKeydown","aria-expanded"],Bi={class:"user-button-content"},Ai={key:0,class:"user-info"},Si={class:"user-name"},Mi={class:"avatar-container"},zi={class:"avatar-wrapper"},Ri=["src","alt"],Ti={key:1,class:"avatar-default"},Di=["onKeydown"],Li={class:"dropdown-content"},Ui={class:"dropdown-header"},ji={key:0,class:"dropdown-avatar-container"},Pi=["src","alt"],Xi={key:1,class:"dropdown-avatar-default"},Yi={class:"dropdown-user-details"},Hi={class:"dropdown-user-name"},Fi={class:"dropdown-user-email"},Wi={class:"dropdown-menu-items"},Oi=d(e.defineComponent({__name:"StrandsUserButton",props:{hideUser:{type:Boolean,default:!1},variant:{default:"minimal"},redirectUrl:{default:"/"},user:{default:void 0},menuAlign:{default:"right"},menuVerticalAlign:{default:"bottom"}},emits:["profile-updated","signed-out","signed-in"],setup(t,{emit:o}){const l=t,r=o,{currentUser:n,signOut:i}=a.useStrandsAuth(),s=e.ref(!1),c=e.ref(!1),d=e.ref(!1),u=e.ref(),m=e.ref(),p=e.computed(()=>l.user||n.value),v=e.computed(()=>p.value?p.value.username?p.value.username:p.value.firstName&&p.value.lastName?`${p.value.firstName} ${p.value.lastName}`:p.value.firstName?p.value.firstName:p.value.email||"User":"User"),f=()=>{s.value=!s.value,s.value&&e.nextTick(()=>{m.value?.focus()})},h=()=>{s.value=!0,e.nextTick(()=>{m.value?.focus()})},g=()=>{s.value=!1},y=()=>{},k=()=>{},E=()=>{m.value?.focus()},N=()=>{},w=()=>{c.value=!0,g()},V=()=>{c.value=!1},b=()=>{r("profile-updated")},C=e=>{},x=()=>{d.value=!0},I=()=>{d.value=!1},B=()=>{I(),r("signed-in")},A=e=>{},S=async()=>{try{await i(),g(),r("signed-out")}catch(e){}},M=e=>{u.value&&!u.value.contains(e.target)&&g()};return e.onMounted(()=>{document.addEventListener("click",M)}),e.onUnmounted(()=>{document.removeEventListener("click",M)}),(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:"accui-component-scope",ref_key:"containerRef",ref:u},[e.createVNode(e.unref(fi),{invert:!!l.user},{fallback:e.withCtx(()=>[e.createElementVNode("button",{onClick:x,class:"sign-in-button","aria-label":"Sign in"},a[8]||(a[8]=[e.createElementVNode("svg",{class:"sign-in-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})],-1),e.createElementVNode("span",null,"Sign In",-1)])),e.createVNode(e.unref(Ye),{open:d.value,onClose:I,"fullscreen-on-mobile":!1},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"modal-header"},[a[10]||(a[10]=e.createElementVNode("h2",{class:"modal-title"},"Sign In",-1)),e.createElementVNode("button",{onClick:I,class:"modal-close-button","aria-label":"Close sign in"},a[9]||(a[9]=[e.createElementVNode("svg",{class:"modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.createVNode(e.unref($t),{onSignedIn:B,onError:A,"redirect-url":t.redirectUrl,"in-modal":""},null,8,["redirect-url"])]),_:1},8,["open"])]),default:e.withCtx(()=>[e.createElementVNode("button",{onClick:f,onKeydown:[e.withKeys(f,["enter"]),e.withKeys(e.withModifiers(f,["prevent"]),["space"]),e.withKeys(g,["escape"]),e.withKeys(e.withModifiers(h,["prevent"]),["arrow-down"])],class:"user-button","aria-haspopup":"true","aria-expanded":s.value,"aria-label":"User menu"},[e.createElementVNode("div",Bi,[t.hideUser?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ai,[e.createElementVNode("div",Si,e.toDisplayString(v.value),1)])),e.createElementVNode("div",Mi,[e.createElementVNode("div",zi,[p.value?.avatar?(e.openBlock(),e.createElementBlock("img",{key:0,src:p.value.avatar,alt:`${p.value.firstName||p.value.email}'s avatar`,class:"avatar-image"},null,8,Ri)):(e.openBlock(),e.createElementBlock("div",Ti,a[0]||(a[0]=[e.createElementVNode("svg",{class:"avatar-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z","clip-rule":"evenodd"})],-1)])))])]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["dropdown-arrow",{"dropdown-arrow-open":s.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a[1]||(a[1]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)]),2))]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dropdown-menu",`dropdown-menu-align-${l.menuAlign}`,`dropdown-menu-vertical-${l.menuVerticalAlign}`]),role:"menu","aria-orientation":"vertical",onKeydown:[e.withKeys(g,["escape"]),e.withKeys(e.withModifiers(k,["prevent"]),["arrow-up"]),e.withKeys(e.withModifiers(y,["prevent"]),["arrow-down"]),e.withKeys(e.withModifiers(E,["prevent"]),["home"]),e.withKeys(e.withModifiers(N,["prevent"]),["end"])]},[e.createElementVNode("div",Li,[e.createElementVNode("div",Ui,[p.value?(e.openBlock(),e.createElementBlock("div",ji,[e.createVNode(e.unref(De),{size:80,value:p.value.xp,max:p.value.next_level_xp,level:p.value.level,"level-label":`LEVEL ${p.value.level}`,"user-settings":p.value.settings,class:"level-progress-overlay"},null,8,["value","max","level","level-label","user-settings"]),p.value?.avatar?(e.openBlock(),e.createElementBlock("img",{key:0,src:p.value.avatar,alt:`${p.value.firstName||p.value.email}'s avatar`,class:"dropdown-avatar-image"},null,8,Pi)):(e.openBlock(),e.createElementBlock("div",Xi,a[2]||(a[2]=[e.createElementVNode("svg",{class:"dropdown-avatar-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z","clip-rule":"evenodd"})],-1)])))])):e.createCommentVNode("",!0),e.createElementVNode("div",Yi,[e.createElementVNode("div",Hi,e.toDisplayString(v.value),1),e.createElementVNode("div",Fi,e.toDisplayString(p.value?.email),1)])]),a[5]||(a[5]=e.createElementVNode("div",{class:"dropdown-divider"},null,-1)),e.createElementVNode("div",Wi,[e.createElementVNode("button",{ref_key:"profileButtonRef",ref:m,onClick:w,class:"dropdown-menu-item",role:"menuitem",tabindex:"-1"},a[3]||(a[3]=[e.createElementVNode("svg",{class:"dropdown-menu-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})],-1),e.createTextVNode(" Profile ",-1)]),512),e.createElementVNode("button",{onClick:S,class:"dropdown-menu-item dropdown-menu-item-danger",role:"menuitem",tabindex:"-1"},a[4]||(a[4]=[e.createElementVNode("svg",{class:"dropdown-menu-icon dropdown-menu-icon-danger",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})],-1),e.createTextVNode(" Sign Out ",-1)]))])])],42,Di)):e.createCommentVNode("",!0)]),_:1})],40,Ii),e.createVNode(e.unref(Ye),{open:c.value,onClose:V,"fullscreen-on-mobile":!1},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"modal-header"},[a[7]||(a[7]=e.createElementVNode("h2",{class:"modal-title"},"User Profile",-1)),e.createElementVNode("button",{onClick:V,class:"modal-close-button","aria-label":"Close profile"},a[6]||(a[6]=[e.createElementVNode("svg",{class:"modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.createVNode(e.unref(ri),{user:p.value,onProfileUpdated:b,onError:C,"in-modal":""},null,8,["user"])]),_:1},8,["open"])]),_:1},8,["invert"])],512))}}),[["__scopeId","data-v-9e187d2c"]]),qi={class:"accui-p-2 accui-border-b"},Zi=d(e.defineComponent({__name:"VirtualList",props:{items:{},itemHeight:{},containerHeight:{},itemKey:{type:[String,Function],default:"id"},overscan:{default:5}},setup(t,{expose:a}){const o=t,l=e.ref(),r=e.ref(0),n=e.computed(()=>{const e=Math.floor(r.value/o.itemHeight),t=Math.min(e+Math.ceil(o.containerHeight/o.itemHeight),o.items.length-1);return{start:Math.max(0,e-o.overscan),end:Math.min(o.items.length-1,t+o.overscan)}}),i=e.computed(()=>{const{start:e,end:t}=n.value,a=[];for(let l=e;l<=t;l++)a.push({index:l,data:o.items[l],top:l*o.itemHeight});return a}),s=e.computed(()=>o.items.length*o.itemHeight),c=e=>"function"==typeof o.itemKey?o.itemKey(e):e[o.itemKey]||e.id||Math.random();let d=null;const u=e=>{d&&clearTimeout(d),d=setTimeout(()=>{const t=e.target;r.value=t.scrollTop},16)};e.onUnmounted(()=>{d&&clearTimeout(d)});return a({scrollToItem:(e,t="start")=>{if(!l.value)return;let a=e*o.itemHeight;"center"===t?a-=o.containerHeight/2-o.itemHeight/2:"end"===t&&(a-=o.containerHeight-o.itemHeight),l.value.scrollTop=Math.max(0,a)}}),(t,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"scrollContainer",ref:l,style:e.normalizeStyle({height:t.containerHeight+"px",overflowY:"auto"}),onScroll:u,class:"accui-virtual-list"},[e.createElementVNode("div",{style:e.normalizeStyle({height:s.value+"px",position:"relative"})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,a=>(e.openBlock(),e.createElementBlock("div",{key:c(a.data),style:e.normalizeStyle({position:"absolute",top:a.top+"px",left:0,right:0,height:t.itemHeight+"px"})},[e.renderSlot(t.$slots,"default",{item:a.data,index:a.index},()=>[e.createElementVNode("div",qi,e.toDisplayString(JSON.stringify(a.data)),1)],!0)],4))),128))],4)],36))}}),[["__scopeId","data-v-e8bb0414"]]),Gi={class:"accui-component-scope"},Qi={class:"mfa-setup-header"},Ji={class:"mfa-setup-status-container"},Ki={class:"mfa-setup-content"},_i={key:0,class:"mfa-setup-loading"},$i={key:1,class:"mfa-setup-sections"},es={key:0,class:"mfa-setup-status-alert"},ts={class:"mfa-setup-status-content"},as={class:"mfa-setup-status-icon"},os={class:"mfa-setup-methods-grid"},ls={class:"mfa-setup-method-content"},rs={class:"mfa-setup-method-icon mfa-setup-totp-icon"},ns={class:"mfa-setup-method-content"},is={class:"mfa-setup-method-icon mfa-setup-email-icon"},ss={key:1,class:"mfa-setup-manage-section"},cs={class:"mfa-setup-manage-header"},ds={class:"mfa-setup-manage-description"},us={class:"mfa-setup-footer"},ms=d(e.defineComponent({__name:"StrandsMFASetup",props:{show:{type:Boolean,default:!1}},emits:["success","error","close"],setup(t,{emit:a}){const o={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},l={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0c1.1 0 2 .9 2 2l0 12c0 1.1-.9 2-2 2l-16 0c-1.1 0-2-.9-2-2l0-12c0-1.1.9-2 2-2z"}),e.h("polyline",{points:"22,6 12,13 2,6"})])}},r={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})])}},n={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),e.h("circle",{cx:"12",cy:"12",r:"3"})])}},i=t,s=a,{mfaEnabled:c,loading:d,activeMfaDevices:u,fetchMfaDevices:m}=Qe(),p=e.ref(!1),v=e.ref(!1),f=e.ref(!1),h=e.ref(!1);e.watch(()=>i.show,async e=>{e&&await m()}),e.onMounted(async()=>{i.show&&await m()});const g=()=>{s("close")},y=()=>{p.value=!0},k=()=>{v.value=!0},E=()=>{h.value=!0},w=async()=>{p.value=!1,v.value=!1,f.value=!1,await m(),s("success")},V=async()=>{await m()};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Gi,[e.createVNode(Ye,{open:t.show,onClose:g,"card-class":"mfa-setup-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",Qi,[a[4]||(a[4]=e.createElementVNode("div",null,[e.createElementVNode("h2",{class:"mfa-setup-title"},"Two-Factor Authentication"),e.createElementVNode("p",{class:"mfa-setup-subtitle"},"Add extra security to your account")],-1)),e.createElementVNode("div",Ji,[e.createElementVNode("span",{class:e.normalizeClass(["mfa-setup-status-badge",e.unref(c)||e.unref(u).length>0?"mfa-setup-status-enabled":"mfa-setup-status-disabled"])},e.toDisplayString(e.unref(c)||e.unref(u).length>0?"Enabled":"Not Enabled"),3)])])]),footer:e.withCtx(()=>[e.createElementVNode("div",us,[e.createVNode(e.unref(N),{variant:"secondary",onClick:g,disabled:e.unref(d)},{default:e.withCtx(()=>a[14]||(a[14]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[14]},8,["disabled"])])]),default:e.withCtx(()=>[e.createElementVNode("div",Ki,[e.unref(d)?(e.openBlock(),e.createElementBlock("div",_i,[e.createVNode(e.unref(G),{size:32}),a[5]||(a[5]=e.createElementVNode("span",{class:"mfa-setup-loading-text"},"Loading MFA settings...",-1))])):(e.openBlock(),e.createElementBlock("div",$i,[e.unref(c)||e.unref(u).length>0?(e.openBlock(),e.createElementBlock("div",es,[e.createElementVNode("div",ts,[e.createElementVNode("div",as,[e.createVNode(r,{size:20,class:"mfa-setup-shield-icon"})]),a[6]||(a[6]=e.createElementVNode("div",null,[e.createElementVNode("span",{class:"mfa-setup-status-title"},"2FA is currently enabled on your account"),e.createElementVNode("p",{class:"mfa-setup-status-description"},"Your account has additional security protection")],-1))])])):e.createCommentVNode("",!0),e.createElementVNode("div",null,[a[11]||(a[11]=e.createElementVNode("h3",{class:"mfa-setup-methods-title"},"Choose Your Authentication Method",-1)),e.createElementVNode("div",os,[e.createElementVNode("div",{class:"mfa-setup-method-card",onClick:y},[e.createElementVNode("div",ls,[e.createElementVNode("div",rs,[e.createVNode(o,{size:28,class:"mfa-setup-icon-svg"})]),a[8]||(a[8]=e.createElementVNode("div",{class:"mfa-setup-method-info"},[e.createElementVNode("h4",{class:"mfa-setup-method-title"},"Authenticator App"),e.createElementVNode("p",{class:"mfa-setup-method-description"},"Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes")],-1)),e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(y,["stop"]),disabled:e.unref(d),class:"mfa-setup-method-button"},{default:e.withCtx(()=>a[7]||(a[7]=[e.createTextVNode(" Setup Authenticator ",-1)])),_:1,__:[7]},8,["disabled"])])]),e.createElementVNode("div",{class:"mfa-setup-method-card",onClick:k},[e.createElementVNode("div",ns,[e.createElementVNode("div",is,[e.createVNode(l,{size:28,class:"mfa-setup-icon-svg"})]),a[10]||(a[10]=e.createElementVNode("div",{class:"mfa-setup-method-info"},[e.createElementVNode("h4",{class:"mfa-setup-method-title"},"Email Verification"),e.createElementVNode("p",{class:"mfa-setup-method-description"},"Receive verification codes directly in your email inbox for easy access")],-1)),e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(k,["stop"]),disabled:e.unref(d),class:"mfa-setup-method-button"},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Setup Email 2FA ",-1)])),_:1,__:[9]},8,["disabled"])])])])]),e.unref(u).length>0?(e.openBlock(),e.createElementBlock("div",ss,[e.createElementVNode("div",cs,[e.createElementVNode("div",null,[a[12]||(a[12]=e.createElementVNode("h3",{class:"mfa-setup-manage-title"},"Manage Existing Methods",-1)),e.createElementVNode("p",ds,e.toDisplayString(e.unref(u).length)+" device(s) currently active",1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"md",onClick:E,disabled:e.unref(d)},{default:e.withCtx(()=>[e.createVNode(n,{size:16,class:"mfa-setup-manage-icon"}),a[13]||(a[13]=e.createTextVNode(" Manage Devices ",-1))]),_:1,__:[13]},8,["disabled"])])])):e.createCommentVNode("",!0)]))])]),_:1},8,["open"]),p.value?(e.openBlock(),e.createBlock(Ro,{key:0,show:p.value,onClose:a[0]||(a[0]=e=>p.value=!1),onSuccess:w},null,8,["show"])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createBlock(Fo,{key:1,show:v.value,onClose:a[1]||(a[1]=e=>v.value=!1),onSuccess:w},null,8,["show"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createBlock(pl,{key:2,show:f.value,onClose:a[2]||(a[2]=e=>f.value=!1),onSuccess:w},null,8,["show"])):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createBlock(mr,{key:3,show:h.value,onClose:a[3]||(a[3]=e=>h.value=!1),onMfaUpdated:V},null,8,["show"])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-745d3b53"]]),ps={StrandsUiAlert:u,StrandsUiButton:N,StrandsUiCard:C,StrandsUiInput:U,StrandsUiLink:j,StrandsUiTabs:F,StrandsUiLoader:G},vs={install(e,t={}){const{prefix:a=""}=t;Object.entries(ps).forEach(([t,o])=>{const l=a?`${a}${t}`:t;e.component(l,o)})}};function fs(){const{currentSession:e,refreshToken:t,getAuthHeaders:o}=a.useStrandsAuth(),l=async(a,l={})=>{const{autoRefresh:r=!0,requireAuth:n=!0,baseURL:i,...s}=l;if(n&&!e.value?.accessToken)throw new Error("User is not authenticated");let c=a;i&&"string"==typeof a&&!a.startsWith("http")&&(c=new URL(a,i).toString());const d=new Headers(s.headers);if(e.value?.accessToken)try{const e=o();Object.entries(e).forEach(([e,t])=>{d.set(e,t)})}catch(p){if(n)throw p}const u={...s,headers:d};let m=await fetch(c,u);if(401===m.status&&r&&e.value?.refreshToken)try{if(await t()&&e.value?.accessToken){const e=o();Object.entries(e).forEach(([e,t])=>{d.set(e,t)}),m=await fetch(c,{...u,headers:d})}}catch(v){}return m};return{authenticatedFetch:l,get:(e,t)=>l(e,{...t,method:"GET"}),post:(e,t,a)=>{const o=new Headers(a?.headers);return t&&"object"==typeof t&&!o.has("Content-Type")&&o.set("Content-Type","application/json"),l(e,{...a,method:"POST",headers:o,body:"object"==typeof t?JSON.stringify(t):t})},put:(e,t,a)=>{const o=new Headers(a?.headers);return t&&"object"==typeof t&&!o.has("Content-Type")&&o.set("Content-Type","application/json"),l(e,{...a,method:"PUT",headers:o,body:"object"==typeof t?JSON.stringify(t):t})},delete:(e,t)=>l(e,{...t,method:"DELETE"}),patch:(e,t,a)=>{const o=new Headers(a?.headers);return t&&"object"==typeof t&&!o.has("Content-Type")&&o.set("Content-Type","application/json"),l(e,{...a,method:"PATCH",headers:o,body:"object"==typeof t?JSON.stringify(t):t})}}}const hs={get:async(e,t)=>{const{get:a}=fs();return a(e,t)},post:async(e,t,a)=>{const{post:o}=fs();return o(e,t,a)},put:async(e,t,a)=>{const{put:o}=fs();return o(e,t,a)},delete:async(e,t)=>{const{delete:a}=fs();return a(e,t)},patch:async(e,t,a)=>{const{patch:o}=fs();return o(e,t,a)}};exports.provideStrandsConfig=t.provideStrandsConfig,exports.setStrandsConfig=t.setStrandsConfig,exports.useStrandsConfig=t.useStrandsConfig,exports.useStrandsAuth=a.useStrandsAuth,exports.$authFetch=hs,exports.IconGithub=oa,exports.IconGoogle=ta,exports.SignedIn=fi,exports.SignedOut=Ni,exports.StrandsAuth=$t,exports.StrandsBackupCodesModal=Ml,exports.StrandsCompleteSignUp=uo,exports.StrandsConfigProvider=bi,exports.StrandsConfirmModal=Ul,exports.StrandsEmailMfaSetupModal=Fo,exports.StrandsHardwareKeySetupModal=pl,exports.StrandsLogo=Vi,exports.StrandsMFASetup=ms,exports.StrandsMfaModal=mr,exports.StrandsMfaVerification=zt,exports.StrandsPasswordReset=ui,exports.StrandsSecuredFooter=Oe,exports.StrandsSessionsModal=sn,exports.StrandsSettingsModal=wr,exports.StrandsSignIn=wa,exports.StrandsSignUp=Ga,exports.StrandsTotpSetupModal=Ro,exports.StrandsUIPlugin=vs,exports.StrandsUiAlert=u,exports.StrandsUiAvatarEditor=Ee,exports.StrandsUiButton=N,exports.StrandsUiCard=C,exports.StrandsUiInput=U,exports.StrandsUiLevelProgress=De,exports.StrandsUiLink=j,exports.StrandsUiLoader=G,exports.StrandsUiModal=Ye,exports.StrandsUiTabs=F,exports.StrandsUiToggle=J,exports.StrandsUserButton=Oi,exports.StrandsUserProfile=ri,exports.SvgIcon=xi,exports.UiAlert=u,exports.UiAvatarEditor=Ee,exports.UiAvatarEditorSimple=Ee,exports.UiButton=N,exports.UiCard=C,exports.UiInput=U,exports.UiLevelProgress=De,exports.UiLink=j,exports.UiLoader=G,exports.UiModal=Ye,exports.UiTabs=F,exports.UiToggle=J,exports.VirtualList=Zi,exports.debounce=(e,t)=>{let a;return(...o)=>{clearTimeout(a),a=setTimeout(()=>e(...o),t)}},exports.formatDate=e=>("string"==typeof e?new Date(e):e).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),exports.getInitials=(e,t)=>(e?.charAt(0).toUpperCase()||"")+(t?.charAt(0).toUpperCase()||"")||"U",exports.isRequired=e=>e.trim().length>0,exports.isValidEmail=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),exports.isValidName=e=>e.trim().length>=2,exports.passwordsMatch=(e,t)=>e===t,exports.preloadCriticalComponents=()=>{},exports.useAuthenticatedFetch=fs,exports.useOAuthProviders=Rt,exports.validatePassword=e=>{const t=[];let a=0;e.length<8?t.push("Password must be at least 8 characters long"):a+=1,/[A-Z]/.test(e)?a+=1:t.push("Password must contain at least one uppercase letter"),/[a-z]/.test(e)?a+=1:t.push("Password must contain at least one lowercase letter"),/\d/.test(e)?a+=1:t.push("Password must contain at least one number"),/[!@#$%^&*(),.?":{}|<>]/.test(e)?a+=1:t.push("Password must contain at least one special character");let o="weak";return a>=4?o="strong":a>=3&&(o="medium"),{isValid:0===t.length,strength:o,errors:t}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");;/* empty css */const t=require("./useStrandsConfig-Z9_36OcV.cjs"),a=require("./useStrandsAuth-CTlaiFqK.cjs"),o={class:"accui-component-scope"},l={class:"alert-content"},r={class:"alert-icon-container"},n={class:"alert-main-icon",fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true"},i=["d"],s={class:"alert-text-container"},c={key:0,class:"alert-dismiss-container"},d=(e,t)=>{const a=e.__vccOpts||e;for(const[o,l]of t)a[o]=l;return a},u=d(e.defineComponent({__name:"UiAlert",props:{variant:{default:"info"},title:{},message:{},dismissible:{type:Boolean,default:!1}},emits:["dismiss"],setup(t){const a=t,d=e.computed(()=>({success:"alert alert-success",error:"alert alert-error",warning:"alert alert-warning",info:"alert alert-info"}[a.variant])),u=e.computed(()=>"alert-title"),m=e.computed(()=>"alert-message"),p=e.computed(()=>({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",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",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",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"}[a.variant]));return(t,a)=>(e.openBlock(),e.createElementBlock("div",o,[e.createElementVNode("div",{class:e.normalizeClass(d.value),role:"alert"},[e.createElementVNode("div",l,[e.createElementVNode("div",r,[(e.openBlock(),e.createElementBlock("svg",n,[e.createElementVNode("path",{"fill-rule":"evenodd",d:p.value,"clip-rule":"evenodd"},null,8,i)]))]),e.createElementVNode("div",s,[t.title?(e.openBlock(),e.createElementBlock("h3",{key:0,class:e.normalizeClass(u.value)},e.toDisplayString(t.title),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(m.value)},[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)],!0)],2)]),t.dismissible?(e.openBlock(),e.createElementBlock("div",c,[e.createElementVNode("button",{type:"button",class:"alert-dismiss-button",onClick:a[0]||(a[0]=e=>t.$emit("dismiss"))},a[1]||(a[1]=[e.createElementVNode("span",{class:"sr-only"},"Dismiss",-1),e.createElementVNode("svg",{class:"alert-dismiss-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)]))])):e.createCommentVNode("",!0)])],2)]))}}),[["__scopeId","data-v-a396f50a"]]),m={red:"#ef4444",blue:"#3b82f6",green:"#10b981",yellow:"#eab308",purple:"#8b5cf6",pink:"#ec4899",gray:"#6b7280",indigo:"#6366f1",orange:"#f97316",teal:"#14b8a6",cyan:"#06b6d4",emerald:"#10b981",lime:"#84cc16",amber:"#f59e0b",rose:"#f43f5e",slate:"#64748b",zinc:"#71717a",neutral:"#737373",stone:"#78716c",strands:"#EA00A8",primary:"#EA00A8"},p=(e,t,a)=>{let o=.2126729*Math.pow(e/255,2.4)+.7151522*Math.pow(t/255,2.4)+.072175*Math.pow(a/255,2.4);return o<.022&&(o+=Math.pow(.022-o,1.414)),o},v=(e,t)=>{let a=0;return t>e?(a=1.14*(Math.pow(t,.56)-Math.pow(e,.57)),100*a<15?0:100*a-15):(a=1.14*(Math.pow(t,.65)-Math.pow(e,.62)),100*a>-15?0:100*a+15)},f=e=>{const t=e.includes("-")?e.split("-")[0]:e.includes("/")?e.split("/")[0]:e,a=(e=>{const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null})(m[t]||"#6b7280")||{r:107,g:114,b:128};let o={...a};if(e.includes("-")){const t=parseInt(e.split("-")[1],10);if(!isNaN(t)&&500!==t)if(t<500){const e=(500-t)/400*.45;o.r=Math.round(a.r+(255-a.r)*e),o.g=Math.round(a.g+(255-a.g)*e),o.b=Math.round(a.b+(255-a.b)*e)}else{const e=(t-500)/450*.45;o.r=Math.round(a.r*(1-e)),o.g=Math.round(a.g*(1-e)),o.b=Math.round(a.b*(1-e))}}if(e.includes("/")){const t=parseInt(e.split("/")[1],10);if(!isNaN(t)){const e=t/100,a={r:255,g:255,b:255};o.r=Math.round(o.r*e+a.r*(1-e)),o.g=Math.round(o.g*e+a.g*(1-e)),o.b=Math.round(o.b*e+a.b*(1-e))}}return o},h=(e,t=400,a=16)=>{const o=f(e),l=p(o.r,o.g,o.b),r=p(0,0,0),n=p(255,255,255),i=Math.abs(v(r,l)),s=Math.abs(v(n,l)),c=((e=400,t=16)=>e>=700?t>=24?30:t>=18?35:40:e>=600?t>=24?35:t>=18?40:45:e>=500?t>=24?40:t>=18?45:50:t>=24?45:t>=18?50:60)(t,a);return i>=c&&s>=c?i>s?"#000000":"#ffffff":i>=c?"#000000":s>=c?"#ffffff":i>s?"#000000":"#ffffff"},g=e=>{if(e.includes("-")){const[t,a]=e.split("-"),o=m[t];if(o&&a){const e=parseInt(a,10);if(500===e)return o;if(e<500){const t=Math.round((500-e)/400*45),a=Math.min(Math.max(t,3),45);return`color-mix(in srgb, ${o} ${100-a}%, white ${a}%)`}{const t=Math.round((e-500)/450*45),a=Math.min(Math.max(t,3),45);return`color-mix(in srgb, ${o} ${100-a}%, black ${a}%)`}}}if(e.includes("/")){const[t,a]=e.split("/"),o=m[t]||t,l=parseInt(a,10);return`light-dark(hsl(from ${o} h s l / ${l}%), color-mix(in srgb, ${m[t]||t} ${l}%, transparent))`}return m[e]||`var(--color-${e}, ${e})`},y=["type","disabled"],k={key:0,class:"button-loading-content"},E={key:1,class:"button-content"},N=d(e.defineComponent({__name:"UiButton",props:{variant:{default:"primary"},size:{default:"md"},type:{default:"button"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingText:{},fullWidth:{type:Boolean,default:!1},color:{},fontWeight:{default:600}},emits:["click"],setup(t){const a=t,o=e=>`hsl(from ${g(e)} h s 95% / 0.8)`,l=e.computed(()=>["ui-button",`ui-button-${a.variant}`,`ui-button-${a.size}`,a.fullWidth?"ui-button-full-width":"",a.color?"ui-button-custom-color":""].filter(Boolean).join(" ")),r=e.computed(()=>{if(!a.color)return{};const{fontSize:e}=(e=>{switch(e){case"sm":default:return{fontSize:14};case"lg":return{fontSize:16}}})(a.size),t=a.fontWeight||600,l=g(a.color),r=(n=a.color,`color-mix(in srgb, ${g(n)} 85%, black 15%)`);var n;const i=o(a.color),s=h(a.color||"gray",t,e),c=((e,t,a)=>{const o=e.includes("-")?`${e.split("-")[0]}-${Math.min(parseInt(e.split("-")[1])+100,950)}`:`${e}-600`;return h(o,t,a)})(a.color||"gray",t,e),d=`${a.color}-100`,u=h(d,t,e),m={"--button-color":l,"--button-hover-color":r,"--button-light-color":i,"--button-contrast-color":s,"--button-hover-contrast-color":c,"--button-light-contrast-color":u,fontWeight:t};switch(a.variant){case"primary":return{...m,backgroundColor:l,color:s,boxShadow:"0 1px 2px 0 rgb(0 0 0 / 0.05)","--button-text-color":s};case"secondary":return{...m,backgroundColor:i,color:u,border:`1px solid ${o(a.color)}`,"--button-text-color":u};case"ghost":return{...m,color:l,backgroundColor:"transparent","--button-text-color":l};case"outline":return{...m,borderColor:l,color:l,backgroundColor:"transparent",borderWidth:"1px",borderStyle:"solid","--button-text-color":l};default:return{...m,backgroundColor:l,color:s,"--button-text-color":s}}});return(t,a)=>(e.openBlock(),e.createElementBlock("button",{type:t.type,disabled:t.disabled||t.loading,class:e.normalizeClass(l.value),style:e.normalizeStyle(r.value),onClick:a[0]||(a[0]=e=>t.$emit("click",e))},[t.loading?(e.openBlock(),e.createElementBlock("span",k,[a[1]||(a[1]=e.createElementVNode("svg",{class:"button-loading-icon",fill:"none",viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"button-loading-track",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.createElementVNode("path",{class:"button-loading-spinner",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"})],-1)),e.createElementVNode("span",null,e.toDisplayString(t.loadingText||"Loading..."),1)])):(e.openBlock(),e.createElementBlock("span",E,[e.renderSlot(t.$slots,"icon",{},void 0,!0),e.renderSlot(t.$slots,"default",{},void 0,!0)]))],14,y))}}),[["__scopeId","data-v-7f9ac656"]]),w={key:0,class:"ui-card-header"},V={class:"ui-card-content"},b={key:1,class:"ui-card-footer"},C=d(e.defineComponent({__name:"UiCard",props:{variant:{default:"default"},padding:{default:"md"},shadow:{default:"sm"}},setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["ui-card",[`ui-card-${t.variant}`,`ui-card-padding-${t.padding}`,`ui-card-shadow-${t.shadow}`]])},[t.$slots.header?(e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(t.$slots,"header",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",V,[e.renderSlot(t.$slots,"default",{},void 0,!0)]),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",b,[e.renderSlot(t.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)],2))}),[["__scopeId","data-v-c8b506ee"]]),x={class:"accui-component-scope"},I={class:"input-container"},B=["for"],A={key:0,class:"input-required"},S={class:"input-wrapper"},M=["id","type","value","placeholder","disabled","required","autocomplete","name","inputmode","maxlength"],z={key:0,class:"input-toggle-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},R={key:1,class:"input-toggle-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},T={key:1,class:"input-icon-container"},D={key:1,class:"input-error-text"},L={key:2,class:"input-help-text"},U=d(e.defineComponent({__name:"UiInput",props:{modelValue:{},type:{default:"text"},label:{},placeholder:{},disabled:{type:Boolean},required:{type:Boolean},error:{},helpText:{},autocomplete:{},name:{},inputmode:{},maxlength:{},size:{default:"md"}},emits:["update:modelValue","blur","focus","keydown"],setup(t,{emit:a}){const o=t,l=a,r=e.useSlots(),n=e.ref(!1),i=e.ref(`input-${Math.random().toString(36).substr(2,9)}`),s=e.computed(()=>"password"===o.type?n.value?"text":"password":o.type),c=e.computed(()=>{const e=o.error?"input-error":"",t=r.icon?"input-with-icon":"",a="password"===o.type?"input-with-password":"";return["input-field",{sm:"input-size-sm",md:"input-size-md",lg:"input-size-lg"}[o.size],e,t,a].filter(Boolean).join(" ")}),d=e=>{const t=e.target;l("update:modelValue",t.value)},u=()=>{n.value=!n.value};return(t,a)=>(e.openBlock(),e.createElementBlock("div",x,[e.createElementVNode("div",I,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"input-label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",A,"*")):e.createCommentVNode("",!0)],8,B)):e.createCommentVNode("",!0),e.createElementVNode("div",S,[e.createElementVNode("input",{id:i.value,type:s.value,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,required:t.required,autocomplete:t.autocomplete,name:t.name,inputmode:t.inputmode,maxlength:t.maxlength,class:e.normalizeClass(c.value),onInput:d,onBlur:a[0]||(a[0]=e=>t.$emit("blur",e)),onFocus:a[1]||(a[1]=e=>t.$emit("focus",e)),onKeydown:a[2]||(a[2]=e=>t.$emit("keydown",e))},null,42,M),"password"===t.type?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"input-password-toggle",onClick:u},[n.value?(e.openBlock(),e.createElementBlock("svg",z,a[3]||(a[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1)]))):(e.openBlock(),e.createElementBlock("svg",R,a[4]||(a[4]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1)])))])):e.createCommentVNode("",!0),t.$slots.icon?(e.openBlock(),e.createElementBlock("div",T,[e.renderSlot(t.$slots,"icon",{},void 0,!0)])):e.createCommentVNode("",!0)]),t.error?(e.openBlock(),e.createElementBlock("p",D,e.toDisplayString("string"==typeof t.error?t.error:t.error.message),1)):t.helpText?(e.openBlock(),e.createElementBlock("p",L,e.toDisplayString(t.helpText),1)):e.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-e2c3cc83"]]),j=d(e.defineComponent({__name:"UiLink",props:{href:{},to:{},variant:{default:"primary"},size:{default:"md"},disabled:{type:Boolean,default:!1},external:{type:Boolean,default:!1},color:{}},emits:["click"],setup(t,{emit:a}){const o=t,l=a,r=e.computed(()=>o.to?"router-link":o.href?"a":"button"),n=e.computed(()=>{const e={};return o.to?e.to=o.to:o.href?(e.href=o.href,o.external&&(e.target="_blank",e.rel="noopener noreferrer")):e.type="button",o.disabled&&(e.disabled=!0,e["aria-disabled"]=!0),e}),i=e.computed(()=>{if(!o.color)return{};const e=g(o.color);var t;const a={"--link-color":e,"--link-hover-color":(t=o.color,`color-mix(in srgb, ${g(t)} 85%, black 15%)`),color:e};return"underline"===o.variant?{...a,textDecorationColor:e}:a}),s=e=>{o.disabled||l("click",e)};return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({class:["ui-link",[`ui-link-${t.variant}`,`ui-link-${t.size}`,{"ui-link-disabled":t.disabled},{"ui-link-custom-color":t.color}]],style:i.value},n.value,{onClick:s}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},void 0,!0)]),_:3},16,["class","style"]))}}),[["__scopeId","data-v-878f97a6"]]),P={class:"tabs-container"},X={class:"tabs-wrapper"},Y={class:"tabs-list",role:"tablist"},H=["aria-selected","aria-controls","id","onClick"],F=d(e.defineComponent({__name:"UiTabs",props:{modelValue:{},tabs:{}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,l=a,r=e.ref([]),n=e.ref({width:"0px",left:"0px",opacity:"0"});let i=-1,s=!1;const c=async e=>{if(!r.value[e]||e===i)return;s=!0;const t=r.value[e],a=t.parentElement;if(!a)return;const o=t.getBoundingClientRect(),l=a.getBoundingClientRect(),c=o.left-l.left,d=o.width;if(-1===i)return n.value={width:`${d}px`,left:`${c}px`,opacity:"1"},i=e,void(s=!1);const u=r.value[i].getBoundingClientRect(),m=u.left-l.left,p=u.width,v=e>i,f=v?m:c,h=v?c+d-m:m+p-c;n.value={width:`${h}px`,left:`${f}px`,opacity:"1"},setTimeout(()=>{n.value={width:`${d}px`,left:`${c}px`,opacity:"1"},i=e,setTimeout(()=>{s=!1},150)},120)};e.onMounted(async()=>{await e.nextTick();const t=o.tabs.findIndex(e=>e.value===o.modelValue);-1!==t&&c(t)}),e.computed(()=>o.tabs.findIndex(e=>e.value===o.modelValue));const{modelValue:d}=e.toRefs(o);return e.watch(d,async()=>{await e.nextTick();const t=o.tabs.findIndex(e=>e.value===o.modelValue);-1!==t&&c(t)}),(t,a)=>(e.openBlock(),e.createElementBlock("div",P,[e.createElementVNode("div",X,[e.createElementVNode("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(t,a)=>(e.openBlock(),e.createElementBlock("button",{key:t.value,ref_for:!0,ref_key:"tabButtons",ref:r,class:e.normalizeClass(["tab-button",{"tab-button-active":e.unref(d)===t.value}]),"aria-selected":e.unref(d)===t.value,"aria-controls":`tabpanel-${t.value}`,id:`tab-${t.value}`,role:"tab",onClick:o=>(async(t,a)=>{s||(l("update:modelValue",t),await e.nextTick(),c(a))})(t.value,a)},e.toDisplayString(t.label),11,H))),128)),e.createElementVNode("div",{class:"tab-underline",style:e.normalizeStyle(n.value)},null,4)])])]))}}),[["__scopeId","data-v-c14b9ef2"]]),W={class:"loader-icon"},O=["width","height"],q=["d","stroke","stroke-width"],Z=["d","stroke","stroke-width"],G=d(e.defineComponent({__name:"UiLoader",props:{size:{default:80},variant:{default:"auto"},text:{},centered:{type:Boolean,default:!0},weight:{default:30}},setup(t){const a='<svg width="302" height="438" viewBox="0 0 302 438" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M71.5001 96C71.5001 96 132 106 137 61.5C142 17 117.5 3.50005 94.5001 1.50003C71.5001 -0.499996 16.0001 8.5 2.00014 72.5C-6.5 130.5 71.5003 227.5 165 218C258.5 208.5 280.758 148.5 283.5 121C286.242 93.5 277.5 61.5 238.5 61.5C153 61.5 150.501 185 170.5 235C190.5 285 199 279 213 314C227.001 349 217.296 411.458 183 427C129.456 450.65 92 426 78.5 407.5C65 389 68.0003 357 94.5001 344.5C121 332 212.41 393.5 301.5 361" stroke="black"/>\n</svg>\n'.replace(/<svg[^>]*>/,"").replace(/<\/svg>/,"").trim(),o=a.match(/d="([^"]*)"/)?.[1]||"",l=t,r=e.computed(()=>"light"===l.variant?"#EA00A810":(l.variant,"#ffffff10")),n=e.computed(()=>"light"===l.variant?"#EA00A8":(l.variant,"#ffffff"));return(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["loader-container",{"loader-centered":t.centered}])},[e.createElementVNode("div",W,[(e.openBlock(),e.createElementBlock("svg",{width:t.size,height:t.size,viewBox:"0 0 500 500"},[e.createElementVNode("path",{d:e.unref(o),fill:"none",stroke:r.value,"stroke-width":t.weight,"stroke-linecap":"round","stroke-linejoin":"round",transform:"translate(81, 13) scale(1.0)"},null,8,q),e.createElementVNode("path",{d:e.unref(o),fill:"none",stroke:n.value,"stroke-width":t.weight,"stroke-linecap":"round","stroke-linejoin":"round",class:"loader-animated-path",transform:"translate(81, 13) scale(1.0)"},null,8,Z)],8,O))]),t.text?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(["loader-text",{[`loader-text-${t.variant}`]:"auto"!==t.variant}])},e.toDisplayString(t.text),3)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-1e521ef1"]]),Q=["aria-pressed","aria-labelledby"],J=d(e.defineComponent({__name:"UiToggle",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,l=a,r=e.computed(()=>["ui-toggle",{"ui-toggle--on":o.modelValue,"ui-toggle--off":!o.modelValue,"ui-toggle--disabled":o.disabled}]),n=e.computed(()=>[{"ui-toggle-thumb--on":o.modelValue,"ui-toggle-thumb--off":!o.modelValue}]),i=()=>{o.disabled||l("update:modelValue",!o.modelValue)};return(t,a)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(r.value),"aria-pressed":t.modelValue,"aria-labelledby":t.id?`${t.id}-label`:void 0,onClick:i},[e.createElementVNode("span",{class:e.normalizeClass(["ui-toggle-thumb",n.value])},null,2)],10,Q))}}),[["__scopeId","data-v-f9c38813"]]),K={class:"accui-component-scope"},_={class:"avatar-editor-simple"},$={key:1,class:"editor-container"},ee={class:"editor-main"},te={class:"canvas-container"},ae=["width","height"],oe={class:"crop-overlay"},le={class:"crop-backdrop"},re={class:"crop-svg"},ne={id:"backdrop-mask"},ie=["width","height"],se=["cx","cy","r"],ce=["width","height"],de={class:"crop-svg"},ue=["cx","cy","r"],me={class:"controls"},pe={class:"zoom-control"},ve=["min","max"],fe={class:"action-buttons"},he=["disabled"],ge={class:"preview-section"},ye={class:"preview-container"},ke=["width","height"],Ee=e.defineComponent({__name:"UiAvatarEditor",props:{size:{default:300},previewSize:{default:100},maxFileSize:{default:5242880},uploading:{type:Boolean,default:!1},preselectedFile:{}},emits:["upload","error"],setup(t,{emit:a}){const o=t,l=a,r=e.ref(),n=e.ref(),i=e.ref(),s=e.ref(""),c=e.ref(),d=e.ref(o.size),u=e.ref(o.previewSize),m=e.ref(o.size/2.5),p=e.reactive({x:0,y:0}),v=e.ref(1),f=e.ref(.1),h=e.ref(3),g=e.ref(!1),y=e.ref(!1),k=e.ref(!1),E=e.reactive({x:0,y:0,imageX:0,imageY:0});e.onMounted(()=>{if(n.value){const e=n.value.getContext("2d");e&&(e.fillStyle="#f9fafb",e.fillRect(0,0,d.value,d.value))}});const N=()=>{r.value?.click()},w=e=>{const t=e.target,a=t.files?.[0];a&&b(a)},V=e=>{e.preventDefault();const t=e.dataTransfer?.files[0];t&&b(t)},b=e=>{if(!e.type.startsWith("image/"))return void l("error","Please select an image file");if(e.size>o.maxFileSize)return void l("error",`File size must be less than ${Math.round(o.maxFileSize/1024/1024)}MB`);const t=new FileReader;t.onload=e=>{const t=e.target?.result;C(t)},t.readAsDataURL(e)},C=t=>{s.value=t;const a=new Image;a.onload=()=>{c.value=a,y.value=!0;const t=Math.max(2*m.value/a.width,2*m.value/a.height),o=t;f.value=t,h.value=Math.max(1,t);const l=a.width*o,r=a.height*o;p.x=(d.value-l)/2,p.y=(d.value-r)/2,v.value=o,A(),e.nextTick(()=>{y.value=!1}),e.nextTick(()=>{x()})},a.src=t},x=()=>{if(!c.value||!n.value)return;const e=n.value.getContext("2d");if(!e)return;e.fillStyle="#f9fafb",e.fillRect(0,0,d.value,d.value);const t=c.value,a=t.width*v.value,o=t.height*v.value;e.drawImage(t,p.x,p.y,a,o),I()},I=()=>{if(!c.value||!i.value||!n.value)return;const e=i.value.getContext("2d");if(!e)return;e.fillStyle="#ffffff",e.fillRect(0,0,u.value,u.value),e.save(),e.beginPath(),e.arc(u.value/2,u.value/2,u.value/2,0,2*Math.PI),e.clip();const t=d.value/2-m.value,a=d.value/2-m.value,o=2*m.value;e.drawImage(n.value,t,a,o,o,0,0,u.value,u.value),e.restore()},B=e=>{c.value&&(g.value=!0,E.x=e.clientX,E.y=e.clientY,E.imageX=p.x,E.imageY=p.y,document.addEventListener("mousemove",S),document.addEventListener("mouseup",M))},A=()=>{if(!c.value)return;const e=c.value,t=e.width*v.value,a=e.height*v.value,o=d.value/2-m.value,l=d.value/2-m.value,r=d.value/2+m.value-t,n=o,i=d.value/2+m.value-a,s=l;p.x=Math.min(n,Math.max(r,p.x)),p.y=Math.min(s,Math.max(i,p.y))},S=e=>{if(!g.value)return;const t=e.clientX-E.x,a=e.clientY-E.y;p.x=E.imageX+t,p.y=E.imageY+a,A(),x()},M=()=>{g.value=!1,document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",M)},z=e=>{e.preventDefault();const t=e.deltaY>0?-.05:.05,a=Math.max(f.value,Math.min(h.value,v.value+t));if(a!==v.value&&c.value){k.value=!0;const e=c.value,t=d.value/2,o=e.width*v.value,l=e.height*v.value,r=e.width*a,n=e.height*a,i=p.x+o/2-t,s=p.y+l/2-t,u=a/v.value,m=i*u,f=s*u;p.x=t+m-r/2,p.y=t+f-n/2,v.value=a,A(),x(),setTimeout(()=>{k.value=!1},16)}},R=()=>{if(!c.value)return;const t=c.value;y.value=!0;const a=Math.max(2*m.value/t.width,2*m.value/t.height),o=a;f.value=a,h.value=Math.max(1,a);const l=t.width*o,r=t.height*o;p.x=(d.value-l)/2,p.y=(d.value-r)/2,v.value=o,A(),e.nextTick(()=>{y.value=!1}),x()},T=async()=>{if(!c.value||!n.value)return;const e=document.createElement("canvas");e.width=256,e.height=256;const t=e.getContext("2d");if(!t)return;t.fillStyle="#ffffff",t.fillRect(0,0,256,256),t.save(),t.beginPath(),t.arc(128,128,128,0,2*Math.PI),t.clip();const a=d.value/2-m.value,o=d.value/2-m.value,r=2*m.value;t.drawImage(n.value,a,o,r,r,0,0,256,256),t.restore(),e.toBlob(e=>{if(e){const t=new File([e],"avatar.jpg",{type:"image/jpeg"});l("upload",t)}},"image/jpeg",.9)},D=()=>{N()};return e.watch(v,(e,t)=>{if(!y.value&&!k.value){if(e!==t&&c.value&&t>0&&1!==t){const a=c.value,o=d.value/2,l=a.width*t,r=a.height*t,n=a.width*e,i=a.height*e,s=e/t,u=(p.x+l/2-o)*s,m=(p.y+r/2-o)*s;p.x=o+u-n/2,p.y=o+m-i/2}x()}}),e.watch(()=>o.preselectedFile,e=>{e&&b(e)},{immediate:!0}),(t,a)=>(e.openBlock(),e.createElementBlock("div",K,[e.createElementVNode("div",_,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",accept:"image/*",class:"hidden-input",onChange:w},null,544),s.value?(e.openBlock(),e.createElementBlock("div",$,[e.createElementVNode("div",ee,[e.createElementVNode("div",te,[e.createElementVNode("canvas",{ref_key:"canvas",ref:n,width:d.value,height:d.value,class:"canvas",onMousedown:B,onWheel:z},null,40,ae),e.createElementVNode("div",oe,[e.createElementVNode("div",le,[(e.openBlock(),e.createElementBlock("svg",re,[e.createElementVNode("defs",null,[e.createElementVNode("mask",ne,[e.createElementVNode("rect",{x:"0",y:"0",width:d.value,height:d.value,fill:"white"},null,8,ie),e.createElementVNode("circle",{cx:d.value/2,cy:d.value/2,r:m.value,fill:"black"},null,8,se)])]),e.createElementVNode("rect",{x:"0",y:"0",width:d.value,height:d.value,fill:"black",opacity:"0.5",mask:"url(#backdrop-mask)"},null,8,ce)]))]),(e.openBlock(),e.createElementBlock("svg",de,[e.createElementVNode("circle",{cx:d.value/2,cy:d.value/2,r:m.value,fill:"none",stroke:"white","stroke-width":"2",class:"crop-circle"},null,8,ue)]))])]),e.createElementVNode("div",me,[e.createElementVNode("div",pe,[e.createElementVNode("button",{onClick:a[2]||(a[2]=e=>{v.value=Math.max(f.value,v.value-.1),A(),x()}),class:"zoom-button"},a[7]||(a[7]=[e.createElementVNode("svg",{class:"zoom-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 12H4"})],-1)])),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":a[3]||(a[3]=e=>v.value=e),min:f.value,max:h.value,step:.01,class:"zoom-slider",onInput:a[4]||(a[4]=e=>{A(),x()})},null,40,ve),[[e.vModelText,v.value,void 0,{number:!0}]]),e.createElementVNode("button",{onClick:a[5]||(a[5]=e=>{v.value=Math.min(h.value,v.value+.1),A(),x()}),class:"zoom-button"},a[8]||(a[8]=[e.createElementVNode("svg",{class:"zoom-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)]))]),e.createElementVNode("div",fe,[e.createElementVNode("button",{onClick:R,class:"btn-secondary"}," Reset "),e.createElementVNode("button",{onClick:D,class:"btn-secondary"}," Change Photo "),e.createElementVNode("button",{onClick:T,disabled:t.uploading,class:"btn-primary"},e.toDisplayString(t.uploading?"Saving...":"Save Avatar"),9,he)])])]),e.createElementVNode("div",ge,[a[9]||(a[9]=e.createElementVNode("h3",{class:"preview-title"},"Preview",-1)),e.createElementVNode("div",ye,[e.createElementVNode("canvas",{ref_key:"previewCanvas",ref:i,width:u.value,height:u.value,class:"preview-canvas"},null,8,ke)]),a[10]||(a[10]=e.createElementVNode("p",{class:"preview-instructions"},[e.createTextVNode(" Drag image to reposition"),e.createElementVNode("br"),e.createTextVNode(" Scroll to zoom ")],-1))])])):(e.openBlock(),e.createElementBlock("div",{key:0,class:"upload-area",onClick:N,onDrop:V,onDragover:a[0]||(a[0]=e.withModifiers(()=>{},["prevent"])),onDragenter:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},a[6]||(a[6]=[e.createStaticVNode('<div class="upload-content"><svg class="upload-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><h3 class="upload-title">Upload your photo</h3><p class="upload-subtitle">Drag and drop or click to browse</p><div class="upload-formats"><span class="format-tag">JPG</span><span class="format-tag">PNG</span><span class="format-tag">GIF</span></div></div>',1)]),32))])]))}});class Ne{static audioContext=null;static getAudioContext(){try{return this.audioContext||(this.audioContext=new(window.AudioContext||window.webkitAudioContext)),"suspended"===this.audioContext.state&&this.audioContext.resume(),this.audioContext}catch(e){return null}}static playLevelUp(e,t){const a=e&&[10,25,50,100,150,200].includes(e);if(t){if(a&&!1===t.milestoneSounds)return;if(!a&&!1===t.levelUpSounds)return}a?this.playMilestoneLevelUp():this.playRegularLevelUp()}static playRegularLevelUp(){const e=this.getAudioContext();if(!e)return;const t=.8,a=e.currentTime;[523.25,659.25,783.99].forEach((o,l)=>{const r=e.createOscillator(),n=e.createGain();r.connect(n),n.connect(e.destination),r.type="sine",r.frequency.setValueAtTime(o,a),r.frequency.exponentialRampToValueAtTime(1.05*o,a+.1*t),r.frequency.exponentialRampToValueAtTime(1.02*o,a+t);const i=.05*l;n.gain.setValueAtTime(0,a),n.gain.linearRampToValueAtTime(.15,a+i+.02),n.gain.exponentialRampToValueAtTime(.01,a+i+t),r.start(a+i),r.stop(a+i+t)});const o=e.createOscillator(),l=e.createGain();o.connect(l),l.connect(e.destination),o.type="triangle",o.frequency.setValueAtTime(1046.5,a),l.gain.setValueAtTime(0,a),l.gain.linearRampToValueAtTime(.08,a+.01),l.gain.exponentialRampToValueAtTime(.001,a+.3),o.start(a),o.stop(a+.3)}static playMilestoneLevelUp(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime;[{time:0,frequencies:[523.25,659.25,783.99]},{time:.4,frequencies:[587.33,698.46,880]},{time:.8,frequencies:[622.25,783.99,987.77]},{time:1.2,frequencies:[523.25,659.25,783.99]}].forEach((a,o)=>{a.frequencies.forEach((o,l)=>{const r=e.createOscillator(),n=e.createGain();r.connect(n),n.connect(e.destination),r.type="sine",r.frequency.setValueAtTime(o,t+a.time),r.frequency.exponentialRampToValueAtTime(1.03*o,t+a.time+.05),r.frequency.exponentialRampToValueAtTime(1.01*o,t+a.time+.35);const i=.03*l;n.gain.setValueAtTime(0,t+a.time),n.gain.linearRampToValueAtTime(.12,t+a.time+i+.02),n.gain.exponentialRampToValueAtTime(.02,t+a.time+.35),n.gain.exponentialRampToValueAtTime(.001,t+a.time+.4),r.start(t+a.time+i),r.stop(t+a.time+.45)})});for(let o=0;o<8;o++){const a=t+.2+.15*o,l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="sine";const n=1568+800*Math.random();l.frequency.setValueAtTime(n,a),l.frequency.exponentialRampToValueAtTime(1.5*n,a+.1),r.gain.setValueAtTime(0,a),r.gain.linearRampToValueAtTime(.06,a+.01),r.gain.exponentialRampToValueAtTime(.001,a+.12),l.start(a),l.stop(a+.15)}const a=t+1.6;[1046.5,1318.5,1567.98].forEach((t,o)=>{const l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="triangle",l.frequency.setValueAtTime(t,a),l.frequency.exponentialRampToValueAtTime(1.02*t,a+.8);const n=.02*o;r.gain.setValueAtTime(0,a),r.gain.linearRampToValueAtTime(.15,a+n+.03),r.gain.exponentialRampToValueAtTime(.001,a+.9),l.start(a+n),l.stop(a+.95)})}static playSuccess(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime;[659.25,830.61].forEach((a,o)=>{const l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="sine",l.frequency.setValueAtTime(a,t);const n=.1*o;r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.2,t+n+.01),r.gain.exponentialRampToValueAtTime(.01,t+n+.15),l.start(t+n),l.stop(t+n+.15)})}static playError(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime,a=e.createOscillator(),o=e.createGain();a.connect(o),o.connect(e.destination),a.type="sawtooth",a.frequency.setValueAtTime(200,t),a.frequency.exponentialRampToValueAtTime(100,t+.3),o.gain.setValueAtTime(.15,t),o.gain.exponentialRampToValueAtTime(.01,t+.3),a.start(t),a.stop(t+.3)}static playClick(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime,a=e.createOscillator(),o=e.createGain();a.connect(o),o.connect(e.destination),a.type="sine",a.frequency.setValueAtTime(1e3,t),o.gain.setValueAtTime(.1,t),o.gain.exponentialRampToValueAtTime(.01,t+.03),a.start(t),a.stop(t+.03)}static playNotification(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime;[880,1174.66].forEach((a,o)=>{const l=e.createOscillator(),r=e.createGain();l.connect(r),r.connect(e.destination),l.type="sine",l.frequency.setValueAtTime(a,t);const n=.15*o;r.gain.setValueAtTime(0,t),r.gain.linearRampToValueAtTime(.12,t+n+.02),r.gain.exponentialRampToValueAtTime(.01,t+n+.4),l.start(t+n),l.stop(t+n+.4)})}static playXpGain(){const e=this.getAudioContext();if(!e)return;const t=e.currentTime,a=e.createOscillator(),o=e.createGain();a.connect(o),o.connect(e.destination),a.type="sine",a.frequency.setValueAtTime(440,t),a.frequency.exponentialRampToValueAtTime(880,t+.15),o.gain.setValueAtTime(0,t),o.gain.linearRampToValueAtTime(.15,t+.01),o.gain.exponentialRampToValueAtTime(.01,t+.2),a.start(t),a.stop(t+.2)}}const we={class:"level-progress-container"},Ve=["width","height","viewBox"],be={key:0},Ce=["r"],xe=["y"],Ie=["d","stroke-width"],Be=["d","stroke","stroke-width"],Ae=["d"],Se=["d","stroke","stroke-width"],Me={"font-size":"30","font-weight":"bold",fill:"var(--purple-100)",style:{"font-family":"'Montserrat', sans-serif","letter-spacing":"8px"}},ze={"xlink:href":"#labelTextArc",startOffset:"50%","text-anchor":"middle","alignment-baseline":"hanging","dominant-baseline":"hanging","text-length":"100%"},Re=["x1","y1","x2","y2"],Te=400,De=d(e.defineComponent({__name:"UiLevelProgress",props:{value:{},max:{},level:{},levelLabel:{},size:{},thickness:{},labelThickness:{},staticArcAngle:{},gapAngle:{},userSettings:{}},emits:["levelup"],setup(t,{emit:a}){const o=t,l=a,r=e.ref(!1),n=e.ref(o.value),i=e.ref("forward");let s=null,c=o.value,d=o.level;const u=o.size??Te,m=200,p=e.computed(()=>o.thickness??24),v=e.computed(()=>o.labelThickness??46),f=e.computed(()=>o.gapAngle??16),h=e.computed(()=>(Te-p.value)/2-18),g=e.computed(()=>(Te-v.value)/1.9-18),y=e.computed(()=>g.value+10),k=e.computed(()=>h.value-p.value/2-18),E=e.computed(()=>o.levelLabel?.length??0),N=e.computed(()=>8*E.value+12),w=e.computed(()=>-N.value/2),V=e.computed(()=>N.value/2),b=e.computed(()=>R(m,m,g.value,w.value,V.value)),C=e.computed(()=>R(m,m,y.value,-90,90)),x=e.computed(()=>{const e=V.value+f.value,t=e+(360-N.value-3*f.value)*Math.max(0,Math.min(1,n.value/o.max));return R(m,m,h.value,e,t)}),I=e.computed(()=>{const e=V.value+f.value,t=360-N.value-3*f.value,a=Math.max(0,Math.min(1,n.value/o.max)),l=0===a?e:e+t*a+f.value,r=w.value-f.value+360;return R(m,m,h.value,l,r)}),B=e.computed(()=>"url(#staticGradient)"),A=e.computed(()=>"url(#progressGradient)"),S=e.computed(()=>{const e=V.value+f.value;return z(m,m,h.value,e)}),M=e.computed(()=>{const e=V.value+f.value+(360-N.value-3*f.value)*Math.max(0,Math.min(1,n.value/o.max));return z(m,m,h.value,e)});function z(e,t,a,o){const l=(o-90)*Math.PI/180;return{x:e+a*Math.cos(l),y:t+a*Math.sin(l)}}function R(e,t,a,o,l){const r=z(e,t,a,l%360),n=z(e,t,a,o%360),i=(l-o+360)%360<=180?"0":"1";return["M",r.x,r.y,"A",a,a,0,i,0,n.x,n.y].join(" ")}function T(){var e,t;r.value=!0,e=o.level,t=o.userSettings,Ne.playLevelUp(e,t),l("levelup");const a=[10,25,50,100,150,200].includes(o.level);setTimeout(()=>{r.value=!1},a?2e3:1200)}return e.watch(()=>o.value,e=>{i.value=e>=c?"forward":"backward",function(e,t){s&&cancelAnimationFrame(s);const a=t,o=e-a,l=performance.now();s=requestAnimationFrame(function t(r){const i=r-l,c=Math.min(i/600,1),d=function(e){return e<.5?2*e*e:(4-2*e)*e-1}(c);n.value=a+o*d,c<1?s=requestAnimationFrame(t):(n.value=e,s=null)})}(e,c),c=e}),e.watch(()=>o.level,e=>{e!==d&&e>d&&T(),d=e}),(t,a)=>(e.openBlock(),e.createElementBlock("div",we,[(e.openBlock(),e.createElementBlock("svg",{width:e.unref(u),height:e.unref(u),viewBox:`0 0 ${e.unref(400)} ${e.unref(400)}`,style:{position:"relative"}},[r.value?(e.openBlock(),e.createElementBlock("g",be,[e.createElementVNode("circle",{cx:m,cy:m,r:k.value,fill:"#a800ff",opacity:"0.92"},null,8,Ce),e.createElementVNode("text",{x:m,y:215,"text-anchor":"middle","font-size":"38","font-weight":"bold",fill:"#fff",style:{"font-family":"'Montserrat', sans-serif"}},"Level Up",8,xe)])):e.createCommentVNode("",!0),n.value>=0&&n.value<o.max?(e.openBlock(),e.createElementBlock("path",{key:1,d:I.value,stroke:"#ddd","stroke-width":p.value,fill:"none","stroke-linecap":"round"},null,8,Ie)):e.createCommentVNode("",!0),e.createElementVNode("path",{d:b.value,stroke:B.value,"stroke-width":v.value,fill:"none","stroke-linecap":"round"},null,8,Be),e.createElementVNode("path",{id:"labelTextArc",d:C.value,stroke:"transparent",fill:"none",transform:"scale(-1, 1) translate(-400, 0)"},null,8,Ae),n.value>0&&n.value<o.max?(e.openBlock(),e.createElementBlock("path",{key:2,d:x.value,stroke:A.value,"stroke-width":p.value,fill:"none","stroke-linecap":"round"},null,8,Se)):e.createCommentVNode("",!0),e.createElementVNode("text",Me,[e.createElementVNode("textPath",ze,e.toDisplayString(t.levelLabel),1)]),e.createElementVNode("defs",null,[a[1]||(a[1]=e.createElementVNode("linearGradient",{id:"staticGradient",x1:"0",y1:"0",x2:"1",y2:"0"},[e.createElementVNode("stop",{offset:"0%","stop-color":"var(--strands-500)"}),e.createElementVNode("stop",{offset:"100%","stop-color":"var(--strands-600)"})],-1)),e.createElementVNode("linearGradient",{id:"progressGradient",gradientUnits:"userSpaceOnUse",x1:S.value.x,y1:S.value.y,x2:M.value.x,y2:M.value.y},a[0]||(a[0]=[e.createElementVNode("stop",{offset:"0%","stop-color":"var(--strands-600)"},null,-1),e.createElementVNode("stop",{offset:"100%","stop-color":"var(--strands-400)"},null,-1)]),8,Re)])],8,Ve))]))}}),[["__scopeId","data-v-09b7355c"]]),Le={class:"accui-component-scope"},Ue={class:"modal-card"},je={key:0,class:"modal-header"},Pe={class:"modal-content"},Xe={key:1,class:"modal-footer"},Ye=d(e.defineComponent({__name:"UiModal",props:{open:{type:Boolean,default:!1},closeOnOverlayClick:{type:Boolean,default:!0},fullscreenOnMobile:{type:Boolean,default:!0}},emits:["close"],setup(t,{emit:a}){const o=t,l=a,r=()=>{o.closeOnOverlayClick&&l("close")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Le,[(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.open?(e.openBlock(),e.createElementBlock("div",{key:0,class:"modal-overlay",onClick:r},[e.createElementVNode("div",{class:e.normalizeClass(["modal-container",{"modal-container-fullscreen-mobile":t.fullscreenOnMobile}]),onClick:a[0]||(a[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Ue,[t.$slots.header?(e.openBlock(),e.createElementBlock("div",je,[e.renderSlot(t.$slots,"header",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Pe,[e.renderSlot(t.$slots,"default",{},void 0,!0)]),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",Xe,[e.renderSlot(t.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)])],2)])):e.createCommentVNode("",!0)]))]))}}),[["__scopeId","data-v-8a7cf999"]]),He={class:"accui-component-scope"},Fe={key:0,class:"secured-logo"},We=["src"],Oe=d(e.defineComponent({__name:"StrandsSecuredFooter",props:{config:{}},setup(a){const o=a,{config:l}=t.useStrandsConfig(o.config),r=e.computed(()=>"https://accounts.strands.gg"!==l.value.baseUrl),n=e.useSlots(),i=e.computed(()=>((e,t)=>{const a=t[e];if(!a)return!1;if("function"==typeof a){const e=a();return Array.isArray(e)&&e.length>0}return Array.isArray(a)&&a.length>0})("default",n));return(t,a)=>(e.openBlock(),e.createElementBlock("div",He,[r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["secured-footer",{"secured-footer-with-content":i.value,"secured-footer-centered":!i.value}])},[e.renderSlot(t.$slots,"default",{},void 0,!0),r.value?(e.openBlock(),e.createElementBlock("div",Fe,[e.createElementVNode("img",{src:e.unref("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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"),class:"secured-logo-image"},null,8,We)])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-6dfcdb8c"]]),qe=e.ref([]),Ze=e.ref(!1),Ge=e.ref(!1);function Qe(){const{getUrl:o}=t.useStrandsConfig(),{currentSession:l}=a.useStrandsAuth(),r=e.computed(()=>qe.value.length>0),n=e.computed(()=>qe.value.filter(e=>e.is_active&&"hardware"!==e.device_type&&"passkey"!==e.device_type)),i=async(e,t={})=>{if(!l.value?.accessToken)throw new Error("No access token available");const a=await fetch(e,{...t,headers:{"Content-Type":"application/json",Authorization:`Bearer ${l.value.accessToken}`,...t.headers}});if(!a.ok){const e=await a.text();let t=`Request failed: ${a.status} ${a.statusText}`;try{t=JSON.parse(e).message||t}catch{e&&(t=e)}throw new Error(t)}return a.json()},s=async()=>{Ge.value=!0;try{const e=await i(o("mfaDevices"),{method:"GET"});return qe.value=e.devices||[],Ze.value=e.mfa_enabled||!1,e}finally{Ge.value=!1}};return{mfaDevices:e.computed(()=>qe.value),mfaEnabled:e.computed(()=>Ze.value),loading:e.computed(()=>Ge.value),hasMfaDevices:r,activeMfaDevices:n,fetchMfaDevices:s,setupTotp:async e=>{Ge.value=!0;try{const t=await i(o("mfaTotpSetup"),{method:"POST",body:JSON.stringify({device_name:e})});return await s(),t}finally{Ge.value=!1}},verifyTotpSetup:async(e,t)=>{Ge.value=!0;try{await i(o("mfaTotpVerify"),{method:"POST",body:JSON.stringify({device_id:e,totp_code:t})}),await s()}finally{Ge.value=!1}},setupEmailMfa:async e=>{Ge.value=!0;try{const t=await i(o("mfaEmailSetup"),{method:"POST",body:JSON.stringify({device_name:e})});return await s(),t}finally{Ge.value=!1}},sendEmailMfaCode:async e=>{Ge.value=!0;try{await i(o("mfaEmailSend"),{method:"POST",body:JSON.stringify({device_id:e})})}finally{Ge.value=!1}},verifyEmailMfaCode:async(e,t)=>{Ge.value=!0;try{return(await i(o("mfaEmailVerify"),{method:"POST",body:JSON.stringify({device_id:e,code:t})})).verified||!1}finally{Ge.value=!1}},disableMfaDevice:async e=>{Ge.value=!0;try{await i(o("mfaDeviceDisable"),{method:"POST",body:JSON.stringify({device_id:e})}),await s()}finally{Ge.value=!1}},regenerateBackupCodes:async e=>{Ge.value=!0;try{return await i(o("mfaBackupCodes"),{method:"POST",body:JSON.stringify({device_id:e})})}finally{Ge.value=!1}},getDeviceTypeIcon:e=>{switch(e){case"totp":return"📱";case"email":return"📧";case"hardware":return"🔑";case"passkey":return"🔐";default:return"🔒"}},getDeviceTypeName:e=>{switch(e){case"totp":return"Authenticator App";case"email":return"Email Verification";case"hardware":return"Hardware Key";case"passkey":return"Passkey";default:return"Unknown"}},formatLastUsed:e=>{if(!e)return"Never";const t=new Date(e),a=(new Date).getTime()-t.getTime(),o=Math.floor(a/864e5);return 0===o?"Today":1===o?"Yesterday":o<30?`${o} days ago`:t.toLocaleDateString()}}}const Je={class:"accui-component-scope"},Ke={class:"mfa-verification-content"},_e={key:0,class:"mfa-verification-loading"},$e={class:"mfa-verification-loading-text"},et={key:1,class:"mfa-verification-form"},tt={key:0,class:"mfa-methods-section"},at={class:"mfa-methods-grid"},ot=["onClick"],lt={class:"mfa-method-info"},rt={class:"mfa-method-name"},nt={class:"mfa-method-type"},it={key:0,class:"mfa-method-check"},st={key:1,class:"mfa-single-method"},ct={class:"mfa-single-method-content"},dt={class:"mfa-single-method-name"},ut={class:"mfa-single-method-type"},mt={key:2,class:"mfa-email-request"},pt={key:3,class:"mfa-hardware-section"},vt={class:"mfa-hardware-prompt"},ft={class:"mfa-hardware-prompt-content"},ht={class:"mfa-hardware-prompt-icon"},gt={class:"mfa-hardware-prompt-text"},yt={class:"mfa-hardware-prompt-title"},kt={class:"mfa-hardware-prompt-description"},Et={class:"mfa-backup-option"},Nt={key:0,class:"mfa-backup-input-section"},wt={class:"mfa-backup-warning"},Vt={key:0,class:"mfa-email-confirmation"},bt={class:"mfa-email-confirmation-content"},Ct={key:1,class:"mfa-totp-help",id:"totp-description"},xt={class:"mfa-device-name-text"},It={key:2,class:"mfa-email-resend"},Bt={class:"mfa-backup-option"},At={key:3,class:"mfa-backup-input-section"},St={class:"mfa-backup-warning"},Mt={class:"mfa-verification-footer"},zt=d(e.defineComponent({__name:"StrandsMfaVerification",props:{show:{type:Boolean},availableMfaMethods:{},sessionId:{}},emits:["close","success","error"],setup(t,{emit:o}){const l={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},r={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0 0 16 -16 0 z"}),e.h("path",{d:"m22 6-10 7L2 6"})])}},n={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("circle",{cx:"7.5",cy:"15.5",r:"5.5"}),e.h("path",{d:"m21 2-9.6 9.6"}),e.h("path",{d:"m15.5 7.5 3 3L22 7l-3-3"})])}},i={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})])}},s={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),e.h("polyline",{points:"22,4 12,14.01 9,11.01"})])}},c={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"}),e.h("path",{d:"M12 9v4"}),e.h("path",{d:"m12 17 .01 0"})])}},d=t,u=o,{loading:m,getDeviceTypeName:p}=Qe(),{verifyMfa:v,sendMfaEmailCode:f,getMfaWebAuthnChallenge:h,mfaSessionId:g,loading:y,loadingMessage:k,isSendingMfaEmail:E,isVerifyingMfa:w}=a.useStrandsAuth(),V=e.computed(()=>m.value||y.value),b=e.ref(null),C=e.ref(""),x=e.ref(""),I=e.ref(""),B=e.ref(""),A=e.ref(!1),S=e.ref(!1),M=e.ref(!1),z=e.ref(0);let R=null;const T=e.computed(()=>(d.availableMfaMethods||[]).filter(e=>"hardware"!==e.device_type&&"passkey"!==e.device_type));e.watch(()=>T.value,e=>{1===e.length?b.value=e[0]:0===e.length&&(b.value=null)},{immediate:!0}),e.watch(()=>d.show,async e=>{e?(C.value="",x.value="",I.value="",B.value="",A.value=!1,S.value=!1,M.value=!1,z.value=0,R&&(clearInterval(R),R=null),1===T.value.length&&(b.value=T.value[0],"email"===b.value.device_type&&setTimeout(async()=>{try{await f(b.value.id),S.value=!0,H()}catch(e){u("error",e instanceof Error?e.message:"Failed to send email code")}},100))):b.value=null}),e.onBeforeUnmount(()=>{R&&clearInterval(R)});const D=()=>{u("close")},L=e=>{C.value=e.replace(/\D/g,"").slice(0,6),x.value=""},j=e=>{e.preventDefault();const t=(e.clipboardData?.getData("text/plain")||"").replace(/\D/g,"").slice(0,6);C.value=t,x.value=""},P=e=>{let t=e.replace(/[^a-zA-Z0-9-]/g,"").toLowerCase();if(!/[-]/.test(t)&&t.length>4){const e=t.substring(0,4),a=t.substring(4,8);t=a?`${e}-${a}`:e}t.replace(/-/g,"").length<=8&&(I.value=t),B.value=""},X=e=>{e.preventDefault();let t=(e.clipboardData?.getData("text/plain")||"").replace(/[^a-zA-Z0-9-]/g,"").toLowerCase();if(!/[-]/.test(t)&&t.length>4){const e=t.substring(0,4),a=t.substring(4,8);t=a?`${e}-${a}`:e}t.replace(/-/g,"").length<=8&&(I.value=t),B.value=""},Y=async()=>{if(b.value&&"email"===b.value.device_type)try{await f(b.value.id),S.value=!0,H()}catch(e){u("error",e instanceof Error?e.message:"Failed to send email code")}},H=()=>{M.value=!0,z.value=30,R=setInterval(()=>{z.value-=1,z.value<=0&&(M.value=!1,R&&(clearInterval(R),R=null))},1e3)},F=async()=>{if(b.value&&C.value){x.value="";try{await v(b.value.id,C.value),u("success")}catch(e){x.value=e instanceof Error?e.message:"Invalid verification code"}}},W=async()=>{if(I.value){B.value="";try{await v("",I.value,!0),u("success")}catch(e){B.value=e instanceof Error?e.message:"Invalid backup code"}}},O=e=>{switch(e){case"totp":return l;case"email":return r;case"hardware":return n;default:return i}},q=async()=>{const e=d.sessionId||g.value;if(b.value&&("hardware"===b.value.device_type||"passkey"===b.value.device_type)&&e)try{if(!window.navigator.credentials||!window.PublicKeyCredential)throw new Error("Hardware keys are not supported in this browser");const e=await h(b.value.id),t=e.challenge.publicKey||e.challenge,a=e=>{if(!e||"string"!=typeof e)return new Uint8Array(0);const t=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),a=window.atob(t),o=new Uint8Array(a.length);for(let l=0;l<a.length;++l)o[l]=a.charCodeAt(l);return o},o="passkey"===b.value.device_type,l={...t,challenge:t.challenge?a(t.challenge):new Uint8Array(32),timeout:o?3e5:t.timeout||6e4,userVerification:o?"required":"discouraged"};t.allowCredentials&&Array.isArray(t.allowCredentials)&&(l.allowCredentials=t.allowCredentials.map(e=>({...e,id:a(e.id)})));const r=await navigator.credentials.get({publicKey:l});if(!r)throw new Error(("passkey"===b.value.device_type?"Passkey":"Hardware key")+" authentication was cancelled");const n=new Uint8Array(r.response.authenticatorData);let i="Security Key";if(n.length>=53){const e=Array.from(n.slice(37,53)).map(e=>e.toString(16).padStart(2,"0")).join("");i={"00000000000000000000000000000000":"Generic Security Key",ee882879721c491397753dfcce97072a:"YubiKey 5 Series",f8a011f38c0a4d15800617111f9edc7d:"YubiKey 5 Series","2fc0579f811347eab116bb5a8db9202a":"YubiKey 5 Series",c5ef55ffad9a4b9fb580adcb7c15e233:"YubiKey 5 Series","6d44ba9bf6ec2e49b9300200c9a3376d":"Google Titan Security Key",de1e552d14e14b1f9390f6d61b56e4d1:"Feitian Security Key","12ded745aa4e4b4f84be2736d6b1b2a5":"SoloKeys Solo","8876631bd4a0427f57730ec71c9e0279":"Nitrokey FIDO2"}[e]||`Security Key (${e.substring(0,8)}...)`}const s={id:r.id,rawId:Array.from(new Uint8Array(r.rawId)),response:{clientDataJSON:Array.from(new Uint8Array(r.response.clientDataJSON)),authenticatorData:Array.from(new Uint8Array(r.response.authenticatorData)),signature:Array.from(new Uint8Array(r.response.signature)),userHandle:r.response.userHandle?Array.from(new Uint8Array(r.response.userHandle)):null},type:r.type,deviceInfo:i};await v(b.value.id,JSON.stringify(s)),u("success")}catch(t){u("error",t instanceof Error?t.message:"Hardware key authentication failed")}else u("error","Missing requirements for hardware key authentication")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Je,[e.createVNode(Ye,{open:t.show,"card-class":"mfa-verification-modal",class:"mfa-verification-modal-wrapper"},{header:e.withCtx(()=>a[6]||(a[6]=[e.createElementVNode("div",{class:"mfa-verification-header"},[e.createElementVNode("h2",{class:"mfa-verification-title"},"Two-Factor Authentication"),e.createElementVNode("p",{class:"mfa-verification-subtitle"},"Enter your verification code to continue")],-1)])),footer:e.withCtx(()=>[e.createElementVNode("div",Mt,[e.createVNode(e.unref(N),{variant:"secondary",onClick:D,disabled:V.value},{default:e.withCtx(()=>a[14]||(a[14]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[14]},8,["disabled"]),b.value&&"hardware"!==b.value.device_type&&"passkey"!==b.value.device_type&&("email"!==b.value.device_type||S.value)||("hardware"===b.value?.device_type||"passkey"===b.value?.device_type)&&A.value?(e.openBlock(),e.createBlock(e.unref(N),{key:0,variant:"primary",onClick:a[5]||(a[5]=e=>A.value?W():F()),disabled:!C.value.trim()&&!I.value.trim()||V.value,loading:V.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A.value?"Verify Backup Code":"Verify"),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.createElementVNode("div",Ke,[V.value&&!S.value?(e.openBlock(),e.createElementBlock("div",_e,[e.createVNode(e.unref(G),{size:24}),e.createElementVNode("span",$e,e.toDisplayString(e.unref(E)||e.unref(w)?e.unref(k):"Loading..."),1)])):(e.openBlock(),e.createElementBlock("div",et,[T.value.length>1?(e.openBlock(),e.createElementBlock("div",tt,[a[7]||(a[7]=e.createElementVNode("p",{class:"mfa-methods-title"},"Choose verification method:",-1)),e.createElementVNode("div",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,t=>(e.openBlock(),e.createElementBlock("button",{key:t.id,onClick:e=>(e=>{b.value=e,C.value="",x.value="",S.value=!1,A.value=!1})(t),class:e.normalizeClass(["mfa-method-button",b.value?.id===t.id?"mfa-method-button-selected":"mfa-method-button-default"])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(O(t.device_type)),{size:20,class:"mfa-method-icon"})),e.createElementVNode("div",lt,[e.createElementVNode("p",rt,e.toDisplayString(t.device_name),1),e.createElementVNode("p",nt,e.toDisplayString(e.unref(p)(t.device_type)),1)]),b.value?.id===t.id?(e.openBlock(),e.createElementBlock("div",it,[e.createVNode(s,{size:20})])):e.createCommentVNode("",!0)],10,ot))),128))])])):b.value?(e.openBlock(),e.createElementBlock("div",st,[e.createElementVNode("div",ct,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(O(b.value.device_type)),{size:24,class:"mfa-single-method-icon"})),e.createElementVNode("div",null,[e.createElementVNode("h3",dt,e.toDisplayString(b.value.device_name),1),e.createElementVNode("p",ut,e.toDisplayString(e.unref(p)(b.value.device_type)),1)])])])):e.createCommentVNode("",!0),"email"!==b.value?.device_type||S.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",mt,[a[9]||(a[9]=e.createElementVNode("p",{class:"mfa-email-request-text"},"Click below to receive your verification code",-1)),e.createVNode(e.unref(N),{variant:"primary",onClick:Y,disabled:V.value,loading:V.value},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Send Verification Code ",-1)])),_:1,__:[8]},8,["disabled","loading"])])),"hardware"===b.value?.device_type||"passkey"===b.value?.device_type?(e.openBlock(),e.createElementBlock("div",pt,[e.createElementVNode("div",vt,[e.createElementVNode("div",ft,[e.createElementVNode("div",ht,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent("passkey"===b.value.device_type?i:n),{size:24,class:"mfa-hardware-icon-svg"}))]),e.createElementVNode("div",gt,[e.createElementVNode("h4",yt,e.toDisplayString("passkey"===b.value.device_type?"Use your passkey":"Touch your hardware key"),1),e.createElementVNode("p",kt,e.toDisplayString("passkey"===b.value.device_type?"Use biometrics, PIN, or device security to authenticate":"Insert and touch your hardware key to authenticate"),1)])])]),e.createVNode(e.unref(N),{variant:"primary",onClick:q,disabled:V.value,loading:V.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString("passkey"===b.value.device_type?"Authenticate with Passkey":"Authenticate with Hardware Key"),1)]),_:1},8,["disabled","loading"]),e.createElementVNode("div",Et,[e.createVNode(e.unref(N),{variant:"ghost",size:"sm",onClick:a[0]||(a[0]=e=>A.value=!A.value),class:"mfa-backup-toggle-button"},{default:e.withCtx(()=>[e.createVNode(n,{size:16,class:"mfa-backup-toggle-icon"}),e.createTextVNode(" "+e.toDisplayString(A.value?"Hide backup code":"passkey"===b.value.device_type?"Can't access your passkey? Use backup code":"Can't access your key? Use backup code"),1)]),_:1})]),A.value?(e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("div",wt,[e.createVNode(c,{size:20,class:"mfa-backup-warning-icon"}),a[10]||(a[10]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"mfa-backup-warning-title"},"Backup Code Recovery"),e.createElementVNode("p",{class:"mfa-backup-warning-description"}," Enter one of your backup codes. Each code can only be used once. ")],-1))]),e.createVNode(e.unref(U),{modelValue:I.value,"onUpdate:modelValue":a[1]||(a[1]=e=>I.value=e),label:"Backup Code",placeholder:"abcd-1234",error:B.value,disabled:V.value,onInput:P,onPaste:X,onKeydown:e.withKeys(W,["enter"]),class:"mfa-backup-input",name:"backup-code-1",autocomplete:"off",inputmode:"text","data-lpignore":"false","data-form-type":"other",spellcheck:"false"},null,8,["modelValue","error","disabled"])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),b.value&&"hardware"!==b.value.device_type&&"passkey"!==b.value.device_type&&("email"!==b.value.device_type||S.value)?(e.openBlock(),e.createElementBlock("form",{key:4,class:"mfa-code-section",onSubmit:e.withModifiers(F,["prevent"]),novalidate:"",autocomplete:"off"},["email"===b.value.device_type&&S.value?(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("div",bt,[e.createVNode(s,{size:20,class:"mfa-email-confirmation-icon"}),a[11]||(a[11]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"mfa-email-confirmation-title"},"Code Sent!"),e.createElementVNode("p",{class:"mfa-email-confirmation-description"},"Check your email for the verification code")],-1))])])):e.createCommentVNode("",!0),e.createVNode(e.unref(U),{modelValue:C.value,"onUpdate:modelValue":a[2]||(a[2]=e=>C.value=e),label:"Verification Code",placeholder:(b.value.device_type,"123456"),maxlength:"6",error:x.value,disabled:V.value,onInput:L,onKeydown:e.withKeys(F,["enter"]),onPaste:j,autofocus:"",name:"totp",id:"totp-input",autocomplete:"one-time-code",inputmode:"numeric","data-lpignore":"false","data-form-type":"other","data-bwignore":"false","data-1p-ignore":"false","data-testid":"totp-input",spellcheck:"false","aria-label":"Enter your verification code","aria-describedby":"totp-description",role:"textbox",tabindex:"0",pattern:"[0-9]{6}",minlength:"6",title:"Enter 6-digit verification code"},null,8,["modelValue","placeholder","error","disabled"]),"totp"===b.value.device_type?(e.openBlock(),e.createElementBlock("div",Ct,[a[12]||(a[12]=e.createTextVNode(" Open your authenticator app and enter the 6-digit code for ",-1)),e.createElementVNode("span",xt,'"'+e.toDisplayString(b.value.device_name)+'"',1)])):e.createCommentVNode("",!0),"email"===b.value.device_type?(e.openBlock(),e.createElementBlock("div",It,[e.createVNode(e.unref(N),{variant:"ghost",size:"sm",onClick:Y,disabled:V.value||M.value,class:"mfa-resend-button"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(M.value?`Resend in ${z.value}s`:"Resend Code"),1)]),_:1},8,["disabled"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Bt,[e.createVNode(e.unref(N),{variant:"ghost",size:"sm",onClick:a[3]||(a[3]=e=>A.value=!A.value),class:"mfa-backup-toggle-button"},{default:e.withCtx(()=>[e.createVNode(n,{size:16,class:"mfa-backup-toggle-icon"}),e.createTextVNode(" "+e.toDisplayString(A.value?"Hide backup code":"Use backup code instead"),1)]),_:1})]),A.value?(e.openBlock(),e.createElementBlock("div",At,[e.createElementVNode("div",St,[e.createVNode(c,{size:20,class:"mfa-backup-warning-icon"}),a[13]||(a[13]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"mfa-backup-warning-title"},"Backup Code Recovery"),e.createElementVNode("p",{class:"mfa-backup-warning-description"}," Enter one of your backup codes. Each code can only be used once. ")],-1))]),e.createVNode(e.unref(U),{modelValue:I.value,"onUpdate:modelValue":a[4]||(a[4]=e=>I.value=e),label:"Backup Code",placeholder:"abcd-1234",error:B.value,disabled:V.value,onInput:P,onPaste:X,onKeydown:e.withKeys(W,["enter"]),class:"mfa-backup-input",name:"backup-code-2",autocomplete:"off",inputmode:"text","data-lpignore":"false","data-form-type":"other",spellcheck:"false"},null,8,["modelValue","error","disabled"])])):e.createCommentVNode("",!0)],32)):e.createCommentVNode("",!0)]))])]),_:1},8,["open"])]))}}),[["__scopeId","data-v-8023293b"]]);function Rt(a={}){const{getUrl:o,config:l}=t.useStrandsConfig(),r=e.ref([]),n=e.ref(!1),i=e.ref(null),s=e.computed(()=>r.value.filter(e=>e.enabled));return{providers:e.computed(()=>r.value),enabledProviders:s,loading:e.computed(()=>n.value),error:e.computed(()=>i.value),fetchProviders:async()=>{n.value=!0,i.value=null;try{let e=o("oauthProviders");const t=a.redirectUrl||l.value?.oauth2RedirectUrl;if(t){const a=new URLSearchParams;let o=t;if(t.startsWith("/")){o=`${window.location.origin}${t}`}a.append("redirect_url",o),e=`${e}?${a.toString()}`}const n=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.error?.message||`HTTP ${n.status}: ${n.statusText}`)}const i=await n.json();r.value=i.providers||[]}catch(e){const t=e instanceof Error?e.message:"Failed to fetch OAuth providers";i.value=t}finally{n.value=!1}},getProviderAuthUrl:async(e,t)=>{const l={...a,...t},r=new URLSearchParams;if(l.redirectUrl){let e=l.redirectUrl;if(l.redirectUrl.startsWith("/")){e=`${window.location.origin}${l.redirectUrl}`}r.append("redirect_url",e)}l.scopes&&l.scopes.length>0&&r.append("scopes",l.scopes.join(","));const n=r.toString(),i=o("oauthProvider").replace("{provider_id}",e),s=n?`${i}?${n}`:i;try{const e=await fetch(s,{method:"GET",headers:{"Content-Type":"application/json"}});if(!e.ok){const t=await e.json().catch(()=>({}));throw new Error(t.error?.message||`HTTP ${e.status}: ${e.statusText}`)}const t=await e.json();if(!t.success)throw new Error(t.error?.message||"Failed to get OAuth auth URL");return t.data.authUrl}catch(c){const e=c instanceof Error?c.message:"Failed to get OAuth auth URL";throw new Error(e)}},redirectToProvider:async(e,t)=>{try{const t=r.value.find(t=>t.id===e);if(!t)throw new Error(`OAuth provider '${e}' not found`);if(!t.auth_url)throw new Error(`No auth URL configured for provider '${e}'`);window.location.href=t.auth_url}catch(a){throw i.value=a instanceof Error?a.message:"Failed to redirect to OAuth provider",a}},getProviderById:e=>r.value.find(t=>t.id===e),getProviderIcon:e=>{if(e.iconUrl)return e.iconUrl;switch(e.id.toLowerCase()){case"google":return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik0yMi41NiAxMi4yNWMwLS43OC0uMDctMS41My0uMi0yLjI1SDEydjQuMjZoNS45MmMtLjI2IDEuMzctMS4wNCAyLjUzLTIuMjEgMy4zMXYyLjc3aDMuNTdjMi4wOC0xLjkyIDMuMjgtNC43NCAzLjI4LTguMDl6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTEyIDIzYzIuOTcgMCA1LjQ2LS45OCA3LjI4LTIuNjZsLTMuNTctMi43N2MtLjk4LjY2LTIuMjMgMS4wNi0zLjcxIDEuMDYtMi44NiAwLTUuMjktMS45My02LjE2LTQuNTNIMi4xOHYyLjg0QzMuOTkgMjAuNTMgNy43IDIzIDEyIDIzeiIvPjxwYXRoIGZpbGw9IiNGQkJDMDUiIGQ9Ik01Ljg0IDE0LjA5Yy0uMjItLjY2LS4zNS0xLjM2LS4zNS0yLjA5cy4xMy0xLjQzLjM1LTIuMDlWNy4wN0gyLjE4QzEuNDMgOC41NSAxIDEwLjIyIDEgMTJzLjQzIDMuNDUgMS4xOCA0LjkzbDIuODUtMi4yMi44MS0uNjJ6Ii8+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTEyIDUuMzhjMS42MiAwIDMuMDYuNTYgNC4yMSAxLjY0bDMuMTUtMy4xNUMxNy40NSAyLjA5IDE0Ljk3IDEgMTIgMSA3LjcgMSAzLjk5IDMuNDcgMi4xOCA3LjA3bDMuNjYgMi44NGMuODctMi42IDMuMy00LjUzIDYuMTYtNC41M3oiLz48L3N2Zz4=";case"github":return"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyIDBoLTEyYy02LjYyNiAwLTEyIDUuMzczLTEyIDEyIDAgNS4zMDIgMy40MzggOS44IDguMjA3IDExLjM4Ny41OTkuMTExLjc5My0uMjYxLjc5My0uNTc3di0yLjIzNGMtMy4zMzguNzI2LTQuMDMzLTEuNDE2LTQuMDMzLTEuNDE2LS41NDYtMS4zODctMS4zMzMtMS43NTYtMS4zMzMtMS43NTYtMS4wODktLjc0NS4wODMtLjcyOS4wODMtLjcyOSAxLjIwNS4wODQgMS44MzkgMS4yMzcgMS44MzkgMS4yMzcgMS4wNyAxLjgzNCAyLjgwNyAxLjMwNCAzLjQ5Mi45OTcuMTA3LS43NzUuNDE4LTEuMzA1Ljc2Mi0xLjYwNC0yLjY2NS0uMzA1LTUuNDY3LTEuMzM0LTUuNDY3LTUuOTMxIDAtMS4zMTEuNDY5LTIuMzgxIDEuMjM2LTMuMjIxLS4xMjQtLjMwMy0uNTM1LTEuNTI0LjExNy0zLjE3NiAwIDAgMS4wMDgtLjMyMiAzLjMwMSAxLjIzLjk1Ny0uMjY2IDEuOTgzLS4zOTkgMy4wMDMtLjQwNCAxLjAyLjAwNSAyLjA0Ny4xMzggMy4wMDYuNDA0IDIuMjkxLTEuNTUyIDMuMjk3LTEuMjMgMy4yOTctMS4yMy42NTMgMS42NTMuMjQyIDIuODc0LjExOCAzLjE3Ni43Ny44NCAxLjIzNSAxLjkxMSAxLjIzNSAzLjIyMSAwIDQuNjA5LTIuODA3IDUuNjI0LTUuNDc5IDUuOTIxLjQzLjM3Mi44MjMgMS4xMDIuODIzIDIuMjIydjMuMjkzYzAgLjMxOS4xOTIuNjk0LjgwMS41NzYgNC43NjUtMS41ODkgOC4xOTktNi4wODYgOC4xOTktMTEuMzg2IDAtNi42MjctNS4zNzMtMTItMTItMTJ6Ii8+PC9zdmc+";case"microsoft":case"azure":return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxyZWN0IGZpbGw9IiNmMjUwMjIiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIvPjxyZWN0IGZpbGw9IiM3ZmJhMDAiIHg9IjEzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiLz48cmVjdCBmaWxsPSIjMDBhNGVmIiB5PSIxMyIgd2lkdGg9IjExIiBoZWlnaHQ9IjExIi8+PHJlY3QgZmlsbD0iI2ZmYjkwMCIgeD0iMTMiIHk9IjEzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiLz48L3N2Zz4=";case"discord":return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiM1ODY1RjIiPjxwYXRoIGQ9Ik0yMC4zMTcgNC4zNjk2QTE5Ljc5MTMgMTkuNzkxMyAwIDAgMCAxOC4yMDU4IDMuMzY5NmMtLjk2NDIuMzU2NC0xLjk5NTguNjE1NC0zLjA1OC43NzNhMTQuNzI0NCAxNC43MjQ0IDAgMCAwLTYuMjk1NCAwIDEzLjU0OTQgMTMuNTQ5NCAwIDAgMC0zLjA1OC0uNzczIDEzLjY5MyAxMy42OTMgMCAwIDAtNS4wNjc2LTEuMjc5NCAyMC4xOTg0IDIwLjE5ODQgMCAwIDAtMi42NDk3IDkuMTE2MyAyMC4yODE4IDIwLjI4MTggMCAwIDAgMi4zNzU4IDIuNjNjMS4zMzIyLjEyNTggMi42NjUuMTcyMiA0LjA0NC4xNzIyaDEuMzE1NGMxLjM3OSAwIDIuNzExOC0uMDQ2NCA0LjA0NC0uMTcyMmEyMC4yODE4IDIwLjI4MTggMCAwIDAgMi4zNzU4LTIuNjMgMjAuMTk4NCAyMC4xOTg0IDAgMCAwIDIuNjQ5Ny05LjExNjNBMTkuNzkxMyAxOS43OTEzIDAgMCAwIDIwLjMxNyA0LjM2OTZ6TTE4LjE5IDEyQzE3LjY3IDE0LjQ5IDEzLjk5IDE2IDEyIDE2UzYuMzMgMTQuNDkgNS44MSAxMmMuNTItMi40OSA0LjE5LTQgNi4xOS00UzE3LjY3IDkuNTEgMTguMTkgMTJ6Ii8+PC9zdmc+";default:return"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48dGV4dCB4PSIxMiIgeT0iMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IndoaXRlIiBmb250LXNpemU9IjEyIj57cHJvdmlkZXIuaWQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9PC90ZXh0Pjwvc3ZnPg=="}}}}const Tt={class:"accui-component-scope"},Dt={class:"auth-header"},Lt={key:0,class:"auth-tabs-container"},Ut={key:0,class:"auth-oauth-providers"},jt={class:"auth-oauth-icon-container"},Pt={key:0,class:"auth-oauth-icon"},Xt=["src","alt"],Yt={key:1,viewBox:"0 0 24 24",class:"auth-oauth-icon"},Ht={key:2,class:"auth-oauth-icon auth-oauth-github",viewBox:"0 0 24 24"},Ft={key:3,class:"auth-oauth-generic-icon"},Wt={class:"auth-oauth-generic-text"},Ot={class:"auth-oauth-text"},qt={key:0,class:"auth-divider"},Zt={class:"auth-divider-text"},Gt={key:0,class:"auth-password-field"},Qt={class:"auth-password-header"},Jt={key:0,class:"auth-back-link-container"},Kt={class:"auth-support-text"},_t=e.defineComponent({__name:"StrandsAuth",props:{mode:{default:"signin"},redirectUrl:{},inModal:{type:Boolean,default:!1},config:{}},emits:["success","error","forgot-password","password-reset-sent","mode-changed"],setup(o,{emit:l}){const r=o,n=l,{getUrl:i,getSupportEmail:s}=t.useStrandsConfig(r.config),{signIn:c,setAuthData:d,mfaRequired:m,availableMfaMethods:p,verifyMfa:v,sendMfaEmailCode:f,currentUser:h,loadingMessage:g}=a.useStrandsAuth(),{enabledProviders:y,loading:k,error:E,fetchProviders:w,redirectToProvider:V,getProviderIcon:b}=Rt({redirectUrl:r.redirectUrl});e.onMounted(()=>{w().catch(e=>{})});const C=e.computed(()=>y.value),x={async signIn(e,t){const a=await fetch(i("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t})});if(!a.ok)throw 401===a.status?new Error("Invalid email or password"):403===a.status?new Error("Please verify your email address before signing in"):new Error(`Sign in failed: ${a.status} ${a.statusText}`);return await a.json()},async signUp(e,t,a,o){const l=await fetch(i("signUp"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t,firstName:a,lastName:o})});if(!l.ok){const e=await l.json().catch(()=>({}));throw new Error(e.error?.message||`HTTP ${l.status}: ${l.statusText}`)}return(await l.json()).message},async requestPasswordReset(e){throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.")}},I=e.ref(r.mode),B=e.ref(!1),A=e.ref(""),S=e.ref(!1),M=e.ref(!1),z=e.reactive({firstName:"",lastName:"",email:"",password:"",confirmPassword:""}),R=e.computed(()=>"signup"===I.value),T=e.computed(()=>"reset-password"===I.value);e.computed(()=>z.password===z.confirmPassword);const D=e.computed(()=>T.value?z.email.trim()&&!S.value:R.value?z.email.trim():z.email.trim()&&z.password);e.watch(m,e=>{e&&(M.value=!0)},{immediate:!0});const L=()=>{M.value=!1,n("success",h.value)},P=()=>{M.value=!1},X=e=>{A.value=e,n("error",e)},Y=async()=>{B.value=!0,A.value="";try{if(T.value)await x.requestPasswordReset(z.email),S.value=!0,n("password-reset-sent",z.email);else if(R.value){const e=await x.signUp(z.email,z.password,z.firstName,z.lastName);n("success",e.user)}else{const e=await c({email:z.email,password:z.password});e.mfa_required||n("success",e.user)}}catch(e){const t=e instanceof Error?e.message:"An unexpected error occurred";A.value=t,n("error",t)}finally{B.value=!1}};e.watch(()=>r.mode,e=>{I.value=e}),e.watch(I,e=>{A.value="",S.value=!1,z.firstName="",z.lastName="",z.email="",z.password="",z.confirmPassword="",n("mode-changed",e)});let H=0;const W=e=>{const t=e;t.style.height="0",t.style.opacity="0",t.style.marginTop="0",t.style.marginBottom="0",t.style.paddingTop="0",t.style.paddingBottom="0",t.style.overflow="hidden"},O=(e,t)=>{const a=e,o=H++;setTimeout(()=>{a.offsetHeight,a.style.height="auto";const e=a.offsetHeight;a.style.height="0",a.offsetHeight,a.style.transition="height 350ms cubic-bezier(0.23, 1, 0.32, 1), opacity 350ms cubic-bezier(0.23, 1, 0.32, 1), margin 350ms cubic-bezier(0.23, 1, 0.32, 1), padding 350ms cubic-bezier(0.23, 1, 0.32, 1)",requestAnimationFrame(()=>{a.style.height=e+"px",a.style.opacity="1",a.style.marginTop="",a.style.marginBottom="",a.style.paddingTop="",a.style.paddingBottom=""}),setTimeout(()=>{a.style.height="",a.style.transition="",a.style.overflow="",t()},350)},50*o)},q=e=>{const t=e,a=t.offsetHeight;t.style.height=a+"px",t.style.overflow="hidden",H=0},Z=(e,t)=>{const a=e,o=H++;setTimeout(()=>{a.offsetHeight,a.style.transition="height 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1), margin 300ms cubic-bezier(0.23, 1, 0.32, 1), padding 300ms cubic-bezier(0.23, 1, 0.32, 1)",requestAnimationFrame(()=>{a.style.height="0",a.style.opacity="0",a.style.marginTop="0",a.style.marginBottom="0",a.style.paddingTop="0",a.style.paddingBottom="0"}),setTimeout(()=>{a.style.height="",a.style.opacity="",a.style.margin="",a.style.padding="",a.style.transition="",a.style.overflow="",t()},300)},30*o)},G=e=>{const t=e;t.style.height="",t.style.opacity="",t.style.margin="",t.style.padding="",t.style.transition="",t.style.overflow=""};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Tt,[e.createElementVNode("div",{class:e.normalizeClass(r.inModal?"auth-container-modal auth-full-width auth-min-width":"auth-container auth-full-width auth-min-width auth-max-width auth-center auth-slide-up")},[e.createElementVNode("div",{class:e.normalizeClass(r.inModal?"auth-content-modal":"auth-content auth-card-modern")},[e.createElementVNode("div",Dt,[e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("h1",{key:I.value,class:"auth-title"},e.toDisplayString(T.value?"Reset password":R.value?"Create account":"Welcome back"),1))]),_:1}),e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("p",{key:I.value,class:"auth-subtitle"},e.toDisplayString(T.value?"Enter your email address and we'll send you a link":R.value?"We'll send you a magic link to get started":"Sign in to your account to continue"),1))]),_:1})]),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[T.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Lt,[e.createVNode(e.unref(F),{modelValue:I.value,"onUpdate:modelValue":a[0]||(a[0]=e=>I.value=e),tabs:[{label:"Sign In",value:"signin"},{label:"Sign Up",value:"signup"}]},null,8,["modelValue"])]))]),_:1}),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[!T.value&&C.value?.length?(e.openBlock(),e.createElementBlock("div",Ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,t=>(e.openBlock(),e.createBlock(e.unref(N),{key:t.id,variant:"outline","full-width":"",disabled:e.unref(k),onClick:e=>(async e=>{try{await V(e,{redirectUrl:r.redirectUrl})}catch(t){const a=t instanceof Error?t.message:`Failed to ${R.value?"sign up":"sign in"} with ${e}`;A.value=a,n("error",a)}})(t.id),class:"auth-oauth-button"},{default:e.withCtx(()=>[e.createElementVNode("div",jt,[t.icon||t.iconUrl?(e.openBlock(),e.createElementBlock("div",Pt,[e.createElementVNode("img",{src:t.icon||t.iconUrl,alt:`${t.displayName||t.name} icon`,class:"auth-oauth-icon"},null,8,Xt)])):"google"===t.id?(e.openBlock(),e.createElementBlock("svg",Yt,a[6]||(a[6]=[e.createElementVNode("path",{fill:"#4285F4",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"},null,-1),e.createElementVNode("path",{fill:"#34A853",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"},null,-1),e.createElementVNode("path",{fill:"#FBBC05",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"},null,-1),e.createElementVNode("path",{fill:"#EA4335",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"},null,-1)]))):"github"===t.id?(e.openBlock(),e.createElementBlock("svg",Ht,a[7]||(a[7]=[e.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)]))):(e.openBlock(),e.createElementBlock("div",Ft,[e.createElementVNode("span",Wt,e.toDisplayString((t.displayName||t.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Ot," Continue with "+e.toDisplayString(t.displayName||t.name.charAt(0).toUpperCase()+t.name.slice(1)),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[!T.value&&C.value?.length?(e.openBlock(),e.createElementBlock("div",qt,[e.createElementVNode("span",Zt,"Or "+e.toDisplayString(R.value?"create account":"sign in")+" with email",1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("form",{onSubmit:e.withModifiers(Y,["prevent"]),class:"auth-form"},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass(["email-field-spacing",T.value||R.value?"no-password":"has-password"])},[e.createVNode(e.unref(U),{modelValue:z.email,"onUpdate:modelValue":a[1]||(a[1]=e=>z.email=e),type:"email",label:"Email address",placeholder:"Enter your email",required:"",autocomplete:"email",error:A.value&&!z.email?"Email is required":""},null,8,["modelValue","error"])],2),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[T.value||R.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Gt,[e.createElementVNode("div",Qt,[a[9]||(a[9]=e.createElementVNode("span",{class:"auth-password-label"},"Password",-1)),e.createVNode(e.unref(j),{variant:"primary",size:"sm",onClick:a[2]||(a[2]=e=>I.value="reset-password")},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(e.unref(U),{modelValue:z.password,"onUpdate:modelValue":a[3]||(a[3]=e=>z.password=e),type:"password",placeholder:"Enter your password",required:"",autocomplete:"current-password",error:A.value&&!z.password?"Password is required":""},null,8,["modelValue","error"])]))]),_:1})]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:B.value||!D.value,loading:B.value,"loading-text":e.unref(g)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.value?S.value?"Link sent!":"Send reset link":R.value?"Send magic link":"Sign in"),1)]),_:1},8,["disabled","loading","loading-text"])],32),e.createVNode(e.Transition,{name:"expand",mode:"out-in"},{default:e.withCtx(()=>[T.value&&S.value?(e.openBlock(),e.createBlock(e.unref(u),{key:"reset-success",variant:"success",message:`Check your email - We've sent a password reset link to ${z.email}`,class:"auth-success-alert"},null,8,["message"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.Transition,{name:"smooth-height",onBeforeEnter:W,onEnter:O,onBeforeLeave:q,onLeave:Z,onAfterLeave:G},{default:e.withCtx(()=>[T.value?(e.openBlock(),e.createElementBlock("div",Jt,[e.createVNode(e.unref(j),{onClick:a[4]||(a[4]=e=>I.value="signin"),class:"auth-back-link"},{default:e.withCtx(()=>a[10]||(a[10]=[e.createElementVNode("svg",{class:"auth-back-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),e.createTextVNode(" Back to sign in ",-1)])),_:1,__:[10]})])):e.createCommentVNode("",!0)]),_:1}),A.value?(e.openBlock(),e.createBlock(e.unref(u),{key:0,variant:"error",message:A.value,class:"auth-error-alert",dismissible:"",onDismiss:a[5]||(a[5]=e=>A.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createVNode(Oe,{config:r.config},{default:e.withCtx(()=>[e.unref(s)()?(e.openBlock(),e.createBlock(e.Transition,{key:0,name:"support-fade"},{default:e.withCtx(()=>[e.createElementVNode("p",Kt,[a[12]||(a[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(s)()}`},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[11]},8,["href"])])]),_:1})):e.createCommentVNode("",!0)]),_:1},8,["config"])],2)],2),e.createVNode(zt,{show:M.value,"available-mfa-methods":e.unref(p),onSuccess:L,onClose:P,onError:X},null,8,["show","available-mfa-methods"])]))}}),$t=d(_t,[["__scopeId","data-v-ba0feb8a"]]),ea={viewBox:"0 0 24 24",class:"accui-w-5 accui-h-5"},ta=e.defineComponent({__name:"IconGoogle",setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("svg",ea,a[0]||(a[0]=[e.createElementVNode("path",{fill:"#4285F4",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"},null,-1),e.createElementVNode("path",{fill:"#34A853",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"},null,-1),e.createElementVNode("path",{fill:"#FBBC05",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"},null,-1),e.createElementVNode("path",{fill:"#EA4335",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"},null,-1)])))}),aa={class:"accui-w-5 accui-h-5 accui-fill-current",viewBox:"0 0 24 24"},oa=e.defineComponent({__name:"IconGithub",setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("svg",aa,a[0]||(a[0]=[e.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)])))}),la={class:"accui-component-scope"},ra={class:"accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up"},na={key:0,class:"accui-space-y-3 accui-mb-6"},ia={class:"accui-w-5 accui-h-5 accui-flex accui-items-center accui-justify-center"},sa={key:0,class:"accui-w-5 accui-h-5"},ca=["src","alt"],da={key:3,class:"accui-w-5 accui-h-5 accui-rounded-full accui-bg-neutral-300 accui-flex accui-items-center accui-justify-center"},ua={class:"accui-text-xs accui-font-semibold accui-text-neutral-600"},ma={class:"accui-font-medium"},pa={key:1,class:"divider-with-text"},va={class:"email-field-spacing has-password"},fa={class:"accui-mb-4"},ha={class:"accui-text-center accui-mt-4"},ga={class:"accui-mt-8 accui-text-center"},ya={class:"accui-text-sm accui-text-neutral-600"},ka={key:0},Ea={class:"accui-text-neutral-400 accui-text-sm"},Na=e.defineComponent({__name:"StrandsSignIn",props:{redirectUrl:{},oauthScopes:{default:()=>[]},config:{}},emits:["success","error","forgot-password","switch-to-signup"],setup(o,{emit:l}){const r=o,n=l,{getUrl:i,getSupportEmail:s}=t.useStrandsConfig(r.config),{signIn:c,mfaRequired:d,mfaSessionId:m,availableMfaMethods:p,loading:v,currentUser:f,sendMfaEmailCode:h}=a.useStrandsAuth(),{enabledProviders:g,loading:y,error:k,fetchProviders:E,redirectToProvider:w}=Rt({redirectUrl:r.redirectUrl,scopes:r.oauthScopes});e.onMounted(()=>{E().catch(e=>{})});const V=e.computed(()=>v.value),b=e.ref(""),x=e.ref(!1);e.watch(d,e=>{e&&(x.value=!0)});const I=e.reactive({email:"",password:""}),B=async()=>{b.value="";try{const e=await c({email:I.email,password:I.password});e.mfa_required||n("success",e.user)}catch(e){const t=e instanceof Error?e.message:"Sign in failed";b.value=t,n("error",t)}},A=()=>{x.value=!1,n("success",f.value)},S=()=>{x.value=!1},M=e=>{b.value=e,n("error",e)};return(t,a)=>(e.openBlock(),e.createElementBlock("div",la,[e.createElementVNode("div",ra,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[a[15]||(a[15]=e.createElementVNode("div",{class:"accui-text-center accui-mb-8"},[e.createElementVNode("h1",{class:"accui-text-3xl accui-font-bold accui-text-gradient accui-mb-2"},"Welcome back"),e.createElementVNode("p",{class:"accui-text-neutral-600"},"Sign in to your account to continue")],-1)),e.unref(g)?.length?(e.openBlock(),e.createElementBlock("div",na,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),(t,a,o,l)=>{const i=[t.id,t.name,t.displayName,e.unref(y)];if(l&&l.key===t.id&&e.isMemoSame(l,i))return l;const s=(e.openBlock(),e.createBlock(e.unref(N),{key:t.id,variant:"outline","full-width":"",disabled:e.unref(y),onClick:e=>(async e=>{try{await w(e,{redirectUrl:r.redirectUrl,scopes:r.oauthScopes})}catch(t){const a=t instanceof Error?t.message:`Failed to sign in with ${e}`;b.value=a,n("error",a)}})(t.id),class:"btn-oauth accui-group"},{default:e.withCtx(()=>[e.createElementVNode("div",ia,[t.icon||t.iconUrl?(e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("img",{src:t.icon||t.iconUrl,alt:`${t.displayName||t.name} icon`,class:"accui-w-5 accui-h-5"},null,8,ca)])):"google"===t.id?(e.openBlock(),e.createBlock(e.unref(ta),{key:1})):"github"===t.id?(e.openBlock(),e.createBlock(e.unref(oa),{key:2})):(e.openBlock(),e.createElementBlock("div",da,[e.createElementVNode("span",ua,e.toDisplayString((t.displayName||t.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",ma,"Continue with "+e.toDisplayString(t.displayName||t.name),1)]),_:2},1032,["disabled","onClick"]));return s.memo=i,s},a,0),128))])):e.createCommentVNode("",!0),e.unref(g)?.length?(e.openBlock(),e.createElementBlock("div",pa,a[7]||(a[7]=[e.createElementVNode("span",{class:"divider-text"},"Or sign in with email",-1)]))):e.createCommentVNode("",!0),e.createElementVNode("form",{onSubmit:e.withModifiers(B,["prevent"]),class:"accui-gap-6 accui-flex accui-flex-col"},[e.createElementVNode("div",null,[e.createElementVNode("div",va,[e.createVNode(e.unref(U),{id:"email",modelValue:I.email,"onUpdate:modelValue":a[2]||(a[2]=e=>I.email=e),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:b.value?"Invalid email or password":void 0},null,8,["modelValue","error"])]),e.createElementVNode("div",fa,[a[8]||(a[8]=e.createElementVNode("span",{class:"accui-text-sm accui-font-medium accui-text-neutral-700 accui-block accui-mb-2"},"Password",-1)),e.createVNode(e.unref(U),{id:"password",modelValue:I.password,"onUpdate:modelValue":a[3]||(a[3]=e=>I.password=e),type:"password",placeholder:"Enter your password",autocomplete:"current-password",required:"",error:b.value?"Invalid email or password":void 0},null,8,["modelValue","error"])])]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:V.value||!I.email||!I.password,loading:V.value,"loading-text":"Signing in..."},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Sign in ",-1)])),_:1,__:[9]},8,["disabled","loading"])],32),e.createElementVNode("div",ha,[e.createVNode(e.unref(j),{onClick:a[4]||(a[4]=e=>t.$emit("forgot-password")),class:"accui-text-sm"},{default:e.withCtx(()=>a[10]||(a[10]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[10]})]),b.value?(e.openBlock(),e.createBlock(e.unref(u),{key:2,variant:"error",message:b.value,class:"accui-mt-6 accui-animate-fade-in",dismissible:"",onDismiss:a[5]||(a[5]=e=>b.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createElementVNode("div",ga,[e.createElementVNode("p",ya,[a[12]||(a[12]=e.createTextVNode(" Don't have an account? ",-1)),e.createVNode(e.unref(j),{onClick:a[6]||(a[6]=e=>t.$emit("switch-to-signup"))},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Sign up ",-1)])),_:1,__:[11]})])]),e.createVNode(Oe,{config:r.config},{default:e.withCtx(()=>[e.unref(s)()?(e.openBlock(),e.createElementBlock("div",ka,[e.createElementVNode("p",Ea,[a[14]||(a[14]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(s)()}`},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[13]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1,__:[15]}),e.createVNode(zt,{show:x.value,"available-mfa-methods":e.unref(p),"session-id":e.unref(m),onSuccess:A,onClose:S,onError:M},null,8,["show","available-mfa-methods","session-id"])])]))}}),wa=d(Na,[["__scopeId","data-v-e48ce4b7"]]),Va={class:"accui-component-scope"},ba={class:"signup-container"},Ca={class:"signup-success"},xa={class:"signup-success-title"},Ia={class:"signup-success-message"},Ba={key:0,class:"signup-success-email"},Aa={key:0,class:"oauth-providers"},Sa={class:"oauth-icon-container"},Ma={key:0,class:"oauth-icon"},za=["src","alt"],Ra={key:1,viewBox:"0 0 24 24",class:"oauth-icon"},Ta={key:2,class:"oauth-icon oauth-icon-github",viewBox:"0 0 24 24"},Da={key:3,class:"oauth-icon-fallback"},La={class:"oauth-icon-fallback-text"},Ua={class:"oauth-button-text"},ja={key:1,class:"divider-with-text"},Pa={key:2,class:"signup-error"},Xa={class:"signup-error-content"},Ya={class:"signup-error-icon-container"},Ha={class:"signup-error-message"},Fa={class:"signup-signin-link"},Wa={class:"signup-signin-text"},Oa={key:0},qa={class:"signup-support-text"},Za=e.defineComponent({__name:"StrandsSignUp",props:{redirectUrl:{},oauthScopes:{default:()=>[]},config:{}},emits:["success","error","switch-to-signin"],setup(a,{emit:o}){const l=a,r=o,{getUrl:n,getSupportEmail:i}=t.useStrandsConfig(l.config),{enabledProviders:s,loading:c,error:d,fetchProviders:u,redirectToProvider:m}=Rt({redirectUrl:l.redirectUrl,scopes:l.oauthScopes});e.onMounted(()=>{u().catch(e=>{})});const p=e.ref(!1),v=e.ref(""),f=e.ref(!1),h=e.ref(""),g=e.ref("Magic Link Sent!"),y=e.ref(""),k=e.reactive({email:""});e.computed(()=>k.email.trim()&&k.email.includes("@"));const E=async()=>{p.value=!0,v.value="";try{const e=n("signUp"),t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:k.email})});if(process.env.NODE_ENV,!t.ok){let e=`Sign up failed (${t.status})`;try{const a=await t.json();e=a.message||a.error||e}catch{e=await t.text()||e}throw new Error(e)}const a=await t.json();f.value=!0,y.value=k.email,h.value=a.message||"Magic link sent! Check your email.",a.message&&(a.message.includes("already have an account")||a.message.includes("Welcome back")?g.value="Welcome Back!":a.message.includes("Magic link sent")||a.message.includes("Check your email")?g.value="Magic Link Sent!":g.value="Success!"),r("success",{email:k.email,message:a.message||"Magic link sent! Check your email."})}catch(e){let t="Unable to send magic link. Please try again.";if(e instanceof Error)if(e.message.includes("fetch"))t="Unable to connect to authentication service. Please check your internet connection and try again.";else if(e.message.includes("CORS")){const e=i();t=e?`Authentication service configuration error. Please contact ${e}.`:"Authentication service configuration error."}else t=e.message;v.value=t,r("error",t)}finally{p.value=!1}},w=()=>{f.value=!1,h.value="",g.value="Magic Link Sent!",y.value="",k.email="",v.value=""};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Va,[e.createElementVNode("div",ba,[f.value?(e.openBlock(),e.createBlock(e.unref(C),{key:0,variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ca,[a[3]||(a[3]=e.createElementVNode("div",{class:"signup-success-icon"},"📧",-1)),e.createElementVNode("h1",xa,e.toDisplayString(g.value),1),e.createElementVNode("p",Ia,e.toDisplayString(h.value),1),y.value?(e.openBlock(),e.createElementBlock("div",Ba,[e.createElementVNode("strong",null,e.toDisplayString(y.value),1)])):e.createCommentVNode("",!0),a[4]||(a[4]=e.createElementVNode("p",{class:"signup-success-instructions"}," Click the link in your email to complete your account setup. The link will expire in 24 hours. ",-1)),e.createVNode(e.unref(N),{variant:"outline","full-width":"",onClick:w},{default:e.withCtx(()=>a[2]||(a[2]=[e.createTextVNode(" Send Another Link ",-1)])),_:1,__:[2]})])]),_:1})):(e.openBlock(),e.createBlock(e.unref(C),{key:1,variant:"modern"},{default:e.withCtx(()=>[a[13]||(a[13]=e.createElementVNode("div",{class:"signup-header"},[e.createElementVNode("h1",{class:"signup-title"},"Create account"),e.createElementVNode("p",{class:"signup-subtitle"},"We'll send you a magic link to get started")],-1)),e.unref(s)?.length?(e.openBlock(),e.createElementBlock("div",Aa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),t=>(e.openBlock(),e.createBlock(e.unref(N),{key:t.id,variant:"outline","full-width":"",disabled:e.unref(c),onClick:e=>(async e=>{try{await m(e,{redirectUrl:l.redirectUrl,scopes:l.oauthScopes})}catch(t){const a=t instanceof Error?t.message:`Failed to sign up with ${e}`;v.value=a,r("error",a)}})(t.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Sa,[t.icon||t.iconUrl?(e.openBlock(),e.createElementBlock("div",Ma,[e.createElementVNode("img",{src:t.icon||t.iconUrl,alt:`${t.displayName||t.name} icon`,class:"oauth-icon-image"},null,8,za)])):"google"===t.id?(e.openBlock(),e.createElementBlock("svg",Ra,a[5]||(a[5]=[e.createElementVNode("path",{fill:"#4285F4",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"},null,-1),e.createElementVNode("path",{fill:"#34A853",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"},null,-1),e.createElementVNode("path",{fill:"#FBBC05",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"},null,-1),e.createElementVNode("path",{fill:"#EA4335",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"},null,-1)]))):"github"===t.id?(e.openBlock(),e.createElementBlock("svg",Ta,a[6]||(a[6]=[e.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)]))):(e.openBlock(),e.createElementBlock("div",Da,[e.createElementVNode("span",La,e.toDisplayString((t.displayName||t.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Ua,"Continue with "+e.toDisplayString(t.displayName||t.name),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("",!0),e.unref(s)?.length?(e.openBlock(),e.createElementBlock("div",ja,a[7]||(a[7]=[e.createElementVNode("span",{class:"divider-text"},"Or create account with email",-1)]))):e.createCommentVNode("",!0),e.createElementVNode("form",{onSubmit:e.withModifiers(E,["prevent"]),class:"signup-form"},[e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"email",modelValue:k.email,"onUpdate:modelValue":a[0]||(a[0]=e=>k.email=e),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:v.value},null,8,["modelValue","error"])]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:p.value,loading:p.value,"loading-text":"Sending magic link..."},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Send magic link ",-1)])),_:1,__:[8]},8,["disabled","loading"])],32),v.value?(e.openBlock(),e.createElementBlock("div",Pa,[e.createElementVNode("div",Xa,[e.createElementVNode("div",Ya,[a[9]||(a[9]=e.createElementVNode("svg",{class:"signup-error-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"})],-1)),e.createElementVNode("p",Ha,e.toDisplayString(v.value),1)])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Fa,[e.createElementVNode("p",Wa,[a[10]||(a[10]=e.createTextVNode(" Already have an account? ",-1)),e.createElementVNode("button",{type:"button",class:"signup-signin-button",onClick:a[1]||(a[1]=e=>t.$emit("switch-to-signin"))}," Sign in ")])]),e.createVNode(Oe,{config:l.config},{default:e.withCtx(()=>[e.unref(i)()?(e.openBlock(),e.createElementBlock("div",Oa,[e.createElementVNode("p",qa,[a[12]||(a[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(i)()}`},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[11]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1,__:[13]}))])]))}}),Ga=d(Za,[["__scopeId","data-v-ab42f1ba"]]),Qa={class:"accui-component-scope"},Ja={key:0,class:"complete-signup-container"},Ka={class:"complete-signup-success"},_a={key:1,class:"complete-signup-container"},$a={class:"complete-signup-error"},eo={key:2,class:"complete-signup-container"},to={class:"complete-signup-header"},ao={key:0,class:"complete-signup-email-info"},oo={class:"complete-signup-email-text"},lo={class:"complete-signup-email-highlight"},ro={key:0,class:"complete-signup-support"},no={class:"complete-signup-support-text"},io={key:3,class:"complete-signup-container"},so={class:"complete-signup-warning"},co=e.defineComponent({__name:"StrandsCompleteSignUp",props:{token:{},redirectUrl:{},config:{}},emits:["success","error","invalid-token","request-new-link","start-registration"],setup(o,{emit:l}){const r=o,n=l,{getUrl:i,getSupportEmail:s}=t.useStrandsConfig(r.config),{setAuthData:c}=a.useStrandsAuth(),d=e.ref(!1),m=e.ref(!1),p=e.ref(!1),v=e.ref(""),f=e.ref(""),h=e.reactive({firstName:"",lastName:"",password:""}),g=e.reactive({firstName:"",lastName:"",password:""}),y=e.computed(()=>{const e=h.password.trim(),t=h.password.length>=8,a=!!r.token;return e&&t&&a});e.watch(()=>h.password,e=>{e&&e.length<8?g.password="Password must be at least 8 characters long":g.password=""});const k=e.computed(()=>r.redirectUrl||window.location.origin);e.onMounted(()=>{if(r.token)try{const e=r.token.split(".");if(3===e.length){const t=JSON.parse(atob(e[1]));t.email&&(f.value=t.email)}}catch(e){}});const E=()=>{k.value&&(window.location.href=k.value)},w=async()=>{if(r.token)if(v.value="",Object.keys(g).forEach(e=>{g[e]=""}),y.value){p.value=!0;try{const e={"Content-Type":"application/json"};"undefined"!=typeof window&&window.location&&(e.Origin=window.location.origin);const t=await fetch(i("completeRegistration"),{method:"POST",headers:e,body:JSON.stringify({token:r.token,password:h.password,first_name:h.firstName||null,last_name:h.lastName||null})});if(!t.ok){const e=await t.text();throw new Error(`Failed to complete registration: ${e}`)}const a=await t.json();a.access_token&&a.refresh_token&&a.user&&c(a),d.value=!0,n("success",a),setTimeout(()=>{E()},2e3)}catch(e){e instanceof Error?e.message.includes("CONFLICT")||e.message.includes("409")?v.value="This account already exists. Please try signing in instead.":e.message.includes("BAD_REQUEST")||e.message.includes("400")?(v.value="Invalid or expired registration link. Please request a new one.",m.value=!0,n("invalid-token")):v.value=e.message:v.value="Failed to complete registration. Please try again.",n("error",v.value)}finally{p.value=!1}}else v.value="Please fill in all required fields correctly";else v.value="Registration token is required"};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Qa,[d.value?(e.openBlock(),e.createElementBlock("div",Ja,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ka,[a[7]||(a[7]=e.createElementVNode("div",{class:"complete-signup-success-icon"},"🎉",-1)),a[8]||(a[8]=e.createElementVNode("h1",{class:"complete-signup-success-title"},"Welcome to Strands!",-1)),a[9]||(a[9]=e.createElementVNode("p",{class:"complete-signup-success-message"}," Your account has been created successfully. ",-1)),a[10]||(a[10]=e.createElementVNode("p",{class:"complete-signup-success-instructions"}," You are now signed in and can access your dashboard. ",-1)),e.createVNode(e.unref(N),{variant:"primary","full-width":"",onClick:E},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" Go to Dashboard ",-1)])),_:1,__:[6]})]),e.createVNode(Oe)]),_:1})])):m.value?(e.openBlock(),e.createElementBlock("div",_a,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",$a,[a[12]||(a[12]=e.createElementVNode("div",{class:"complete-signup-error-icon"},"❌",-1)),a[13]||(a[13]=e.createElementVNode("h1",{class:"complete-signup-error-title"},"Invalid Link",-1)),a[14]||(a[14]=e.createElementVNode("p",{class:"complete-signup-error-message"}," This registration link is invalid or has expired. ",-1)),a[15]||(a[15]=e.createElementVNode("p",{class:"complete-signup-error-instructions"}," Please request a new magic link to complete your registration. ",-1)),e.createVNode(e.unref(N),{variant:"primary","full-width":"",onClick:a[0]||(a[0]=e=>t.$emit("request-new-link"))},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Request New Link ",-1)])),_:1,__:[11]})]),e.createVNode(Oe)]),_:1})])):t.token?(e.openBlock(),e.createElementBlock("div",eo,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",to,[a[17]||(a[17]=e.createElementVNode("h1",{class:"complete-signup-title"},"Complete Your Registration",-1)),a[18]||(a[18]=e.createElementVNode("p",{class:"complete-signup-subtitle"},"Set up your account details to finish registration",-1)),f.value?(e.openBlock(),e.createElementBlock("div",ao,[e.createElementVNode("p",oo,[a[16]||(a[16]=e.createTextVNode("Creating account for: ",-1)),e.createElementVNode("span",lo,e.toDisplayString(f.value),1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("form",{onSubmit:e.withModifiers(w,["prevent"]),class:"complete-signup-form"},[e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"firstName",modelValue:h.firstName,"onUpdate:modelValue":a[1]||(a[1]=e=>h.firstName=e),type:"text",label:"First Name (Optional)",placeholder:"Enter your first name",autocomplete:"given-name",error:g.firstName},null,8,["modelValue","error"])]),e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"lastName",modelValue:h.lastName,"onUpdate:modelValue":a[2]||(a[2]=e=>h.lastName=e),type:"text",label:"Last Name (Optional)",placeholder:"Enter your last name",autocomplete:"family-name",error:g.lastName},null,8,["modelValue","error"])]),e.createElementVNode("div",null,[e.createVNode(e.unref(U),{id:"password",modelValue:h.password,"onUpdate:modelValue":a[3]||(a[3]=e=>h.password=e),type:"password",label:"Password",placeholder:"Create a strong password",autocomplete:"new-password",required:"",minlength:"8",error:g.password},null,8,["modelValue","error"]),a[19]||(a[19]=e.createElementVNode("div",{class:"complete-signup-password-hint"}," Password must be at least 8 characters long ",-1))]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:p.value||!y.value,loading:p.value,"loading-text":"Creating account..."},{default:e.withCtx(()=>a[20]||(a[20]=[e.createTextVNode(" Complete Registration ",-1)])),_:1,__:[20]},8,["disabled","loading"])],32),v.value?(e.openBlock(),e.createBlock(e.unref(u),{key:0,variant:"error",message:v.value,class:"complete-signup-error-alert",dismissible:"",onDismiss:a[4]||(a[4]=e=>v.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createVNode(Oe,{config:r.config},{default:e.withCtx(()=>[e.unref(s)()?(e.openBlock(),e.createElementBlock("div",ro,[e.createElementVNode("p",no,[a[22]||(a[22]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(s)()}`},{default:e.withCtx(()=>a[21]||(a[21]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[21]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1})])):(e.openBlock(),e.createElementBlock("div",io,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",so,[a[24]||(a[24]=e.createElementVNode("div",{class:"complete-signup-warning-icon"},"⚠️",-1)),a[25]||(a[25]=e.createElementVNode("h1",{class:"complete-signup-warning-title"},"Missing Token",-1)),a[26]||(a[26]=e.createElementVNode("p",{class:"complete-signup-warning-message"}," No registration token was provided. ",-1)),a[27]||(a[27]=e.createElementVNode("p",{class:"complete-signup-warning-instructions"}," This page requires a valid registration token from the magic link in your email. ",-1)),e.createVNode(e.unref(N),{variant:"primary","full-width":"",onClick:a[5]||(a[5]=e=>t.$emit("start-registration"))},{default:e.withCtx(()=>a[23]||(a[23]=[e.createTextVNode(" Start Registration ",-1)])),_:1,__:[23]})]),e.createVNode(Oe)]),_:1})]))]))}}),uo=d(co,[["__scopeId","data-v-558285a4"]]),mo={class:"accui-component-scope"},po={key:0,class:"step-container"},vo={class:"step-actions"},fo={key:1,class:"step-container"},ho={class:"qr-container"},go={key:0,class:"qr-wrapper"},yo=["src"],ko={key:1,class:"qr-loading"},Eo={class:"manual-entry"},No={class:"manual-code"},wo={key:0,class:"bg-yellow-50 border border-yellow-200 rounded-lg p-4"},Vo={class:"flex justify-end space-x-3 pt-4"},bo={key:2,class:"space-y-4"},Co={class:"totp-setup-step-actions"},xo={key:3,class:"totp-setup-step"},Io={class:"totp-setup-backup-codes"},Bo={class:"totp-setup-backup-grid-wrapper"},Ao={class:"totp-setup-backup-grid"},So={class:"totp-setup-backup-actions"},Mo={class:"totp-setup-final-actions"},zo=e.defineComponent({__name:"StrandsTotpSetupModal",props:{show:{type:Boolean}},emits:["close","success"],setup(t,{emit:a}){const o=t,l=a,{setupTotp:r,verifyTotpSetup:n,loading:i}=Qe(),s=e.ref(1),c=e.ref(""),d=e.ref(""),u=e.ref(""),m=e.ref(""),p=e.ref(null),v=e.ref("");e.watch(()=>o.show,e=>{e&&(s.value=1,c.value="",d.value="",u.value="",m.value="",p.value=null,v.value="")}),e.watch(()=>p.value,async e=>{if(e?.qr_code_url)try{const t=`https://api.qrserver.com/v1/create-qr-code/?size=192x192&data=${encodeURIComponent(e.qr_code_url)}&bgcolor=ffffff&color=000000`;v.value=t}catch(t){}});const f=()=>{l("close")},h=async()=>{if(c.value.trim()){d.value="";try{const e=await r(c.value.trim());p.value=e,s.value=2}catch(e){d.value=e instanceof Error?e.message:"Failed to setup TOTP"}}else d.value="Device name is required"},g=e=>{u.value=e.replace(/\D/g,"").slice(0,6),m.value=""},y=async()=>{if(p.value&&u.value){m.value="";try{await n(p.value.device_id,u.value),s.value=4}catch(e){m.value=e instanceof Error?e.message:"Invalid verification code"}}},k=async()=>{if(p.value?.backup_codes)try{const e=p.value.backup_codes.join("\n");await navigator.clipboard.writeText(e)}catch(e){}},E=()=>{l("success")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",mo,[e.createVNode(Ye,{open:t.show,onClose:f,"card-class":"modal-card"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"modal-header"},[a[6]||(a[6]=e.createElementVNode("h2",{class:"modal-title"},"Setup Authenticator App",-1)),e.createElementVNode("button",{onClick:f,class:"modal-close-button"},a[5]||(a[5]=[e.createElementVNode("svg",{class:"modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[1===s.value?(e.openBlock(),e.createElementBlock("div",po,[a[9]||(a[9]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"step-title"},"Name Your Device"),e.createElementVNode("p",{class:"step-description"},' Give this authenticator a memorable name (e.g., "iPhone", "Work Phone") ')],-1)),e.createVNode(e.unref(U),{modelValue:c.value,"onUpdate:modelValue":a[0]||(a[0]=e=>c.value=e),label:"Device Name",placeholder:"My Authenticator",error:d.value,disabled:e.unref(i)},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",vo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:f,disabled:e.unref(i)},{default:e.withCtx(()=>a[7]||(a[7]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[7]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:h,disabled:!c.value.trim()||e.unref(i),loading:e.unref(i)},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" Continue ",-1)])),_:1,__:[8]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),2===s.value?(e.openBlock(),e.createElementBlock("div",fo,[a[14]||(a[14]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"step-title"},"Scan QR Code"),e.createElementVNode("p",{class:"step-description"}," Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.) ")],-1)),e.createElementVNode("div",ho,[v.value?(e.openBlock(),e.createElementBlock("div",go,[e.createElementVNode("img",{src:v.value,alt:"TOTP QR Code",class:"qr-image"},null,8,yo)])):(e.openBlock(),e.createElementBlock("div",ko,[e.createVNode(e.unref(G),{size:24})]))]),e.createElementVNode("div",Eo,[a[10]||(a[10]=e.createElementVNode("p",{class:"manual-label"}," Can't scan? Enter this code manually: ",-1)),e.createElementVNode("code",No,e.toDisplayString(p.value?.secret||"..."),1)]),p.value?.backup_codes?(e.openBlock(),e.createElementBlock("div",wo,a[11]||(a[11]=[e.createElementVNode("div",{class:"flex items-start space-x-2"},[e.createElementVNode("svg",{class:"w-5 h-5 text-yellow-600 mt-0.5 flex-shrink-0",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"text-sm font-medium text-yellow-800"},"Save Your Backup Codes"),e.createElementVNode("p",{class:"text-sm text-yellow-700 mt-1"}," After setup, you'll receive backup codes. Store them safely - they're your only way to recover access if you lose your device. ")])],-1)]))):e.createCommentVNode("",!0),e.createElementVNode("div",Vo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[1]||(a[1]=e=>s.value=1),disabled:e.unref(i)},{default:e.withCtx(()=>a[12]||(a[12]=[e.createTextVNode(" Back ",-1)])),_:1,__:[12]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:a[2]||(a[2]=e=>s.value=3),disabled:e.unref(i)},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" I've Added It ",-1)])),_:1,__:[13]},8,["disabled"])])])):e.createCommentVNode("",!0),3===s.value?(e.openBlock(),e.createElementBlock("div",bo,[a[17]||(a[17]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"text-lg font-semibold text-gray-900 mb-2"},"Verify Setup"),e.createElementVNode("p",{class:"text-sm text-gray-600 mb-4"}," Enter the 6-digit code from your authenticator app to complete setup ")],-1)),e.createVNode(e.unref(U),{modelValue:u.value,"onUpdate:modelValue":a[3]||(a[3]=e=>u.value=e),label:"Verification Code",placeholder:"123456",maxlength:"6",error:m.value,disabled:e.unref(i),onInput:g},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",Co,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[4]||(a[4]=e=>s.value=2),disabled:e.unref(i)},{default:e.withCtx(()=>a[15]||(a[15]=[e.createTextVNode(" Back ",-1)])),_:1,__:[15]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:y,disabled:6!==u.value.length||e.unref(i),loading:e.unref(i)},{default:e.withCtx(()=>a[16]||(a[16]=[e.createTextVNode(" Verify & Enable ",-1)])),_:1,__:[16]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),4===s.value?(e.openBlock(),e.createElementBlock("div",xo,[a[21]||(a[21]=e.createElementVNode("div",{class:"totp-setup-success"},[e.createElementVNode("div",{class:"totp-setup-success-icon"},[e.createElementVNode("svg",{class:"totp-setup-check-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])]),e.createElementVNode("h3",{class:"totp-setup-step-title"},"TOTP Setup Complete!"),e.createElementVNode("p",{class:"totp-setup-success-description"}," Your authenticator app is now active for two-factor authentication. ")],-1)),e.createElementVNode("div",Io,[a[19]||(a[19]=e.createElementVNode("div",{class:"totp-setup-backup-header"},[e.createElementVNode("svg",{class:"totp-setup-backup-warning-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"totp-setup-backup-header-title"},"Save These Backup Codes"),e.createElementVNode("p",{class:"totp-setup-backup-header-description"}," Store these codes in a safe place. Each code can only be used once. ")])],-1)),e.createElementVNode("div",Bo,[e.createElementVNode("div",Ao,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value?.backup_codes,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:a,class:"totp-setup-backup-code"},e.toDisplayString(t),1))),128))])]),e.createElementVNode("div",So,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:k},{default:e.withCtx(()=>a[18]||(a[18]=[e.createTextVNode(" 📋 Copy Codes ",-1)])),_:1,__:[18]})])]),e.createElementVNode("div",Mo,[e.createVNode(e.unref(N),{variant:"primary",onClick:E},{default:e.withCtx(()=>a[20]||(a[20]=[e.createTextVNode(" Done ",-1)])),_:1,__:[20]})])])):e.createCommentVNode("",!0)]),_:1},8,["open"])]))}}),Ro=d(zo,[["__scopeId","data-v-d3ba73e3"]]),To={class:"accui-component-scope"},Do={key:0,class:"email-mfa-setup-step"},Lo={class:"email-mfa-setup-step-actions"},Uo={key:1,class:"email-mfa-setup-step"},jo={class:"email-mfa-setup-resend-section"},Po={class:"email-mfa-setup-step-actions"},Xo={key:2,class:"email-mfa-setup-step"},Yo={class:"email-mfa-setup-final-actions"},Ho=e.defineComponent({__name:"StrandsEmailMfaSetupModal",props:{show:{type:Boolean}},emits:["close","success"],setup(t,{emit:a}){const o=t,l=a,{setupEmailMfa:r,sendEmailMfaCode:n,verifyEmailMfaCode:i,loading:s}=Qe(),c=e.ref(1),d=e.ref(""),u=e.ref(""),m=e.ref(""),p=e.ref(""),v=e.ref(null),f=e.ref(!1),h=e.ref(0);let g=null;e.watch(()=>o.show,e=>{e&&(c.value=1,d.value="",u.value="",m.value="",p.value="",v.value=null,f.value=!1,h.value=0,g&&(clearInterval(g),g=null))}),e.onBeforeUnmount(()=>{g&&clearInterval(g)});const y=()=>{l("close")},k=async()=>{if(d.value.trim()){u.value="";try{const e=await r(d.value.trim());v.value=e.device_id,await n(e.device_id),c.value=2,b()}catch(e){u.value=e instanceof Error?e.message:"Failed to setup email MFA"}}else u.value="Device name is required"},E=e=>{m.value=e.replace(/\D/g,"").slice(0,6),p.value=""},w=async()=>{if(v.value&&m.value){p.value="";try{await i(v.value,m.value)?c.value=3:p.value="Invalid verification code"}catch(e){p.value=e instanceof Error?e.message:"Invalid verification code"}}},V=async()=>{if(v.value&&!f.value)try{await n(v.value),b()}catch(e){}},b=()=>{f.value=!0,h.value=30,g=setInterval(()=>{h.value-=1,h.value<=0&&(f.value=!1,g&&(clearInterval(g),g=null))},1e3)},C=()=>{l("success")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",To,[e.createVNode(Ye,{open:t.show,onClose:y,"card-class":"email-mfa-setup-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"email-mfa-setup-header"},[a[4]||(a[4]=e.createElementVNode("h2",{class:"email-mfa-setup-title"},"Setup Email 2FA",-1)),e.createElementVNode("button",{onClick:y,class:"email-mfa-setup-close-button"},a[3]||(a[3]=[e.createElementVNode("svg",{class:"email-mfa-setup-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[1===c.value?(e.openBlock(),e.createElementBlock("div",Do,[a[7]||(a[7]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"email-mfa-setup-step-title"},"Name Your Email 2FA"),e.createElementVNode("p",{class:"email-mfa-setup-step-description"},' Give this email 2FA method a memorable name (e.g., "Personal Email", "Work Email") ')],-1)),e.createVNode(e.unref(U),{modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=e=>d.value=e),label:"Device Name",placeholder:"Personal Email",error:u.value,disabled:e.unref(s)},null,8,["modelValue","error","disabled"]),a[8]||(a[8]=e.createElementVNode("div",{class:"email-mfa-setup-info"},[e.createElementVNode("div",{class:"email-mfa-setup-info-content"},[e.createElementVNode("svg",{class:"email-mfa-setup-info-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"email-mfa-setup-info-title"},"Email 2FA"),e.createElementVNode("p",{class:"email-mfa-setup-info-description"}," Verification codes will be sent to your registered email address when logging in. ")])])],-1)),e.createElementVNode("div",Lo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:y,disabled:e.unref(s)},{default:e.withCtx(()=>a[5]||(a[5]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[5]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:k,disabled:!d.value.trim()||e.unref(s),loading:e.unref(s)},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" Setup Email 2FA ",-1)])),_:1,__:[6]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),2===c.value?(e.openBlock(),e.createElementBlock("div",Uo,[a[11]||(a[11]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"email-mfa-setup-step-title"},"Test Email 2FA"),e.createElementVNode("p",{class:"email-mfa-setup-step-description"}," We've sent a test verification code to your email. Enter it below to complete setup. ")],-1)),a[12]||(a[12]=e.createElementVNode("div",{class:"email-mfa-setup-success-notification"},[e.createElementVNode("div",{class:"email-mfa-setup-success-content"},[e.createElementVNode("svg",{class:"email-mfa-setup-success-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"email-mfa-setup-success-title"},"Code Sent!"),e.createElementVNode("p",{class:"email-mfa-setup-success-description"}," Check your email inbox for the verification code. ")])])],-1)),e.createVNode(e.unref(U),{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=e=>m.value=e),label:"Verification Code",placeholder:"123456",maxlength:"6",error:p.value,disabled:e.unref(s),onInput:E},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",jo,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:V,disabled:e.unref(s)||f.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value?`Resend in ${h.value}s`:"Resend Code"),1)]),_:1},8,["disabled"])]),e.createElementVNode("div",Po,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[2]||(a[2]=e=>c.value=1),disabled:e.unref(s)},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Back ",-1)])),_:1,__:[9]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:w,disabled:6!==m.value.length||e.unref(s),loading:e.unref(s)},{default:e.withCtx(()=>a[10]||(a[10]=[e.createTextVNode(" Verify & Enable ",-1)])),_:1,__:[10]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),3===c.value?(e.openBlock(),e.createElementBlock("div",Xo,[a[14]||(a[14]=e.createElementVNode("div",{class:"email-mfa-setup-completion"},[e.createElementVNode("div",{class:"email-mfa-setup-completion-icon"},[e.createElementVNode("svg",{class:"email-mfa-setup-check-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])]),e.createElementVNode("h3",{class:"email-mfa-setup-step-title"},"Email 2FA Setup Complete!"),e.createElementVNode("p",{class:"email-mfa-setup-completion-description"}," Email verification is now active for your account. You'll receive codes at your registered email address. ")],-1)),a[15]||(a[15]=e.createElementVNode("div",{class:"email-mfa-setup-info"},[e.createElementVNode("div",{class:"email-mfa-setup-info-content"},[e.createElementVNode("svg",{class:"email-mfa-setup-info-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"email-mfa-setup-info-title"},"How it works"),e.createElementVNode("p",{class:"email-mfa-setup-info-description"}," When logging in, you'll receive a 6-digit code at your email address. Enter this code to complete authentication. ")])])],-1)),e.createElementVNode("div",Yo,[e.createVNode(e.unref(N),{variant:"primary",onClick:C},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" Done ",-1)])),_:1,__:[13]})])])):e.createCommentVNode("",!0)]),_:1},8,["open"])]))}}),Fo=d(Ho,[["__scopeId","data-v-188dcefe"]]),Wo={class:"accui-component-scope"},Oo={key:0,class:"hardware-key-setup-step"},qo={class:"hardware-key-setup-actions"},Zo={key:1,class:"hardware-key-setup-step"},Go={class:"hardware-key-setup-instructions"},Qo={class:"hardware-key-setup-instructions-header"},Jo={class:"hardware-key-setup-instructions-list"},Ko={class:"hardware-key-setup-actions"},_o={key:2,class:"hardware-key-setup-step"},$o={class:"hardware-key-setup-progress"},el={class:"hardware-key-setup-progress-icon"},tl={class:"hardware-key-setup-progress-message"},al={key:3,class:"hardware-key-setup-step"},ol={class:"hardware-key-setup-backup-codes"},ll={class:"hardware-key-setup-codes-container"},rl={class:"hardware-key-setup-codes-grid"},nl={class:"hardware-key-setup-copy-action"},il={class:"hardware-key-setup-final-action"},sl={key:4,class:"hardware-key-setup-step"},cl={class:"hardware-key-setup-error"},dl={class:"hardware-key-setup-error-message"},ul={class:"hardware-key-setup-actions"},ml=e.defineComponent({__name:"StrandsHardwareKeySetupModal",props:{show:{type:Boolean},deviceType:{default:"hardware"}},emits:["close","success"],setup(t,{emit:o}){const l=t,r=o,{loading:n}=Qe(),{registerHardwareKey:i,completeHardwareKeyRegistration:s,currentSession:c}=a.useStrandsAuth(),d=e.ref(!1),u=e.computed(()=>n.value||d.value),m=e.ref(1),p=e.ref(""),v=e.ref(""),f=e.ref("Please touch your hardware key when prompted"),h=e.ref(""),g=e.ref([]);e.watch(()=>l.show,e=>{e&&(m.value=1,p.value="",v.value="",f.value="Please touch your hardware key when prompted",h.value="",g.value=[])});const y=()=>{r("close")},k=e=>"passkey"===e?{authenticatorAttachment:void 0,requireResidentKey:!0,residentKey:"required",userVerification:"required"}:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,residentKey:"discouraged",userVerification:"discouraged"},E=async()=>{p.value.trim()?(v.value="",m.value=2):v.value="Device name is required"},w=async()=>{d.value=!0,m.value=3,f.value=`Starting ${"passkey"===l.deviceType?"passkey":"hardware key"} registration...`;try{if(!window.navigator.credentials||!window.PublicKeyCredential)throw new Error("WebAuthn is not supported in this browser");try{await(PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?.());if(PublicKeyCredential.isConditionalMediationAvailable){await PublicKeyCredential.isConditionalMediationAvailable()}}catch(e){}if(!c.value?.accessToken)throw new Error("Not authenticated. Please sign in again.");const{device_id:a,challenge:o}=await i(p.value.trim(),c.value.accessToken);if(!o||"object"!=typeof o)throw new Error("Invalid challenge received from server");o.user;const r=((e,t)=>{const a=e=>{try{if(!e)return new Uint8Array(32);if(e instanceof Uint8Array)return new Uint8Array(e);if(e&&"object"==typeof e&&e.buffer)return new Uint8Array(e.buffer);if(Array.isArray(e))return new Uint8Array(e);if("string"==typeof e){const t=atob(e),a=new Uint8Array(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return a}return crypto.getRandomValues(new Uint8Array(32))}catch(t){return crypto.getRandomValues(new Uint8Array(32))}};try{const o={rp:e.rp||{name:"Strands Accounts"},user:{id:a(e.user?.id),name:e.user?.name||"user",displayName:e.user?.displayName||e.user?.name||"User"},challenge:a(e.challenge),pubKeyCredParams:e.pubKeyCredParams||[{type:"public-key",alg:-7},{type:"public-key",alg:-35},{type:"public-key",alg:-36},{type:"public-key",alg:-257},{type:"public-key",alg:-258},{type:"public-key",alg:-259},{type:"public-key",alg:-37},{type:"public-key",alg:-38},{type:"public-key",alg:-39},{type:"public-key",alg:-8}],timeout:e.timeout||("passkey"===t?3e5:12e4),authenticatorSelection:e.authenticatorSelection||k(t),attestation:e.attestation||("passkey"===t?"none":"direct")};return e.excludeCredentials&&Array.isArray(e.excludeCredentials)&&e.excludeCredentials.length>0&&(o.excludeCredentials=e.excludeCredentials.map(e=>({type:"public-key",id:a(e.id)}))),o}catch(o){throw new Error("Unable to process WebAuthn challenge data")}})(o,l.deviceType);f.value="Please touch your hardware key now...";const n=await navigator.credentials.create({publicKey:r});if(!n)throw new Error("Hardware key registration was cancelled");f.value="Completing registration...";const d=n.response;try{if(!n.rawId)throw new Error("Missing rawId in credential");if(!d.clientDataJSON)throw new Error("Missing clientDataJSON in credential response");if(!d.attestationObject)throw new Error("Missing attestationObject in credential response");const e=n.rawId instanceof ArrayBuffer?Array.from(new Uint8Array(n.rawId)):Array.from(n.rawId),t=d.clientDataJSON instanceof ArrayBuffer?Array.from(new Uint8Array(d.clientDataJSON)):Array.from(d.clientDataJSON),o=d.attestationObject instanceof ArrayBuffer?Array.from(new Uint8Array(d.attestationObject)):Array.from(d.attestationObject),l={id:n.id,rawId:e,response:{clientDataJSON:t,attestationObject:o},type:n.type},r=await s(a,l,c.value.accessToken);g.value=r.backup_codes||[],m.value=4}catch(t){throw new Error(`Failed to process hardware key data: ${t instanceof Error?t.message:String(t)}`)}}catch(a){let e="Hardware key registration failed";if(a instanceof Error){const t=a.message.toLowerCase();e=t.includes("not supported")||t.includes("webauthn")?"WebAuthn is not supported in this browser. Please use Chrome, Firefox, Safari, or Edge.":t.includes("cancelled")||t.includes("aborted")?"Hardware key registration was cancelled. Please try again and touch your key when prompted.":t.includes("timeout")?"Hardware key registration timed out. Please ensure your key is connected and try again.":t.includes("not allowed")||t.includes("invalid state")?"This hardware key may already be registered or cannot be used. Try a different key or contact support.":t.includes("can't be used")||t.includes("newer or different")?"Your hardware key is not compatible. Please ensure you have a FIDO2/WebAuthn compatible key like YubiKey 5 Series, and that it's properly connected.":t.includes("user verification")||t.includes("pin")?"Hardware key verification failed. If your key has a PIN, please enter it when prompted.":a.message}h.value=e,m.value=5}finally{d.value=!1}},V=async()=>{if(g.value.length)try{const e=g.value.join("\n");await navigator.clipboard.writeText(e)}catch(e){}},b=()=>{r("success")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Wo,[e.createVNode(Ye,{open:t.show,onClose:y,"card-class":"hardware-key-setup-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"hardware-key-setup-header"},[a[4]||(a[4]=e.createElementVNode("h2",{class:"hardware-key-setup-title"},"Setup Hardware Key",-1)),e.createElementVNode("button",{onClick:y,class:"hardware-key-setup-close"},a[3]||(a[3]=[e.createElementVNode("svg",{class:"hardware-key-setup-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[1===m.value?(e.openBlock(),e.createElementBlock("div",Oo,[a[7]||(a[7]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Name Your Hardware Key"),e.createElementVNode("p",{class:"hardware-key-setup-step-description"},' Give your hardware key a memorable name (e.g., "YubiKey 5", "Work Security Key") ')],-1)),e.createVNode(e.unref(U),{modelValue:p.value,"onUpdate:modelValue":a[0]||(a[0]=e=>p.value=e),label:"Device Name",placeholder:"My Hardware Key",error:v.value,disabled:u.value},null,8,["modelValue","error","disabled"]),e.createElementVNode("div",qo,[e.createVNode(e.unref(N),{variant:"secondary",onClick:y,disabled:u.value},{default:e.withCtx(()=>a[5]||(a[5]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[5]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:E,disabled:!p.value.trim()||u.value,loading:u.value},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" Continue ",-1)])),_:1,__:[6]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),2===m.value?(e.openBlock(),e.createElementBlock("div",Zo,[a[18]||(a[18]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Register Hardware Key"),e.createElementVNode("p",{class:"hardware-key-setup-step-description"}," Insert your hardware key and follow your browser's prompts to complete registration. ")],-1)),a[19]||(a[19]=e.createElementVNode("div",{class:"hardware-key-setup-illustration"},[e.createElementVNode("div",{class:"hardware-key-setup-illustration-content"},[e.createElementVNode("div",{class:"hardware-key-setup-icon-container"},[e.createElementVNode("svg",{class:"hardware-key-setup-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 7a2 2 0 012 2m0 0a2 2 0 012 2v6a2 2 0 01-2 2H9a2 2 0 01-2-2V9a2 2 0 012-2m0 0V7a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h3m0 0v8m0-8h8m-8 8h8"})])]),e.createElementVNode("p",{class:"hardware-key-setup-status"},"Hardware Key Ready"),e.createElementVNode("p",{class:"hardware-key-setup-substatus"},'Click "Register Key" when ready')])],-1)),e.createElementVNode("div",Go,[e.createElementVNode("div",Qo,[a[15]||(a[15]=e.createElementVNode("svg",{class:"hardware-key-setup-info-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})],-1)),e.createElementVNode("div",null,[a[14]||(a[14]=e.createElementVNode("p",{class:"hardware-key-setup-instructions-title"},"Setup Instructions",-1)),e.createElementVNode("ul",Jo,["passkey"===l.deviceType?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a[8]||(a[8]=e.createElementVNode("li",null,"• Your browser will prompt you to create a passkey",-1)),a[9]||(a[9]=e.createElementVNode("li",null,"• Use Touch ID, Face ID, Windows Hello, or PIN",-1)),a[10]||(a[10]=e.createElementVNode("li",null,"• Follow the prompts to complete setup",-1))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[a[11]||(a[11]=e.createElementVNode("li",null,"• Insert your hardware key into a USB port",-1)),a[12]||(a[12]=e.createElementVNode("li",null,"• Your browser will prompt you to interact with the key",-1)),a[13]||(a[13]=e.createElementVNode("li",null,"• Touch the key's button or sensor when prompted",-1))],64))])])])]),e.createElementVNode("div",Ko,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[1]||(a[1]=e=>m.value=1),disabled:u.value},{default:e.withCtx(()=>a[16]||(a[16]=[e.createTextVNode(" Back ",-1)])),_:1,__:[16]},8,["disabled"]),e.createVNode(e.unref(N),{variant:"primary",onClick:w,disabled:u.value,loading:u.value},{default:e.withCtx(()=>a[17]||(a[17]=[e.createTextVNode(" Register Key ",-1)])),_:1,__:[17]},8,["disabled","loading"])])])):e.createCommentVNode("",!0),3===m.value?(e.openBlock(),e.createElementBlock("div",_o,[e.createElementVNode("div",$o,[e.createElementVNode("div",el,[e.createVNode(e.unref(G),{size:24,class:"hardware-key-setup-loader"})]),a[20]||(a[20]=e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Registering Hardware Key",-1)),e.createElementVNode("p",tl,e.toDisplayString(f.value),1)]),a[21]||(a[21]=e.createElementVNode("div",{class:"hardware-key-setup-progress-indicator"},[e.createElementVNode("div",{class:"hardware-key-setup-progress-content"},[e.createElementVNode("div",{class:"hardware-key-setup-progress-check"},[e.createElementVNode("div",{class:"hardware-key-setup-check-icon"},[e.createElementVNode("svg",{class:"hardware-key-setup-check",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])])]),e.createElementVNode("p",{class:"hardware-key-setup-progress-text"},"Touch your hardware key to complete registration")])],-1))])):e.createCommentVNode("",!0),4===m.value?(e.openBlock(),e.createElementBlock("div",al,[a[25]||(a[25]=e.createElementVNode("div",{class:"hardware-key-setup-success"},[e.createElementVNode("div",{class:"hardware-key-setup-success-icon"},[e.createElementVNode("svg",{class:"hardware-key-setup-success-check",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})])]),e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Hardware Key Setup Complete!"),e.createElementVNode("p",{class:"hardware-key-setup-success-message"}," Your hardware key is now active for two-factor authentication. ")],-1)),e.createElementVNode("div",ol,[a[23]||(a[23]=e.createElementVNode("div",{class:"hardware-key-setup-backup-codes-header"},[e.createElementVNode("svg",{class:"hardware-key-setup-warning-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"hardware-key-setup-backup-codes-title"},"Save These Backup Codes"),e.createElementVNode("p",{class:"hardware-key-setup-backup-codes-description"}," Store these codes in a safe place. Each code can only be used once if you lose your hardware key. ")])],-1)),e.createElementVNode("div",ll,[e.createElementVNode("div",rl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:a,class:"hardware-key-setup-code"},e.toDisplayString(t),1))),128))])]),e.createElementVNode("div",nl,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:V},{default:e.withCtx(()=>a[22]||(a[22]=[e.createTextVNode(" 📋 Copy Codes ",-1)])),_:1,__:[22]})])]),e.createElementVNode("div",il,[e.createVNode(e.unref(N),{variant:"primary",onClick:b},{default:e.withCtx(()=>a[24]||(a[24]=[e.createTextVNode(" Done ",-1)])),_:1,__:[24]})])])):e.createCommentVNode("",!0),5===m.value?(e.openBlock(),e.createElementBlock("div",sl,[e.createElementVNode("div",cl,[a[26]||(a[26]=e.createElementVNode("div",{class:"hardware-key-setup-error-icon"},[e.createElementVNode("svg",{class:"hardware-key-setup-error-x",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})])],-1)),a[27]||(a[27]=e.createElementVNode("h3",{class:"hardware-key-setup-step-title"},"Registration Failed",-1)),e.createElementVNode("p",dl,e.toDisplayString(h.value),1)]),e.createElementVNode("div",ul,[e.createVNode(e.unref(N),{variant:"secondary",onClick:a[2]||(a[2]=e=>m.value=1)},{default:e.withCtx(()=>a[28]||(a[28]=[e.createTextVNode(" Start Over ",-1)])),_:1,__:[28]}),e.createVNode(e.unref(N),{variant:"primary",onClick:y},{default:e.withCtx(()=>a[29]||(a[29]=[e.createTextVNode(" Close ",-1)])),_:1,__:[29]})])])):e.createCommentVNode("",!0)]),_:1},8,["open"])]))}}),pl=d(ml,[["__scopeId","data-v-4bb5b430"]]),vl={class:"accui-component-scope"},fl={key:0,class:"backup-codes-loading"},hl={key:1,class:"backup-codes-content"},gl={key:0,class:"backup-codes-device-info"},yl={class:"backup-codes-device-content"},kl={class:"backup-codes-device-name"},El={class:"backup-codes-device-type"},Nl={key:1},wl={class:"backup-codes-grid-wrapper"},Vl={class:"backup-codes-grid"},bl={class:"backup-codes-actions"},Cl={class:"backup-codes-main-actions"},xl={class:"backup-codes-main-actions-content"},Il={key:2,class:"backup-codes-regenerate-warning"},Bl={class:"backup-codes-regenerate-content"},Al={class:"backup-codes-regenerate-actions"},Sl=e.defineComponent({__name:"StrandsBackupCodesModal",props:{show:{type:Boolean},device:{}},emits:["close"],setup(t,{emit:a}){const o=t,l=a,{regenerateBackupCodes:r,loading:n,getDeviceTypeName:i}=Qe(),s=e.ref([]),c=e.ref(!1);e.watch(()=>o.show,async e=>{e&&o.device&&(c.value=!1,s.value=[])}),e.onMounted(async()=>{o.show&&o.device&&(s.value=[])});const d=()=>{l("close")},u=()=>{c.value=!0},m=async()=>{if(o.device)try{const e=await r(o.device.id);s.value=e.backup_codes,c.value=!1}catch(e){}},p=async()=>{if(0!==s.value.length)try{const e=s.value.join("\n");await navigator.clipboard.writeText(e)}catch(e){}},v=()=>{if(0===s.value.length)return;const e=`strands-backup-codes-${o.device?.device_name||"device"}-${(new Date).toISOString().split("T")[0]}.txt`,t=["Strands Account Backup Codes","============================","",`Device: ${o.device?.device_name}`,`Generated: ${(new Date).toLocaleString()}`,"","IMPORTANT:","- Each code can only be used once","- Store these codes in a safe place","- Use these if you lose access to your authenticator","","Backup Codes:",...s.value.map((e,t)=>`${t+1}. ${e}`),"","============================"].join("\n"),a=new Blob([t],{type:"text/plain"}),l=URL.createObjectURL(a),r=document.createElement("a");r.href=l,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(l)};return(t,a)=>(e.openBlock(),e.createElementBlock("div",vl,[e.createVNode(Ye,{open:t.show,onClose:d,"card-class":"backup-codes-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"backup-codes-header"},[a[2]||(a[2]=e.createElementVNode("h2",{class:"backup-codes-title"},"Backup Codes",-1)),e.createElementVNode("button",{onClick:d,class:"backup-codes-close-button"},a[1]||(a[1]=[e.createElementVNode("svg",{class:"backup-codes-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.unref(n)?(e.openBlock(),e.createElementBlock("div",fl,[e.createVNode(e.unref(G),{size:24}),a[3]||(a[3]=e.createElementVNode("span",{class:"backup-codes-loading-text"},"Loading backup codes...",-1))])):(e.openBlock(),e.createElementBlock("div",hl,[t.device?(e.openBlock(),e.createElementBlock("div",gl,[e.createElementVNode("div",yl,[a[4]||(a[4]=e.createElementVNode("span",{class:"backup-codes-device-icon"},"📱",-1)),e.createElementVNode("div",null,[e.createElementVNode("h3",kl,e.toDisplayString(t.device.device_name),1),e.createElementVNode("p",El,e.toDisplayString(e.unref(i)(t.device.device_type)),1)])])])):e.createCommentVNode("",!0),a[15]||(a[15]=e.createElementVNode("div",{class:"backup-codes-warning"},[e.createElementVNode("div",{class:"backup-codes-warning-content"},[e.createElementVNode("svg",{class:"backup-codes-warning-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),e.createElementVNode("div",null,[e.createElementVNode("p",{class:"backup-codes-warning-title"},"Important Security Information"),e.createElementVNode("ul",{class:"backup-codes-warning-list"},[e.createElementVNode("li",null,"• Each backup code can only be used once"),e.createElementVNode("li",null,"• Store these codes in a safe place"),e.createElementVNode("li",null,"• Use backup codes if you lose access to your authenticator"),e.createElementVNode("li",null,"• Regenerating codes will invalidate all previous codes")])])])],-1)),s.value.length>0?(e.openBlock(),e.createElementBlock("div",Nl,[a[7]||(a[7]=e.createElementVNode("h3",{class:"backup-codes-section-title"},"Your Backup Codes",-1)),e.createElementVNode("div",wl,[e.createElementVNode("div",Vl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:a,class:"backup-codes-code-item"},e.toDisplayString(t),1))),128))])]),e.createElementVNode("div",bl,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:p},{default:e.withCtx(()=>a[5]||(a[5]=[e.createTextVNode(" 📋 Copy All Codes ",-1)])),_:1,__:[5]}),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:v},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(" 💾 Download ",-1)])),_:1,__:[6]})])])):e.createCommentVNode("",!0),e.createElementVNode("div",Cl,[e.createElementVNode("div",xl,[e.createVNode(e.unref(N),{variant:"secondary",onClick:u,disabled:e.unref(n),loading:e.unref(n)},{default:e.withCtx(()=>a[8]||(a[8]=[e.createTextVNode(" 🔄 Regenerate Codes ",-1)])),_:1,__:[8]},8,["disabled","loading"]),e.createVNode(e.unref(N),{variant:"primary",onClick:d},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Done ",-1)])),_:1,__:[9]})])]),c.value?(e.openBlock(),e.createElementBlock("div",Il,[e.createElementVNode("div",Bl,[a[14]||(a[14]=e.createElementVNode("svg",{class:"backup-codes-regenerate-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)),e.createElementVNode("div",null,[a[12]||(a[12]=e.createElementVNode("p",{class:"backup-codes-regenerate-title"},"Regenerate Backup Codes?",-1)),a[13]||(a[13]=e.createElementVNode("p",{class:"backup-codes-regenerate-description"}," This will invalidate all current backup codes. Make sure to save the new ones. ",-1)),e.createElementVNode("div",Al,[e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:m,disabled:e.unref(n),loading:e.unref(n)},{default:e.withCtx(()=>a[10]||(a[10]=[e.createTextVNode(" Yes, Regenerate ",-1)])),_:1,__:[10]},8,["disabled","loading"]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[0]||(a[0]=e=>c.value=!1)},{default:e.withCtx(()=>a[11]||(a[11]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[11]})])])])])):e.createCommentVNode("",!0)]))]),_:1},8,["open"])]))}}),Ml=d(Sl,[["__scopeId","data-v-ab2930f9"]]),zl={class:"accui-component-scope"},Rl={class:"confirm-modal-title"},Tl={class:"confirm-modal-message"},Dl={class:"confirm-modal-actions"},Ll=e.defineComponent({__name:"StrandsConfirmModal",props:{show:{type:Boolean},title:{},message:{},confirmText:{default:"Confirm"},cancelText:{default:"Cancel"},variant:{default:"primary"}},emits:["confirm","cancel"],setup(t,{emit:a}){const o=a,l=e.ref(!1),r=()=>{l.value=!0,o("confirm")},n=()=>{o("cancel")};return(t,a)=>(e.openBlock(),e.createElementBlock("div",zl,[e.createVNode(Ye,{open:t.show,"card-class":"confirm-modal"},{header:e.withCtx(()=>[e.createElementVNode("h2",Rl,e.toDisplayString(t.title),1)]),default:e.withCtx(()=>[e.createElementVNode("p",Tl,e.toDisplayString(t.message),1),e.createElementVNode("div",Dl,[e.createVNode(e.unref(N),{variant:"secondary",onClick:n,disabled:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelText),1)]),_:1},8,["disabled"]),e.createVNode(e.unref(N),{variant:t.variant,onClick:r,disabled:l.value,loading:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.confirmText),1)]),_:1},8,["variant","disabled","loading"])])]),_:1},8,["open"])]))}}),Ul=d(Ll,[["__scopeId","data-v-22fcdfc7"]]),jl={class:"accui-component-scope"},Pl={key:0,class:"mfa-loading"},Xl={key:1,class:"mfa-content"},Yl={class:"mfa-status-overview"},Hl={class:"mfa-status-content"},Fl={class:"mfa-status-subtitle"},Wl={class:"mfa-status-badges"},Ol={key:0,class:"mfa-status-badge mfa-status-badge-enabled"},ql={key:1,class:"mfa-status-badge mfa-status-badge-disabled"},Zl={class:"mfa-tabs-container"},Gl={class:"mfa-tabs-nav","aria-label":"Tabs"},Ql={key:0,class:"mfa-add-devices"},Jl={class:"mfa-device-options"},Kl={class:"mfa-device-layout"},_l={class:"mfa-device-icon-container mfa-device-icon-totp"},$l={class:"mfa-device-action"},er={class:"mfa-device-layout"},tr={class:"mfa-device-icon-container mfa-device-icon-email"},ar={class:"mfa-device-action"},or={key:1,class:"mfa-manage-devices"},lr={class:"mfa-devices-list"},rr={class:"mfa-device-card-content"},nr={class:"mfa-device-card-info"},ir={class:"mfa-device-card-details"},sr={class:"mfa-device-card-name"},cr={class:"mfa-device-card-type"},dr={class:"mfa-device-card-last-used"},ur={class:"mfa-device-card-actions"},mr=d(e.defineComponent({__name:"StrandsMfaModal",props:{show:{type:Boolean}},emits:["close","mfa-updated"],setup(t,{emit:a}){const o={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},l={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0c1.1 0 2 .9 2 2l0 12c0 1.1-.9 2-2 2l-16 0c-1.1 0-2-.9-2-2l0-12c0-1.1.9-2 2-2z"}),e.h("polyline",{points:"22,6 12,13 2,6"})])}},r={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"}),e.h("circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor"})])}},n={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})])}},i={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m3 6 18 0"}),e.h("path",{d:"m19 6-1 14c0 1-1 2-2 2l-8 0c-1 0-2-1-2-2l-1-14"}),e.h("path",{d:"m8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"}),e.h("line",{x1:"10",x2:"10",y1:"11",y2:"17"}),e.h("line",{x1:"14",x2:"14",y1:"11",y2:"17"})])}},s=t,c=a,{mfaEnabled:d,loading:u,activeMfaDevices:m,fetchMfaDevices:p,disableMfaDevice:v,sendEmailMfaCode:f,getDeviceTypeName:h,formatLastUsed:g}=Qe(),y=e.computed(()=>s.show),k=e.ref("add"),E=e.ref(!1),w=e.ref(!1),V=e.ref(!1),b=e.ref(!1),C=e.ref(!1),x=e.ref(!1),I=e.ref(null);e.watch(()=>s.show,async e=>{e&&await p()}),e.onMounted(async()=>{s.show&&await p()});const B=()=>{c("close")},A=()=>{E.value=!0},S=()=>{w.value=!0},M=async()=>{if(I.value)try{await v(I.value.id),x.value=!1,I.value=null,c("mfa-updated")}catch(e){}},z=async()=>{E.value=!1,await p(),k.value="manage",c("mfa-updated")},R=async()=>{w.value=!1,await p(),k.value="manage",c("mfa-updated")},T=async()=>{V.value=!1,await p(),k.value="manage",c("mfa-updated")},D=async()=>{b.value=!1,await p(),k.value="manage",c("mfa-updated")},L=e=>{switch(e){case"totp":return"mfa-device-bg-blue";case"email":return"mfa-device-bg-green";case"hardware":return"mfa-device-bg-purple";case"passkey":return"mfa-device-bg-indigo";default:return"mfa-device-bg-gray"}},U=e=>{switch(e){case"totp":return o;case"email":return l;case"hardware":return r;default:return n}};return(t,a)=>(e.openBlock(),e.createElementBlock("div",jl,[e.createVNode(Ye,{open:y.value,onClose:B,"card-class":"mfa-modal-card"},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"mfa-modal-header"},[a[9]||(a[9]=e.createElementVNode("h2",{class:"mfa-modal-title"},"Two-Factor Authentication",-1)),e.createElementVNode("button",{onClick:B,class:"mfa-modal-close"},a[8]||(a[8]=[e.createElementVNode("svg",{class:"mfa-modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.unref(u)?(e.openBlock(),e.createElementBlock("div",Pl,[e.createVNode(e.unref(G),{size:32}),a[10]||(a[10]=e.createElementVNode("span",{class:"mfa-loading-text"},"Loading MFA settings...",-1))])):(e.openBlock(),e.createElementBlock("div",Xl,[e.createElementVNode("div",Yl,[e.createElementVNode("div",Hl,[e.createElementVNode("div",null,[a[11]||(a[11]=e.createElementVNode("h3",{class:"mfa-status-title"},"Two-Factor Authentication",-1)),e.createElementVNode("p",Fl,e.toDisplayString(e.unref(d)?"Enabled":"Add extra security to your account"),1)]),e.createElementVNode("div",Wl,[e.unref(d)?(e.openBlock(),e.createElementBlock("span",Ol,[e.createVNode(n,{size:12,class:"mfa-badge-icon"}),a[12]||(a[12]=e.createTextVNode(" Enabled ",-1))])):(e.openBlock(),e.createElementBlock("span",ql," Not Enabled "))])])]),e.createElementVNode("div",Zl,[e.createElementVNode("nav",Gl,[e.createElementVNode("button",{onClick:a[0]||(a[0]=e=>k.value="add"),class:e.normalizeClass(["mfa-tab-button","add"===k.value?"mfa-tab-button-active":"mfa-tab-button-inactive"])}," Add New Device ",2),e.unref(m).length>0?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:a[1]||(a[1]=e=>k.value="manage"),class:e.normalizeClass(["mfa-tab-button","manage"===k.value?"mfa-tab-button-active":"mfa-tab-button-inactive"])}," Active Devices ("+e.toDisplayString(e.unref(m).length)+") ",3)):e.createCommentVNode("",!0)])]),"add"===k.value?(e.openBlock(),e.createElementBlock("div",Ql,[e.createElementVNode("div",null,[a[17]||(a[17]=e.createElementVNode("h3",{class:"mfa-section-title"},"Choose Your Authentication Method",-1)),e.createElementVNode("div",Jl,[e.createElementVNode("div",{class:"mfa-device-option",onClick:A},[e.createElementVNode("div",Kl,[e.createElementVNode("div",_l,[e.createVNode(o,{size:24,class:"mfa-device-icon"})]),a[14]||(a[14]=e.createElementVNode("div",{class:"mfa-device-content"},[e.createElementVNode("div",{class:"mfa-device-info"},[e.createElementVNode("h4",{class:"mfa-device-title"},"Authenticator App"),e.createElementVNode("p",{class:"mfa-device-description"}," Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes ")])],-1)),e.createElementVNode("div",$l,[e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(A,["stop"]),disabled:e.unref(u)},{default:e.withCtx(()=>a[13]||(a[13]=[e.createTextVNode(" Setup ",-1)])),_:1,__:[13]},8,["disabled"])])])]),e.createElementVNode("div",{class:"mfa-device-option",onClick:S},[e.createElementVNode("div",er,[e.createElementVNode("div",tr,[e.createVNode(l,{size:24,class:"mfa-device-icon"})]),a[16]||(a[16]=e.createElementVNode("div",{class:"mfa-device-content"},[e.createElementVNode("div",{class:"mfa-device-info"},[e.createElementVNode("h4",{class:"mfa-device-title"},"Email Verification"),e.createElementVNode("p",{class:"mfa-device-description"}," Receive verification codes directly in your email inbox for easy access ")])],-1)),e.createElementVNode("div",ar,[e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(S,["stop"]),disabled:e.unref(u)},{default:e.withCtx(()=>a[15]||(a[15]=[e.createTextVNode(" Setup ",-1)])),_:1,__:[15]},8,["disabled"])])])])])])])):"manage"===k.value&&e.unref(m).length>0?(e.openBlock(),e.createElementBlock("div",or,[e.createElementVNode("div",null,[a[21]||(a[21]=e.createElementVNode("h3",{class:"mfa-section-title"},"Manage Your Active Devices",-1)),e.createElementVNode("div",lr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),t=>(e.openBlock(),e.createElementBlock("div",{key:t.id,class:"mfa-device-card"},[e.createElementVNode("div",rr,[e.createElementVNode("div",nr,[e.createElementVNode("div",{class:e.normalizeClass(["mfa-device-card-icon-container",L(t.device_type)])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(U(t.device_type)),{size:24,class:"mfa-device-card-icon"}))],2),e.createElementVNode("div",ir,[e.createElementVNode("h4",sr,e.toDisplayString(t.device_name),1),e.createElementVNode("p",cr,e.toDisplayString(e.unref(h)(t.device_type)),1),e.createElementVNode("p",dr," Last used "+e.toDisplayString(e.unref(g)(t.last_used_at)),1)])]),e.createElementVNode("div",ur,["totp"===t.device_type||"hardware"===t.device_type||"passkey"===t.device_type?(e.openBlock(),e.createBlock(e.unref(N),{key:0,variant:"secondary",size:"sm",onClick:e=>(e=>{I.value=e,C.value=!0})(t),disabled:e.unref(u)},{default:e.withCtx(()=>[e.createVNode(r,{size:14,class:"mfa-button-icon"}),a[18]||(a[18]=e.createTextVNode(" Backup Codes ",-1))]),_:2,__:[18]},1032,["onClick","disabled"])):e.createCommentVNode("",!0),"email"===t.device_type?(e.openBlock(),e.createBlock(e.unref(N),{key:1,variant:"secondary",size:"sm",onClick:e=>(async e=>{try{await f(e.id)}catch(t){}})(t),disabled:e.unref(u)},{default:e.withCtx(()=>[e.createVNode(l,{size:14,class:"mfa-button-icon"}),a[19]||(a[19]=e.createTextVNode(" Send Test Code ",-1))]),_:2,__:[19]},1032,["onClick","disabled"])):e.createCommentVNode("",!0),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:e=>(e=>{I.value=e,x.value=!0})(t),disabled:e.unref(u),class:"mfa-remove-button"},{default:e.withCtx(()=>[e.createVNode(i,{size:14,class:"mfa-button-icon"}),a[20]||(a[20]=e.createTextVNode(" Remove ",-1))]),_:2,__:[20]},1032,["onClick","disabled"])])])]))),128))])])])):e.createCommentVNode("",!0)])),E.value?(e.openBlock(),e.createBlock(Ro,{key:2,show:E.value,onClose:a[2]||(a[2]=e=>E.value=!1),onSuccess:z},null,8,["show"])):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createBlock(Fo,{key:3,show:w.value,onClose:a[3]||(a[3]=e=>w.value=!1),onSuccess:R},null,8,["show"])):e.createCommentVNode("",!0),V.value?(e.openBlock(),e.createBlock(pl,{key:4,show:V.value,"device-type":"hardware",onClose:a[4]||(a[4]=e=>V.value=!1),onSuccess:T},null,8,["show"])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createBlock(pl,{key:5,show:b.value,"device-type":"passkey",onClose:a[5]||(a[5]=e=>b.value=!1),onSuccess:D},null,8,["show"])):e.createCommentVNode("",!0),C.value?(e.openBlock(),e.createBlock(Ml,{key:6,show:C.value,device:I.value,onClose:a[6]||(a[6]=e=>C.value=!1)},null,8,["show","device"])):e.createCommentVNode("",!0)]),_:1},8,["open"]),x.value?(e.openBlock(),e.createBlock(Ul,{key:0,show:x.value,title:"Remove MFA Device",message:`Are you sure you want to remove '${I.value?.device_name}'? This action cannot be undone.`,"confirm-text":"Remove Device","cancel-text":"Keep Device",variant:"secondary",onConfirm:M,onCancel:a[7]||(a[7]=e=>x.value=!1)},null,8,["show","message"])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-d3be8e53"]]),pr={class:"accui-component-scope"},vr={class:"settings-header"},fr={class:"settings-content"},hr={class:"settings-section"},gr={class:"settings-option"},yr={class:"settings-option-content"},kr={class:"settings-option"},Er={class:"settings-option-content"},Nr={class:"settings-footer"},wr=d(e.defineComponent({__name:"StrandsSettingsModal",props:{open:{type:Boolean,default:!1}},emits:["close","settings-updated"],setup(t,{emit:o}){const l=o,{currentUser:r,updateUserSettings:n}=a.useStrandsAuth(),i=e.ref(!1),s=e.reactive({levelUpSounds:r.value?.settings?.levelUpSounds??!0,milestoneSounds:r.value?.settings?.milestoneSounds??!0});e.watch(()=>r.value?.settings,e=>{e&&(s.levelUpSounds=e.levelUpSounds??!0,s.milestoneSounds=e.milestoneSounds??!0)},{deep:!0});const c=(e,t)=>{s[e]=t},d=async()=>{if(!i.value){i.value=!0;try{await n({...r.value?.settings,...s}),l("settings-updated",{...s}),l("close")}catch(e){}finally{i.value=!1}}};return(t,a)=>(e.openBlock(),e.createElementBlock("div",pr,[e.createVNode(Ye,{open:!0,onClose:a[6]||(a[6]=e=>t.$emit("close")),"card-class":"max-w-lg"},{header:e.withCtx(()=>[e.createElementVNode("div",vr,[a[8]||(a[8]=e.createElementVNode("h2",{class:"settings-title"},"Settings",-1)),e.createElementVNode("button",{class:"settings-close-button",onClick:a[0]||(a[0]=e=>t.$emit("close")),type:"button"},a[7]||(a[7]=[e.createElementVNode("svg",{class:"settings-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),footer:e.withCtx(()=>[e.createElementVNode("div",Nr,[e.createVNode(N,{variant:"secondary",onClick:a[5]||(a[5]=e=>t.$emit("close"))},{default:e.withCtx(()=>a[12]||(a[12]=[e.createTextVNode(" Close ",-1)])),_:1,__:[12]}),e.createVNode(N,{variant:"primary",onClick:d,loading:i.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.value?"Saving...":"Save Settings"),1)]),_:1},8,["loading"])])]),default:e.withCtx(()=>[e.createElementVNode("div",fr,[e.createElementVNode("div",hr,[a[11]||(a[11]=e.createElementVNode("h3",{class:"settings-section-title"},"Audio Preferences",-1)),e.createElementVNode("div",gr,[e.createElementVNode("div",yr,[a[9]||(a[9]=e.createElementVNode("div",{class:"settings-option-info"},[e.createElementVNode("label",{for:"level-up-sounds",class:"settings-option-label"}," Level Up Sounds "),e.createElementVNode("p",{class:"settings-option-description"}," Play sound effects when you level up ")],-1)),e.createVNode(J,{id:"level-up-sounds",modelValue:s.levelUpSounds,"onUpdate:modelValue":[a[1]||(a[1]=e=>s.levelUpSounds=e),a[2]||(a[2]=e=>c("levelUpSounds",e))]},null,8,["modelValue"])])]),e.createElementVNode("div",kr,[e.createElementVNode("div",Er,[a[10]||(a[10]=e.createElementVNode("div",{class:"settings-option-info"},[e.createElementVNode("label",{for:"milestone-sounds",class:"settings-option-label"}," Milestone Level Sounds "),e.createElementVNode("p",{class:"settings-option-description"}," Play special celebration sounds for milestone levels (10, 25, 50, 100, 150, 200) ")],-1)),e.createVNode(J,{id:"milestone-sounds",modelValue:s.milestoneSounds,"onUpdate:modelValue":[a[3]||(a[3]=e=>s.milestoneSounds=e),a[4]||(a[4]=e=>c("milestoneSounds",e))]},null,8,["modelValue"])])])])])]),_:1})]))}}),[["__scopeId","data-v-f0e4ff21"]]),Vr={class:"modal-header-content"},br={class:"modal-subtitle"},Cr={class:"strands-sessions-modal"},xr={key:0,class:"sessions-loading"},Ir={key:1,class:"sessions-empty"},Br={key:2,class:"sessions-container"},Ar={key:0,class:"session-stats"},Sr={class:"stat-card"},Mr={class:"stat-value"},zr={class:"stat-card"},Rr={class:"stat-value"},Tr={key:0,class:"stat-card"},Dr={class:"stat-value"},Lr={class:"sessions-list"},Ur={class:"session-header"},jr={class:"session-device"},Pr={class:"device-icon"},Xr={class:"device-info"},Yr={class:"device-name"},Hr={key:0,class:"current-badge"},Fr={class:"device-type"},Wr={key:1},Or={key:1},qr={class:"session-details"},Zr={class:"detail-row"},Gr={class:"detail-icon"},Qr={class:"detail-text"},Jr={key:0,class:"detail-row"},Kr={class:"detail-icon"},_r={class:"detail-text"},$r={class:"detail-row"},en={class:"detail-icon"},tn={class:"detail-text"},an={class:"detail-row"},on={class:"detail-icon"},ln={class:"detail-text"},rn={key:1,class:"bulk-actions"},nn={key:1},sn=d(e.defineComponent({__name:"StrandsSessionsModal",props:{modelValue:{type:Boolean}},emits:["update:modelValue","sessionsUpdated","currentSessionRevoked"],setup(t,{emit:o}){const l={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"2",y:"7",width:"20",height:"10",rx:"2",ry:"2"}),e.h("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),e.h("line",{x1:"12",y1:"17",x2:"12",y2:"21"})])}},r={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},n={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},i={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"}),e.h("circle",{cx:"12",cy:"10",r:"3"})])}},s={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("circle",{cx:"12",cy:"12",r:"10"}),e.h("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),e.h("path",{d:"M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"})])}},c={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("circle",{cx:"12",cy:"12",r:"10"}),e.h("polyline",{points:"12 6 12 12 16 14"})])}},d={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),e.h("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),e.h("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),e.h("line",{x1:"3",y1:"10",x2:"21",y2:"10"})])}},u=t,m=o,{getUserSessions:p,getSessionStats:v,revokeSession:f,revokeAllOtherSessions:h,signOut:g}=a.useStrandsAuth(),y=e.ref(u.modelValue),k=e.ref(!1),E=e.ref([]),w=e.ref(null),V=e.ref(null),b=e.ref(!1),C=e.ref(null);e.watch(()=>u.modelValue,e=>{y.value=e,e&&x()});const x=async()=>{k.value=!0,C.value=null;try{const[e,t]=await Promise.all([p(),v()]);E.value=e||[],w.value=t||null}catch(e){C.value="Failed to load sessions. Please try again.",E.value=[]}finally{k.value=!1}},I=()=>{y.value=!1,m("update:modelValue",!1)},B=async()=>{if(confirm("Are you sure you want to end all other sessions? You will be signed out on all other devices.")){b.value=!0;try{await h(),await x(),m("sessionsUpdated")}catch(e){alert("Failed to end sessions. Please try again.")}finally{b.value=!1}}},A=e=>{switch(e?.toLowerCase()){case"mobile":return r;case"tablet":return n;default:return l}},S=e=>{if(!e)return"Unknown";const t=new Date,a=new Date(e),o=Math.floor((t.getTime()-a.getTime())/1e3);return o<60?"just now":o<3600?`${Math.floor(o/60)} minutes ago`:o<86400?`${Math.floor(o/3600)} hours ago`:o<604800?`${Math.floor(o/86400)} days ago`:a.toLocaleDateString()};return y.value&&x(),(t,a)=>(e.openBlock(),e.createBlock(e.unref(Ye),{open:y.value,onClose:I},{header:e.withCtx(()=>[e.createElementVNode("div",Vr,[a[0]||(a[0]=e.createElementVNode("h2",{class:"modal-title"},"Active Sessions",-1)),e.createElementVNode("p",br,"Manage your "+e.toDisplayString(E.value.length)+" active device"+e.toDisplayString(1!==E.value.length?"s":""),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Cr,[k.value?(e.openBlock(),e.createElementBlock("div",xr,[e.createVNode(e.unref(G),{size:40}),a[1]||(a[1]=e.createElementVNode("p",{class:"loading-text"},"Loading sessions...",-1))])):0===E.value.length?(e.openBlock(),e.createElementBlock("div",Ir,a[2]||(a[2]=[e.createElementVNode("div",{class:"empty-icon"},[e.createElementVNode("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e.createElementVNode("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2"}),e.createElementVNode("line",{x1:"8",y1:"10",x2:"16",y2:"10"}),e.createElementVNode("line",{x1:"8",y1:"14",x2:"12",y2:"14"})])],-1),e.createElementVNode("h3",{class:"empty-title"},"No Active Sessions",-1),e.createElementVNode("p",{class:"empty-description"},"You don't have any active sessions at the moment.",-1)]))):(e.openBlock(),e.createElementBlock("div",Br,[w.value?(e.openBlock(),e.createElementBlock("div",Ar,[e.createElementVNode("div",Sr,[a[3]||(a[3]=e.createElementVNode("span",{class:"stat-label"},"Total Sessions",-1)),e.createElementVNode("span",Mr,e.toDisplayString(w.value.total_sessions),1)]),e.createElementVNode("div",zr,[a[4]||(a[4]=e.createElementVNode("span",{class:"stat-label"},"Active Devices",-1)),e.createElementVNode("span",Rr,e.toDisplayString(w.value.active_sessions),1)]),w.value.unique_locations&&w.value.unique_locations.length>0?(e.openBlock(),e.createElementBlock("div",Tr,[a[5]||(a[5]=e.createElementVNode("span",{class:"stat-label"},"Locations",-1)),e.createElementVNode("span",Dr,e.toDisplayString(w.value.unique_locations.length),1)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Lr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,t=>{return e.openBlock(),e.createElementBlock("div",{key:t.id,class:e.normalizeClass(["session-card",{"current-session":t.is_current}])},[e.createElementVNode("div",Ur,[e.createElementVNode("div",jr,[e.createElementVNode("div",Pr,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(A(t.device_type)),{size:20}))]),e.createElementVNode("div",Xr,[e.createElementVNode("h4",Yr,[e.createTextVNode(e.toDisplayString(t.device_name||"Unknown Device")+" ",1),t.is_current?(e.openBlock(),e.createElementBlock("span",Hr,"Current")):e.createCommentVNode("",!0)]),e.createElementVNode("p",Fr,e.toDisplayString(t.device_type||"Unknown type"),1)])]),t.is_current?(e.openBlock(),e.createBlock(e.unref(N),{key:0,variant:"outline",size:"sm",onClick:e=>(async e=>{if(confirm("Are you sure you want to sign out? You will need to sign in again to access your account.")){V.value=e;try{await f(e),await g(),y.value=!1,m("update:modelValue",!1),m("sessionsUpdated"),m("currentSessionRevoked")}catch(t){alert("Failed to sign out. Please try again.")}finally{V.value=null}}})(t.id),disabled:V.value===t.id,class:"current-session-button"},{default:e.withCtx(()=>[V.value===t.id?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:16})):(e.openBlock(),e.createElementBlock("span",Wr,"Sign Out"))]),_:2},1032,["onClick","disabled"])):(e.openBlock(),e.createBlock(e.unref(N),{key:1,variant:"outline",size:"sm",onClick:e=>(async e=>{if(confirm("Are you sure you want to end this session? The device will be signed out.")){V.value=e;try{await f(e),await x(),m("sessionsUpdated")}catch(t){alert("Failed to end session. Please try again.")}finally{V.value=null}}})(t.id),disabled:V.value===t.id},{default:e.withCtx(()=>[V.value===t.id?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:16})):(e.openBlock(),e.createElementBlock("span",Or,"End Session"))]),_:2},1032,["onClick","disabled"]))]),e.createElementVNode("div",qr,[e.createElementVNode("div",Zr,[e.createElementVNode("span",Gr,[e.createVNode(i,{size:14})]),e.createElementVNode("span",Qr,[t.city&&t.country?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.city)+", "+e.toDisplayString(t.country),1)],64)):t.country?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.country),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(" Location unknown ")],64))])]),t.ip_address?(e.openBlock(),e.createElementBlock("div",Jr,[e.createElementVNode("span",Kr,[e.createVNode(s,{size:14})]),e.createElementVNode("span",_r,e.toDisplayString(t.ip_address),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",$r,[e.createElementVNode("span",en,[e.createVNode(c,{size:14})]),e.createElementVNode("span",tn," Last active "+e.toDisplayString(S(t.last_activity_at||t.created_at)),1)]),e.createElementVNode("div",an,[e.createElementVNode("span",on,[e.createVNode(d,{size:14})]),e.createElementVNode("span",ln," Started "+e.toDisplayString((a=t.created_at,a?new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"}):"Unknown")),1)])])],2);var a}),128))]),E.value.length>1?(e.openBlock(),e.createElementBlock("div",rn,[e.createVNode(e.unref(N),{variant:"outline",onClick:B,disabled:b.value},{default:e.withCtx(()=>[b.value?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:16})):(e.openBlock(),e.createElementBlock("span",nn,"End All Other Sessions"))]),_:1},8,["disabled"]),a[6]||(a[6]=e.createElementVNode("p",{class:"bulk-actions-hint"}," This will sign you out on all other devices ",-1))])):e.createCommentVNode("",!0)]))])]),_:1},8,["open"]))}}),[["__scopeId","data-v-37b09615"]]),cn={class:"accui-component-scope"},dn={class:"profile-image-section"},un={class:"profile-image-container"},mn={class:"profile-image-wrapper"},pn={key:0,class:"profile-avatar profile-avatar-with-image"},vn=["src","alt"],fn={key:1,class:"profile-avatar profile-avatar-initials"},hn=["disabled"],gn={key:1,class:"profile-upload-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},yn={class:"profile-form-grid"},kn={class:"profile-section"},En={class:"profile-setting-card"},Nn={class:"profile-setting-header"},wn={class:"profile-setting-subtitle"},Vn={key:0,class:"profile-change-form"},bn={class:"profile-field-section"},Cn={class:"profile-field-header"},xn={class:"profile-field-subtitle"},In={key:0,class:"profile-change-form"},Bn={class:"profile-password-section"},An={class:"profile-field-section"},Sn={class:"profile-field-header"},Mn={class:"profile-field-subtitle"},zn={key:0,class:"profile-change-form"},Rn={class:"profile-field-section"},Tn={class:"profile-field-header profile-field-header-vertical"},Dn={class:"profile-mfa-content"},Ln={class:"profile-field-subtitle"},Un={key:0,class:"profile-mfa-chips"},jn={class:"profile-field-section"},Pn={class:"profile-field-header"},Xn={class:"profile-field-subtitle"},Yn={key:0},Hn={key:1},Fn={class:"profile-field-actions"},Wn={key:0,class:"profile-actions-section"},On={key:0,class:"animate-fade-in"},qn={class:"alert-success"},Zn={class:"profile-help-item"},Gn={class:"profile-alert-message"},Qn={key:1,class:"animate-fade-in"},Jn={class:"alert-error"},Kn={class:"profile-help-item"},_n={class:"profile-alert-message"},$n={class:"profile-footer-actions"},ei={key:0},ti={class:"profile-footer-text"},ai={key:1,class:"profile-avatar-modal-overlay"},oi={class:"profile-avatar-modal"},li={class:"profile-avatar-modal-content"},ri=d(e.defineComponent({__name:"StrandsUserProfile",props:{user:{},config:{},autoFetch:{type:Boolean,default:!0},inModal:{type:Boolean,default:!1}},emits:["profile-updated","error","manage-sessions","mfa-toggle"],setup(o,{emit:l}){const r={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},n={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0c1.1 0 2 .9 2 2l0 12c0 1.1-.9 2-2 2l-16 0c-1.1 0-2-.9-2-2l0-12c0-1.1.9-2 2-2z"}),e.h("polyline",{points:"22,6 12,13 2,6"})])}},i={props:["size"],render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"}),e.h("circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor"})])}},s=o,c=l,{getSupportEmail:d,getUrl:u}=t.useStrandsConfig(s.config),{fetchProfile:m,updateProfile:p,changeEmail:v,changeUsername:f,getUsernameCooldown:h,checkUsernameAvailability:g,getUserSessions:y,currentUser:k,currentSession:E,isAuthenticated:w,refreshToken:V,signOut:b}=a.useStrandsAuth(),{activeMfaDevices:C,fetchMfaDevices:x}=Qe(),I=e.ref(null),B=e.ref(!1),A=e.computed(()=>k.value||s.user||I.value),S=e.ref(!1),M=e.ref(!1),z=e.ref(!1),R=e.ref(!1),T=e.ref(!1),D=e.ref(!1),L=e.ref(!1),P=e.ref(!1),X=e.ref(!1),Y=e.ref(!1),H=e.ref(!1),F=e.ref(null),W=e.ref(""),O=e.ref(""),q=e.ref([]),Z=e.ref(!1),Q=e.ref(!1),J=e.reactive({canChange:!0,cooldownEnd:null,daysRemaining:0}),K=e.reactive({available:!1,message:"",checking:!1}),_=e.ref(),$=e.reactive({firstName:"",lastName:"",email:""}),ee=e.reactive({newEmail:"",password:"",errors:{newEmail:"",password:""}}),te=e.reactive({current:"",new:"",confirm:""}),ae=e.reactive({username:"",errors:{username:""}}),oe=e.reactive({firstName:"",lastName:"",email:""}),le=e.computed(()=>{const e=A.value;return!!e&&($.firstName!==(e.firstName||"")||$.lastName!==(e.lastName||""))}),re=e.computed(()=>te.current&&te.new&&te.confirm&&te.new===te.confirm&&te.new.length>=8),ne=e.computed(()=>ee.newEmail&&ee.password&&ee.newEmail!==A.value?.email&&ee.newEmail.includes("@")),ie=e.computed(()=>ae.username&&/^[a-zA-Z0-9_-]{3,30}$/.test(ae.username)&&ae.username!==A.value?.username&&!K.checking),se=e.computed(()=>{const e=A.value;if(!e)return"Never";const t=e.passwordUpdatedAt||e.createdAt;if(!t)return"Never";const a=new Date(t),o=(new Date).getTime()-a.getTime(),l=Math.floor(o/864e5);if(0===l)return"Today";if(1===l)return"Yesterday";if(l<30)return`${l} days ago`;if(l<365){const e=Math.floor(l/30);return 1===e?"1 month ago":`${e} months ago`}const r=Math.floor(l/365);return 1===r?"1 year ago":`${r} years ago`}),ce=e.computed(()=>{const e=C.value||[],t={totp:0,email:0,hardware:0,passkey:0};return e.forEach(e=>{e.device_type in t&&t[e.device_type]++}),t}),de=e.computed(()=>{const e=[],t=ce.value;if(t.totp>0&&e.push({type:"totp",count:t.totp,label:1===t.totp?"Auth app":"Auth apps",icon:r,color:"chip-blue"}),t.email>0&&e.push({type:"email",count:t.email,label:"Email",icon:n,color:"chip-green"}),t.hardware>0||t.passkey>0){const a=t.hardware+t.passkey;e.push({type:"hardware",count:a,label:1===a?"Key":"Keys",icon:i,color:"chip-purple"})}return e}),ue=e=>{if(e<=1)return 0;let t=0;for(let a=1;a<e;a++)t+=4*a+Math.pow(1.5,a/4);return Math.floor(t)},me=e.computed(()=>(e=>{let t=1;for(;!(e<ue(t+1))&&(t++,!(t>1e3)););return t})(A.value?.xp||0)),pe=e.computed(()=>{const e=me.value,t=ue(e);return(A.value?.xp||0)-t}),ve=e.computed(()=>{const e=me.value,t=ue(e);return ue(e+1)-t}),fe=e.computed(()=>Math.round(pe.value/ve.value*100)),he=e.computed(()=>2*Math.PI*54),ge=e.computed(()=>fe.value/100*he.value);e.computed(()=>{const e=5*he.value/360;return he.value-ge.value-e});const ye=async()=>{if(w.value){Z.value=!0;try{const e=await y();q.value=e||[]}catch(e){}finally{Z.value=!1}}};e.watch(()=>A.value,e=>{e&&($.firstName=e.firstName||"",$.lastName=e.lastName||"",$.email=e.email)},{immediate:!0}),e.watch(()=>w.value,(e,t)=>{e&&!t?setTimeout(()=>{ye()},500):e||(q.value=[])},{immediate:!1}),e.watch(()=>E.value,e=>{e&&w.value&&setTimeout(()=>{ye()},100)}),e.onMounted(()=>{(async()=>{if(s.autoFetch&&!s.user&&w.value){B.value=!0;try{await m(),w.value&&await x()}catch(e){const t=e instanceof Error?e.message:"Failed to load profile";O.value=t,c("error",t)}finally{B.value=!1}}})(),ye()});const ke=()=>{W.value="",O.value="",Object.keys(oe).forEach(e=>{oe[e]=""})},Ne=async()=>{ke(),S.value=!0;try{const e=await p({firstName:$.firstName,lastName:$.lastName});e&&(W.value="Profile updated successfully",c("profile-updated",e))}catch(e){const t=e instanceof Error?e.message:"Failed to update profile";O.value=t,c("error",t)}finally{S.value=!1}},we=async()=>{if(re.value){ke(),S.value=!0;try{await new Promise(e=>setTimeout(e,1e3)),W.value="Password updated successfully",R.value=!1,te.current="",te.new="",te.confirm=""}catch(e){O.value="Failed to update password"}finally{S.value=!1}}},Ve=async()=>{if(ne.value){ee.errors.newEmail="",ee.errors.password="",ke(),D.value=!0;try{const e=await v(ee.newEmail,ee.password);W.value=e.message||"Email updated successfully. Please verify your new email address.",T.value=!1,ee.newEmail="",ee.password="",A.value&&c("profile-updated",A.value)}catch(e){const t=e instanceof Error?e.message:"Failed to update email";t.includes("password")?ee.errors.password="Invalid password":t.includes("email")?ee.errors.newEmail=t:O.value=t,c("error",t)}finally{D.value=!1}}},be=async()=>{if(L.value)L.value=!1,ae.username="",ae.errors.username="",K.available=!1,K.message="";else{P.value=!0;try{const e=await h();J.canChange=e.can_change,J.cooldownEnd=e.cooldown_end?new Date(e.cooldown_end):null,J.daysRemaining=e.days_remaining||0,J.canChange?(L.value=!0,ae.username=A.value?.username||""):O.value=`You can change your username again in ${J.daysRemaining} days`}catch(e){O.value="Failed to check username cooldown",L.value=!0}finally{P.value=!1}}},Ce=async()=>{if(!ie.value){if(!/^[a-zA-Z0-9_-]{3,30}$/.test(ae.username))return void(ae.errors.username="Username must be 3-30 characters and contain only letters, numbers, hyphens, and underscores");K.checking=!0,K.message="Checking availability...";try{const e=await g(ae.username);if(K.available=e.available,K.message=e.message,!e.available)return void(ae.errors.username="Username is not available")}catch(e){return void(ae.errors.username="Failed to check username availability")}finally{K.checking=!1}}ke(),P.value=!0;try{const e=await f(ae.username);W.value=e.message||"Username updated successfully",L.value=!1,ae.username="",ae.errors.username="",K.available=!1,K.message="",A.value&&c("profile-updated",A.value)}catch(e){const t=e instanceof Error?e.message:"Failed to update username";t.includes("taken")?ae.errors.username="Username is already taken":t.includes("cooldown")||t.includes("30 days")?(O.value=t,L.value=!1):ae.errors.username=t,c("error",t)}finally{P.value=!1}},xe=()=>{M.value||_.value?.click()},Ie=e=>{const t=e.target,a=t.files?.[0];if(a){if(!a.type.startsWith("image/"))return void(O.value="Please select an image file");if(a.size>5242880)return void(O.value="File size must be less than 5MB");F.value=a,H.value=!0}t&&(t.value="")},Be=async e=>{await Me(e),H.value=!1,F.value=null},Ae=e=>{O.value=e},Se=()=>{H.value=!1,F.value=null},Me=async e=>{M.value=!0,ke();try{if(!E.value?.accessToken)throw new Error("No access token available. Please sign in again.");const a=new FormData;a.append("avatar",e);const o=await fetch(u("avatar"),{method:"POST",body:a,headers:{Authorization:`Bearer ${E.value.accessToken}`}});if(!o.ok){if(401!==o.status){const e=await o.json().catch(()=>({}));throw new Error(e.message||`Upload failed: ${o.status} ${o.statusText}`)}try{if(await V()&&E.value?.accessToken){const e=await fetch(u("avatar"),{method:"POST",body:a,headers:{Authorization:`Bearer ${E.value.accessToken}`}});if(!e.ok){const t=await e.json().catch(()=>({}));throw new Error(t.message||`Upload failed: ${e.status} ${e.statusText}`)}const o=await e.json();k.value&&(k.value.avatar=o.avatar_url,"undefined"!=typeof window&&localStorage.setItem("strands_auth_user",JSON.stringify(k.value))),I.value&&(I.value.avatar=o.avatar_url);try{await m()}catch(t){}return W.value="Avatar updated successfully",void(A.value&&c("profile-updated",A.value))}throw new Error("Authentication expired. Please sign in again.")}catch(t){throw new Error("Authentication expired. Please sign in again.")}}const l=await o.json();k.value&&(k.value.avatar=l.avatar_url,"undefined"!=typeof window&&localStorage.setItem("strands_auth_user",JSON.stringify(k.value))),I.value&&(I.value.avatar=l.avatar_url);try{await m()}catch(t){}W.value="Avatar updated successfully",A.value&&c("profile-updated",A.value)}catch(a){const e=a instanceof Error?a.message:"Failed to upload avatar";O.value=e,c("error",e)}finally{M.value=!1}},ze=async()=>{try{await m(),await x(),W.value="MFA settings updated successfully",c("mfa-toggle",A.value?.mfaEnabled||!1)}catch(e){}},Re=e=>{W.value="Settings updated successfully"},Te=()=>{ye()},Le=()=>{const e=A.value;e&&($.firstName=e.firstName||"",$.lastName=e.lastName||"",$.email=e.email),ke(),R.value=!1,T.value=!1,te.current="",te.new="",te.confirm="",ee.newEmail="",ee.password="",ee.errors.newEmail="",ee.errors.password=""},Ue=async()=>{z.value=!0,ke();try{await b(),W.value="Signed out successfully"}catch(e){const t=e instanceof Error?e.message:"Failed to sign out";O.value=t,c("error",t),z.value=!1}};return e.onMounted(async()=>{if(A.value&&w.value)try{const e=await h();J.canChange=e.can_change,J.cooldownEnd=e.cooldown_end?new Date(e.cooldown_end):null,J.daysRemaining=e.days_remaining||0}catch(e){}}),(t,a)=>{return e.openBlock(),e.createElementBlock("div",cn,[e.createElementVNode("div",{class:e.normalizeClass(t.inModal?"profile-container-modal profile-container-width":"profile-container profile-container-width profile-max-width profile-centered profile-animated")},[e.createElementVNode("div",{class:e.normalizeClass(t.inModal?"profile-content-modal profile-content-layout":"profile-content profile-card-modern profile-content-layout")},[a[32]||(a[32]=e.createElementVNode("div",{class:"profile-header"},[e.createElementVNode("h1",{class:"profile-title"},"Profile Settings"),e.createElementVNode("p",{class:"profile-subtitle"},"Manage your account information and preferences")],-1)),e.createElementVNode("div",dn,[e.createElementVNode("div",un,[e.createElementVNode("div",mn,[e.createVNode(e.unref(De),{size:140,value:A.value?.xp||0,max:A.value?.next_level_xp||1,level:A.value?.level||0,"level-label":`LEVEL ${A.value?.level||0}`,"user-settings":A.value?.settings,class:"profile-progress-ring"},null,8,["value","max","level","level-label","user-settings"]),A.value?.avatar?(e.openBlock(),e.createElementBlock("div",pn,[e.createElementVNode("img",{src:A.value.avatar,alt:`${A.value.firstName} ${A.value.lastName}`,class:"profile-avatar-image"},null,8,vn)])):(e.openBlock(),e.createElementBlock("div",fn,e.toDisplayString((o=A.value?.firstName,l=A.value?.lastName,o||l?`${o?.[0]||""}${l?.[0]||""}`.toUpperCase():"U")),1)),e.createElementVNode("button",{class:"profile-upload-overlay",onClick:xe,disabled:M.value},[M.value?(e.openBlock(),e.createBlock(e.unref(G),{key:0,size:24,variant:"dark"})):(e.openBlock(),e.createElementBlock("svg",gn,a[16]||(a[16]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 13a3 3 0 11-6 0 3 3 0 616 0z"},null,-1)])))],8,hn)])]),e.createElementVNode("input",{ref_key:"avatarFileInput",ref:_,type:"file",accept:"image/*",class:"profile-file-input",onChange:Ie},null,544)]),e.createElementVNode("form",{onSubmit:e.withModifiers(Ne,["prevent"]),class:"profile-form"},[e.createElementVNode("div",yn,[e.createElementVNode("div",kn,[a[19]||(a[19]=e.createElementVNode("h3",{class:"profile-section-title"},"Personal Information",-1)),e.createVNode(e.unref(U),{id:"firstName",modelValue:$.firstName,"onUpdate:modelValue":a[0]||(a[0]=e=>$.firstName=e),type:"text",label:"First name",placeholder:"Enter your first name",autocomplete:"given-name",disabled:S.value||B.value,error:oe.firstName},null,8,["modelValue","disabled","error"]),e.createVNode(e.unref(U),{id:"lastName",modelValue:$.lastName,"onUpdate:modelValue":a[1]||(a[1]=e=>$.lastName=e),type:"text",label:"Last name",placeholder:"Enter your last name",autocomplete:"family-name",disabled:S.value||B.value,error:oe.lastName},null,8,["modelValue","disabled","error"]),e.createElementVNode("div",En,[e.createElementVNode("div",Nn,[e.createElementVNode("div",null,[a[17]||(a[17]=e.createElementVNode("h4",{class:"profile-setting-title"},"Email Address",-1)),e.createElementVNode("p",wn,e.toDisplayString(A.value?.email),1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[2]||(a[2]=e=>T.value=!T.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T.value?"Cancel":"Change"),1)]),_:1})]),e.createVNode(e.Transition,{name:"expand"},{default:e.withCtx(()=>[T.value?(e.openBlock(),e.createElementBlock("div",Vn,[e.createVNode(e.unref(U),{modelValue:ee.newEmail,"onUpdate:modelValue":a[3]||(a[3]=e=>ee.newEmail=e),type:"email",placeholder:"New email address",autocomplete:"email",error:ee.errors.newEmail},null,8,["modelValue","error"]),e.createVNode(e.unref(U),{modelValue:ee.password,"onUpdate:modelValue":a[4]||(a[4]=e=>ee.password=e),type:"password",placeholder:"Current password",autocomplete:"current-password",error:ee.errors.password},null,8,["modelValue","error"]),e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:Ve,disabled:!ne.value||D.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(D.value?"Updating...":"Update Email"),1)]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",bn,[e.createElementVNode("div",Cn,[e.createElementVNode("div",null,[a[18]||(a[18]=e.createElementVNode("h4",{class:"profile-field-title"},"Username",-1)),e.createElementVNode("p",xn,e.toDisplayString(A.value?.username||"No username set"),1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",disabled:!J.canChange||P.value,onClick:be},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(J.cooldownEnd?`Wait ${J.daysRemaining} day${1===J.daysRemaining?"":"s"} to change`:L.value?"Cancel":A.value?.username?"Change":"Set Username"),1)]),_:1},8,["disabled"])]),e.createVNode(e.Transition,{name:"expand"},{default:e.withCtx(()=>[L.value?(e.openBlock(),e.createElementBlock("div",In,[e.createVNode(e.unref(U),{modelValue:ae.username,"onUpdate:modelValue":a[5]||(a[5]=e=>ae.username=e),type:"text",placeholder:"Enter username (3-30 characters)",autocomplete:"username",error:ae.errors.username},null,8,["modelValue","error"]),K.message?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["profile-availability-message",K.available?"success":"error"])},e.toDisplayString(K.message),3)):e.createCommentVNode("",!0),e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:Ce,disabled:!ie.value||P.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(P.value?"Updating...":"Update Username"),1)]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),_:1})])]),e.createElementVNode("div",Bn,[a[25]||(a[25]=e.createElementVNode("h3",{class:"profile-section-title"},"Security Settings",-1)),e.createElementVNode("div",An,[e.createElementVNode("div",Sn,[e.createElementVNode("div",null,[a[20]||(a[20]=e.createElementVNode("h4",{class:"profile-field-title"},"Password",-1)),e.createElementVNode("p",Mn,"Last updated "+e.toDisplayString(se.value),1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[6]||(a[6]=e=>R.value=!R.value)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(R.value?"Cancel":"Change"),1)]),_:1})]),e.createVNode(e.Transition,{name:"expand"},{default:e.withCtx(()=>[R.value?(e.openBlock(),e.createElementBlock("div",zn,[e.createVNode(e.unref(U),{modelValue:te.current,"onUpdate:modelValue":a[7]||(a[7]=e=>te.current=e),type:"password",placeholder:"Current password",autocomplete:"current-password"},null,8,["modelValue"]),e.createVNode(e.unref(U),{modelValue:te.new,"onUpdate:modelValue":a[8]||(a[8]=e=>te.new=e),type:"password",placeholder:"New password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(e.unref(U),{modelValue:te.confirm,"onUpdate:modelValue":a[9]||(a[9]=e=>te.confirm=e),type:"password",placeholder:"Confirm new password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(e.unref(N),{variant:"primary",size:"sm",onClick:we,disabled:!re.value},{default:e.withCtx(()=>a[21]||(a[21]=[e.createTextVNode(" Update Password ",-1)])),_:1,__:[21]},8,["disabled"])])):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",Rn,[e.createElementVNode("div",Tn,[e.createElementVNode("div",Dn,[e.createElementVNode("div",null,[a[22]||(a[22]=e.createElementVNode("h4",{class:"profile-field-title"},"Two-Factor Authentication",-1)),e.createElementVNode("p",Ln,e.toDisplayString(A.value?.mfaEnabled?"Enabled":"Add extra security to your account"),1)]),de.value.length>0?(e.openBlock(),e.createElementBlock("div",Un,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(de.value,t=>(e.openBlock(),e.createElementBlock("div",{key:t.type,class:e.normalizeClass(["mfa-device-chip",t.color])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon),{size:12})),e.createElementVNode("span",null,e.toDisplayString(t.count),1),e.createElementVNode("span",null,e.toDisplayString(t.label),1)],2))),128))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(N),{variant:A.value?.mfaEnabled?"secondary":"primary",size:"sm",onClick:a[10]||(a[10]=e=>X.value=!0),class:"profile-toggle-container"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A.value?.mfaEnabled?"Manage":"Setup"),1)]),_:1},8,["variant"])])]),e.createElementVNode("div",jn,[e.createElementVNode("div",Pn,[e.createElementVNode("div",null,[a[23]||(a[23]=e.createElementVNode("h4",{class:"profile-field-title"},"Active Sessions",-1)),e.createElementVNode("p",Xn,[Z.value?(e.openBlock(),e.createElementBlock("span",Yn,"Loading sessions...")):(e.openBlock(),e.createElementBlock("span",Hn,e.toDisplayString(q.value.length)+" active device"+e.toDisplayString(1!==q.value.length?"s":""),1))])]),e.createElementVNode("div",Fn,[e.createVNode(e.unref(N),{variant:"secondary",size:"sm",onClick:a[11]||(a[11]=e=>Q.value=!0),disabled:Z.value},{default:e.withCtx(()=>a[24]||(a[24]=[e.createTextVNode(" Manage ",-1)])),_:1,__:[24]},8,["disabled"])])])])])]),le.value?(e.openBlock(),e.createElementBlock("div",Wn,[e.createVNode(e.unref(N),{type:"submit",variant:"primary",disabled:S.value,loading:S.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.value?"Saving changes...":"Save changes"),1)]),_:1},8,["disabled","loading"]),e.createVNode(e.unref(N),{variant:"secondary",onClick:Le,disabled:S.value},{default:e.withCtx(()=>a[26]||(a[26]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[26]},8,["disabled"])])):e.createCommentVNode("",!0)],32),W.value?(e.openBlock(),e.createElementBlock("div",On,[e.createElementVNode("div",qn,[e.createElementVNode("div",Zn,[a[27]||(a[27]=e.createElementVNode("svg",{class:"profile-help-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"})],-1)),e.createElementVNode("p",Gn,e.toDisplayString(W.value),1)])])])):e.createCommentVNode("",!0),O.value?(e.openBlock(),e.createElementBlock("div",Qn,[e.createElementVNode("div",Jn,[e.createElementVNode("div",Kn,[a[28]||(a[28]=e.createElementVNode("svg",{class:"profile-help-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"})],-1)),e.createElementVNode("p",_n,e.toDisplayString(O.value),1)])])])):e.createCommentVNode("",!0),e.createVNode(Oe,{config:s.config},{default:e.withCtx(()=>[e.createElementVNode("div",$n,[e.createVNode(e.unref(N),{color:"red",onClick:Ue,disabled:z.value,class:"profile-sign-out-button"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(z.value?"Signing out...":"Sign Out"),1)]),_:1},8,["disabled"]),e.createVNode(e.unref(N),{variant:"secondary",onClick:a[12]||(a[12]=e=>Y.value=!0),class:"profile-sign-out-button"},{default:e.withCtx(()=>a[29]||(a[29]=[e.createElementVNode("svg",{class:"profile-action-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])),_:1,__:[29]})]),e.unref(d)()?(e.openBlock(),e.createElementBlock("div",ei,[e.createElementVNode("p",ti,[a[31]||(a[31]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(d)()}`},{default:e.withCtx(()=>a[30]||(a[30]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[30]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])],2),e.createVNode(mr,{show:X.value,onClose:a[13]||(a[13]=e=>X.value=!1),onMfaUpdated:ze},null,8,["show"]),Y.value?(e.openBlock(),e.createBlock(wr,{key:0,onClose:a[14]||(a[14]=e=>Y.value=!1),onSettingsUpdated:Re})):e.createCommentVNode("",!0),e.createVNode(sn,{modelValue:Q.value,"onUpdate:modelValue":a[15]||(a[15]=e=>Q.value=e),onSessionsUpdated:Te},null,8,["modelValue"]),H.value?(e.openBlock(),e.createElementBlock("div",ai,[e.createElementVNode("div",oi,[e.createElementVNode("div",li,[e.createElementVNode("div",{class:"profile-avatar-modal-header"},[a[34]||(a[34]=e.createElementVNode("h2",{class:"profile-modal-title"},"Edit Avatar",-1)),e.createElementVNode("button",{onClick:Se,class:"profile-avatar-modal-close"},a[33]||(a[33]=[e.createElementVNode("svg",{class:"profile-avatar-modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))]),e.createVNode(e.unref(Ee),{uploading:M.value,"preselected-file":F.value,onUpload:Be,onError:Ae},null,8,["uploading","preselected-file"])])])])):e.createCommentVNode("",!0)],2)]);var o,l}}}),[["__scopeId","data-v-c0a279c1"]]),ni={class:"accui-component-scope"},ii={class:"accui-w-full accui-min-w-100 accui-max-w-md accui-mx-auto accui-animate-slide-up"},si={class:"accui-mt-8 accui-text-center"},ci={key:0,class:"accui-mt-6 accui-text-center"},di={class:"accui-text-neutral-400 accui-text-sm"},ui=d(e.defineComponent({__name:"StrandsPasswordReset",props:{config:{}},emits:["success","error","back-to-signin"],setup(a,{emit:o}){const l=a,r=o,{getSupportEmail:n}=t.useStrandsConfig(l.config),i=e.ref(!1),s=e.ref(""),c=e.ref(!1),d=e.reactive({email:""}),m=async()=>{i.value=!0,s.value="";try{await new Promise(e=>setTimeout(e,1e3)),c.value=!0,r("success",d.email)}catch(e){s.value="Failed to send password reset email. Please try again.",r("error",s.value)}finally{i.value=!1}};return(t,a)=>(e.openBlock(),e.createElementBlock("div",ni,[e.createElementVNode("div",ii,[e.createVNode(e.unref(C),{variant:"modern"},{default:e.withCtx(()=>[a[6]||(a[6]=e.createElementVNode("div",{class:"accui-text-center accui-mb-8"},[e.createElementVNode("h1",{class:"accui-text-3xl accui-font-bold accui-text-gradient accui-mb-2"},"Reset password"),e.createElementVNode("p",{class:"accui-text-neutral-600"},"Enter your email address and we'll send you a link to reset your password")],-1)),e.createElementVNode("form",{onSubmit:e.withModifiers(m,["prevent"]),class:"accui-space-y-6"},[e.createVNode(e.unref(U),{id:"email",modelValue:d.email,"onUpdate:modelValue":a[0]||(a[0]=e=>d.email=e),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",disabled:i.value||c.value,error:s.value?"Email address not found":void 0},null,8,["modelValue","disabled","error"]),e.createVNode(e.unref(N),{type:"submit",variant:"primary","full-width":"",disabled:i.value||!d.email.trim()||c.value,loading:i.value,"loading-text":"Sending link..."},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.value?"Link sent!":"Send reset link"),1)]),_:1},8,["disabled","loading"])],32),c.value?(e.openBlock(),e.createBlock(e.unref(u),{key:0,variant:"success",message:`Check your email - We've sent a password reset link to ${d.email}`,class:"accui-mt-6 accui-animate-fade-in"},null,8,["message"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createBlock(e.unref(u),{key:1,variant:"error",message:s.value,class:"accui-mt-6 accui-animate-fade-in",dismissible:"",onDismiss:a[1]||(a[1]=e=>s.value="")},null,8,["message"])):e.createCommentVNode("",!0),e.createElementVNode("div",si,[e.createVNode(e.unref(j),{onClick:a[2]||(a[2]=e=>t.$emit("back-to-signin")),class:"accui-inline-flex accui-items-center accui-gap-2"},{default:e.withCtx(()=>a[3]||(a[3]=[e.createElementVNode("svg",{class:"accui-w-4 accui-h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),e.createTextVNode(" Back to sign in ",-1)])),_:1,__:[3]})]),e.createVNode(Oe,{config:l.config},{default:e.withCtx(()=>[e.unref(n)()?(e.openBlock(),e.createElementBlock("div",ci,[e.createElementVNode("p",di,[a[5]||(a[5]=e.createTextVNode(" Need help? ",-1)),e.createVNode(e.unref(j),{variant:"primary",href:`mailto:${e.unref(n)()}`},{default:e.withCtx(()=>a[4]||(a[4]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[4]},8,["href"])])])):e.createCommentVNode("",!0)]),_:1},8,["config"])]),_:1,__:[6]})])]))}}),[["__scopeId","data-v-0943ff6b"]]),mi={key:0,class:"animate-fade-in"},pi={key:1,class:"animate-fade-in"},vi={key:2,class:"animate-fade-in"},fi=d(e.defineComponent({__name:"SignedIn",props:{showFallback:{type:Boolean,default:!0},invert:{type:Boolean,default:!1}},emits:["sign-in-required"],setup(t,{emit:o}){const l=t,r=l.invert??!1,n=e.computed(()=>(d.value&&!r||!d.value&&r)&&!f.value),i=e.computed(()=>(d.value&&r||!d.value&&!r)&&l.showFallback&&!f.value),s=o,c=e.ref(!1),{isAuthenticated:d,isInitializing:u,isSigningIn:m,user:p,signOut:v}=a.useStrandsAuth(),f=e.computed(()=>u.value&&!m.value||!c.value);e.onMounted(()=>{setTimeout(()=>{c.value=!0},100)});const h=()=>{s("sign-in-required")};return(t,a)=>n.value?(e.openBlock(),e.createElementBlock("div",mi,[e.renderSlot(t.$slots,"default",{user:e.unref(p),signOut:e.unref(v),invert:e.unref(r)},void 0,!0)])):i.value?(e.openBlock(),e.createElementBlock("div",pi,[e.renderSlot(t.$slots,"fallback",{signIn:h},()=>[e.createElementVNode("div",{class:"signed-in-fallback"},[a[0]||(a[0]=e.createStaticVNode('<div class="signed-in-icon-container" data-v-669fa3b4><svg class="signed-in-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-669fa3b4><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" data-v-669fa3b4></path></svg></div><h3 class="signed-in-title" data-v-669fa3b4>Sign in required</h3><p class="signed-in-subtitle" data-v-669fa3b4>You need to be signed in to access this content.</p>',3)),e.createElementVNode("button",{onClick:h,class:"signed-in-button"}," Sign in ")])],!0)])):f.value?(e.openBlock(),e.createElementBlock("div",vi,[e.renderSlot(t.$slots,"loading",{},()=>[e.createVNode(e.unref(G),{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})],!0)])):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-669fa3b4"]]),hi={key:0,class:"animate-fade-in"},gi={key:1,class:"animate-fade-in"},yi={class:"signed-out-fallback"},ki={class:"signed-out-subtitle"},Ei={key:2,class:"animate-fade-in"},Ni=d(e.defineComponent({__name:"SignedOut",props:{showFallback:{type:Boolean,default:!0}},emits:["sign-in-clicked","sign-up-clicked"],setup(t,{emit:o}){const l=o,{isAuthenticated:r,isLoading:n,user:i,signOut:s}=a.useStrandsAuth(),c=()=>{l("sign-in-clicked")},d=()=>{l("sign-up-clicked")};return(t,a)=>e.unref(r)||e.unref(n)?t.showFallback&&e.unref(r)&&!e.unref(n)?(e.openBlock(),e.createElementBlock("div",gi,[e.renderSlot(t.$slots,"fallback",{user:e.unref(i),signOut:e.unref(s)},()=>[e.createElementVNode("div",yi,[a[1]||(a[1]=e.createElementVNode("div",{class:"signed-out-icon-container"},[e.createElementVNode("svg",{class:"signed-out-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})])],-1)),a[2]||(a[2]=e.createElementVNode("h3",{class:"signed-out-title"},"Already signed in",-1)),e.createElementVNode("p",ki,"You're currently signed in as "+e.toDisplayString(e.unref(i)?.email)+".",1),e.createElementVNode("button",{onClick:a[0]||(a[0]=(...t)=>e.unref(s)&&e.unref(s)(...t)),class:"signed-out-button"}," Sign out ")])],!0)])):e.unref(n)?(e.openBlock(),e.createElementBlock("div",Ei,[e.renderSlot(t.$slots,"loading",{},()=>[e.createVNode(e.unref(G),{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})],!0)])):e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",hi,[e.renderSlot(t.$slots,"default",{signIn:c,signUp:d},void 0,!0)]))}}),[["__scopeId","data-v-9b5919fc"]]),wi={class:"accui-component-scope"},Vi=e.defineComponent({__name:"StrandsLogo",props:{class:{default:""}},setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("div",wi,[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 22571 9413",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(t.class),role:"img","aria-label":"Strands Services Logo"},a[0]||(a[0]=[e.createElementVNode("g",null,[e.createElementVNode("text",{x:"3798.06",y:"7203.65",style:{"font-family":"'CourierNewPS-BoldMT', 'Courier New', monospace","font-weight":"700","font-size":"5295.12px",fill:"currentColor"}}," trands ")],-1),e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M2370.75,8047.43c-172.831,0 -349.758,-28.381 -520.19,-86.274c-362.325,-122.988 -626.515,-354.842 -724.651,-635.835c-94.464,-270.121 -70.883,-674.383 204.038,-923.606c318.411,-288.759 731.429,-170.714 1168.59,-45.891c186.811,53.375 395.367,112.962 625.668,152.923c-0.424,-11.579 -0.988,-21.181 -1.412,-28.806c-14.12,-228.042 -92.911,-347.217 -223.524,-544.618c-83.592,-126.376 -178.48,-269.696 -272.097,-466.956c-74.978,-158.006 -138.096,-327.308 -188.082,-502.822c-408.216,-4.095 -801.606,-101.666 -1135.83,-290.313c-874.468,-493.079 -1531.48,-1711.66 -1068.34,-2543.62c195.283,-350.747 599.829,-639.082 1030.5,-734.394c321.095,-71.166 618.185,-23.298 836.343,134.707c228.183,165.207 391.131,461.309 425.16,772.66c29.371,267.862 -42.784,514.825 -203.049,695.423c-247.669,279.016 -675.371,371.786 -1089.66,236.232l175.515,-536.852c194.295,63.541 396.497,32.9 491.809,-74.414c68.059,-76.673 72.436,-183.14 64.105,-259.107c-18.356,-167.889 -111.973,-316.576 -195,-376.728c-85.569,-61.988 -221.547,-76.532 -382.8,-40.666c-271.533,60.152 -542.641,248.375 -659.133,457.778c-126.942,228.042 -103.784,560.433 63.541,912.027c171.137,359.643 465.968,682.997 788.616,865.007c216.181,121.999 473.593,192.882 744.843,211.097c-19.91,-172.69 -27.111,-345.522 -20.475,-513.977c23.864,-608.865 225.642,-1098.41 567.917,-1378.28c338.604,-276.898 921.487,-426.997 1334.79,-159.7c453.119,293.136 534.452,990.394 350.041,1468.36c-164.077,425.444 -583.307,786.075 -1150.24,989.406c-130.048,46.738 -262.355,83.451 -395.226,110.28c35.583,109.432 77.379,215.192 125.105,315.446c76.673,161.253 156.17,281.558 233.126,397.767c150.521,227.619 292.854,442.67 316.152,821.517c1.694,28.522 3.248,65.659 3.53,109.431c88.534,-1.694 179.61,-7.766 273.086,-19.344c234.819,-28.947 692.521,-185.215 954.251,-408.635l202.34,499.143c-286.222,212.469 -804.15,435.189 -1087.4,470.066c-144.592,17.791 -283.817,24.851 -417.395,24.004c-75.684,261.648 -223.665,536.852 -507.34,722.674c-206.438,135.272 -466.251,204.885 -736.795,204.885l-0.424,0Zm-542.076,-1260.51c-52.669,-0 -93.617,9.743 -119.316,33.182c-79.073,71.731 -79.78,234.114 -50.127,318.977c38.69,110.702 185.116,223.523 373.057,287.347c271.956,92.346 572.576,70.319 765.882,-56.34c114.374,-74.837 189.353,-185.258 238.209,-303.303c-263.484,-45.185 -495.48,-111.409 -693.022,-167.89c-205.873,-58.881 -391.978,-111.973 -514.683,-111.973Zm1872.91,-4019.61c-153.346,0 -336.768,62.27 -471.193,172.126c-212.227,173.538 -343.828,524.708 -361.055,963.283c-5.93,149.393 1.271,302.88 20.192,455.802c110.421,-21.463 219.994,-51.257 327.167,-89.805c406.239,-145.721 710.531,-392.966 814.032,-661.11c98.842,-256.141 62.835,-666.052 -130.047,-790.875c-51.963,-33.606 -121.717,-49.421 -199.096,-49.421Z",style:{fill:"currentColor","fill-rule":"nonzero"}})],-1)]),2))]))}),bi=e.defineComponent({__name:"StrandsConfigProvider",props:{config:{}},setup(a){const o=a;return e.onMounted(()=>{t.provideStrandsConfig(o.config)}),t.provideStrandsConfig(o.config),(t,a)=>e.renderSlot(t.$slots,"default")}}),Ci=["fill","stroke","viewBox","aria-hidden"],xi=e.defineComponent({__name:"SvgIcon",props:{name:{},class:{default:""},size:{default:"md"},fill:{default:"none"},stroke:{default:"currentColor"},ariaHidden:{type:Boolean,default:!0}},setup(t){const a=t,o={xs:"w-3 h-3",sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6",xl:"w-8 h-8"},l=e.computed(()=>`${o[a.size]} ${a.class}`),r=e.computed(()=>"0 0 24 24"),n={eye:()=>e.h("g",[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})]),"eye-slash":()=>e.h("g",[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})]),camera:()=>e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0710.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"}),"chevron-left":()=>e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"}),loading:()=>e.h("g",[e.h("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.h("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"})]),"check-circle":()=>e.h("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"}),"x-circle":()=>e.h("path",{"fill-rule":"evenodd",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","clip-rule":"evenodd"}),lock:()=>e.h("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"}),user:()=>e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"}),google:()=>e.h("g",{fill:"currentColor"},[e.h("path",{fill:"#4285F4",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"}),e.h("path",{fill:"#34A853",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"}),e.h("path",{fill:"#FBBC05",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"}),e.h("path",{fill:"#EA4335",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"})]),github:()=>e.h("path",{"fill-rule":"evenodd",d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z","clip-rule":"evenodd"})},i=e.computed(()=>{const t=n[a.name];return t?t():e.h("path",{d:""})});return(t,a)=>(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(l.value),fill:t.fill,stroke:t.stroke,viewBox:r.value,"aria-hidden":t.ariaHidden},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value)))],10,Ci))}}),Ii=["onKeydown","aria-expanded"],Bi={class:"user-button-content"},Ai={key:0,class:"user-info"},Si={class:"user-name"},Mi={class:"avatar-container"},zi={class:"avatar-wrapper"},Ri=["src","alt"],Ti={key:1,class:"avatar-default"},Di=["onKeydown"],Li={class:"dropdown-content"},Ui={class:"dropdown-header"},ji={key:0,class:"dropdown-avatar-container"},Pi=["src","alt"],Xi={key:1,class:"dropdown-avatar-default"},Yi={class:"dropdown-user-details"},Hi={class:"dropdown-user-name"},Fi={class:"dropdown-user-email"},Wi={class:"dropdown-menu-items"},Oi=d(e.defineComponent({__name:"StrandsUserButton",props:{hideUser:{type:Boolean,default:!1},variant:{default:"minimal"},redirectUrl:{default:"/"},user:{default:void 0},menuAlign:{default:"right"},menuVerticalAlign:{default:"bottom"}},emits:["profile-updated","signed-out","signed-in"],setup(t,{emit:o}){const l=t,r=o,{currentUser:n,signOut:i}=a.useStrandsAuth(),s=e.ref(!1),c=e.ref(!1),d=e.ref(!1),u=e.ref(),m=e.ref(),p=e.computed(()=>l.user||n.value),v=e.computed(()=>p.value?p.value.username?p.value.username:p.value.firstName&&p.value.lastName?`${p.value.firstName} ${p.value.lastName}`:p.value.firstName?p.value.firstName:p.value.email||"User":"User"),f=()=>{s.value=!s.value,s.value&&e.nextTick(()=>{m.value?.focus()})},h=()=>{s.value=!0,e.nextTick(()=>{m.value?.focus()})},g=()=>{s.value=!1},y=()=>{},k=()=>{},E=()=>{m.value?.focus()},N=()=>{},w=()=>{c.value=!0,g()},V=()=>{c.value=!1},b=()=>{r("profile-updated")},C=e=>{},x=()=>{d.value=!0},I=()=>{d.value=!1},B=()=>{I(),r("signed-in")},A=e=>{},S=async()=>{try{await i(),g(),r("signed-out")}catch(e){}},M=e=>{u.value&&!u.value.contains(e.target)&&g()};return e.onMounted(()=>{document.addEventListener("click",M)}),e.onUnmounted(()=>{document.removeEventListener("click",M)}),(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:"accui-component-scope",ref_key:"containerRef",ref:u},[e.createVNode(e.unref(fi),{invert:!!l.user},{fallback:e.withCtx(()=>[e.createElementVNode("button",{onClick:x,class:"sign-in-button","aria-label":"Sign in"},a[8]||(a[8]=[e.createElementVNode("svg",{class:"sign-in-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})],-1),e.createElementVNode("span",null,"Sign In",-1)])),e.createVNode(e.unref(Ye),{open:d.value,onClose:I,"fullscreen-on-mobile":!1},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"modal-header"},[a[10]||(a[10]=e.createElementVNode("h2",{class:"modal-title"},"Sign In",-1)),e.createElementVNode("button",{onClick:I,class:"modal-close-button","aria-label":"Close sign in"},a[9]||(a[9]=[e.createElementVNode("svg",{class:"modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.createVNode(e.unref($t),{onSignedIn:B,onError:A,"redirect-url":t.redirectUrl,"in-modal":""},null,8,["redirect-url"])]),_:1},8,["open"])]),default:e.withCtx(()=>[e.createElementVNode("button",{onClick:f,onKeydown:[e.withKeys(f,["enter"]),e.withKeys(e.withModifiers(f,["prevent"]),["space"]),e.withKeys(g,["escape"]),e.withKeys(e.withModifiers(h,["prevent"]),["arrow-down"])],class:"user-button","aria-haspopup":"true","aria-expanded":s.value,"aria-label":"User menu"},[e.createElementVNode("div",Bi,[t.hideUser?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ai,[e.createElementVNode("div",Si,e.toDisplayString(v.value),1)])),e.createElementVNode("div",Mi,[e.createElementVNode("div",zi,[p.value?.avatar?(e.openBlock(),e.createElementBlock("img",{key:0,src:p.value.avatar,alt:`${p.value.firstName||p.value.email}'s avatar`,class:"avatar-image"},null,8,Ri)):(e.openBlock(),e.createElementBlock("div",Ti,a[0]||(a[0]=[e.createElementVNode("svg",{class:"avatar-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z","clip-rule":"evenodd"})],-1)])))])]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["dropdown-arrow",{"dropdown-arrow-open":s.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a[1]||(a[1]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)]),2))]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dropdown-menu",`dropdown-menu-align-${l.menuAlign}`,`dropdown-menu-vertical-${l.menuVerticalAlign}`]),role:"menu","aria-orientation":"vertical",onKeydown:[e.withKeys(g,["escape"]),e.withKeys(e.withModifiers(k,["prevent"]),["arrow-up"]),e.withKeys(e.withModifiers(y,["prevent"]),["arrow-down"]),e.withKeys(e.withModifiers(E,["prevent"]),["home"]),e.withKeys(e.withModifiers(N,["prevent"]),["end"])]},[e.createElementVNode("div",Li,[e.createElementVNode("div",Ui,[p.value?(e.openBlock(),e.createElementBlock("div",ji,[e.createVNode(e.unref(De),{size:80,value:p.value.xp,max:p.value.next_level_xp,level:p.value.level,"level-label":`LEVEL ${p.value.level}`,"user-settings":p.value.settings,class:"level-progress-overlay"},null,8,["value","max","level","level-label","user-settings"]),p.value?.avatar?(e.openBlock(),e.createElementBlock("img",{key:0,src:p.value.avatar,alt:`${p.value.firstName||p.value.email}'s avatar`,class:"dropdown-avatar-image"},null,8,Pi)):(e.openBlock(),e.createElementBlock("div",Xi,a[2]||(a[2]=[e.createElementVNode("svg",{class:"dropdown-avatar-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z","clip-rule":"evenodd"})],-1)])))])):e.createCommentVNode("",!0),e.createElementVNode("div",Yi,[e.createElementVNode("div",Hi,e.toDisplayString(v.value),1),e.createElementVNode("div",Fi,e.toDisplayString(p.value?.email),1)])]),a[5]||(a[5]=e.createElementVNode("div",{class:"dropdown-divider"},null,-1)),e.createElementVNode("div",Wi,[e.createElementVNode("button",{ref_key:"profileButtonRef",ref:m,onClick:w,class:"dropdown-menu-item",role:"menuitem",tabindex:"-1"},a[3]||(a[3]=[e.createElementVNode("svg",{class:"dropdown-menu-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})],-1),e.createTextVNode(" Profile ",-1)]),512),e.createElementVNode("button",{onClick:S,class:"dropdown-menu-item dropdown-menu-item-danger",role:"menuitem",tabindex:"-1"},a[4]||(a[4]=[e.createElementVNode("svg",{class:"dropdown-menu-icon dropdown-menu-icon-danger",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"})],-1),e.createTextVNode(" Sign Out ",-1)]))])])],42,Di)):e.createCommentVNode("",!0)]),_:1})],40,Ii),e.createVNode(e.unref(Ye),{open:c.value,onClose:V,"fullscreen-on-mobile":!1},{header:e.withCtx(()=>[e.createElementVNode("div",{class:"modal-header"},[a[7]||(a[7]=e.createElementVNode("h2",{class:"modal-title"},"User Profile",-1)),e.createElementVNode("button",{onClick:V,class:"modal-close-button","aria-label":"Close profile"},a[6]||(a[6]=[e.createElementVNode("svg",{class:"modal-close-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)]))])]),default:e.withCtx(()=>[e.createVNode(e.unref(ri),{user:p.value,onProfileUpdated:b,onError:C,"in-modal":""},null,8,["user"])]),_:1},8,["open"])]),_:1},8,["invert"])],512))}}),[["__scopeId","data-v-9e187d2c"]]),qi={class:"accui-p-2 accui-border-b"},Zi=d(e.defineComponent({__name:"VirtualList",props:{items:{},itemHeight:{},containerHeight:{},itemKey:{type:[String,Function],default:"id"},overscan:{default:5}},setup(t,{expose:a}){const o=t,l=e.ref(),r=e.ref(0),n=e.computed(()=>{const e=Math.floor(r.value/o.itemHeight),t=Math.min(e+Math.ceil(o.containerHeight/o.itemHeight),o.items.length-1);return{start:Math.max(0,e-o.overscan),end:Math.min(o.items.length-1,t+o.overscan)}}),i=e.computed(()=>{const{start:e,end:t}=n.value,a=[];for(let l=e;l<=t;l++)a.push({index:l,data:o.items[l],top:l*o.itemHeight});return a}),s=e.computed(()=>o.items.length*o.itemHeight),c=e=>"function"==typeof o.itemKey?o.itemKey(e):e[o.itemKey]||e.id||Math.random();let d=null;const u=e=>{d&&clearTimeout(d),d=setTimeout(()=>{const t=e.target;r.value=t.scrollTop},16)};e.onUnmounted(()=>{d&&clearTimeout(d)});return a({scrollToItem:(e,t="start")=>{if(!l.value)return;let a=e*o.itemHeight;"center"===t?a-=o.containerHeight/2-o.itemHeight/2:"end"===t&&(a-=o.containerHeight-o.itemHeight),l.value.scrollTop=Math.max(0,a)}}),(t,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"scrollContainer",ref:l,style:e.normalizeStyle({height:t.containerHeight+"px",overflowY:"auto"}),onScroll:u,class:"accui-virtual-list"},[e.createElementVNode("div",{style:e.normalizeStyle({height:s.value+"px",position:"relative"})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,a=>(e.openBlock(),e.createElementBlock("div",{key:c(a.data),style:e.normalizeStyle({position:"absolute",top:a.top+"px",left:0,right:0,height:t.itemHeight+"px"})},[e.renderSlot(t.$slots,"default",{item:a.data,index:a.index},()=>[e.createElementVNode("div",qi,e.toDisplayString(JSON.stringify(a.data)),1)],!0)],4))),128))],4)],36))}}),[["__scopeId","data-v-e8bb0414"]]),Gi={class:"accui-component-scope"},Qi={class:"mfa-setup-header"},Ji={class:"mfa-setup-status-container"},Ki={class:"mfa-setup-content"},_i={key:0,class:"mfa-setup-loading"},$i={key:1,class:"mfa-setup-sections"},es={key:0,class:"mfa-setup-status-alert"},ts={class:"mfa-setup-status-content"},as={class:"mfa-setup-status-icon"},os={class:"mfa-setup-methods-grid"},ls={class:"mfa-setup-method-content"},rs={class:"mfa-setup-method-icon mfa-setup-totp-icon"},ns={class:"mfa-setup-method-content"},is={class:"mfa-setup-method-icon mfa-setup-email-icon"},ss={key:1,class:"mfa-setup-manage-section"},cs={class:"mfa-setup-manage-header"},ds={class:"mfa-setup-manage-description"},us={class:"mfa-setup-footer"},ms=d(e.defineComponent({__name:"StrandsMFASetup",props:{show:{type:Boolean,default:!1}},emits:["success","error","close"],setup(t,{emit:a}){const o={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2",ry:"2"}),e.h("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})])}},l={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"m4 4 16 0c1.1 0 2 .9 2 2l0 12c0 1.1-.9 2-2 2l-16 0c-1.1 0-2-.9-2-2l0-12c0-1.1.9-2 2-2z"}),e.h("polyline",{points:"22,6 12,13 2,6"})])}},r={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})])}},n={props:{size:{type:[String,Number],default:24}},render(){return e.h("svg",{width:this.size,height:this.size,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.h("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),e.h("circle",{cx:"12",cy:"12",r:"3"})])}},i=t,s=a,{mfaEnabled:c,loading:d,activeMfaDevices:u,fetchMfaDevices:m}=Qe(),p=e.ref(!1),v=e.ref(!1),f=e.ref(!1),h=e.ref(!1);e.watch(()=>i.show,async e=>{e&&await m()}),e.onMounted(async()=>{i.show&&await m()});const g=()=>{s("close")},y=()=>{p.value=!0},k=()=>{v.value=!0},E=()=>{h.value=!0},w=async()=>{p.value=!1,v.value=!1,f.value=!1,await m(),s("success")},V=async()=>{await m()};return(t,a)=>(e.openBlock(),e.createElementBlock("div",Gi,[e.createVNode(Ye,{open:t.show,onClose:g,"card-class":"mfa-setup-modal"},{header:e.withCtx(()=>[e.createElementVNode("div",Qi,[a[4]||(a[4]=e.createElementVNode("div",null,[e.createElementVNode("h2",{class:"mfa-setup-title"},"Two-Factor Authentication"),e.createElementVNode("p",{class:"mfa-setup-subtitle"},"Add extra security to your account")],-1)),e.createElementVNode("div",Ji,[e.createElementVNode("span",{class:e.normalizeClass(["mfa-setup-status-badge",e.unref(c)||e.unref(u).length>0?"mfa-setup-status-enabled":"mfa-setup-status-disabled"])},e.toDisplayString(e.unref(c)||e.unref(u).length>0?"Enabled":"Not Enabled"),3)])])]),footer:e.withCtx(()=>[e.createElementVNode("div",us,[e.createVNode(e.unref(N),{variant:"secondary",onClick:g,disabled:e.unref(d)},{default:e.withCtx(()=>a[14]||(a[14]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[14]},8,["disabled"])])]),default:e.withCtx(()=>[e.createElementVNode("div",Ki,[e.unref(d)?(e.openBlock(),e.createElementBlock("div",_i,[e.createVNode(e.unref(G),{size:32}),a[5]||(a[5]=e.createElementVNode("span",{class:"mfa-setup-loading-text"},"Loading MFA settings...",-1))])):(e.openBlock(),e.createElementBlock("div",$i,[e.unref(c)||e.unref(u).length>0?(e.openBlock(),e.createElementBlock("div",es,[e.createElementVNode("div",ts,[e.createElementVNode("div",as,[e.createVNode(r,{size:20,class:"mfa-setup-shield-icon"})]),a[6]||(a[6]=e.createElementVNode("div",null,[e.createElementVNode("span",{class:"mfa-setup-status-title"},"2FA is currently enabled on your account"),e.createElementVNode("p",{class:"mfa-setup-status-description"},"Your account has additional security protection")],-1))])])):e.createCommentVNode("",!0),e.createElementVNode("div",null,[a[11]||(a[11]=e.createElementVNode("h3",{class:"mfa-setup-methods-title"},"Choose Your Authentication Method",-1)),e.createElementVNode("div",os,[e.createElementVNode("div",{class:"mfa-setup-method-card",onClick:y},[e.createElementVNode("div",ls,[e.createElementVNode("div",rs,[e.createVNode(o,{size:28,class:"mfa-setup-icon-svg"})]),a[8]||(a[8]=e.createElementVNode("div",{class:"mfa-setup-method-info"},[e.createElementVNode("h4",{class:"mfa-setup-method-title"},"Authenticator App"),e.createElementVNode("p",{class:"mfa-setup-method-description"},"Use Google Authenticator, Authy, or any TOTP-compatible app to generate secure codes")],-1)),e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(y,["stop"]),disabled:e.unref(d),class:"mfa-setup-method-button"},{default:e.withCtx(()=>a[7]||(a[7]=[e.createTextVNode(" Setup Authenticator ",-1)])),_:1,__:[7]},8,["disabled"])])]),e.createElementVNode("div",{class:"mfa-setup-method-card",onClick:k},[e.createElementVNode("div",ns,[e.createElementVNode("div",is,[e.createVNode(l,{size:28,class:"mfa-setup-icon-svg"})]),a[10]||(a[10]=e.createElementVNode("div",{class:"mfa-setup-method-info"},[e.createElementVNode("h4",{class:"mfa-setup-method-title"},"Email Verification"),e.createElementVNode("p",{class:"mfa-setup-method-description"},"Receive verification codes directly in your email inbox for easy access")],-1)),e.createVNode(e.unref(N),{variant:"primary",size:"md",onClick:e.withModifiers(k,["stop"]),disabled:e.unref(d),class:"mfa-setup-method-button"},{default:e.withCtx(()=>a[9]||(a[9]=[e.createTextVNode(" Setup Email 2FA ",-1)])),_:1,__:[9]},8,["disabled"])])])])]),e.unref(u).length>0?(e.openBlock(),e.createElementBlock("div",ss,[e.createElementVNode("div",cs,[e.createElementVNode("div",null,[a[12]||(a[12]=e.createElementVNode("h3",{class:"mfa-setup-manage-title"},"Manage Existing Methods",-1)),e.createElementVNode("p",ds,e.toDisplayString(e.unref(u).length)+" device(s) currently active",1)]),e.createVNode(e.unref(N),{variant:"secondary",size:"md",onClick:E,disabled:e.unref(d)},{default:e.withCtx(()=>[e.createVNode(n,{size:16,class:"mfa-setup-manage-icon"}),a[13]||(a[13]=e.createTextVNode(" Manage Devices ",-1))]),_:1,__:[13]},8,["disabled"])])])):e.createCommentVNode("",!0)]))])]),_:1},8,["open"]),p.value?(e.openBlock(),e.createBlock(Ro,{key:0,show:p.value,onClose:a[0]||(a[0]=e=>p.value=!1),onSuccess:w},null,8,["show"])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createBlock(Fo,{key:1,show:v.value,onClose:a[1]||(a[1]=e=>v.value=!1),onSuccess:w},null,8,["show"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createBlock(pl,{key:2,show:f.value,onClose:a[2]||(a[2]=e=>f.value=!1),onSuccess:w},null,8,["show"])):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createBlock(mr,{key:3,show:h.value,onClose:a[3]||(a[3]=e=>h.value=!1),onMfaUpdated:V},null,8,["show"])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-745d3b53"]]),ps={StrandsUiAlert:u,StrandsUiButton:N,StrandsUiCard:C,StrandsUiInput:U,StrandsUiLink:j,StrandsUiTabs:F,StrandsUiLoader:G},vs={install(e,t={}){const{prefix:a=""}=t;Object.entries(ps).forEach(([t,o])=>{const l=a?`${a}${t}`:t;e.component(l,o)})}};function fs(){const{config:e}=t.useStrandsConfig(),{currentSession:o,refreshToken:l,getAuthHeaders:r}=a.useStrandsAuth(),n=async(t,a={})=>{const{autoRefresh:n=!0,requireAuth:i=!0,baseURL:s,...c}=a;if(i&&!o.value?.accessToken)throw new Error("User is not authenticated");let d=t;const u=s||e.value.baseUrl;u&&"string"==typeof t&&!t.startsWith("http")&&(d=new URL(t,u).toString());const m=new Headers(c.headers);if(o.value?.accessToken)try{const e=r();Object.entries(e).forEach(([e,t])=>{m.set(e,t)})}catch(f){if(i)throw f}const p={...c,headers:m};let v=await fetch(d,p);if(401===v.status&&n&&o.value?.refreshToken)try{if(await l()&&o.value?.accessToken){const e=r();Object.entries(e).forEach(([e,t])=>{m.set(e,t)}),v=await fetch(d,{...p,headers:m})}}catch(h){}return v};return{authenticatedFetch:n,get:(e,t)=>n(e,{...t,method:"GET"}),post:(e,t,a)=>{const o=new Headers(a?.headers);return t&&"object"==typeof t&&!o.has("Content-Type")&&o.set("Content-Type","application/json"),n(e,{...a,method:"POST",headers:o,body:"object"==typeof t?JSON.stringify(t):t})},put:(e,t,a)=>{const o=new Headers(a?.headers);return t&&"object"==typeof t&&!o.has("Content-Type")&&o.set("Content-Type","application/json"),n(e,{...a,method:"PUT",headers:o,body:"object"==typeof t?JSON.stringify(t):t})},delete:(e,t)=>n(e,{...t,method:"DELETE"}),patch:(e,t,a)=>{const o=new Headers(a?.headers);return t&&"object"==typeof t&&!o.has("Content-Type")&&o.set("Content-Type","application/json"),n(e,{...a,method:"PATCH",headers:o,body:"object"==typeof t?JSON.stringify(t):t})}}}const hs={get:async(e,t)=>{const{get:a}=fs();return a(e,t)},post:async(e,t,a)=>{const{post:o}=fs();return o(e,t,a)},put:async(e,t,a)=>{const{put:o}=fs();return o(e,t,a)},delete:async(e,t)=>{const{delete:a}=fs();return a(e,t)},patch:async(e,t,a)=>{const{patch:o}=fs();return o(e,t,a)}};exports.provideStrandsConfig=t.provideStrandsConfig,exports.setStrandsConfig=t.setStrandsConfig,exports.useStrandsConfig=t.useStrandsConfig,exports.useStrandsAuth=a.useStrandsAuth,exports.$authFetch=hs,exports.IconGithub=oa,exports.IconGoogle=ta,exports.SignedIn=fi,exports.SignedOut=Ni,exports.StrandsAuth=$t,exports.StrandsBackupCodesModal=Ml,exports.StrandsCompleteSignUp=uo,exports.StrandsConfigProvider=bi,exports.StrandsConfirmModal=Ul,exports.StrandsEmailMfaSetupModal=Fo,exports.StrandsHardwareKeySetupModal=pl,exports.StrandsLogo=Vi,exports.StrandsMFASetup=ms,exports.StrandsMfaModal=mr,exports.StrandsMfaVerification=zt,exports.StrandsPasswordReset=ui,exports.StrandsSecuredFooter=Oe,exports.StrandsSessionsModal=sn,exports.StrandsSettingsModal=wr,exports.StrandsSignIn=wa,exports.StrandsSignUp=Ga,exports.StrandsTotpSetupModal=Ro,exports.StrandsUIPlugin=vs,exports.StrandsUiAlert=u,exports.StrandsUiAvatarEditor=Ee,exports.StrandsUiButton=N,exports.StrandsUiCard=C,exports.StrandsUiInput=U,exports.StrandsUiLevelProgress=De,exports.StrandsUiLink=j,exports.StrandsUiLoader=G,exports.StrandsUiModal=Ye,exports.StrandsUiTabs=F,exports.StrandsUiToggle=J,exports.StrandsUserButton=Oi,exports.StrandsUserProfile=ri,exports.SvgIcon=xi,exports.UiAlert=u,exports.UiAvatarEditor=Ee,exports.UiAvatarEditorSimple=Ee,exports.UiButton=N,exports.UiCard=C,exports.UiInput=U,exports.UiLevelProgress=De,exports.UiLink=j,exports.UiLoader=G,exports.UiModal=Ye,exports.UiTabs=F,exports.UiToggle=J,exports.VirtualList=Zi,exports.debounce=(e,t)=>{let a;return(...o)=>{clearTimeout(a),a=setTimeout(()=>e(...o),t)}},exports.formatDate=e=>("string"==typeof e?new Date(e):e).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),exports.getInitials=(e,t)=>(e?.charAt(0).toUpperCase()||"")+(t?.charAt(0).toUpperCase()||"")||"U",exports.isRequired=e=>e.trim().length>0,exports.isValidEmail=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),exports.isValidName=e=>e.trim().length>=2,exports.passwordsMatch=(e,t)=>e===t,exports.preloadCriticalComponents=()=>{},exports.useAuthenticatedFetch=fs,exports.useOAuthProviders=Rt,exports.validatePassword=e=>{const t=[];let a=0;e.length<8?t.push("Password must be at least 8 characters long"):a+=1,/[A-Z]/.test(e)?a+=1:t.push("Password must contain at least one uppercase letter"),/[a-z]/.test(e)?a+=1:t.push("Password must contain at least one lowercase letter"),/\d/.test(e)?a+=1:t.push("Password must contain at least one number"),/[!@#$%^&*(),.?":{}|<>]/.test(e)?a+=1:t.push("Password must contain at least one special character");let o="weak";return a>=4?o="strong":a>=3&&(o="medium"),{isValid:0===t.length,strength:o,errors:t}};
|