@strands.gg/accui 0.2.2 → 0.2.3

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.
Files changed (68) hide show
  1. package/dist/accui.css +1 -1
  2. package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js +1 -1
  3. package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js.map +1 -1
  4. package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts +15 -21
  5. package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts.map +1 -1
  6. package/dist/nuxt/runtime/composables/useStrandsAuth.es.js +2 -2
  7. package/dist/nuxt/runtime/composables/useStrandsAuth.es.js.map +1 -1
  8. package/dist/nuxt/runtime/plugin.client.cjs.js +1 -1
  9. package/dist/nuxt/runtime/plugin.client.es.js +1 -1
  10. package/dist/nuxt-v4/module.cjs.js +7 -1
  11. package/dist/nuxt-v4/module.cjs.js.map +1 -1
  12. package/dist/nuxt-v4/module.d.ts +5 -0
  13. package/dist/nuxt-v4/module.d.ts.map +1 -1
  14. package/dist/nuxt-v4/module.es.js +27 -18
  15. package/dist/nuxt-v4/module.es.js.map +1 -1
  16. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js +1 -1
  17. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.cjs.js.map +1 -1
  18. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts +21 -59
  19. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.d.ts.map +1 -1
  20. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js +45 -36
  21. package/dist/nuxt-v4/runtime/composables/useStrandsAuth.es.js.map +1 -1
  22. package/dist/nuxt-v4/runtime/plugin.client.cjs.js +1 -1
  23. package/dist/nuxt-v4/runtime/plugin.client.cjs.js.map +1 -1
  24. package/dist/nuxt-v4/runtime/plugin.client.d.ts.map +1 -1
  25. package/dist/nuxt-v4/runtime/plugin.client.es.js +23 -12
  26. package/dist/nuxt-v4/runtime/plugin.client.es.js.map +1 -1
  27. package/dist/nuxt-v4/types.d.ts +2 -2
  28. package/dist/nuxt-v4/types.d.ts.map +1 -1
  29. package/dist/nuxt-v4.d.ts +1 -0
  30. package/dist/nuxt-v4.d.ts.map +1 -1
  31. package/dist/strands-auth-ui.cjs.js +1 -1
  32. package/dist/strands-auth-ui.cjs.js.map +1 -1
  33. package/dist/strands-auth-ui.es.js +1468 -1315
  34. package/dist/strands-auth-ui.es.js.map +1 -1
  35. package/dist/types/index.d.ts +5 -0
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/useStrandsAuth-BGunGG2x.cjs +2 -0
  38. package/dist/useStrandsAuth-BGunGG2x.cjs.map +1 -0
  39. package/dist/useStrandsAuth-DiD32KI7.js +91 -0
  40. package/dist/useStrandsAuth-DiD32KI7.js.map +1 -0
  41. package/dist/useStrandsConfig-CtzCmeS1.js +105 -0
  42. package/dist/useStrandsConfig-CtzCmeS1.js.map +1 -0
  43. package/dist/useStrandsConfig-DamqmMUO.cjs +2 -0
  44. package/dist/useStrandsConfig-DamqmMUO.cjs.map +1 -0
  45. package/dist/vue/components/StrandsAuth.vue.d.ts.map +1 -1
  46. package/dist/vue/components/StrandsCompleteSignUp.vue.d.ts.map +1 -1
  47. package/dist/vue/components/StrandsPasswordReset.vue.d.ts +7 -3
  48. package/dist/vue/components/StrandsPasswordReset.vue.d.ts.map +1 -1
  49. package/dist/vue/components/StrandsSecuredFooter.vue.d.ts +5 -1
  50. package/dist/vue/components/StrandsSecuredFooter.vue.d.ts.map +1 -1
  51. package/dist/vue/components/StrandsSignIn.vue.d.ts.map +1 -1
  52. package/dist/vue/components/StrandsSignUp.vue.d.ts.map +1 -1
  53. package/dist/vue/components/StrandsUserProfile.vue.d.ts +2 -0
  54. package/dist/vue/components/StrandsUserProfile.vue.d.ts.map +1 -1
  55. package/dist/vue/composables/useStrandsAuth.d.ts +2 -1
  56. package/dist/vue/composables/useStrandsAuth.d.ts.map +1 -1
  57. package/dist/vue/composables/useStrandsConfig.d.ts +2 -0
  58. package/dist/vue/composables/useStrandsConfig.d.ts.map +1 -1
  59. package/dist/vue/ui/UiInput.vue.d.ts.map +1 -1
  60. package/package.json +1 -1
  61. package/dist/useStrandsAuth-Bh7evftS.js +0 -66
  62. package/dist/useStrandsAuth-Bh7evftS.js.map +0 -1
  63. package/dist/useStrandsAuth-sAfTQeGC.cjs +0 -2
  64. package/dist/useStrandsAuth-sAfTQeGC.cjs.map +0 -1
  65. package/dist/useStrandsConfig-BYwF65Ph.js +0 -89
  66. package/dist/useStrandsConfig-BYwF65Ph.js.map +0 -1
  67. package/dist/useStrandsConfig-Bhbfl0PJ.cjs +0 -2
  68. package/dist/useStrandsConfig-Bhbfl0PJ.cjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),k=require("./useStrandsConfig-Bhbfl0PJ.cjs"),Y=require("./useStrandsAuth-sAfTQeGC.cjs"),Q=e.defineComponent({__name:"UiAlert",props:{variant:{type:String,required:!1,default:"info"},title:{type:String,required:!1},message:{type:String,required:!1},dismissible:{type:Boolean,required:!1,default:!1}},emits:["dismiss"],setup(s,{expose:r}){r();const n=s,t=e.computed(()=>{const m=["rounded-lg border p-4"],c={success:"bg-green-50 border-green-200 text-green-800",error:"bg-red-50 border-red-200 text-red-800",warning:"bg-yellow-50 border-yellow-200 text-yellow-800",info:"bg-blue-50 border-blue-200 text-blue-800"};return[...m,c[n.variant]].join(" ")}),a=e.computed(()=>["text-sm font-medium mb-1",{success:"text-green-800",error:"text-red-800",warning:"text-yellow-800",info:"text-blue-800"}[n.variant]].join(" ")),d=e.computed(()=>["text-sm",{success:"text-green-700",error:"text-red-700",warning:"text-yellow-700",info:"text-blue-700"}[n.variant]].join(" ")),o=e.computed(()=>["inline-flex rounded-md p-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{success:"text-green-400 hover:text-green-500",error:"text-red-400 hover:text-red-500",warning:"text-yellow-400 hover:text-yellow-500",info:"text-blue-400 hover:text-blue-500"}[n.variant]].join(" ")),i=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"})[n.variant]),p={props:n,alertClasses:t,titleClasses:a,messageClasses:d,dismissClasses:o,iconPath:i};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),y=(s,r)=>{const n=s.__vccOpts||s;for(const[t,a]of r)n[t]=a;return n},H={class:"flex items-start"},R={class:"flex-shrink-0"},G={class:"h-5 w-5",fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true"},J=["d"],_={class:"ml-3 flex-1"},$={key:0,class:"ml-auto pl-3"};function ee(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.alertClasses),role:"alert"},[e.createElementVNode("div",H,[e.createElementVNode("div",R,[(e.openBlock(),e.createElementBlock("svg",G,[e.createElementVNode("path",{"fill-rule":"evenodd",d:t.iconPath,"clip-rule":"evenodd"},null,8,J)]))]),e.createElementVNode("div",_,[n.title?(e.openBlock(),e.createElementBlock("h3",{key:0,class:e.normalizeClass(t.titleClasses)},e.toDisplayString(n.title),3)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(t.messageClasses)},[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])],2)]),n.dismissible?(e.openBlock(),e.createElementBlock("div",$,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(t.dismissClasses),onClick:r[0]||(r[0]=o=>s.$emit("dismiss"))},r[1]||(r[1]=[e.createElementVNode("span",{class:"sr-only"},"Dismiss",-1),e.createElementVNode("svg",{class:"h-5 w-5",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)]),2)])):e.createCommentVNode("v-if",!0)])],2)}const D=y(Q,[["render",ee],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiAlert.vue"]]),te=e.defineComponent({__name:"UiButton",props:{variant:{type:String,required:!1,default:"primary"},size:{type:String,required:!1,default:"md"},type:{type:String,required:!1,default:"button"},disabled:{type:Boolean,required:!1,default:!1},loading:{type:Boolean,required:!1,default:!1},loadingText:{type:String,required:!1},fullWidth:{type:Boolean,required:!1,default:!1}},emits:["click"],setup(s,{expose:r}){r();const n=s,t=e.computed(()=>{const d=["inline-flex items-center justify-center font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"],o={sm:"px-3 py-2 text-sm rounded-md",md:"px-4 py-2.5 text-sm rounded-lg",lg:"px-6 py-3 text-base rounded-lg"},i={primary:"bg-strands-500 text-white hover:bg-strands-600 shadow-sm",secondary:"bg-gray-200 text-gray-800 hover:bg-gray-300",ghost:"text-strands-500 hover:text-strands-600 hover:bg-strands-50",outline:"border border-strands-500 text-strands-500 hover:bg-strands-500 hover:text-white"},p=n.fullWidth?"w-full":"";return[...d,o[n.size],i[n.variant],p].filter(Boolean).join(" ")}),a={props:n,buttonClasses:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),re=["type","disabled"],oe={key:0,class:"flex items-center justify-center gap-2"},ne={key:1,class:"flex items-center justify-center gap-2"};function se(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("button",{type:n.type,disabled:n.disabled||n.loading,class:e.normalizeClass(t.buttonClasses),onClick:r[0]||(r[0]=o=>s.$emit("click",o))},[n.loading?(e.openBlock(),e.createElementBlock("span",oe,[r[1]||(r[1]=e.createElementVNode("svg",{class:"animate-spin w-4 h-4",fill:"none",viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.createElementVNode("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"})],-1)),e.createElementVNode("span",null,e.toDisplayString(n.loadingText||"Loading..."),1)])):(e.openBlock(),e.createElementBlock("span",ne,[e.renderSlot(s.$slots,"icon"),e.renderSlot(s.$slots,"default")]))],10,re)}const E=y(te,[["render",se],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiButton.vue"]]),ae=e.defineComponent({__name:"UiCard",props:{variant:{type:String,required:!1,default:"default"},padding:{type:String,required:!1,default:"md"},shadow:{type:String,required:!1,default:"sm"}},setup(s,{expose:r}){r();const n=s,t=e.computed(()=>{const d=["bg-white border border-gray-200"],o={default:"rounded-lg",modern:"rounded-2xl backdrop-blur-lg",minimal:"rounded-md"},i={sm:"p-4",md:"p-6",lg:"p-8"},p={none:"",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"};return[...d,o[n.variant],i[n.padding],p[n.shadow]].filter(Boolean).join(" ")}),a={props:n,cardClasses:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),le={key:0,class:"border-b border-gray-200 pb-4 mb-6"},ie={class:"space-y-6"},Ae={key:1,class:"border-t border-gray-200 pt-4 mt-6"};function de(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.cardClasses)},[s.$slots.header?(e.openBlock(),e.createElementBlock("div",le,[e.renderSlot(s.$slots,"header")])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ie,[e.renderSlot(s.$slots,"default")]),s.$slots.footer?(e.openBlock(),e.createElementBlock("div",Ae,[e.renderSlot(s.$slots,"footer")])):e.createCommentVNode("v-if",!0)],2)}const L=y(ae,[["render",de],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiCard.vue"]]),ce=e.defineComponent({__name:"UiInput",props:{modelValue:{type:[String,Number],required:!1},type:{type:String,required:!1,default:"text"},label:{type:String,required:!1},placeholder:{type:String,required:!1},disabled:{type:Boolean,required:!1},required:{type:Boolean,required:!1},error:{type:String,required:!1},helpText:{type:String,required:!1},autocomplete:{type:String,required:!1},size:{type:String,required:!1,default:"md"}},emits:["update:modelValue","blur","focus"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,d=e.useSlots(),o=e.ref(!1),i=e.ref(`input-${Math.random().toString(36).substr(2,9)}`),p=e.computed(()=>t.type==="password"?o.value?"text":"password":t.type),m=e.computed(()=>{const g=["block w-full border-gray-300 text-black rounded-lg shadow-sm focus-visible:ring-strands-500 focus-visible:border-strands-500 transition-colors duration-200 disabled:bg-gray-50 disabled:text-gray-500"],u={sm:"px-3 py-2 text-sm",md:"px-3 py-2.5 text-sm",lg:"px-4 py-3 text-base"},w=t.error?"border-red-300 focus-visible:ring-red-500 focus-visible:border-red-500":"",h=d.icon?"pl-10":"",C=t.type==="password"?"pr-10":"";return[...g,u[t.size],w,h,C].filter(Boolean).join(" ")}),f={props:t,emit:a,slots:d,showPassword:o,inputId:i,computedType:p,inputClasses:m,handleInput:g=>{const u=g.target;a("update:modelValue",u.value)},togglePasswordVisibility:()=>{o.value=!o.value}};return Object.defineProperty(f,"__isScriptSetup",{enumerable:!1,value:!0}),f}}),ue={class:"space-y-1"},me=["for"],fe={key:0,class:"text-red-500"},pe={class:"relative"},ge=["id","type","value","placeholder","disabled","required","autocomplete"],Ve={key:0,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ve={key:1,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne={key:1,class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},we={key:1,class:"text-sm text-red-600"},Ce={key:2,class:"text-sm text-gray-500"};function he(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",ue,[n.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.inputId,class:"block text-sm font-medium text-gray-700"},[e.createTextVNode(e.toDisplayString(n.label)+" ",1),n.required?(e.openBlock(),e.createElementBlock("span",fe,"*")):e.createCommentVNode("v-if",!0)],8,me)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",pe,[e.createElementVNode("input",{id:t.inputId,type:t.computedType,value:n.modelValue,placeholder:n.placeholder,disabled:n.disabled,required:n.required,autocomplete:n.autocomplete,class:e.normalizeClass(t.inputClasses),onInput:t.handleInput,onBlur:r[0]||(r[0]=o=>s.$emit("blur",o)),onFocus:r[1]||(r[1]=o=>s.$emit("focus",o))},null,42,ge),e.createCommentVNode(" Password visibility toggle "),n.type==="password"?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 hover:text-gray-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 rounded-md",onClick:t.togglePasswordVisibility},[t.showPassword?(e.openBlock(),e.createElementBlock("svg",Ve,r[2]||(r[2]=[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",ve,r[3]||(r[3]=[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("v-if",!0),e.createCommentVNode(" Icon slot "),s.$slots.icon?(e.openBlock(),e.createElementBlock("div",Ne,[e.renderSlot(s.$slots,"icon")])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Help text or error message "),n.error?(e.openBlock(),e.createElementBlock("p",we,e.toDisplayString(n.error),1)):n.helpText?(e.openBlock(),e.createElementBlock("p",Ce,e.toDisplayString(n.helpText),1)):e.createCommentVNode("v-if",!0)])}const M=y(ce,[["render",he],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiInput.vue"]]),be=e.defineComponent({__name:"UiLink",props:{href:{type:String,required:!1},to:{type:[String,Object],required:!1},variant:{type:String,required:!1,default:"primary"},size:{type:String,required:!1,default:"md"},disabled:{type:Boolean,required:!1,default:!1},external:{type:Boolean,required:!1,default:!1}},emits:["click"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,d=e.computed(()=>t.to?"router-link":t.href?"a":"button"),o=e.computed(()=>{const c={};return t.to?c.to=t.to:t.href?(c.href=t.href,t.external&&(c.target="_blank",c.rel="noopener noreferrer")):c.type="button",t.disabled&&(c.disabled=!0,c["aria-disabled"]=!0),c}),i=e.computed(()=>{const c=["inline-flex items-center font-medium transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"],A={sm:"text-xs",md:"text-sm",lg:"text-base"},f={primary:"text-strands-500 hover:text-strands-600",secondary:"text-gray-600 hover:text-gray-800",ghost:"text-gray-500 hover:text-gray-700 hover:bg-gray-100 px-2 py-1 rounded",underline:"text-strands-500 hover:text-strands-600 underline decoration-strands-500 underline-offset-2"};return[...c,A[t.size],f[t.variant]].filter(Boolean).join(" ")}),m={props:t,emit:a,tag:d,linkProps:o,linkClasses:i,handleClick:c=>{t.disabled||a("click",c)}};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}});function ye(s,r,n,t,a,d){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),e.mergeProps({class:t.linkClasses},t.linkProps,{onClick:t.handleClick}),{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},16,["class"])}const P=y(be,[["render",ye],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLink.vue"]]),xe=e.defineComponent({__name:"UiTabs",props:{modelValue:{type:String,required:!0},tabs:{type:Array,required:!0}},emits:["update:modelValue"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,d=e.ref([]),o=e.ref({width:"0px",left:"0px",opacity:"0"});let i=-1,p=!1;const m=async(u,w)=>{p||(a("update:modelValue",u),await e.nextTick(),c(w))},c=async u=>{if(!d.value[u]||u===i)return;p=!0;const w=d.value[u],h=w.parentElement;if(!h)return;const C=w.getBoundingClientRect(),l=h.getBoundingClientRect(),V=C.left-l.left,x=C.width;if(i===-1){o.value={width:`${x}px`,left:`${V}px`,opacity:"1"},i=u,p=!1;return}const B=d.value[i].getBoundingClientRect(),N=B.left-l.left,S=B.width,F=u>i,T=F?N:V,I=F?V+x-N:N+S-V;o.value={width:`${I}px`,left:`${T}px`,opacity:"1"},setTimeout(()=>{o.value={width:`${x}px`,left:`${V}px`,opacity:"1"},i=u,setTimeout(()=>{p=!1},150)},120)};e.onMounted(async()=>{await e.nextTick();const u=t.tabs.findIndex(w=>w.value===t.modelValue);u!==-1&&c(u)});const A=e.computed(()=>t.tabs.findIndex(u=>u.value===t.modelValue)),{modelValue:f}=e.toRefs(t);e.watch(f,async()=>{await e.nextTick();const u=t.tabs.findIndex(w=>w.value===t.modelValue);u!==-1&&c(u)});const g={props:t,emit:a,tabButtons:d,underlineStyle:o,get currentTabIndex(){return i},set currentTabIndex(u){i=u},get isAnimating(){return p},set isAnimating(u){p=u},handleTabClick:m,animateUnderlineStretch:c,activeTabIndex:A,modelValue:f};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}}),qe={class:"relative"},ke={class:"relative flex border-b border-neutral-200",role:"tablist"},Se=["aria-selected","aria-controls","id","onClick"];function Be(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",qe,[e.createCommentVNode(" Tab List "),e.createElementVNode("div",ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabs,(o,i)=>(e.openBlock(),e.createElementBlock("button",{key:o.value,ref_for:!0,ref:"tabButtons",class:e.normalizeClass(["relative flex-1 py-4 px-6 font-medium text-sm transition-colors duration-150","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white","hover:text-strands-600",t.modelValue===o.value?"text-strands-600":"text-neutral-600"]),"aria-selected":t.modelValue===o.value,"aria-controls":`tabpanel-${o.value}`,id:`tab-${o.value}`,role:"tab",onClick:p=>t.handleTabClick(o.value,i)},e.toDisplayString(o.label),11,Se))),128)),e.createCommentVNode(" Animated stretching underline "),e.createElementVNode("div",{class:"absolute bottom-[-2px] h-[3px] bg-strands-500 rounded-full transition-all duration-150 ease-[cubic-bezier(0.25,0.46,0.45,0.94)]",style:e.normalizeStyle(t.underlineStyle)},null,4)])])}const O=y(xe,[["render",Be],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiTabs.vue"]]),Ue="data:image/png;base64,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",We={},Ee={class:"flex items-center justify-center gap-2 mt-4 -mb-4 pt-4 border-t border-neutral-200"};function Le(s,r){return e.openBlock(),e.createElementBlock("div",Ee,r[0]||(r[0]=[e.createElementVNode("img",{src:Ue,class:"h-12 w-auto"},null,-1)]))}const W=y(We,[["render",Le],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSecuredFooter.vue"]]);function X(s={}){const{getUrl:r}=k.useStrandsConfig(),n=e.ref([]),t=e.ref(!1),a=e.ref(null),d=e.computed(()=>n.value.filter(A=>A.enabled)),o=async()=>{t.value=!0,a.value=null;try{const A=await fetch(r("oauthProviders"),{method:"GET",headers:{"Content-Type":"application/json"}});if(!A.ok){const g=await A.json().catch(()=>({}));throw new Error(g.error?.message||`HTTP ${A.status}: ${A.statusText}`)}const f=await A.json();if(!f.success)throw new Error(f.error?.message||"Failed to fetch OAuth providers");n.value=f.data||[]}catch(A){const f=A instanceof Error?A.message:"Failed to fetch OAuth providers";a.value=f}finally{t.value=!1}},i=async(A,f)=>{const g={...s,...f},u=new URLSearchParams;g.redirectUrl&&u.append("redirect_url",g.redirectUrl),g.scopes&&g.scopes.length>0&&u.append("scopes",g.scopes.join(","));const w=u.toString(),h=r("oauthProvider").replace("{provider_id}",A),C=w?`${h}?${w}`:h;try{const l=await fetch(C,{method:"GET",headers:{"Content-Type":"application/json"}});if(!l.ok){const x=await l.json().catch(()=>({}));throw new Error(x.error?.message||`HTTP ${l.status}: ${l.statusText}`)}const V=await l.json();if(!V.success)throw new Error(V.error?.message||"Failed to get OAuth auth URL");return V.data.authUrl}catch(l){const V=l instanceof Error?l.message:"Failed to get OAuth auth URL";throw new Error(V)}},p=async(A,f)=>{try{const g=await i(A,f);window.location.href=g}catch(g){throw a.value=g instanceof Error?g.message:"Failed to redirect to OAuth provider",g}},m=A=>n.value.find(f=>f.id===A),c=A=>{if(A.iconUrl)return A.iconUrl;switch(A.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=="}};return{providers:e.computed(()=>n.value),enabledProviders:d,loading:e.computed(()=>t.value),error:e.computed(()=>a.value),fetchProviders:o,getProviderAuthUrl:i,redirectToProvider:p,getProviderById:m,getProviderIcon:c}}const Me=e.defineComponent({__name:"StrandsAuth",props:{mode:{type:String,required:!1,default:"signin"},redirectUrl:{type:String,required:!1,default:"/"},config:{type:Object,required:!1}},emits:["success","error","forgot-password","password-reset-sent","mode-changed"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:d}=k.useStrandsConfig(t.config),{enabledProviders:o,loading:i,error:p,fetchProviders:m,redirectToProvider:c,getProviderIcon:A}=X({redirectUrl:t.redirectUrl});e.onMounted(()=>{m().catch(v=>{console.warn("Failed to fetch OAuth providers:",v)})});const f=e.computed(()=>o.value),g={async signIn(v,b){const q=await fetch(d("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:v,password:b})});if(!q.ok){const U=await q.json().catch(()=>({}));throw new Error(U.error?.message||`HTTP ${q.status}: ${q.statusText}`)}const z=await q.json();if(!z.success)throw new Error(z.error?.message||"Sign in failed");return z.data},async signUp(v,b,q,z){const U=await fetch(d("signUp"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:v,password:b,firstName:q,lastName:z})});if(!U.ok){const K=await U.json().catch(()=>({}));throw new Error(K.error?.message||`HTTP ${U.status}: ${U.statusText}`)}const Z=await U.json();if(!Z.success)throw new Error(Z.error?.message||"Sign up failed");return Z.data},async requestPasswordReset(v){throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.")}},u=e.ref(t.mode),w=e.ref(!1),h=e.ref(""),C=e.ref(!1),l=e.reactive({firstName:"",lastName:"",email:"",password:"",confirmPassword:""}),V=e.computed(()=>u.value==="signup"),x=e.computed(()=>u.value==="reset-password"),j=e.computed(()=>l.password===l.confirmPassword),B=e.computed(()=>x.value?l.email.trim()&&!C.value:V.value?l.email.trim():l.email.trim()&&l.password),N={weak:{label:"Weak",color:"border-red-300",bgColor:"bg-red-400",textColor:"text-red-600",width:33},medium:{label:"Medium",color:"border-yellow-300",bgColor:"bg-yellow-400",textColor:"text-yellow-600",width:66},strong:{label:"Strong",color:"border-emerald-300",bgColor:"bg-emerald-400",textColor:"text-emerald-600",width:100}},S=v=>{let b=0;v.length>=8&&(b+=1),v.length>=12&&(b+=1),/[a-z]/.test(v)&&(b+=1),/[A-Z]/.test(v)&&(b+=1),/[0-9]/.test(v)&&(b+=1),/[^A-Za-z0-9]/.test(v)&&(b+=1);const q=b<=2?N.weak:b<=4?N.medium:N.strong;return{score:b,...q}},F=async()=>{w.value=!0,h.value="";try{if(x.value)await g.requestPasswordReset(l.email),C.value=!0,a("password-reset-sent",l.email);else if(V.value){const v=await g.signUp(l.email,l.password,l.firstName,l.lastName);a("success",v.user)}else{const v=await g.signIn(l.email,l.password);a("success",v.user)}}catch(v){const b=v instanceof Error?v.message:"An unexpected error occurred";h.value=b,a("error",b)}finally{w.value=!1}},T=async v=>{try{await c(v,{redirectUrl:t.redirectUrl})}catch(b){const q=b instanceof Error?b.message:`Failed to ${V.value?"sign up":"sign in"} with ${v}`;h.value=q,a("error",q)}};e.watch(()=>t.mode,v=>{u.value=v}),e.watch(u,v=>{h.value="",C.value=!1,l.firstName="",l.lastName="",l.email="",l.password="",l.confirmPassword="",a("mode-changed",v)});const I={props:t,emit:a,getUrl:d,enabledProviders:o,oauthLoading:i,oauthError:p,fetchProviders:m,redirectToProvider:c,getProviderIcon:A,displayProviders:f,authApi:g,currentMode:u,loading:w,error:h,isPasswordResetSubmitted:C,form:l,isSignUp:V,isPasswordReset:x,isPasswordMatch:j,isFormValid:B,PASSWORD_STRENGTH_CONFIGS:N,getPasswordStrength:S,handleAuth:F,handleOAuthAuth:T,get UiCard(){return L},get UiButton(){return E},get UiInput(){return M},get UiAlert(){return D},get UiLink(){return P},get UiTabs(){return O},StrandsSecuredFooter:W};return Object.defineProperty(I,"__isScriptSetup",{enumerable:!1,value:!0}),I}}),Pe={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},ze={class:"text-center mb-8"},De={key:"tabs",class:"mb-8"},Fe={key:"oauth",class:"space-y-3 mb-6"},Ie={class:"w-5 h-5 flex items-center justify-center"},Xe={key:0,class:"w-5 h-5"},je=["src","alt"],Te={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},Ze={class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},Ye={class:"text-xs font-semibold text-neutral-600"},Oe={class:"font-medium"},Ke={key:"divider",class:"divider-with-text"},Qe={class:"divider-text"},He={class:"space-y-4"},Re={key:"password-section"},Ge={class:"flex items-center justify-between mb-2"},Je={key:"back-link",class:"mt-8 text-center"},_e={class:"mt-6 text-center"},$e={class:"text-neutral-400 text-sm"};function et(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",ze,[e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("h1",{key:t.currentMode,class:"text-3xl font-bold text-gradient mb-2"},e.toDisplayString(t.isPasswordReset?"Reset password":t.isSignUp?"Create account":"Welcome back"),1))]),_:1}),e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("p",{key:t.currentMode,class:"text-neutral-600"},e.toDisplayString(t.isPasswordReset?"Enter your email address and we'll send you a link to reset your password":t.isSignUp?"We'll send you a magic link to get started":"Sign in to your account to continue"),1))]),_:1})]),e.createCommentVNode(" Tab Switcher (only show for signin/signup) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[t.isPasswordReset?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",De,[e.createVNode(t.UiTabs,{modelValue:t.currentMode,"onUpdate:modelValue":r[0]||(r[0]=o=>t.currentMode=o),tabs:[{label:"Sign In",value:"signin"},{label:"Sign Up",value:"signup"}]},null,8,["modelValue"])]))]),_:1}),e.createCommentVNode(" OAuth Providers (not shown for password reset) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",Fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.displayProviders,o=>(e.openBlock(),e.createBlock(t.UiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:i=>t.handleOAuthAuth(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Ie,[e.createCommentVNode(" Dynamic provider icons "),o.iconUrl?(e.openBlock(),e.createElementBlock("div",Xe,[e.createElementVNode("img",{src:o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,je)])):o.id==="google"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Built-in SVG icons for common providers "),r[6]||(r[6]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"w-5 h-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"}),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"}),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"}),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"})],-1))],2112)):o.id==="github"?(e.openBlock(),e.createElementBlock("svg",Te,[...r[7]||(r[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(e.Fragment,{key:3},[e.createCommentVNode(" Generic icon for other providers "),e.createElementVNode("div",Ze,[e.createElementVNode("span",Ye,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)])],2112))]),e.createElementVNode("span",Oe," Continue with "+e.toDisplayString(o.displayName||o.name.charAt(0).toUpperCase()+o.name.slice(1)),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Divider (not shown for password reset) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",Ke,[e.createElementVNode("span",Qe,"Or "+e.toDisplayString(t.isSignUp?"create account":"sign in")+" with email",1)])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Auth Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleAuth,["prevent"]),class:"space-y-6"},[e.createElementVNode("div",He,[e.createCommentVNode(" Email "),e.createVNode(t.UiInput,{modelValue:t.form.email,"onUpdate:modelValue":r[1]||(r[1]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email",required:"",autocomplete:"email",error:t.error&&!t.form.email?"Email is required":""},null,8,["modelValue","error"]),e.createCommentVNode(" Password (Sign In Only) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[!t.isPasswordReset&&!t.isSignUp?(e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("div",Ge,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-gray-700"},"Password",-1)),e.createVNode(t.UiLink,{variant:"primary",size:"sm",onClick:r[2]||(r[2]=o=>t.currentMode="reset-password")},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(t.UiInput,{modelValue:t.form.password,"onUpdate:modelValue":r[3]||(r[3]=o=>t.form.password=o),type:"password",placeholder:"Enter your password",required:"",autocomplete:"current-password",error:t.error&&!t.form.password?"Password is required":""},null,8,["modelValue","error"])])):e.createCommentVNode("v-if",!0)]),_:1})]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.isFormValid,loading:t.loading,"loading-text":t.isPasswordReset?"Sending link...":t.isSignUp?"Sending magic link...":"Signing in..."},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.isPasswordReset?t.isPasswordResetSubmitted?"Link sent!":"Send reset link":t.isSignUp?"Send magic link":"Sign in"),1)]),_:1},8,["disabled","loading","loading-text"])],32),e.createCommentVNode(" Success Message for Password Reset "),e.createVNode(e.Transition,{name:"expand",mode:"out-in"},{default:e.withCtx(()=>[t.isPasswordReset&&t.isPasswordResetSubmitted?(e.openBlock(),e.createBlock(t.UiAlert,{key:"reset-success",variant:"success",message:`Check your email - We've sent a password reset link to ${t.form.email}`,class:"mt-6 animate-fade-in"},null,8,["message"])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Back to Sign In (Password Reset Only) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[t.isPasswordReset?(e.openBlock(),e.createElementBlock("div",Je,[e.createVNode(t.UiLink,{onClick:r[4]||(r[4]=o=>t.currentMode="signin"),class:"inline-flex items-center gap-2"},{default:e.withCtx(()=>r[10]||(r[10]=[e.createElementVNode("svg",{class:"w-4 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,__:[10]})])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:0,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[5]||(r[5]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Need help "),e.createElementVNode("div",_e,[e.createElementVNode("p",$e,[r[12]||(r[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:"mailto:support@strands.gg"},{default:e.withCtx(()=>r[11]||(r[11]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[11]})])]),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter)]),_:1})])}const tt=y(Me,[["render",et],["__scopeId","data-v-4583e1b6"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsAuth.vue"]]),rt=e.defineComponent({__name:"StrandsSignIn",props:{redirectUrl:{type:String,required:!1,default:"/"},oauthScopes:{type:Array,required:!1,default:()=>[]},config:{type:Object,required:!1}},emits:["success","error","forgot-password","switch-to-signup"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:d}=k.useStrandsConfig(t.config),{enabledProviders:o,loading:i,error:p,fetchProviders:m,redirectToProvider:c}=X({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{m().catch(C=>{console.warn("Failed to fetch OAuth providers:",C)})});const A=e.ref(!1),f=e.ref(""),g=e.reactive({email:"",password:""}),h={props:t,emit:a,getUrl:d,enabledProviders:o,oauthLoading:i,oauthError:p,fetchProviders:m,redirectToProvider:c,loading:A,error:f,form:g,handleSignIn:async()=>{A.value=!0,f.value="";try{console.log("Sign in attempt:",g),a("success",{email:g.email})}catch{f.value="Invalid email or password",a("error",f.value)}finally{A.value=!1}},handleOAuthSignIn:async C=>{try{await c(C,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(l){const V=l instanceof Error?l.message:`Failed to sign in with ${C}`;f.value=V,a("error",V)}},get UiCard(){return L},get UiButton(){return E},get UiInput(){return M},get UiAlert(){return D},get UiLink(){return P},StrandsSecuredFooter:W};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),ot={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},nt={key:0,class:"space-y-3 mb-6"},st={class:"w-5 h-5 flex items-center justify-center"},at={key:0,class:"w-5 h-5"},lt=["src","alt"],it={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},At={key:3,class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},dt={class:"text-xs font-semibold text-neutral-600"},ct={class:"font-medium"},ut={key:1,class:"divider-with-text"},mt={class:"space-y-4"},ft={class:"flex items-center justify-between mb-2"},pt={class:"mt-8 text-center"},gt={class:"text-sm text-neutral-600"},Vt={class:"mt-6 text-center"},vt={class:"text-neutral-400 text-sm"};function Nt(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",ot,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),r[15]||(r[15]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Welcome back"),e.createElementVNode("p",{class:"text-neutral-600"},"Sign in to your account to continue")],-1)),e.createCommentVNode(" OAuth Providers "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.UiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:i=>t.handleOAuthSignIn(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",st,[e.createCommentVNode(" Dynamic provider icons "),o.iconUrl?(e.openBlock(),e.createElementBlock("div",at,[e.createElementVNode("img",{src:o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,lt)])):o.id==="google"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Built-in SVG icons for common providers "),r[5]||(r[5]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"w-5 h-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"}),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"}),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"}),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"})],-1))],2112)):o.id==="github"?(e.openBlock(),e.createElementBlock("svg",it,[...r[6]||(r[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",At,[e.createElementVNode("span",dt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",ct,"Continue with "+e.toDisplayString(o.displayName||o.name),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Divider "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",ut,r[7]||(r[7]=[e.createElementVNode("span",{class:"divider-text"},"Or sign in with email",-1)]))):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Email/Password Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleSignIn,["prevent"]),class:"space-y-6"},[e.createElementVNode("div",mt,[e.createVNode(t.UiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:t.error?"Invalid email or password":void 0},null,8,["modelValue","error"]),e.createElementVNode("div",null,[e.createElementVNode("div",ft,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-neutral-700"},"Password",-1)),e.createVNode(t.UiLink,{onClick:r[1]||(r[1]=o=>s.$emit("forgot-password")),class:"text-sm"},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(t.UiInput,{id:"password",modelValue:t.form.password,"onUpdate:modelValue":r[2]||(r[2]=o=>t.form.password=o),type:"password",placeholder:"Enter your password",autocomplete:"current-password",required:"",error:t.error?"Invalid email or password":void 0},null,8,["modelValue","error"])])]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.form.email||!t.form.password,loading:t.loading,"loading-text":"Signing in..."},{default:e.withCtx(()=>r[10]||(r[10]=[e.createTextVNode(" Sign in ",-1)])),_:1,__:[10]},8,["disabled","loading"])],32),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:2,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[3]||(r[3]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign up link "),e.createElementVNode("div",pt,[e.createElementVNode("p",gt,[r[12]||(r[12]=e.createTextVNode(" Don't have an account? ",-1)),e.createVNode(t.UiLink,{onClick:r[4]||(r[4]=o=>s.$emit("switch-to-signup"))},{default:e.withCtx(()=>r[11]||(r[11]=[e.createTextVNode(" Sign up ",-1)])),_:1,__:[11]})])]),e.createCommentVNode(" Need help "),e.createElementVNode("div",Vt,[e.createElementVNode("p",vt,[r[14]||(r[14]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:"mailto:support@strands.gg"},{default:e.withCtx(()=>r[13]||(r[13]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[13]})])]),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter)]),_:1,__:[15]})])}const wt=y(rt,[["render",Nt],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignIn.vue"]]),Ct=e.defineComponent({__name:"StrandsSignUp",props:{redirectUrl:{type:String,required:!1,default:"/"},oauthScopes:{type:Array,required:!1,default:()=>[]},config:{type:Object,required:!1}},emits:["success","error","switch-to-signin"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:d}=k.useStrandsConfig(t.config),{enabledProviders:o,loading:i,error:p,fetchProviders:m,redirectToProvider:c}=X({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{m().catch(l=>{console.warn("Failed to fetch OAuth providers:",l)})});const A=e.ref(!1),f=e.ref(""),g=e.reactive({email:""}),u=e.computed(()=>g.email.trim()&&g.email.includes("@")),C={props:t,emit:a,getUrl:d,enabledProviders:o,oauthLoading:i,oauthError:p,fetchProviders:m,redirectToProvider:c,loading:A,error:f,form:g,isFormValid:u,handleSignUp:async()=>{A.value=!0,f.value="";try{console.log("Magic link sign up attempt:",{email:g.email}),a("success",{email:g.email})}catch{f.value="Failed to send magic link",a("error",f.value)}finally{A.value=!1}},handleOAuthSignUp:async l=>{try{await c(l,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(V){const x=V instanceof Error?V.message:`Failed to sign up with ${l}`;f.value=x,a("error",x)}},get UiCard(){return L},get UiButton(){return E},get UiInput(){return M},get UiLink(){return P},StrandsSecuredFooter:W};return Object.defineProperty(C,"__isScriptSetup",{enumerable:!1,value:!0}),C}}),ht={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},bt={key:0,class:"space-y-3 mb-6"},yt={class:"w-5 h-5 flex items-center justify-center"},xt={key:0,class:"w-5 h-5"},qt=["src","alt"],kt={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},St={key:3,class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},Bt={class:"text-xs font-semibold text-neutral-600"},Ut={class:"font-medium"},Wt={key:1,class:"divider-with-text"},Et={key:2,class:"mt-6 animate-fade-in"},Lt={class:"alert-error"},Mt={class:"flex items-start gap-3"},Pt={class:"font-medium"},zt={class:"mt-8 text-center"},Dt={class:"text-sm text-neutral-600"},Ft={class:"mt-6 text-center"},It={class:"text-neutral-400 text-sm"};function Xt(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",ht,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),r[10]||(r[10]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Create account"),e.createElementVNode("p",{class:"text-neutral-600"},"We'll send you a magic link to get started")],-1)),e.createCommentVNode(" OAuth Providers "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",bt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.UiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:i=>t.handleOAuthSignUp(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",yt,[e.createCommentVNode(" Dynamic provider icons "),o.iconUrl?(e.openBlock(),e.createElementBlock("div",xt,[e.createElementVNode("img",{src:o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,qt)])):o.id==="google"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Built-in SVG icons for common providers "),r[2]||(r[2]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"w-5 h-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"}),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"}),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"}),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"})],-1))],2112)):o.id==="github"?(e.openBlock(),e.createElementBlock("svg",kt,[...r[3]||(r[3]=[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",St,[e.createElementVNode("span",Bt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Ut,"Continue with "+e.toDisplayString(o.displayName||o.name),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Divider "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",Wt,r[4]||(r[4]=[e.createElementVNode("span",{class:"divider-text"},"Or create account with email",-1)]))):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign Up Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleSignUp,["prevent"]),class:"space-y-6"},[e.createCommentVNode(" Email "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:t.error},null,8,["modelValue","error"])]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading,loading:t.loading,"loading-text":"Sending magic link..."},{default:e.withCtx(()=>r[5]||(r[5]=[e.createTextVNode(" Send magic link ",-1)])),_:1,__:[5]},8,["disabled","loading"])],32),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createElementBlock("div",Et,[e.createElementVNode("div",Lt,[e.createElementVNode("div",Mt,[r[6]||(r[6]=e.createElementVNode("svg",{class:"w-4 h-4 mt-0.5 flex-shrink-0",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",Pt,e.toDisplayString(t.error),1)])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign in link "),e.createElementVNode("div",zt,[e.createElementVNode("p",Dt,[r[7]||(r[7]=e.createTextVNode(" Already have an account? ",-1)),e.createElementVNode("button",{type:"button",class:"font-semibold text-strands-500 hover:text-strands-600 transition-colors duration-200",onClick:r[1]||(r[1]=o=>s.$emit("switch-to-signin"))}," Sign in ")])]),e.createCommentVNode(" Need help "),e.createElementVNode("div",Ft,[e.createElementVNode("p",It,[r[9]||(r[9]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:"mailto:support@strands.gg"},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[8]})])]),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter)]),_:1,__:[10]})])}const jt=y(Ct,[["render",Xt],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignUp.vue"]]),Tt=e.defineComponent({__name:"StrandsCompleteSignUp",props:{token:{type:String,required:!1},redirectUrl:{type:String,required:!1,default:"/"},config:{type:Object,required:!1}},emits:["success","error","invalid-token","request-new-link","start-registration"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:d}=k.useStrandsConfig(t.config),o=e.ref(!1),i=e.ref(!1),p=e.ref(!1),m=e.ref(""),c=e.ref(""),A=e.reactive({username:"",firstName:"",lastName:"",password:""}),f=e.reactive({username:"",firstName:"",lastName:"",password:""}),g=e.computed(()=>{const l=A.username.trim()&&A.password.trim(),V=A.password.length>=8,x=!!t.token;return l&&V&&x});e.watch(()=>A.password,l=>{l&&l.length<8?f.password="Password must be at least 8 characters long":f.password=""}),e.watch(()=>A.username,l=>{l&&l.length<2?f.username="Username must be at least 2 characters long":f.username=""});const u=e.computed(()=>({baseUrl:t.config?.baseUrl||"http://localhost:8000",referrerUrl:t.redirectUrl||"http://localhost:3001"}));e.onMounted(()=>{if(t.token)try{const l=t.token.split(".");if(l.length===3){const V=JSON.parse(atob(l[1]));V.email&&(c.value=V.email)}}catch(l){console.warn("Could not decode token for email display:",l)}});const w=()=>{u.value.referrerUrl&&(console.log("Redirecting to referrer:",u.value.referrerUrl),window.location.href=u.value.referrerUrl)},C={props:t,emit:a,getUrl:d,registrationComplete:o,invalidToken:i,loading:p,error:m,email:c,form:A,fieldErrors:f,isFormValid:g,authConfig:u,redirectToReferrer:w,handleCompleteSignUp:async()=>{if(!t.token){m.value="Registration token is required";return}if(m.value="",Object.keys(f).forEach(l=>{f[l]=""}),!g.value){m.value="Please fill in all required fields correctly";return}p.value=!0;try{const l=await fetch(`${u.value.baseUrl}/api/v1/auth/complete-registration`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t.token,username:A.username,password:A.password,first_name:A.firstName||null,last_name:A.lastName||null})});if(!l.ok){const x=await l.text();throw new Error(`Failed to complete registration: ${x}`)}const V=await l.json();console.log("Registration success:",V),o.value=!0,a("success",V),setTimeout(()=>{w()},2e3)}catch(l){l instanceof Error?l.message.includes("CONFLICT")||l.message.includes("409")?m.value="This account already exists. Please try signing in instead.":l.message.includes("BAD_REQUEST")||l.message.includes("400")?(m.value="Invalid or expired registration link. Please request a new one.",i.value=!0,a("invalid-token")):m.value=l.message:m.value="Failed to complete registration. Please try again.",a("error",m.value)}finally{p.value=!1}},get UiCard(){return L},get UiButton(){return E},get UiInput(){return M},get UiAlert(){return D},get UiLink(){return P},StrandsSecuredFooter:W};return Object.defineProperty(C,"__isScriptSetup",{enumerable:!1,value:!0}),C}}),Zt={key:0,class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Yt={class:"text-center"},Ot={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Kt={class:"text-center"},Qt={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Ht={class:"text-center mb-8"},Rt={key:0,class:"mt-2"},Gt={class:"text-sm text-neutral-500"},Jt={class:"font-medium text-neutral-700"},_t={class:"mt-6 text-center"},$t={class:"text-neutral-400 text-sm"},er={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},tr={class:"text-center"};function rr(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createCommentVNode(" Success State "),t.registrationComplete?(e.openBlock(),e.createElementBlock("div",Zt,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Yt,[r[8]||(r[8]=e.createElementVNode("div",{class:"text-green-500 text-6xl mb-4"},"🎉",-1)),r[9]||(r[9]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Welcome to Strands!",-1)),r[10]||(r[10]=e.createElementVNode("p",{class:"text-neutral-600 mb-4"}," Your account has been created successfully. ",-1)),r[11]||(r[11]=e.createElementVNode("p",{class:"text-sm text-neutral-500 mb-6"}," You are now signed in and can access your dashboard. ",-1)),e.createVNode(t.UiButton,{variant:"primary","full-width":"",onClick:t.redirectToReferrer},{default:e.withCtx(()=>r[7]||(r[7]=[e.createTextVNode(" Go to Dashboard ",-1)])),_:1,__:[7]})]),e.createVNode(t.StrandsSecuredFooter)]),_:1})])):t.invalidToken?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Invalid Token State "),e.createElementVNode("div",Ot,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Kt,[r[13]||(r[13]=e.createElementVNode("div",{class:"text-red-500 text-6xl mb-4"},"❌",-1)),r[14]||(r[14]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Invalid Link",-1)),r[15]||(r[15]=e.createElementVNode("p",{class:"text-neutral-600 mb-4"}," This registration link is invalid or has expired. ",-1)),r[16]||(r[16]=e.createElementVNode("p",{class:"text-sm text-neutral-500 mb-6"}," Please request a new magic link to complete your registration. ",-1)),e.createVNode(t.UiButton,{variant:"primary","full-width":"",onClick:r[0]||(r[0]=o=>s.$emit("request-new-link"))},{default:e.withCtx(()=>r[12]||(r[12]=[e.createTextVNode(" Request New Link ",-1)])),_:1,__:[12]})]),e.createVNode(t.StrandsSecuredFooter)]),_:1})])],2112)):n.token?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createCommentVNode(" Registration Form "),e.createElementVNode("div",Qt,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",Ht,[r[18]||(r[18]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Complete Your Registration",-1)),r[19]||(r[19]=e.createElementVNode("p",{class:"text-neutral-600"},"Set up your account details to finish registration",-1)),t.email?(e.openBlock(),e.createElementBlock("div",Rt,[e.createElementVNode("p",Gt,[r[17]||(r[17]=e.createTextVNode("Creating account for: ",-1)),e.createElementVNode("span",Jt,e.toDisplayString(t.email),1)])])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Registration Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleCompleteSignUp,["prevent"]),class:"space-y-6"},[e.createCommentVNode(" Username "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"username",modelValue:t.form.username,"onUpdate:modelValue":r[1]||(r[1]=o=>t.form.username=o),type:"text",label:"Username",placeholder:"Choose a username",autocomplete:"username",required:"",error:t.fieldErrors.username},null,8,["modelValue","error"])]),e.createCommentVNode(" First Name "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"firstName",modelValue:t.form.firstName,"onUpdate:modelValue":r[2]||(r[2]=o=>t.form.firstName=o),type:"text",label:"First Name (Optional)",placeholder:"Enter your first name",autocomplete:"given-name",error:t.fieldErrors.firstName},null,8,["modelValue","error"])]),e.createCommentVNode(" Last Name "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"lastName",modelValue:t.form.lastName,"onUpdate:modelValue":r[3]||(r[3]=o=>t.form.lastName=o),type:"text",label:"Last Name (Optional)",placeholder:"Enter your last name",autocomplete:"family-name",error:t.fieldErrors.lastName},null,8,["modelValue","error"])]),e.createCommentVNode(" Password "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"password",modelValue:t.form.password,"onUpdate:modelValue":r[4]||(r[4]=o=>t.form.password=o),type:"password",label:"Password",placeholder:"Create a strong password",autocomplete:"new-password",required:"",minlength:"8",error:t.fieldErrors.password},null,8,["modelValue","error"]),r[20]||(r[20]=e.createElementVNode("div",{class:"mt-2 text-xs text-neutral-500"}," Password must be at least 8 characters long ",-1))]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.isFormValid,loading:t.loading,"loading-text":"Creating account..."},{default:e.withCtx(()=>r[21]||(r[21]=[e.createTextVNode(" Complete Registration ",-1)])),_:1,__:[21]},8,["disabled","loading"])],32),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:0,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[5]||(r[5]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Need help "),e.createElementVNode("div",_t,[e.createElementVNode("p",$t,[r[23]||(r[23]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:"mailto:support@strands.gg"},{default:e.withCtx(()=>r[22]||(r[22]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[22]})])]),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter)]),_:1})])],2112)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createCommentVNode(" No Token State "),e.createElementVNode("div",er,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",tr,[r[25]||(r[25]=e.createElementVNode("div",{class:"text-yellow-500 text-6xl mb-4"},"⚠️",-1)),r[26]||(r[26]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Missing Token",-1)),r[27]||(r[27]=e.createElementVNode("p",{class:"text-neutral-600 mb-4"}," No registration token was provided. ",-1)),r[28]||(r[28]=e.createElementVNode("p",{class:"text-sm text-neutral-500 mb-6"}," This page requires a valid registration token from the magic link in your email. ",-1)),e.createVNode(t.UiButton,{variant:"primary","full-width":"",onClick:r[6]||(r[6]=o=>s.$emit("start-registration"))},{default:e.withCtx(()=>r[24]||(r[24]=[e.createTextVNode(" Start Registration ",-1)])),_:1,__:[24]})]),e.createVNode(t.StrandsSecuredFooter)]),_:1})])],2112))],2112)}const or=y(Tt,[["render",rr],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsCompleteSignUp.vue"]]),nr=e.defineComponent({__name:"StrandsUserProfile",props:{user:{type:Object,required:!1}},emits:["profile-updated","error","manage-sessions","mfa-toggle"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,d=e.ref(!1),o=e.ref(!1),i=e.ref(""),p=e.ref(""),m=e.ref([{id:"1",device:"Chrome on Mac",location:"San Francisco, CA",lastActive:"2 minutes ago",current:!0},{id:"2",device:"Safari on iPhone",location:"San Francisco, CA",lastActive:"1 hour ago",current:!1}]),c=e.reactive({firstName:"",lastName:"",email:"",phone:""}),A=e.reactive({current:"",new:"",confirm:""}),f=e.reactive({firstName:"",lastName:"",email:"",phone:""}),g=e.computed(()=>t.user?c.firstName!==t.user.firstName||c.lastName!==t.user.lastName||c.email!==t.user.email||c.phone!==(t.user.phone||""):!1),u=e.computed(()=>A.current&&A.new&&A.confirm&&A.new===A.confirm&&A.new.length>=8),w=(N,S)=>!N&&!S?"U":`${N?.[0]||""}${S?.[0]||""}`.toUpperCase();e.watch(()=>t.user,N=>{N&&(c.firstName=N.firstName,c.lastName=N.lastName,c.email=N.email,c.phone=N.phone||"")},{immediate:!0});const h=()=>{i.value="",p.value="",Object.keys(f).forEach(N=>{f[N]=""})},B={props:t,emit:a,loading:d,showPasswordChange:o,successMessage:i,errorMessage:p,activeSessions:m,form:c,passwordForm:A,errors:f,hasChanges:g,isPasswordFormValid:u,getInitials:w,clearMessages:h,handleUpdateProfile:async()=>{h(),d.value=!0;try{await new Promise(S=>setTimeout(S,1e3));const N={...t.user,...c};i.value="Profile updated successfully",a("profile-updated",N)}catch{p.value="Failed to update profile",a("error",p.value)}finally{d.value=!1}},handlePasswordChange:async()=>{if(u.value){h(),d.value=!0;try{await new Promise(N=>setTimeout(N,1e3)),i.value="Password updated successfully",o.value=!1,A.current="",A.new="",A.confirm=""}catch{p.value="Failed to update password"}finally{d.value=!1}}},handleImageUpload:()=>{a("error","Image upload functionality not yet implemented")},handleMFAToggle:()=>{a("mfa-toggle",!t.user?.mfaEnabled)},handleCancel:()=>{t.user&&(c.firstName=t.user.firstName,c.lastName=t.user.lastName,c.email=t.user.email,c.phone=t.user.phone||""),h(),o.value=!1,A.current="",A.new="",A.confirm=""},StrandsSecuredFooter:W};return Object.defineProperty(B,"__isScriptSetup",{enumerable:!1,value:!0}),B}}),sr={class:"w-full max-w-2xl mx-auto animate-slide-up"},ar={class:"card-modern"},lr={class:"flex flex-col items-center mb-8"},ir={class:"relative group"},Ar={class:"w-24 h-24 rounded-full bg-gradient-to-r from-strands-400 to-strands-600 flex items-center justify-center text-white text-2xl font-bold shadow-large"},dr={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},cr={class:"space-y-4"},ur=["disabled"],mr={key:0,class:"mt-1 text-sm text-red-600"},fr=["disabled"],pr={key:0,class:"mt-1 text-sm text-red-600"},gr=["disabled"],Vr={key:0,class:"mt-1 text-sm text-red-600"},vr={key:1,class:"mt-1 text-sm text-yellow-600"},Nr=["disabled"],wr={key:0,class:"mt-1 text-sm text-red-600"},Cr={class:"space-y-4"},hr={class:"space-y-4 p-4 bg-neutral-50 rounded-xl"},br={class:"flex items-center justify-between"},yr={key:0,class:"space-y-3"},xr=["disabled"],qr={class:"p-4 bg-neutral-50 rounded-xl"},kr={class:"flex items-center justify-between"},Sr={class:"text-sm text-neutral-600"},Br={class:"p-4 bg-neutral-50 rounded-xl"},Ur={class:"flex items-center justify-between"},Wr={class:"text-sm text-neutral-600"},Er={class:"flex flex-col sm:flex-row gap-3 pt-6 border-t border-neutral-200"},Lr=["disabled"],Mr={key:0,class:"flex items-center justify-center gap-2"},Pr={key:1},zr=["disabled"],Dr={key:0,class:"mt-6 animate-fade-in"},Fr={class:"alert-success"},Ir={class:"flex items-start gap-3"},Xr={class:"font-medium"},jr={key:1,class:"mt-6 animate-fade-in"},Tr={class:"alert-error"},Zr={class:"flex items-start gap-3"},Yr={class:"font-medium"},Or={class:"mt-6 text-center"},Kr={class:"text-neutral-400 text-sm"};function Qr(s,r,n,t,a,d){const o=e.resolveComponent("UiLink");return e.openBlock(),e.createElementBlock("div",sr,[e.createElementVNode("div",ar,[e.createCommentVNode(" Header "),r[24]||(r[24]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Profile Settings"),e.createElementVNode("p",{class:"text-neutral-600"},"Manage your account information and preferences")],-1)),e.createCommentVNode(" Profile Image Section "),e.createElementVNode("div",lr,[e.createElementVNode("div",ir,[e.createElementVNode("div",Ar,e.toDisplayString(t.getInitials(n.user?.firstName,n.user?.lastName)),1),e.createElementVNode("button",{class:"absolute inset-0 rounded-full bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200",onClick:t.handleImageUpload},r[9]||(r[9]=[e.createElementVNode("svg",{class:"w-6 h-6 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[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"}),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 13a3 3 0 11-6 0 3 3 0 016 0z"})],-1)]))]),e.createElementVNode("button",{class:"mt-3 text-sm text-strands-600 hover:text-strands-700 font-medium transition-colors duration-200",onClick:t.handleImageUpload}," Change photo ")]),e.createCommentVNode(" Profile Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleUpdateProfile,["prevent"]),class:"space-y-6"},[e.createElementVNode("div",dr,[e.createCommentVNode(" Personal Information "),e.createElementVNode("div",cr,[r[14]||(r[14]=e.createElementVNode("h3",{class:"text-lg font-semibold text-neutral-900 mb-4"},"Personal Information",-1)),e.createElementVNode("div",null,[r[10]||(r[10]=e.createElementVNode("label",{for:"firstName",class:"label-modern"},"First name",-1)),e.withDirectives(e.createElementVNode("input",{id:"firstName","onUpdate:modelValue":r[0]||(r[0]=i=>t.form.firstName=i),type:"text",required:"",autocomplete:"given-name",class:e.normalizeClass(["input-modern",t.errors.firstName&&"input-error"]),placeholder:"Enter your first name",disabled:t.loading},null,10,ur),[[e.vModelText,t.form.firstName]]),t.errors.firstName?(e.openBlock(),e.createElementBlock("p",mr,e.toDisplayString(t.errors.firstName),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",null,[r[11]||(r[11]=e.createElementVNode("label",{for:"lastName",class:"label-modern"},"Last name",-1)),e.withDirectives(e.createElementVNode("input",{id:"lastName","onUpdate:modelValue":r[1]||(r[1]=i=>t.form.lastName=i),type:"text",required:"",autocomplete:"family-name",class:e.normalizeClass(["input-modern",t.errors.lastName&&"input-error"]),placeholder:"Enter your last name",disabled:t.loading},null,10,fr),[[e.vModelText,t.form.lastName]]),t.errors.lastName?(e.openBlock(),e.createElementBlock("p",pr,e.toDisplayString(t.errors.lastName),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",null,[r[12]||(r[12]=e.createElementVNode("label",{for:"email",class:"label-modern"},"Email address",-1)),e.withDirectives(e.createElementVNode("input",{id:"email","onUpdate:modelValue":r[2]||(r[2]=i=>t.form.email=i),type:"email",required:"",autocomplete:"email",class:e.normalizeClass(["input-modern",t.errors.email&&"input-error"]),placeholder:"Enter your email address",disabled:t.loading},null,10,gr),[[e.vModelText,t.form.email]]),t.errors.email?(e.openBlock(),e.createElementBlock("p",Vr,e.toDisplayString(t.errors.email),1)):e.createCommentVNode("v-if",!0),t.form.email!==n.user?.email?(e.openBlock(),e.createElementBlock("p",vr," Changing your email will require verification ")):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",null,[r[13]||(r[13]=e.createElementVNode("label",{for:"phone",class:"label-modern"},"Phone number",-1)),e.withDirectives(e.createElementVNode("input",{id:"phone","onUpdate:modelValue":r[3]||(r[3]=i=>t.form.phone=i),type:"tel",autocomplete:"tel",class:e.normalizeClass(["input-modern",t.errors.phone&&"input-error"]),placeholder:"Enter your phone number",disabled:t.loading},null,10,Nr),[[e.vModelText,t.form.phone]]),t.errors.phone?(e.openBlock(),e.createElementBlock("p",wr,e.toDisplayString(t.errors.phone),1)):e.createCommentVNode("v-if",!0)])]),e.createCommentVNode(" Security Settings "),e.createElementVNode("div",Cr,[r[18]||(r[18]=e.createElementVNode("h3",{class:"text-lg font-semibold text-neutral-900 mb-4"},"Security Settings",-1)),e.createCommentVNode(" Password Change "),e.createElementVNode("div",hr,[e.createElementVNode("div",br,[r[15]||(r[15]=e.createElementVNode("div",null,[e.createElementVNode("h4",{class:"font-medium text-neutral-900"},"Password"),e.createElementVNode("p",{class:"text-sm text-neutral-600"},"Last updated 30 days ago")],-1)),e.createElementVNode("button",{type:"button",class:"btn-secondary !w-auto px-4 py-2 text-sm",onClick:r[4]||(r[4]=i=>t.showPasswordChange=!t.showPasswordChange)},e.toDisplayString(t.showPasswordChange?"Cancel":"Change"),1)]),t.showPasswordChange?(e.openBlock(),e.createElementBlock("div",yr,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[5]||(r[5]=i=>t.passwordForm.current=i),type:"password",placeholder:"Current password",class:"input-modern",autocomplete:"current-password"},null,512),[[e.vModelText,t.passwordForm.current]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[6]||(r[6]=i=>t.passwordForm.new=i),type:"password",placeholder:"New password",class:"input-modern",autocomplete:"new-password"},null,512),[[e.vModelText,t.passwordForm.new]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[7]||(r[7]=i=>t.passwordForm.confirm=i),type:"password",placeholder:"Confirm new password",class:"input-modern",autocomplete:"new-password"},null,512),[[e.vModelText,t.passwordForm.confirm]]),e.createElementVNode("button",{type:"button",class:"btn-primary !w-auto px-4 py-2 text-sm",onClick:t.handlePasswordChange,disabled:!t.isPasswordFormValid}," Update Password ",8,xr)])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Two-Factor Authentication "),e.createElementVNode("div",qr,[e.createElementVNode("div",kr,[e.createElementVNode("div",null,[r[16]||(r[16]=e.createElementVNode("h4",{class:"font-medium text-neutral-900"},"Two-Factor Authentication",-1)),e.createElementVNode("p",Sr,e.toDisplayString(n.user?.mfaEnabled?"Enabled":"Add extra security to your account"),1)]),e.createElementVNode("button",{type:"button",class:e.normalizeClass([n.user?.mfaEnabled?"btn-secondary":"btn-primary","!w-auto px-4 py-2 text-sm"]),onClick:t.handleMFAToggle},e.toDisplayString(n.user?.mfaEnabled?"Disable":"Enable"),3)])]),e.createCommentVNode(" Active Sessions "),e.createElementVNode("div",Br,[e.createElementVNode("div",Ur,[e.createElementVNode("div",null,[r[17]||(r[17]=e.createElementVNode("h4",{class:"font-medium text-neutral-900"},"Active Sessions",-1)),e.createElementVNode("p",Wr,e.toDisplayString(t.activeSessions.length)+" active device(s)",1)]),e.createElementVNode("button",{type:"button",class:"btn-secondary !w-auto px-4 py-2 text-sm",onClick:r[8]||(r[8]=i=>s.$emit("manage-sessions"))}," Manage ")])])])]),e.createCommentVNode(" Action Buttons "),e.createElementVNode("div",Er,[e.createElementVNode("button",{type:"submit",disabled:t.loading||!t.hasChanges,class:"btn-primary"},[t.loading?(e.openBlock(),e.createElementBlock("span",Mr,r[19]||(r[19]=[e.createElementVNode("svg",{class:"animate-spin w-4 h-4",fill:"none",viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.createElementVNode("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"})],-1),e.createTextVNode(" Saving changes... ",-1)]))):(e.openBlock(),e.createElementBlock("span",Pr,"Save changes"))],8,Lr),e.createElementVNode("button",{type:"button",class:"btn-secondary",onClick:t.handleCancel,disabled:t.loading}," Cancel ",8,zr)])],32),e.createCommentVNode(" Success/Error Messages "),t.successMessage?(e.openBlock(),e.createElementBlock("div",Dr,[e.createElementVNode("div",Fr,[e.createElementVNode("div",Ir,[r[20]||(r[20]=e.createElementVNode("svg",{class:"w-4 h-4 mt-0.5 flex-shrink-0",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",Xr,e.toDisplayString(t.successMessage),1)])])])):e.createCommentVNode("v-if",!0),t.errorMessage?(e.openBlock(),e.createElementBlock("div",jr,[e.createElementVNode("div",Tr,[e.createElementVNode("div",Zr,[r[21]||(r[21]=e.createElementVNode("svg",{class:"w-4 h-4 mt-0.5 flex-shrink-0",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",Yr,e.toDisplayString(t.errorMessage),1)])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Need help "),e.createElementVNode("div",Or,[e.createElementVNode("p",Kr,[r[23]||(r[23]=e.createTextVNode(" Need help? ",-1)),e.createVNode(o,{variant:"primary",href:"mailto:support@strands.gg"},{default:e.withCtx(()=>r[22]||(r[22]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[22]})])]),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter)])])}const Hr=y(nr,[["render",Qr],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsUserProfile.vue"]]),Rr=e.defineComponent({__name:"StrandsPasswordReset",emits:["success","error","back-to-signin"],setup(s,{expose:r,emit:n}){r();const t=n,a=e.ref(!1),d=e.ref(""),o=e.ref(!1),i=e.reactive({email:""}),m={emit:t,loading:a,error:d,isSubmitted:o,form:i,handlePasswordReset:async()=>{a.value=!0,d.value="";try{console.log("Password reset request:",{email:i.email}),await new Promise(c=>setTimeout(c,1e3)),o.value=!0,t("success",i.email)}catch{d.value="Failed to send password reset email. Please try again.",t("error",d.value)}finally{a.value=!1}},get UiCard(){return L},get UiButton(){return E},get UiInput(){return M},get UiAlert(){return D},get UiLink(){return P},StrandsSecuredFooter:W};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),Gr={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},Jr={class:"mt-8 text-center"},_r={class:"mt-6 text-center"},$r={class:"text-neutral-400 text-sm"};function eo(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",Gr,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),r[6]||(r[6]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Reset password"),e.createElementVNode("p",{class:"text-neutral-600"},"Enter your email address and we'll send you a link to reset your password")],-1)),e.createCommentVNode(" Reset Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handlePasswordReset,["prevent"]),class:"space-y-6"},[e.createVNode(t.UiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",disabled:t.loading||t.isSubmitted,error:t.error?"Email address not found":void 0},null,8,["modelValue","disabled","error"]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.form.email.trim()||t.isSubmitted,loading:t.loading,"loading-text":"Sending link..."},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.isSubmitted?"Link sent!":"Send reset link"),1)]),_:1},8,["disabled","loading"])],32),e.createCommentVNode(" Success Message "),t.isSubmitted?(e.openBlock(),e.createBlock(t.UiAlert,{key:0,variant:"success",message:`Check your email - We've sent a password reset link to ${t.form.email}`,class:"mt-6 animate-fade-in"},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Error Message "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:1,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[1]||(r[1]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Back to Sign In "),e.createElementVNode("div",Jr,[e.createVNode(t.UiLink,{onClick:r[2]||(r[2]=o=>s.$emit("back-to-signin")),class:"inline-flex items-center gap-2"},{default:e.withCtx(()=>r[3]||(r[3]=[e.createElementVNode("svg",{class:"w-4 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.createCommentVNode(" Need help "),e.createElementVNode("div",_r,[e.createElementVNode("p",$r,[r[5]||(r[5]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:"mailto:support@strands.gg"},{default:e.withCtx(()=>r[4]||(r[4]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[4]})])]),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter)]),_:1,__:[6]})])}const to=y(Rr,[["render",eo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsPasswordReset.vue"]]),ro=e.defineComponent({__name:"StrandsMFASetup",emits:["success","error","back"],setup(s,{expose:r}){r();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),oo={class:"max-w-md mx-auto bg-white rounded-lg shadow-lg p-6"},no={class:"space-y-6"},so={class:"flex gap-3 pt-4"};function ao(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("div",oo,[r[5]||(r[5]=e.createElementVNode("div",{class:"text-center mb-6"},[e.createElementVNode("h2",{class:"text-2xl font-bold text-gray-900"},"Two-Factor Authentication"),e.createElementVNode("p",{class:"text-gray-600 mt-2"},"Secure your account with 2FA")],-1)),e.createElementVNode("div",no,[e.createCommentVNode(" QR Code Section "),r[2]||(r[2]=e.createStaticVNode('<div class="text-center"><div class="w-48 h-48 bg-gray-100 rounded-lg mx-auto mb-4 flex items-center justify-center"><div class="text-gray-400"><svg class="w-12 h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M12 12h.01M12 12v4.01"></path></svg></div></div><p class="text-sm text-gray-600">Scan this QR code with your authenticator app</p></div>',1)),e.createCommentVNode(" Setup Key "),r[3]||(r[3]=e.createElementVNode("div",null,[e.createElementVNode("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Setup Key (manual entry)"),e.createElementVNode("div",{class:"p-3 bg-gray-50 rounded border text-sm font-mono break-all"}," XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX ")],-1)),e.createCommentVNode(" Verification Code Input "),r[4]||(r[4]=e.createElementVNode("div",null,[e.createElementVNode("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Verification Code"),e.createElementVNode("input",{type:"text",placeholder:"Enter 6-digit code",class:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-strands-500 focus:border-strands-500",maxlength:"6"}),e.createElementVNode("p",{class:"text-xs text-gray-500 mt-1"},"Enter the 6-digit code from your authenticator app")],-1)),e.createCommentVNode(" Actions "),e.createElementVNode("div",so,[r[1]||(r[1]=e.createElementVNode("button",{type:"button",class:"flex-1 bg-strands-500 text-white py-2 px-4 rounded-md hover:bg-strands-600 focus:outline-none focus:ring-2 focus:ring-strands-500 focus:ring-offset-2 transition-colors"}," Enable 2FA ",-1)),e.createElementVNode("button",{type:"button",class:"flex-1 bg-gray-200 text-gray-800 py-2 px-4 rounded-md hover:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 transition-colors",onClick:r[0]||(r[0]=o=>s.$emit("back"))}," Cancel ")])])])}const lo=y(ro,[["render",ao],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsMFASetup.vue"]]),io=e.defineComponent({__name:"SignedIn",props:{showFallback:{type:Boolean,required:!1,default:!0}},emits:["sign-in-required"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{isAuthenticated:d,user:o,signOut:i}=Y.useStrandsAuth(),m={props:t,emit:a,isAuthenticated:d,user:o,signOut:i,signIn:()=>{a("sign-in-required")}};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),Ao={key:0,class:"animate-fade-in"},co={key:1,class:"animate-fade-in"};function uo(s,r,n,t,a,d){return t.isAuthenticated?(e.openBlock(),e.createElementBlock("div",Ao,[e.renderSlot(s.$slots,"default",{user:t.user,signOut:t.signOut})])):n.showFallback?(e.openBlock(),e.createElementBlock("div",co,[e.renderSlot(s.$slots,"fallback",{signIn:t.signIn},()=>[e.createCommentVNode(" Default fallback content "),e.createElementVNode("div",{class:"text-center py-8"},[r[0]||(r[0]=e.createStaticVNode('<div class="w-16 h-16 mx-auto mb-4 bg-neutral-100 rounded-full flex items-center justify-center"><svg class="w-8 h-8 text-neutral-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><h3 class="text-lg font-semibold text-neutral-900 mb-2">Sign in required</h3><p class="text-neutral-600 mb-4">You need to be signed in to access this content.</p>',3)),e.createElementVNode("button",{onClick:t.signIn,class:"btn-primary !w-auto px-6 py-2"}," Sign in ")])])])):e.createCommentVNode("v-if",!0)}const mo=y(io,[["render",uo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedIn.vue"]]),fo=e.defineComponent({__name:"SignedOut",props:{showFallback:{type:Boolean,required:!1,default:!0}},emits:["sign-in-clicked","sign-up-clicked"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{isAuthenticated:d,isLoading:o,user:i,signOut:p}=Y.useStrandsAuth(),A={props:t,emit:a,isAuthenticated:d,isLoading:o,user:i,signOut:p,signIn:()=>{a("sign-in-clicked")},signUp:()=>{a("sign-up-clicked")}};return Object.defineProperty(A,"__isScriptSetup",{enumerable:!1,value:!0}),A}}),po={key:0,class:"animate-fade-in"},go={key:1,class:"animate-fade-in"},Vo={class:"text-center py-8"},vo={class:"text-neutral-600 mb-4"},No={key:2,class:"animate-pulse"};function wo(s,r,n,t,a,d){return!t.isAuthenticated&&!t.isLoading?(e.openBlock(),e.createElementBlock("div",po,[e.renderSlot(s.$slots,"default",{signIn:t.signIn,signUp:t.signUp})])):n.showFallback&&t.isAuthenticated?(e.openBlock(),e.createElementBlock("div",go,[e.renderSlot(s.$slots,"fallback",{user:t.user,signOut:t.signOut},()=>[e.createCommentVNode(" Default fallback content for signed in users "),e.createElementVNode("div",Vo,[r[1]||(r[1]=e.createElementVNode("div",{class:"w-16 h-16 mx-auto mb-4 bg-strands-100 rounded-full flex items-center justify-center"},[e.createElementVNode("svg",{class:"w-8 h-8 text-strands-600",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)),r[2]||(r[2]=e.createElementVNode("h3",{class:"text-lg font-semibold text-neutral-900 mb-2"},"Already signed in",-1)),e.createElementVNode("p",vo,"You're currently signed in as "+e.toDisplayString(t.user?.email)+".",1),e.createElementVNode("button",{onClick:r[0]||(r[0]=(...o)=>t.signOut&&t.signOut(...o)),class:"btn-secondary !w-auto px-6 py-2"}," Sign out ")])])])):t.isLoading?(e.openBlock(),e.createElementBlock("div",No,[e.renderSlot(s.$slots,"loading",{},()=>[e.createCommentVNode(" Default loading state "),r[3]||(r[3]=e.createStaticVNode('<div class="text-center py-8"><div class="w-16 h-16 mx-auto mb-4 bg-neutral-200 rounded-full flex items-center justify-center"><svg class="animate-spin w-6 h-6 text-neutral-400" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg></div><p class="text-neutral-500">Checking authentication...</p></div>',1))])])):e.createCommentVNode("v-if",!0)}const Co=y(fo,[["render",wo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedOut.vue"]]),ho=e.defineComponent({__name:"StrandsLogo",props:{class:{type:String,required:!1,default:""}},setup(s,{expose:r}){r();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function bo(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 22571 9413",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(n.class),role:"img","aria-label":"Strands Services Logo"},r[0]||(r[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)}const yo=y(ho,[["render",bo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsLogo.vue"]]),xo=e.defineComponent({__name:"StrandsConfigProvider",props:{config:{type:Object,required:!0}},setup(s,{expose:r}){r();const n=s;e.onMounted(()=>{k.provideStrandsConfig(n.config)}),k.provideStrandsConfig(n.config);const t={props:n};return Object.defineProperty(t,"__isScriptSetup",{enumerable:!1,value:!0}),t}});function qo(s,r,n,t,a,d){return e.renderSlot(s.$slots,"default")}const ko=y(xo,[["render",qo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsConfigProvider.vue"]]),So=e.defineComponent({__name:"SvgIcon",props:{name:{type:String,required:!0},class:{type:String,required:!1,default:""},size:{type:String,required:!1,default:"md"},fill:{type:String,required:!1,default:"none"},stroke:{type:String,required:!1,default:"currentColor"},ariaHidden:{type:Boolean,required:!1,default:!0}},setup(s,{expose:r}){r();const n=s,t={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"},a=e.computed(()=>`${t[n.size]} ${n.class}`),d=e.computed(()=>"0 0 24 24"),o={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 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"}),"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 m=o[n.name];return m?m():e.h("path",{d:""})}),p={props:n,sizeClasses:t,iconClass:a,viewBox:d,icons:o,iconComponent:i};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Bo=["fill","stroke","viewBox","aria-hidden"];function Uo(s,r,n,t,a,d){return e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(t.iconClass),fill:n.fill,stroke:n.stroke,viewBox:t.viewBox,"aria-hidden":n.ariaHidden},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))],10,Bo)}const Wo=y(So,[["render",Uo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SvgIcon.vue"]]),Eo=s=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(s),Lo=s=>{const r=[];let n=0;s.length<8?r.push("Password must be at least 8 characters long"):n+=1,/[A-Z]/.test(s)?n+=1:r.push("Password must contain at least one uppercase letter"),/[a-z]/.test(s)?n+=1:r.push("Password must contain at least one lowercase letter"),/\d/.test(s)?n+=1:r.push("Password must contain at least one number"),/[!@#$%^&*(),.?":{}|<>]/.test(s)?n+=1:r.push("Password must contain at least one special character");const t=r.length===0;let a="weak";return n>=4?a="strong":n>=3&&(a="medium"),{isValid:t,strength:a,errors:r}},Mo=s=>s.trim().length>=2,Po=s=>/^[\+]?[1-9][\d]{0,15}$/.test(s.replace(/[\s\-\(\)]/g,"")),zo=s=>s.trim().length>0,Do=(s,r)=>s===r,Fo=(s,r)=>{const n=s?.charAt(0).toUpperCase()||"",t=r?.charAt(0).toUpperCase()||"";return n+t||"U"},Io=s=>(typeof s=="string"?new Date(s):s).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),Xo=(s,r)=>{let n;return(...t)=>{clearTimeout(n),n=setTimeout(()=>s(...t),r)}};exports.provideStrandsConfig=k.provideStrandsConfig;exports.setStrandsConfig=k.setStrandsConfig;exports.useStrandsConfig=k.useStrandsConfig;exports.useStrandsAuth=Y.useStrandsAuth;exports.SignedIn=mo;exports.SignedOut=Co;exports.StrandsAuth=tt;exports.StrandsCompleteSignUp=or;exports.StrandsConfigProvider=ko;exports.StrandsLogo=yo;exports.StrandsMFASetup=lo;exports.StrandsPasswordReset=to;exports.StrandsSecuredFooter=W;exports.StrandsSignIn=wt;exports.StrandsSignUp=jt;exports.StrandsUserProfile=Hr;exports.SvgIcon=Wo;exports.UiAlert=D;exports.UiButton=E;exports.UiCard=L;exports.UiInput=M;exports.UiLink=P;exports.UiTabs=O;exports.debounce=Xo;exports.formatDate=Io;exports.getInitials=Fo;exports.isRequired=zo;exports.isValidEmail=Eo;exports.isValidName=Mo;exports.isValidPhone=Po;exports.passwordsMatch=Do;exports.useOAuthProviders=X;exports.validatePassword=Lo;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),B=require("./useStrandsConfig-DamqmMUO.cjs"),T=require("./useStrandsAuth-BGunGG2x.cjs"),Q=e.defineComponent({__name:"UiAlert",props:{variant:{type:String,required:!1,default:"info"},title:{type:String,required:!1},message:{type:String,required:!1},dismissible:{type:Boolean,required:!1,default:!1}},emits:["dismiss"],setup(s,{expose:r}){r();const n=s,t=e.computed(()=>{const p=["rounded-lg border p-4"],V={success:"bg-green-50 border-green-200 text-green-800",error:"bg-red-50 border-red-200 text-red-800",warning:"bg-yellow-50 border-yellow-200 text-yellow-800",info:"bg-blue-50 border-blue-200 text-blue-800"};return[...p,V[n.variant]].join(" ")}),a=e.computed(()=>["text-sm font-medium mb-1",{success:"text-green-800",error:"text-red-800",warning:"text-yellow-800",info:"text-blue-800"}[n.variant]].join(" ")),A=e.computed(()=>["text-sm",{success:"text-green-700",error:"text-red-700",warning:"text-yellow-700",info:"text-blue-700"}[n.variant]].join(" ")),o=e.computed(()=>["inline-flex rounded-md p-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{success:"text-green-400 hover:text-green-500",error:"text-red-400 hover:text-red-500",warning:"text-yellow-400 hover:text-yellow-500",info:"text-blue-400 hover:text-blue-500"}[n.variant]].join(" ")),l=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"})[n.variant]),m={props:n,alertClasses:t,titleClasses:a,messageClasses:A,dismissClasses:o,iconPath:l};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),q=(s,r)=>{const n=s.__vccOpts||s;for(const[t,a]of r)n[t]=a;return n},H={class:"flex items-start"},R={class:"flex-shrink-0"},G={class:"h-5 w-5",fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true"},J=["d"],_={class:"ml-3 flex-1"},$={key:0,class:"ml-auto pl-3"};function ee(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.alertClasses),role:"alert"},[e.createElementVNode("div",H,[e.createElementVNode("div",R,[(e.openBlock(),e.createElementBlock("svg",G,[e.createElementVNode("path",{"fill-rule":"evenodd",d:t.iconPath,"clip-rule":"evenodd"},null,8,J)]))]),e.createElementVNode("div",_,[n.title?(e.openBlock(),e.createElementBlock("h3",{key:0,class:e.normalizeClass(t.titleClasses)},e.toDisplayString(n.title),3)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(t.messageClasses)},[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])],2)]),n.dismissible?(e.openBlock(),e.createElementBlock("div",$,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(t.dismissClasses),onClick:r[0]||(r[0]=o=>s.$emit("dismiss"))},r[1]||(r[1]=[e.createElementVNode("span",{class:"sr-only"},"Dismiss",-1),e.createElementVNode("svg",{class:"h-5 w-5",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)]),2)])):e.createCommentVNode("v-if",!0)])],2)}const j=q(Q,[["render",ee],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiAlert.vue"]]),te=e.defineComponent({__name:"UiButton",props:{variant:{type:String,required:!1,default:"primary"},size:{type:String,required:!1,default:"md"},type:{type:String,required:!1,default:"button"},disabled:{type:Boolean,required:!1,default:!1},loading:{type:Boolean,required:!1,default:!1},loadingText:{type:String,required:!1},fullWidth:{type:Boolean,required:!1,default:!1}},emits:["click"],setup(s,{expose:r}){r();const n=s,t=e.computed(()=>{const A=["inline-flex items-center justify-center font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"],o={sm:"px-3 py-2 text-sm rounded-md",md:"px-4 py-2.5 text-sm rounded-lg",lg:"px-6 py-3 text-base rounded-lg"},l={primary:"bg-strands-500 text-white hover:bg-strands-600 shadow-sm",secondary:"bg-gray-200 text-gray-800 hover:bg-gray-300",ghost:"text-strands-500 hover:text-strands-600 hover:bg-strands-50",outline:"border border-strands-500 text-strands-500 hover:bg-strands-500 hover:text-white"},m=n.fullWidth?"w-full":"";return[...A,o[n.size],l[n.variant],m].filter(Boolean).join(" ")}),a={props:n,buttonClasses:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),re=["type","disabled"],oe={key:0,class:"flex items-center justify-center gap-2"},ne={key:1,class:"flex items-center justify-center gap-2"};function se(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("button",{type:n.type,disabled:n.disabled||n.loading,class:e.normalizeClass(t.buttonClasses),onClick:r[0]||(r[0]=o=>s.$emit("click",o))},[n.loading?(e.openBlock(),e.createElementBlock("span",oe,[r[1]||(r[1]=e.createElementVNode("svg",{class:"animate-spin w-4 h-4",fill:"none",viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.createElementVNode("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"})],-1)),e.createElementVNode("span",null,e.toDisplayString(n.loadingText||"Loading..."),1)])):(e.openBlock(),e.createElementBlock("span",ne,[e.renderSlot(s.$slots,"icon"),e.renderSlot(s.$slots,"default")]))],10,re)}const D=q(te,[["render",se],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiButton.vue"]]),ae=e.defineComponent({__name:"UiCard",props:{variant:{type:String,required:!1,default:"default"},padding:{type:String,required:!1,default:"md"},shadow:{type:String,required:!1,default:"sm"}},setup(s,{expose:r}){r();const n=s,t=e.computed(()=>{const A=["bg-white border border-gray-200"],o={default:"rounded-lg",modern:"rounded-2xl backdrop-blur-lg",minimal:"rounded-md"},l={sm:"p-4",md:"p-6",lg:"p-8"},m={none:"",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"};return[...A,o[n.variant],l[n.padding],m[n.shadow]].filter(Boolean).join(" ")}),a={props:n,cardClasses:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),le={key:0,class:"border-b border-gray-200 pb-4 mb-6"},ie={class:"space-y-6"},Ae={key:1,class:"border-t border-gray-200 pt-4 mt-6"};function de(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.cardClasses)},[s.$slots.header?(e.openBlock(),e.createElementBlock("div",le,[e.renderSlot(s.$slots,"header")])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ie,[e.renderSlot(s.$slots,"default")]),s.$slots.footer?(e.openBlock(),e.createElementBlock("div",Ae,[e.renderSlot(s.$slots,"footer")])):e.createCommentVNode("v-if",!0)],2)}const F=q(ae,[["render",de],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiCard.vue"]]),ce=e.defineComponent({__name:"UiInput",props:{modelValue:{type:[String,Number],required:!1},type:{type:String,required:!1,default:"text"},label:{type:String,required:!1},placeholder:{type:String,required:!1},disabled:{type:Boolean,required:!1},required:{type:Boolean,required:!1},error:{type:String,required:!1},helpText:{type:String,required:!1},autocomplete:{type:String,required:!1},size:{type:String,required:!1,default:"md"}},emits:["update:modelValue","blur","focus"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,A=e.useSlots(),o=e.ref(!1),l=e.ref(`input-${Math.random().toString(36).substr(2,9)}`),m=e.computed(()=>t.type==="password"?o.value?"text":"password":t.type),p=e.computed(()=>{const u=["block w-full border-gray-300 text-black rounded-lg shadow-sm focus-visible:ring-strands-500 focus-visible:border-strands-500 transition-colors duration-200 disabled:bg-gray-50 disabled:text-gray-500"],d={sm:"px-3 py-2 text-sm",md:"px-3 py-2.5 text-sm",lg:"px-4 py-3 text-base"},h=t.error?"border-red-300 focus-visible:ring-red-500 focus-visible:border-red-500":"",b=A.icon?"pl-10":"",C=t.type==="password"?"pr-10":"";return[...u,d[t.size],h,b,C].filter(Boolean).join(" ")}),c={props:t,emit:a,slots:A,showPassword:o,inputId:l,computedType:m,inputClasses:p,handleInput:u=>{const d=u.target;a("update:modelValue",d.value)},togglePasswordVisibility:()=>{o.value=!o.value}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),ue={class:"space-y-1"},me=["for"],fe={key:0,class:"text-red-500"},ge={class:"relative"},pe=["id","type","value","placeholder","disabled","required","autocomplete"],Ve={key:0,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ve={key:1,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ne={key:1,class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},he={key:1,class:"text-sm text-red-600"},Ce={key:2,class:"text-sm text-gray-500"};function ye(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",ue,[n.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.inputId,class:"block text-sm font-medium text-gray-700"},[e.createTextVNode(e.toDisplayString(n.label)+" ",1),n.required?(e.openBlock(),e.createElementBlock("span",fe,"*")):e.createCommentVNode("v-if",!0)],8,me)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ge,[e.createElementVNode("input",{id:t.inputId,type:t.computedType,value:n.modelValue,placeholder:n.placeholder,disabled:n.disabled,required:n.required,autocomplete:n.autocomplete,class:e.normalizeClass(t.inputClasses),onInput:t.handleInput,onBlur:r[0]||(r[0]=o=>s.$emit("blur",o)),onFocus:r[1]||(r[1]=o=>s.$emit("focus",o))},null,42,pe),e.createCommentVNode(" Password visibility toggle "),n.type==="password"?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 hover:text-gray-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 rounded-md",onClick:t.togglePasswordVisibility},[t.showPassword?(e.openBlock(),e.createElementBlock("svg",Ve,r[2]||(r[2]=[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",ve,r[3]||(r[3]=[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("v-if",!0),e.createCommentVNode(" Icon slot "),s.$slots.icon?(e.openBlock(),e.createElementBlock("div",Ne,[e.renderSlot(s.$slots,"icon",{},void 0,!0)])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Help text or error message "),n.error?(e.openBlock(),e.createElementBlock("p",he,e.toDisplayString(n.error),1)):n.helpText?(e.openBlock(),e.createElementBlock("p",Ce,e.toDisplayString(n.helpText),1)):e.createCommentVNode("v-if",!0)])}const I=q(ce,[["render",ye],["__scopeId","data-v-e87dc617"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiInput.vue"]]),be=e.defineComponent({__name:"UiLink",props:{href:{type:String,required:!1},to:{type:[String,Object],required:!1},variant:{type:String,required:!1,default:"primary"},size:{type:String,required:!1,default:"md"},disabled:{type:Boolean,required:!1,default:!1},external:{type:Boolean,required:!1,default:!1}},emits:["click"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,A=e.computed(()=>t.to?"router-link":t.href?"a":"button"),o=e.computed(()=>{const V={};return t.to?V.to=t.to:t.href?(V.href=t.href,t.external&&(V.target="_blank",V.rel="noopener noreferrer")):V.type="button",t.disabled&&(V.disabled=!0,V["aria-disabled"]=!0),V}),l=e.computed(()=>{const V=["inline-flex items-center font-medium transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"],i={sm:"text-xs",md:"text-sm",lg:"text-base"},c={primary:"text-strands-500 hover:text-strands-600",secondary:"text-gray-600 hover:text-gray-800",ghost:"text-gray-500 hover:text-gray-700 hover:bg-gray-100 px-2 py-1 rounded",underline:"text-strands-500 hover:text-strands-600 underline decoration-strands-500 underline-offset-2"};return[...V,i[t.size],c[t.variant]].filter(Boolean).join(" ")}),p={props:t,emit:a,tag:A,linkProps:o,linkClasses:l,handleClick:V=>{t.disabled||a("click",V)}};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}});function we(s,r,n,t,a,A){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),e.mergeProps({class:t.linkClasses},t.linkProps,{onClick:t.handleClick}),{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},16,["class"])}const X=q(be,[["render",we],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLink.vue"]]),xe=e.defineComponent({__name:"UiTabs",props:{modelValue:{type:String,required:!0},tabs:{type:Array,required:!0}},emits:["update:modelValue"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,A=e.ref([]),o=e.ref({width:"0px",left:"0px",opacity:"0"});let l=-1,m=!1;const p=async(d,h)=>{m||(a("update:modelValue",d),await e.nextTick(),V(h))},V=async d=>{if(!A.value[d]||d===l)return;m=!0;const h=A.value[d],b=h.parentElement;if(!b)return;const C=h.getBoundingClientRect(),N=b.getBoundingClientRect(),f=C.left-N.left,g=C.width;if(l===-1){o.value={width:`${g}px`,left:`${f}px`,opacity:"1"},l=d,m=!1;return}const W=A.value[l].getBoundingClientRect(),U=W.left-N.left,v=W.width,w=d>l,S=w?U:f,L=w?f+g-U:U+v-f;o.value={width:`${L}px`,left:`${S}px`,opacity:"1"},setTimeout(()=>{o.value={width:`${g}px`,left:`${f}px`,opacity:"1"},l=d,setTimeout(()=>{m=!1},150)},120)};e.onMounted(async()=>{await e.nextTick();const d=t.tabs.findIndex(h=>h.value===t.modelValue);d!==-1&&V(d)});const i=e.computed(()=>t.tabs.findIndex(d=>d.value===t.modelValue)),{modelValue:c}=e.toRefs(t);e.watch(c,async()=>{await e.nextTick();const d=t.tabs.findIndex(h=>h.value===t.modelValue);d!==-1&&V(d)});const u={props:t,emit:a,tabButtons:A,underlineStyle:o,get currentTabIndex(){return l},set currentTabIndex(d){l=d},get isAnimating(){return m},set isAnimating(d){m=d},handleTabClick:p,animateUnderlineStretch:V,activeTabIndex:i,modelValue:c};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),ke={class:"relative"},qe={class:"relative flex border-b border-neutral-200",role:"tablist"},Se=["aria-selected","aria-controls","id","onClick"];function Be(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",ke,[e.createCommentVNode(" Tab List "),e.createElementVNode("div",qe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabs,(o,l)=>(e.openBlock(),e.createElementBlock("button",{key:o.value,ref_for:!0,ref:"tabButtons",class:e.normalizeClass(["relative flex-1 py-4 px-6 font-medium text-sm transition-colors duration-150","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-strands-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white","hover:text-strands-600",t.modelValue===o.value?"text-strands-600":"text-neutral-600"]),"aria-selected":t.modelValue===o.value,"aria-controls":`tabpanel-${o.value}`,id:`tab-${o.value}`,role:"tab",onClick:m=>t.handleTabClick(o.value,l)},e.toDisplayString(o.label),11,Se))),128)),e.createCommentVNode(" Animated stretching underline "),e.createElementVNode("div",{class:"absolute bottom-[-2px] h-[3px] bg-strands-500 rounded-full transition-all duration-150 ease-[cubic-bezier(0.25,0.46,0.45,0.94)]",style:e.normalizeStyle(t.underlineStyle)},null,4)])])}const O=q(xe,[["render",Be],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiTabs.vue"]]),Ee=e.defineComponent({__name:"StrandsSecuredFooter",props:{config:{type:Object,required:!1}},setup(s,{expose:r}){r();const n=s,{config:t}=B.useStrandsConfig(n.config),a=e.computed(()=>t.value.baseUrl!=="https://accounts.strands.gg"),A={props:n,config:t,shouldShowSecuredBy:a};return Object.defineProperty(A,"__isScriptSetup",{enumerable:!1,value:!0}),A}}),Ue="data:image/png;base64,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",We={key:0,class:"flex items-center justify-center gap-2 mt-4 -mb-4 pt-4 border-t border-neutral-200"};function Le(s,r,n,t,a,A){return t.shouldShowSecuredBy?(e.openBlock(),e.createElementBlock("div",We,r[0]||(r[0]=[e.createElementVNode("img",{src:Ue,class:"h-12 w-auto"},null,-1)]))):e.createCommentVNode("v-if",!0)}const P=q(Ee,[["render",Le],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSecuredFooter.vue"]]);function Z(s={}){const{getUrl:r}=B.useStrandsConfig(),n=e.ref([]),t=e.ref(!1),a=e.ref(null),A=e.computed(()=>n.value.filter(i=>i.enabled)),o=async()=>{t.value=!0,a.value=null;try{const i=await fetch(r("oauthProviders"),{method:"GET",headers:{"Content-Type":"application/json"}});if(!i.ok){const u=await i.json().catch(()=>({}));throw new Error(u.error?.message||`HTTP ${i.status}: ${i.statusText}`)}const c=await i.json();if(!c.success)throw new Error(c.error?.message||"Failed to fetch OAuth providers");n.value=c.data||[]}catch(i){const c=i instanceof Error?i.message:"Failed to fetch OAuth providers";a.value=c}finally{t.value=!1}},l=async(i,c)=>{const u={...s,...c},d=new URLSearchParams;u.redirectUrl&&d.append("redirect_url",u.redirectUrl),u.scopes&&u.scopes.length>0&&d.append("scopes",u.scopes.join(","));const h=d.toString(),b=r("oauthProvider").replace("{provider_id}",i),C=h?`${b}?${h}`:b;try{const N=await fetch(C,{method:"GET",headers:{"Content-Type":"application/json"}});if(!N.ok){const g=await N.json().catch(()=>({}));throw new Error(g.error?.message||`HTTP ${N.status}: ${N.statusText}`)}const f=await N.json();if(!f.success)throw new Error(f.error?.message||"Failed to get OAuth auth URL");return f.data.authUrl}catch(N){const f=N instanceof Error?N.message:"Failed to get OAuth auth URL";throw new Error(f)}},m=async(i,c)=>{try{const u=await l(i,c);window.location.href=u}catch(u){throw a.value=u instanceof Error?u.message:"Failed to redirect to OAuth provider",u}},p=i=>n.value.find(c=>c.id===i),V=i=>{if(i.iconUrl)return i.iconUrl;switch(i.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=="}};return{providers:e.computed(()=>n.value),enabledProviders:A,loading:e.computed(()=>t.value),error:e.computed(()=>a.value),fetchProviders:o,getProviderAuthUrl:l,redirectToProvider:m,getProviderById:p,getProviderIcon:V}}const Me=e.defineComponent({__name:"StrandsAuth",props:{mode:{type:String,required:!1,default:"signin"},redirectUrl:{type:String,required:!1,default:"/"},config:{type:Object,required:!1}},emits:["success","error","forgot-password","password-reset-sent","mode-changed"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:A,getSupportEmail:o}=B.useStrandsConfig(t.config);console.log("support email:",o());const{enabledProviders:l,loading:m,error:p,fetchProviders:V,redirectToProvider:i,getProviderIcon:c}=Z({redirectUrl:t.redirectUrl});e.onMounted(()=>{V().catch(y=>{console.warn("Failed to fetch OAuth providers:",y)})});const u=e.computed(()=>l.value),d={async signIn(y,k){const E=await fetch(A("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:y,password:k})});if(!E.ok){const M=await E.json().catch(()=>({}));throw new Error(M.error?.message||`HTTP ${E.status}: ${E.statusText}`)}return await E.json()},async signUp(y,k,E,Y){const M=await fetch(A("signUp"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:y,password:k,firstName:E,lastName:Y})});if(!M.ok){const K=await M.json().catch(()=>({}));throw new Error(K.error?.message||`HTTP ${M.status}: ${M.statusText}`)}return(await M.json()).message},async requestPasswordReset(y){throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.")}},h=e.ref(t.mode),b=e.ref(!1),C=e.ref(""),N=e.ref(!1),f=e.reactive({firstName:"",lastName:"",email:"",password:"",confirmPassword:""}),g=e.computed(()=>h.value==="signup"),x=e.computed(()=>h.value==="reset-password"),W=e.computed(()=>f.password===f.confirmPassword),U=e.computed(()=>x.value?f.email.trim()&&!N.value:g.value?f.email.trim():f.email.trim()&&f.password),v={weak:{label:"Weak",color:"border-red-300",bgColor:"bg-red-400",textColor:"text-red-600",width:33},medium:{label:"Medium",color:"border-yellow-300",bgColor:"bg-yellow-400",textColor:"text-yellow-600",width:66},strong:{label:"Strong",color:"border-emerald-300",bgColor:"bg-emerald-400",textColor:"text-emerald-600",width:100}},w=y=>{let k=0;y.length>=8&&(k+=1),y.length>=12&&(k+=1),/[a-z]/.test(y)&&(k+=1),/[A-Z]/.test(y)&&(k+=1),/[0-9]/.test(y)&&(k+=1),/[^A-Za-z0-9]/.test(y)&&(k+=1);const E=k<=2?v.weak:k<=4?v.medium:v.strong;return{score:k,...E}},S=async()=>{b.value=!0,C.value="";try{if(x.value)await d.requestPasswordReset(f.email),N.value=!0,a("password-reset-sent",f.email);else if(g.value){const y=await d.signUp(f.email,f.password,f.firstName,f.lastName);a("success",y.user)}else{const y=await d.signIn(f.email,f.password);a("success",y.user)}}catch(y){const k=y instanceof Error?y.message:"An unexpected error occurred";C.value=k,a("error",k)}finally{b.value=!1}},L=async y=>{try{await i(y,{redirectUrl:t.redirectUrl})}catch(k){const E=k instanceof Error?k.message:`Failed to ${g.value?"sign up":"sign in"} with ${y}`;C.value=E,a("error",E)}};e.watch(()=>t.mode,y=>{h.value=y}),e.watch(h,y=>{C.value="",N.value=!1,f.firstName="",f.lastName="",f.email="",f.password="",f.confirmPassword="",a("mode-changed",y)});const z={props:t,emit:a,getUrl:A,getSupportEmail:o,enabledProviders:l,oauthLoading:m,oauthError:p,fetchProviders:V,redirectToProvider:i,getProviderIcon:c,displayProviders:u,authApi:d,currentMode:h,loading:b,error:C,isPasswordResetSubmitted:N,form:f,isSignUp:g,isPasswordReset:x,isPasswordMatch:W,isFormValid:U,PASSWORD_STRENGTH_CONFIGS:v,getPasswordStrength:w,handleAuth:S,handleOAuthAuth:L,get UiCard(){return F},get UiButton(){return D},get UiInput(){return I},get UiAlert(){return j},get UiLink(){return X},get UiTabs(){return O},StrandsSecuredFooter:P};return Object.defineProperty(z,"__isScriptSetup",{enumerable:!1,value:!0}),z}}),Pe={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},ze={class:"text-center mb-8"},De={key:"tabs",class:"mb-8"},Fe={key:"oauth",class:"space-y-3 mb-6"},Ie={class:"w-5 h-5 flex items-center justify-center"},Xe={key:0,class:"w-5 h-5"},je=["src","alt"],Te={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},Ze={class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},Ye={class:"text-xs font-semibold text-neutral-600"},Oe={class:"font-medium"},Ke={key:"divider",class:"divider-with-text"},Qe={class:"divider-text"},He={class:"space-y-4"},Re={key:"password-section"},Ge={class:"flex items-center justify-between mb-2"},Je={key:"back-link",class:"mt-8 text-center"},_e={key:1,class:"mt-6 text-center"},$e={class:"text-neutral-400 text-sm"};function et(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",ze,[e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("h1",{key:t.currentMode,class:"text-3xl font-bold text-gradient mb-2"},e.toDisplayString(t.isPasswordReset?"Reset password":t.isSignUp?"Create account":"Welcome back"),1))]),_:1}),e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("p",{key:t.currentMode,class:"text-neutral-600"},e.toDisplayString(t.isPasswordReset?"Enter your email address and we'll send you a link to reset your password":t.isSignUp?"We'll send you a magic link to get started":"Sign in to your account to continue"),1))]),_:1})]),e.createCommentVNode(" Tab Switcher (only show for signin/signup) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[t.isPasswordReset?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",De,[e.createVNode(t.UiTabs,{modelValue:t.currentMode,"onUpdate:modelValue":r[0]||(r[0]=o=>t.currentMode=o),tabs:[{label:"Sign In",value:"signin"},{label:"Sign Up",value:"signup"}]},null,8,["modelValue"])]))]),_:1}),e.createCommentVNode(" OAuth Providers (not shown for password reset) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",Fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.displayProviders,o=>(e.openBlock(),e.createBlock(t.UiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:l=>t.handleOAuthAuth(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Ie,[e.createCommentVNode(" Dynamic provider icons "),o.iconUrl?(e.openBlock(),e.createElementBlock("div",Xe,[e.createElementVNode("img",{src:o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,je)])):o.id==="google"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Built-in SVG icons for common providers "),r[6]||(r[6]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"w-5 h-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"}),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"}),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"}),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"})],-1))],2112)):o.id==="github"?(e.openBlock(),e.createElementBlock("svg",Te,[...r[7]||(r[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(e.Fragment,{key:3},[e.createCommentVNode(" Generic icon for other providers "),e.createElementVNode("div",Ze,[e.createElementVNode("span",Ye,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)])],2112))]),e.createElementVNode("span",Oe," Continue with "+e.toDisplayString(o.displayName||o.name.charAt(0).toUpperCase()+o.name.slice(1)),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Divider (not shown for password reset) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",Ke,[e.createElementVNode("span",Qe,"Or "+e.toDisplayString(t.isSignUp?"create account":"sign in")+" with email",1)])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Auth Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleAuth,["prevent"]),class:"space-y-6"},[e.createElementVNode("div",He,[e.createCommentVNode(" Email "),e.createVNode(t.UiInput,{modelValue:t.form.email,"onUpdate:modelValue":r[1]||(r[1]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email",required:"",autocomplete:"email",error:t.error&&!t.form.email?"Email is required":""},null,8,["modelValue","error"]),e.createCommentVNode(" Password (Sign In Only) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[!t.isPasswordReset&&!t.isSignUp?(e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("div",Ge,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-gray-700"},"Password",-1)),e.createVNode(t.UiLink,{variant:"primary",size:"sm",onClick:r[2]||(r[2]=o=>t.currentMode="reset-password")},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(t.UiInput,{modelValue:t.form.password,"onUpdate:modelValue":r[3]||(r[3]=o=>t.form.password=o),type:"password",placeholder:"Enter your password",required:"",autocomplete:"current-password",error:t.error&&!t.form.password?"Password is required":""},null,8,["modelValue","error"])])):e.createCommentVNode("v-if",!0)]),_:1})]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.isFormValid,loading:t.loading,"loading-text":t.isPasswordReset?"Sending link...":t.isSignUp?"Sending magic link...":"Signing in..."},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.isPasswordReset?t.isPasswordResetSubmitted?"Link sent!":"Send reset link":t.isSignUp?"Send magic link":"Sign in"),1)]),_:1},8,["disabled","loading","loading-text"])],32),e.createCommentVNode(" Success Message for Password Reset "),e.createVNode(e.Transition,{name:"expand",mode:"out-in"},{default:e.withCtx(()=>[t.isPasswordReset&&t.isPasswordResetSubmitted?(e.openBlock(),e.createBlock(t.UiAlert,{key:"reset-success",variant:"success",message:`Check your email - We've sent a password reset link to ${t.form.email}`,class:"mt-6 animate-fade-in"},null,8,["message"])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Back to Sign In (Password Reset Only) "),e.createVNode(e.Transition,{name:"height-fade",mode:"out-in"},{default:e.withCtx(()=>[t.isPasswordReset?(e.openBlock(),e.createElementBlock("div",Je,[e.createVNode(t.UiLink,{onClick:r[4]||(r[4]=o=>t.currentMode="signin"),class:"inline-flex items-center gap-2"},{default:e.withCtx(()=>r[10]||(r[10]=[e.createElementVNode("svg",{class:"w-4 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,__:[10]})])):e.createCommentVNode("v-if",!0)]),_:1}),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:0,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[5]||(r[5]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("p",$e,[r[12]||(r[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[11]||(r[11]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[11]},8,["href"])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])]),_:1})])}const tt=q(Me,[["render",et],["__scopeId","data-v-4583e1b6"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsAuth.vue"]]),rt=e.defineComponent({__name:"StrandsSignIn",props:{redirectUrl:{type:String,required:!1,default:"/"},oauthScopes:{type:Array,required:!1,default:()=>[]},config:{type:Object,required:!1}},emits:["success","error","forgot-password","switch-to-signup"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:A,getSupportEmail:o}=B.useStrandsConfig(t.config),{enabledProviders:l,loading:m,error:p,fetchProviders:V,redirectToProvider:i}=Z({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{V().catch(N=>{console.warn("Failed to fetch OAuth providers:",N)})});const c=e.ref(!1),u=e.ref(""),d=e.reactive({email:"",password:""}),C={props:t,emit:a,getUrl:A,getSupportEmail:o,enabledProviders:l,oauthLoading:m,oauthError:p,fetchProviders:V,redirectToProvider:i,loading:c,error:u,form:d,handleSignIn:async()=>{c.value=!0,u.value="";try{console.log("Sign in attempt:",d),a("success",{email:d.email})}catch{u.value="Invalid email or password",a("error",u.value)}finally{c.value=!1}},handleOAuthSignIn:async N=>{try{await i(N,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(f){const g=f instanceof Error?f.message:`Failed to sign in with ${N}`;u.value=g,a("error",g)}},get UiCard(){return F},get UiButton(){return D},get UiInput(){return I},get UiAlert(){return j},get UiLink(){return X},StrandsSecuredFooter:P};return Object.defineProperty(C,"__isScriptSetup",{enumerable:!1,value:!0}),C}}),ot={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},nt={key:0,class:"space-y-3 mb-6"},st={class:"w-5 h-5 flex items-center justify-center"},at={key:0,class:"w-5 h-5"},lt=["src","alt"],it={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},At={key:3,class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},dt={class:"text-xs font-semibold text-neutral-600"},ct={class:"font-medium"},ut={key:1,class:"divider-with-text"},mt={class:"space-y-4"},ft={class:"flex items-center justify-between mb-2"},gt={class:"mt-8 text-center"},pt={class:"text-sm text-neutral-600"},Vt={key:3,class:"mt-6 text-center"},vt={class:"text-neutral-400 text-sm"};function Nt(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",ot,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),r[15]||(r[15]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Welcome back"),e.createElementVNode("p",{class:"text-neutral-600"},"Sign in to your account to continue")],-1)),e.createCommentVNode(" OAuth Providers "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.UiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:l=>t.handleOAuthSignIn(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",st,[e.createCommentVNode(" Dynamic provider icons "),o.iconUrl?(e.openBlock(),e.createElementBlock("div",at,[e.createElementVNode("img",{src:o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,lt)])):o.id==="google"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Built-in SVG icons for common providers "),r[5]||(r[5]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"w-5 h-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"}),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"}),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"}),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"})],-1))],2112)):o.id==="github"?(e.openBlock(),e.createElementBlock("svg",it,[...r[6]||(r[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",At,[e.createElementVNode("span",dt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",ct,"Continue with "+e.toDisplayString(o.displayName||o.name),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Divider "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",ut,r[7]||(r[7]=[e.createElementVNode("span",{class:"divider-text"},"Or sign in with email",-1)]))):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Email/Password Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleSignIn,["prevent"]),class:"space-y-6"},[e.createElementVNode("div",mt,[e.createVNode(t.UiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:t.error?"Invalid email or password":void 0},null,8,["modelValue","error"]),e.createElementVNode("div",null,[e.createElementVNode("div",ft,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-neutral-700"},"Password",-1)),e.createVNode(t.UiLink,{onClick:r[1]||(r[1]=o=>s.$emit("forgot-password")),class:"text-sm"},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(t.UiInput,{id:"password",modelValue:t.form.password,"onUpdate:modelValue":r[2]||(r[2]=o=>t.form.password=o),type:"password",placeholder:"Enter your password",autocomplete:"current-password",required:"",error:t.error?"Invalid email or password":void 0},null,8,["modelValue","error"])])]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.form.email||!t.form.password,loading:t.loading,"loading-text":"Signing in..."},{default:e.withCtx(()=>r[10]||(r[10]=[e.createTextVNode(" Sign in ",-1)])),_:1,__:[10]},8,["disabled","loading"])],32),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:2,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[3]||(r[3]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign up link "),e.createElementVNode("div",gt,[e.createElementVNode("p",pt,[r[12]||(r[12]=e.createTextVNode(" Don't have an account? ",-1)),e.createVNode(t.UiLink,{onClick:r[4]||(r[4]=o=>s.$emit("switch-to-signup"))},{default:e.withCtx(()=>r[11]||(r[11]=[e.createTextVNode(" Sign up ",-1)])),_:1,__:[11]})])]),e.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("p",vt,[r[14]||(r[14]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[13]||(r[13]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[13]},8,["href"])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])]),_:1,__:[15]})])}const ht=q(rt,[["render",Nt],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignIn.vue"]]),Ct=e.defineComponent({__name:"StrandsSignUp",props:{redirectUrl:{type:String,required:!1,default:"/"},oauthScopes:{type:Array,required:!1,default:()=>[]},config:{type:Object,required:!1}},emits:["success","error","switch-to-signin"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:A,getSupportEmail:o}=B.useStrandsConfig(t.config),{enabledProviders:l,loading:m,error:p,fetchProviders:V,redirectToProvider:i}=Z({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{V().catch(v=>{console.warn("Failed to fetch OAuth providers:",v)})});const c=e.ref(!1),u=e.ref(""),d=e.ref(!1),h=e.ref(""),b=e.ref("Magic Link Sent!"),C=e.ref(""),N=e.reactive({email:""}),f=e.computed(()=>N.email.trim()&&N.email.includes("@")),U={props:t,emit:a,getUrl:A,getSupportEmail:o,enabledProviders:l,oauthLoading:m,oauthError:p,fetchProviders:V,redirectToProvider:i,loading:c,error:u,signupSuccess:d,successMessage:h,successTitle:b,successEmail:C,form:N,isFormValid:f,handleSignUp:async()=>{c.value=!0,u.value="";try{const v=A("signUp");console.log("Attempting sign up to URL:",v);const w=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:N.email})});if(console.log("Sign up response status:",w.status),console.log("Sign up response headers:",Object.fromEntries(w.headers.entries())),!w.ok){let L=`Sign up failed (${w.status})`;try{const z=await w.json();L=z.message||z.error||L}catch{L=await w.text()||L}throw new Error(L)}const S=await w.json();console.log("Magic link sign up success:",S),d.value=!0,C.value=N.email,h.value=S.message||"Magic link sent! Check your email.",S.message&&(S.message.includes("already have an account")||S.message.includes("Welcome back")?b.value="Welcome Back!":S.message.includes("Magic link sent")||S.message.includes("Check your email")?b.value="Magic Link Sent!":b.value="Success!"),a("success",{email:N.email,message:S.message||"Magic link sent! Check your email."})}catch(v){console.error("Sign up error:",v);let w="Unable to send magic link. Please try again.";if(v instanceof Error)if(v.message.includes("fetch"))w="Unable to connect to authentication service. Please check your internet connection and try again.";else if(v.message.includes("CORS")){const S=o();w=S?`Authentication service configuration error. Please contact ${S}.`:"Authentication service configuration error."}else w=v.message;u.value=w,a("error",w)}finally{c.value=!1}},resetToForm:()=>{d.value=!1,h.value="",b.value="Magic Link Sent!",C.value="",N.email="",u.value=""},handleOAuthSignUp:async v=>{try{await i(v,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(w){const S=w instanceof Error?w.message:`Failed to sign up with ${v}`;u.value=S,a("error",S)}},get UiCard(){return F},get UiButton(){return D},get UiInput(){return I},get UiLink(){return X},StrandsSecuredFooter:P};return Object.defineProperty(U,"__isScriptSetup",{enumerable:!1,value:!0}),U}}),yt={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},bt={class:"text-center"},wt={class:"text-2xl font-bold text-gray-900 mb-2"},xt={class:"text-gray-600 mb-4"},kt={key:0,class:"text-sm text-gray-500 mb-4"},qt={key:0,class:"space-y-3 mb-6"},St={class:"w-5 h-5 flex items-center justify-center"},Bt={key:0,class:"w-5 h-5"},Et=["src","alt"],Ut={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},Wt={key:3,class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},Lt={class:"text-xs font-semibold text-neutral-600"},Mt={class:"font-medium"},Pt={key:1,class:"divider-with-text"},zt={key:2,class:"mt-6 animate-fade-in"},Dt={class:"alert-error"},Ft={class:"flex items-start gap-3"},It={class:"font-medium"},Xt={class:"mt-8 text-center"},jt={class:"text-sm text-neutral-600"},Tt={key:3,class:"mt-6 text-center"},Zt={class:"text-neutral-400 text-sm"};function Yt(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",yt,[e.createCommentVNode(" Success State "),t.signupSuccess?(e.openBlock(),e.createBlock(t.UiCard,{key:0,variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",bt,[r[3]||(r[3]=e.createElementVNode("div",{class:"text-green-500 text-6xl mb-4"},"📧",-1)),e.createElementVNode("h1",wt,e.toDisplayString(t.successTitle),1),e.createElementVNode("p",xt,e.toDisplayString(t.successMessage),1),t.successEmail?(e.openBlock(),e.createElementBlock("div",kt,[e.createElementVNode("strong",null,e.toDisplayString(t.successEmail),1)])):e.createCommentVNode("v-if",!0),r[4]||(r[4]=e.createElementVNode("p",{class:"text-sm text-gray-500 mb-6"}," Click the link in your email to complete your account setup. The link will expire in 24 hours. ",-1)),e.createVNode(t.UiButton,{variant:"outline","full-width":"",onClick:t.resetToForm},{default:e.withCtx(()=>r[2]||(r[2]=[e.createTextVNode(" Send Another Link ",-1)])),_:1,__:[2]})])]),_:1})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Signup Form "),e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),r[13]||(r[13]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Create account"),e.createElementVNode("p",{class:"text-neutral-600"},"We'll send you a magic link to get started")],-1)),e.createCommentVNode(" OAuth Providers "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",qt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.UiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:l=>t.handleOAuthSignUp(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",St,[e.createCommentVNode(" Dynamic provider icons "),o.iconUrl?(e.openBlock(),e.createElementBlock("div",Bt,[e.createElementVNode("img",{src:o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,Et)])):o.id==="google"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Built-in SVG icons for common providers "),r[5]||(r[5]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"w-5 h-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"}),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"}),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"}),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"})],-1))],2112)):o.id==="github"?(e.openBlock(),e.createElementBlock("svg",Ut,[...r[6]||(r[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",Wt,[e.createElementVNode("span",Lt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Mt,"Continue with "+e.toDisplayString(o.displayName||o.name),1)]),_:2},1032,["disabled","onClick"]))),128))])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Divider "),t.enabledProviders?.length?(e.openBlock(),e.createElementBlock("div",Pt,r[7]||(r[7]=[e.createElementVNode("span",{class:"divider-text"},"Or create account with email",-1)]))):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign Up Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleSignUp,["prevent"]),class:"space-y-6"},[e.createCommentVNode(" Email "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",error:t.error},null,8,["modelValue","error"])]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading,loading:t.loading,"loading-text":"Sending magic link..."},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Send magic link ",-1)])),_:1,__:[8]},8,["disabled","loading"])],32),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("div",Dt,[e.createElementVNode("div",Ft,[r[9]||(r[9]=e.createElementVNode("svg",{class:"w-4 h-4 mt-0.5 flex-shrink-0",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",It,e.toDisplayString(t.error),1)])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign in link "),e.createElementVNode("div",Xt,[e.createElementVNode("p",jt,[r[10]||(r[10]=e.createTextVNode(" Already have an account? ",-1)),e.createElementVNode("button",{type:"button",class:"font-semibold text-strands-500 hover:text-strands-600 transition-colors duration-200",onClick:r[1]||(r[1]=o=>s.$emit("switch-to-signin"))}," Sign in ")])]),e.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",Tt,[e.createElementVNode("p",Zt,[r[12]||(r[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[11]||(r[11]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[11]},8,["href"])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])]),_:1,__:[13]})],2112))])}const Ot=q(Ct,[["render",Yt],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignUp.vue"]]),Kt=e.defineComponent({__name:"StrandsCompleteSignUp",props:{token:{type:String,required:!1},redirectUrl:{type:String,required:!1,default:"/"},config:{type:Object,required:!1}},emits:["success","error","invalid-token","request-new-link","start-registration"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getUrl:A,getSupportEmail:o}=B.useStrandsConfig(t.config),{setAuthData:l}=T.useStrandsAuth(),m=e.ref(!1),p=e.ref(!1),V=e.ref(!1),i=e.ref(""),c=e.ref(""),u=e.reactive({username:"",firstName:"",lastName:"",password:""}),d=e.reactive({username:"",firstName:"",lastName:"",password:""}),h=e.computed(()=>{const g=u.username.trim()&&u.password.trim(),x=u.password.length>=8,W=!!t.token;return g&&x&&W});e.watch(()=>u.password,g=>{g&&g.length<8?d.password="Password must be at least 8 characters long":d.password=""}),e.watch(()=>u.username,g=>{g&&g.length<2?d.username="Username must be at least 2 characters long":d.username=""});const b=e.computed(()=>({baseUrl:t.config?.baseUrl||"http://localhost:8000",referrerUrl:t.redirectUrl||"http://localhost:3001"}));e.onMounted(()=>{if(t.token)try{const g=t.token.split(".");if(g.length===3){const x=JSON.parse(atob(g[1]));x.email&&(c.value=x.email)}}catch(g){console.warn("Could not decode token for email display:",g)}});const C=()=>{b.value.referrerUrl&&(console.log("Redirecting to referrer:",b.value.referrerUrl),window.location.href=b.value.referrerUrl)},f={props:t,emit:a,getUrl:A,getSupportEmail:o,setAuthData:l,registrationComplete:m,invalidToken:p,loading:V,error:i,email:c,form:u,fieldErrors:d,isFormValid:h,authConfig:b,redirectToReferrer:C,handleCompleteSignUp:async()=>{if(!t.token){i.value="Registration token is required";return}if(i.value="",Object.keys(d).forEach(g=>{d[g]=""}),!h.value){i.value="Please fill in all required fields correctly";return}V.value=!0;try{const g=await fetch(`${b.value.baseUrl}/api/v1/auth/complete-registration`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t.token,username:u.username,password:u.password,first_name:u.firstName||null,last_name:u.lastName||null})});if(!g.ok){const W=await g.text();throw new Error(`Failed to complete registration: ${W}`)}const x=await g.json();console.log("Registration success:",x),x.access_token&&x.refresh_token&&x.user?(l(x),console.log("Auth tokens stored successfully for user:",x.user.email)):console.warn("Registration response missing auth tokens or user data"),m.value=!0,a("success",x),setTimeout(()=>{C()},2e3)}catch(g){g instanceof Error?g.message.includes("CONFLICT")||g.message.includes("409")?i.value="This account already exists. Please try signing in instead.":g.message.includes("BAD_REQUEST")||g.message.includes("400")?(i.value="Invalid or expired registration link. Please request a new one.",p.value=!0,a("invalid-token")):i.value=g.message:i.value="Failed to complete registration. Please try again.",a("error",i.value)}finally{V.value=!1}},get UiCard(){return F},get UiButton(){return D},get UiInput(){return I},get UiAlert(){return j},get UiLink(){return X},StrandsSecuredFooter:P};return Object.defineProperty(f,"__isScriptSetup",{enumerable:!1,value:!0}),f}}),Qt={key:0,class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Ht={class:"text-center"},Rt={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Gt={class:"text-center"},Jt={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},_t={class:"text-center mb-8"},$t={key:0,class:"mt-2"},er={class:"text-sm text-neutral-500"},tr={class:"font-medium text-neutral-700"},rr={key:1,class:"mt-6 text-center"},or={class:"text-neutral-400 text-sm"},nr={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},sr={class:"text-center"};function ar(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createCommentVNode(" Success State "),t.registrationComplete?(e.openBlock(),e.createElementBlock("div",Qt,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ht,[r[8]||(r[8]=e.createElementVNode("div",{class:"text-green-500 text-6xl mb-4"},"🎉",-1)),r[9]||(r[9]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Welcome to Strands!",-1)),r[10]||(r[10]=e.createElementVNode("p",{class:"text-neutral-600 mb-4"}," Your account has been created successfully. ",-1)),r[11]||(r[11]=e.createElementVNode("p",{class:"text-sm text-neutral-500 mb-6"}," You are now signed in and can access your dashboard. ",-1)),e.createVNode(t.UiButton,{variant:"primary","full-width":"",onClick:t.redirectToReferrer},{default:e.withCtx(()=>r[7]||(r[7]=[e.createTextVNode(" Go to Dashboard ",-1)])),_:1,__:[7]})]),e.createVNode(t.StrandsSecuredFooter)]),_:1})])):t.invalidToken?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Invalid Token State "),e.createElementVNode("div",Rt,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Gt,[r[13]||(r[13]=e.createElementVNode("div",{class:"text-red-500 text-6xl mb-4"},"❌",-1)),r[14]||(r[14]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Invalid Link",-1)),r[15]||(r[15]=e.createElementVNode("p",{class:"text-neutral-600 mb-4"}," This registration link is invalid or has expired. ",-1)),r[16]||(r[16]=e.createElementVNode("p",{class:"text-sm text-neutral-500 mb-6"}," Please request a new magic link to complete your registration. ",-1)),e.createVNode(t.UiButton,{variant:"primary","full-width":"",onClick:r[0]||(r[0]=o=>s.$emit("request-new-link"))},{default:e.withCtx(()=>r[12]||(r[12]=[e.createTextVNode(" Request New Link ",-1)])),_:1,__:[12]})]),e.createVNode(t.StrandsSecuredFooter)]),_:1})])],2112)):n.token?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createCommentVNode(" Registration Form "),e.createElementVNode("div",Jt,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",_t,[r[18]||(r[18]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Complete Your Registration",-1)),r[19]||(r[19]=e.createElementVNode("p",{class:"text-neutral-600"},"Set up your account details to finish registration",-1)),t.email?(e.openBlock(),e.createElementBlock("div",$t,[e.createElementVNode("p",er,[r[17]||(r[17]=e.createTextVNode("Creating account for: ",-1)),e.createElementVNode("span",tr,e.toDisplayString(t.email),1)])])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Registration Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleCompleteSignUp,["prevent"]),class:"space-y-6"},[e.createCommentVNode(" Username "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"username",modelValue:t.form.username,"onUpdate:modelValue":r[1]||(r[1]=o=>t.form.username=o),type:"text",label:"Username",placeholder:"Choose a username",autocomplete:"username",required:"",error:t.fieldErrors.username},null,8,["modelValue","error"])]),e.createCommentVNode(" First Name "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"firstName",modelValue:t.form.firstName,"onUpdate:modelValue":r[2]||(r[2]=o=>t.form.firstName=o),type:"text",label:"First Name (Optional)",placeholder:"Enter your first name",autocomplete:"given-name",error:t.fieldErrors.firstName},null,8,["modelValue","error"])]),e.createCommentVNode(" Last Name "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"lastName",modelValue:t.form.lastName,"onUpdate:modelValue":r[3]||(r[3]=o=>t.form.lastName=o),type:"text",label:"Last Name (Optional)",placeholder:"Enter your last name",autocomplete:"family-name",error:t.fieldErrors.lastName},null,8,["modelValue","error"])]),e.createCommentVNode(" Password "),e.createElementVNode("div",null,[e.createVNode(t.UiInput,{id:"password",modelValue:t.form.password,"onUpdate:modelValue":r[4]||(r[4]=o=>t.form.password=o),type:"password",label:"Password",placeholder:"Create a strong password",autocomplete:"new-password",required:"",minlength:"8",error:t.fieldErrors.password},null,8,["modelValue","error"]),r[20]||(r[20]=e.createElementVNode("div",{class:"mt-2 text-xs text-neutral-500"}," Password must be at least 8 characters long ",-1))]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.isFormValid,loading:t.loading,"loading-text":"Creating account..."},{default:e.withCtx(()=>r[21]||(r[21]=[e.createTextVNode(" Complete Registration ",-1)])),_:1,__:[21]},8,["disabled","loading"])],32),e.createCommentVNode(" Error Alert "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:0,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[5]||(r[5]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",rr,[e.createElementVNode("p",or,[r[23]||(r[23]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[22]||(r[22]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[22]},8,["href"])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])]),_:1})])],2112)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createCommentVNode(" No Token State "),e.createElementVNode("div",nr,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",sr,[r[25]||(r[25]=e.createElementVNode("div",{class:"text-yellow-500 text-6xl mb-4"},"⚠️",-1)),r[26]||(r[26]=e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Missing Token",-1)),r[27]||(r[27]=e.createElementVNode("p",{class:"text-neutral-600 mb-4"}," No registration token was provided. ",-1)),r[28]||(r[28]=e.createElementVNode("p",{class:"text-sm text-neutral-500 mb-6"}," This page requires a valid registration token from the magic link in your email. ",-1)),e.createVNode(t.UiButton,{variant:"primary","full-width":"",onClick:r[6]||(r[6]=o=>s.$emit("start-registration"))},{default:e.withCtx(()=>r[24]||(r[24]=[e.createTextVNode(" Start Registration ",-1)])),_:1,__:[24]})]),e.createVNode(t.StrandsSecuredFooter)]),_:1})])],2112))],2112)}const lr=q(Kt,[["render",ar],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsCompleteSignUp.vue"]]),ir=e.defineComponent({__name:"StrandsUserProfile",props:{user:{type:Object,required:!1},config:{type:Object,required:!1}},emits:["profile-updated","error","manage-sessions","mfa-toggle"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getSupportEmail:A}=B.useStrandsConfig(t.config),o=e.ref(!1),l=e.ref(!1),m=e.ref(""),p=e.ref(""),V=e.ref([{id:"1",device:"Chrome on Mac",location:"San Francisco, CA",lastActive:"2 minutes ago",current:!0},{id:"2",device:"Safari on iPhone",location:"San Francisco, CA",lastActive:"1 hour ago",current:!1}]),i=e.reactive({firstName:"",lastName:"",email:"",phone:""}),c=e.reactive({current:"",new:"",confirm:""}),u=e.reactive({firstName:"",lastName:"",email:"",phone:""}),d=e.computed(()=>t.user?i.firstName!==t.user.firstName||i.lastName!==t.user.lastName||i.email!==t.user.email||i.phone!==(t.user.phone||""):!1),h=e.computed(()=>c.current&&c.new&&c.confirm&&c.new===c.confirm&&c.new.length>=8),b=(v,w)=>!v&&!w?"U":`${v?.[0]||""}${w?.[0]||""}`.toUpperCase();e.watch(()=>t.user,v=>{v&&(i.firstName=v.firstName,i.lastName=v.lastName,i.email=v.email,i.phone=v.phone||"")},{immediate:!0});const C=()=>{m.value="",p.value="",Object.keys(u).forEach(v=>{u[v]=""})},U={props:t,emit:a,getSupportEmail:A,loading:o,showPasswordChange:l,successMessage:m,errorMessage:p,activeSessions:V,form:i,passwordForm:c,errors:u,hasChanges:d,isPasswordFormValid:h,getInitials:b,clearMessages:C,handleUpdateProfile:async()=>{C(),o.value=!0;try{await new Promise(w=>setTimeout(w,1e3));const v={...t.user,...i};m.value="Profile updated successfully",a("profile-updated",v)}catch{p.value="Failed to update profile",a("error",p.value)}finally{o.value=!1}},handlePasswordChange:async()=>{if(h.value){C(),o.value=!0;try{await new Promise(v=>setTimeout(v,1e3)),m.value="Password updated successfully",l.value=!1,c.current="",c.new="",c.confirm=""}catch{p.value="Failed to update password"}finally{o.value=!1}}},handleImageUpload:()=>{a("error","Image upload functionality not yet implemented")},handleMFAToggle:()=>{a("mfa-toggle",!t.user?.mfaEnabled)},handleCancel:()=>{t.user&&(i.firstName=t.user.firstName,i.lastName=t.user.lastName,i.email=t.user.email,i.phone=t.user.phone||""),C(),l.value=!1,c.current="",c.new="",c.confirm=""},StrandsSecuredFooter:P};return Object.defineProperty(U,"__isScriptSetup",{enumerable:!1,value:!0}),U}}),Ar={class:"w-full max-w-2xl mx-auto animate-slide-up"},dr={class:"card-modern"},cr={class:"flex flex-col items-center mb-8"},ur={class:"relative group"},mr={class:"w-24 h-24 rounded-full bg-gradient-to-r from-strands-400 to-strands-600 flex items-center justify-center text-white text-2xl font-bold shadow-large"},fr={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},gr={class:"space-y-4"},pr=["disabled"],Vr={key:0,class:"mt-1 text-sm text-red-600"},vr=["disabled"],Nr={key:0,class:"mt-1 text-sm text-red-600"},hr=["disabled"],Cr={key:0,class:"mt-1 text-sm text-red-600"},yr={key:1,class:"mt-1 text-sm text-yellow-600"},br=["disabled"],wr={key:0,class:"mt-1 text-sm text-red-600"},xr={class:"space-y-4"},kr={class:"space-y-4 p-4 bg-neutral-50 rounded-xl"},qr={class:"flex items-center justify-between"},Sr={key:0,class:"space-y-3"},Br=["disabled"],Er={class:"p-4 bg-neutral-50 rounded-xl"},Ur={class:"flex items-center justify-between"},Wr={class:"text-sm text-neutral-600"},Lr={class:"p-4 bg-neutral-50 rounded-xl"},Mr={class:"flex items-center justify-between"},Pr={class:"text-sm text-neutral-600"},zr={class:"flex flex-col sm:flex-row gap-3 pt-6 border-t border-neutral-200"},Dr=["disabled"],Fr={key:0,class:"flex items-center justify-center gap-2"},Ir={key:1},Xr=["disabled"],jr={key:0,class:"mt-6 animate-fade-in"},Tr={class:"alert-success"},Zr={class:"flex items-start gap-3"},Yr={class:"font-medium"},Or={key:1,class:"mt-6 animate-fade-in"},Kr={class:"alert-error"},Qr={class:"flex items-start gap-3"},Hr={class:"font-medium"},Rr={key:2,class:"mt-6 text-center"},Gr={class:"text-neutral-400 text-sm"};function Jr(s,r,n,t,a,A){const o=e.resolveComponent("UiLink");return e.openBlock(),e.createElementBlock("div",Ar,[e.createElementVNode("div",dr,[e.createCommentVNode(" Header "),r[24]||(r[24]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Profile Settings"),e.createElementVNode("p",{class:"text-neutral-600"},"Manage your account information and preferences")],-1)),e.createCommentVNode(" Profile Image Section "),e.createElementVNode("div",cr,[e.createElementVNode("div",ur,[e.createElementVNode("div",mr,e.toDisplayString(t.getInitials(n.user?.firstName,n.user?.lastName)),1),e.createElementVNode("button",{class:"absolute inset-0 rounded-full bg-black/40 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200",onClick:t.handleImageUpload},r[9]||(r[9]=[e.createElementVNode("svg",{class:"w-6 h-6 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[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"}),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 13a3 3 0 11-6 0 3 3 0 016 0z"})],-1)]))]),e.createElementVNode("button",{class:"mt-3 text-sm text-strands-600 hover:text-strands-700 font-medium transition-colors duration-200",onClick:t.handleImageUpload}," Change photo ")]),e.createCommentVNode(" Profile Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handleUpdateProfile,["prevent"]),class:"space-y-6"},[e.createElementVNode("div",fr,[e.createCommentVNode(" Personal Information "),e.createElementVNode("div",gr,[r[14]||(r[14]=e.createElementVNode("h3",{class:"text-lg font-semibold text-neutral-900 mb-4"},"Personal Information",-1)),e.createElementVNode("div",null,[r[10]||(r[10]=e.createElementVNode("label",{for:"firstName",class:"label-modern"},"First name",-1)),e.withDirectives(e.createElementVNode("input",{id:"firstName","onUpdate:modelValue":r[0]||(r[0]=l=>t.form.firstName=l),type:"text",required:"",autocomplete:"given-name",class:e.normalizeClass(["input-modern",t.errors.firstName&&"input-error"]),placeholder:"Enter your first name",disabled:t.loading},null,10,pr),[[e.vModelText,t.form.firstName]]),t.errors.firstName?(e.openBlock(),e.createElementBlock("p",Vr,e.toDisplayString(t.errors.firstName),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",null,[r[11]||(r[11]=e.createElementVNode("label",{for:"lastName",class:"label-modern"},"Last name",-1)),e.withDirectives(e.createElementVNode("input",{id:"lastName","onUpdate:modelValue":r[1]||(r[1]=l=>t.form.lastName=l),type:"text",required:"",autocomplete:"family-name",class:e.normalizeClass(["input-modern",t.errors.lastName&&"input-error"]),placeholder:"Enter your last name",disabled:t.loading},null,10,vr),[[e.vModelText,t.form.lastName]]),t.errors.lastName?(e.openBlock(),e.createElementBlock("p",Nr,e.toDisplayString(t.errors.lastName),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",null,[r[12]||(r[12]=e.createElementVNode("label",{for:"email",class:"label-modern"},"Email address",-1)),e.withDirectives(e.createElementVNode("input",{id:"email","onUpdate:modelValue":r[2]||(r[2]=l=>t.form.email=l),type:"email",required:"",autocomplete:"email",class:e.normalizeClass(["input-modern",t.errors.email&&"input-error"]),placeholder:"Enter your email address",disabled:t.loading},null,10,hr),[[e.vModelText,t.form.email]]),t.errors.email?(e.openBlock(),e.createElementBlock("p",Cr,e.toDisplayString(t.errors.email),1)):e.createCommentVNode("v-if",!0),t.form.email!==n.user?.email?(e.openBlock(),e.createElementBlock("p",yr," Changing your email will require verification ")):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",null,[r[13]||(r[13]=e.createElementVNode("label",{for:"phone",class:"label-modern"},"Phone number",-1)),e.withDirectives(e.createElementVNode("input",{id:"phone","onUpdate:modelValue":r[3]||(r[3]=l=>t.form.phone=l),type:"tel",autocomplete:"tel",class:e.normalizeClass(["input-modern",t.errors.phone&&"input-error"]),placeholder:"Enter your phone number",disabled:t.loading},null,10,br),[[e.vModelText,t.form.phone]]),t.errors.phone?(e.openBlock(),e.createElementBlock("p",wr,e.toDisplayString(t.errors.phone),1)):e.createCommentVNode("v-if",!0)])]),e.createCommentVNode(" Security Settings "),e.createElementVNode("div",xr,[r[18]||(r[18]=e.createElementVNode("h3",{class:"text-lg font-semibold text-neutral-900 mb-4"},"Security Settings",-1)),e.createCommentVNode(" Password Change "),e.createElementVNode("div",kr,[e.createElementVNode("div",qr,[r[15]||(r[15]=e.createElementVNode("div",null,[e.createElementVNode("h4",{class:"font-medium text-neutral-900"},"Password"),e.createElementVNode("p",{class:"text-sm text-neutral-600"},"Last updated 30 days ago")],-1)),e.createElementVNode("button",{type:"button",class:"btn-secondary !w-auto px-4 py-2 text-sm",onClick:r[4]||(r[4]=l=>t.showPasswordChange=!t.showPasswordChange)},e.toDisplayString(t.showPasswordChange?"Cancel":"Change"),1)]),t.showPasswordChange?(e.openBlock(),e.createElementBlock("div",Sr,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[5]||(r[5]=l=>t.passwordForm.current=l),type:"password",placeholder:"Current password",class:"input-modern",autocomplete:"current-password"},null,512),[[e.vModelText,t.passwordForm.current]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[6]||(r[6]=l=>t.passwordForm.new=l),type:"password",placeholder:"New password",class:"input-modern",autocomplete:"new-password"},null,512),[[e.vModelText,t.passwordForm.new]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[7]||(r[7]=l=>t.passwordForm.confirm=l),type:"password",placeholder:"Confirm new password",class:"input-modern",autocomplete:"new-password"},null,512),[[e.vModelText,t.passwordForm.confirm]]),e.createElementVNode("button",{type:"button",class:"btn-primary !w-auto px-4 py-2 text-sm",onClick:t.handlePasswordChange,disabled:!t.isPasswordFormValid}," Update Password ",8,Br)])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Two-Factor Authentication "),e.createElementVNode("div",Er,[e.createElementVNode("div",Ur,[e.createElementVNode("div",null,[r[16]||(r[16]=e.createElementVNode("h4",{class:"font-medium text-neutral-900"},"Two-Factor Authentication",-1)),e.createElementVNode("p",Wr,e.toDisplayString(n.user?.mfaEnabled?"Enabled":"Add extra security to your account"),1)]),e.createElementVNode("button",{type:"button",class:e.normalizeClass([n.user?.mfaEnabled?"btn-secondary":"btn-primary","!w-auto px-4 py-2 text-sm"]),onClick:t.handleMFAToggle},e.toDisplayString(n.user?.mfaEnabled?"Disable":"Enable"),3)])]),e.createCommentVNode(" Active Sessions "),e.createElementVNode("div",Lr,[e.createElementVNode("div",Mr,[e.createElementVNode("div",null,[r[17]||(r[17]=e.createElementVNode("h4",{class:"font-medium text-neutral-900"},"Active Sessions",-1)),e.createElementVNode("p",Pr,e.toDisplayString(t.activeSessions.length)+" active device(s)",1)]),e.createElementVNode("button",{type:"button",class:"btn-secondary !w-auto px-4 py-2 text-sm",onClick:r[8]||(r[8]=l=>s.$emit("manage-sessions"))}," Manage ")])])])]),e.createCommentVNode(" Action Buttons "),e.createElementVNode("div",zr,[e.createElementVNode("button",{type:"submit",disabled:t.loading||!t.hasChanges,class:"btn-primary"},[t.loading?(e.openBlock(),e.createElementBlock("span",Fr,r[19]||(r[19]=[e.createElementVNode("svg",{class:"animate-spin w-4 h-4",fill:"none",viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e.createElementVNode("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"})],-1),e.createTextVNode(" Saving changes... ",-1)]))):(e.openBlock(),e.createElementBlock("span",Ir,"Save changes"))],8,Dr),e.createElementVNode("button",{type:"button",class:"btn-secondary",onClick:t.handleCancel,disabled:t.loading}," Cancel ",8,Xr)])],32),e.createCommentVNode(" Success/Error Messages "),t.successMessage?(e.openBlock(),e.createElementBlock("div",jr,[e.createElementVNode("div",Tr,[e.createElementVNode("div",Zr,[r[20]||(r[20]=e.createElementVNode("svg",{class:"w-4 h-4 mt-0.5 flex-shrink-0",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",Yr,e.toDisplayString(t.successMessage),1)])])])):e.createCommentVNode("v-if",!0),t.errorMessage?(e.openBlock(),e.createElementBlock("div",Or,[e.createElementVNode("div",Kr,[e.createElementVNode("div",Qr,[r[21]||(r[21]=e.createElementVNode("svg",{class:"w-4 h-4 mt-0.5 flex-shrink-0",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",Hr,e.toDisplayString(t.errorMessage),1)])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",Rr,[e.createElementVNode("p",Gr,[r[23]||(r[23]=e.createTextVNode(" Need help? ",-1)),e.createVNode(o,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[22]||(r[22]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[22]},8,["href"])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])])])}const _r=q(ir,[["render",Jr],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsUserProfile.vue"]]),$r=e.defineComponent({__name:"StrandsPasswordReset",props:{config:{type:Object,required:!1}},emits:["success","error","back-to-signin"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{getSupportEmail:A}=B.useStrandsConfig(t.config),o=e.ref(!1),l=e.ref(""),m=e.ref(!1),p=e.reactive({email:""}),i={props:t,emit:a,getSupportEmail:A,loading:o,error:l,isSubmitted:m,form:p,handlePasswordReset:async()=>{o.value=!0,l.value="";try{console.log("Password reset request:",{email:p.email}),await new Promise(c=>setTimeout(c,1e3)),m.value=!0,a("success",p.email)}catch{l.value="Failed to send password reset email. Please try again.",a("error",l.value)}finally{o.value=!1}},get UiCard(){return F},get UiButton(){return D},get UiInput(){return I},get UiAlert(){return j},get UiLink(){return X},StrandsSecuredFooter:P};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),eo={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},to={class:"mt-8 text-center"},ro={key:2,class:"mt-6 text-center"},oo={class:"text-neutral-400 text-sm"};function no(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",eo,[e.createVNode(t.UiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),r[6]||(r[6]=e.createElementVNode("div",{class:"text-center mb-8"},[e.createElementVNode("h1",{class:"text-3xl font-bold text-gradient mb-2"},"Reset password"),e.createElementVNode("p",{class:"text-neutral-600"},"Enter your email address and we'll send you a link to reset your password")],-1)),e.createCommentVNode(" Reset Form "),e.createElementVNode("form",{onSubmit:e.withModifiers(t.handlePasswordReset,["prevent"]),class:"space-y-6"},[e.createVNode(t.UiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",disabled:t.loading||t.isSubmitted,error:t.error?"Email address not found":void 0},null,8,["modelValue","disabled","error"]),e.createVNode(t.UiButton,{type:"submit",variant:"primary","full-width":"",disabled:t.loading||!t.form.email.trim()||t.isSubmitted,loading:t.loading,"loading-text":"Sending link..."},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.isSubmitted?"Link sent!":"Send reset link"),1)]),_:1},8,["disabled","loading"])],32),e.createCommentVNode(" Success Message "),t.isSubmitted?(e.openBlock(),e.createBlock(t.UiAlert,{key:0,variant:"success",message:`Check your email - We've sent a password reset link to ${t.form.email}`,class:"mt-6 animate-fade-in"},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Error Message "),t.error?(e.openBlock(),e.createBlock(t.UiAlert,{key:1,variant:"error",message:t.error,class:"mt-6 animate-fade-in",dismissible:"",onDismiss:r[1]||(r[1]=o=>t.error="")},null,8,["message"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Back to Sign In "),e.createElementVNode("div",to,[e.createVNode(t.UiLink,{onClick:r[2]||(r[2]=o=>s.$emit("back-to-signin")),class:"inline-flex items-center gap-2"},{default:e.withCtx(()=>r[3]||(r[3]=[e.createElementVNode("svg",{class:"w-4 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.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",ro,[e.createElementVNode("p",oo,[r[5]||(r[5]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.UiLink,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[4]||(r[4]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[4]},8,["href"])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])]),_:1,__:[6]})])}const so=q($r,[["render",no],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsPasswordReset.vue"]]),ao=e.defineComponent({__name:"StrandsMFASetup",emits:["success","error","back"],setup(s,{expose:r}){r();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),lo={class:"max-w-md mx-auto bg-white rounded-lg shadow-lg p-6"},io={class:"space-y-6"},Ao={class:"flex gap-3 pt-4"};function co(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("div",lo,[r[5]||(r[5]=e.createElementVNode("div",{class:"text-center mb-6"},[e.createElementVNode("h2",{class:"text-2xl font-bold text-gray-900"},"Two-Factor Authentication"),e.createElementVNode("p",{class:"text-gray-600 mt-2"},"Secure your account with 2FA")],-1)),e.createElementVNode("div",io,[e.createCommentVNode(" QR Code Section "),r[2]||(r[2]=e.createStaticVNode('<div class="text-center"><div class="w-48 h-48 bg-gray-100 rounded-lg mx-auto mb-4 flex items-center justify-center"><div class="text-gray-400"><svg class="w-12 h-12" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M12 12h.01M12 12v4.01"></path></svg></div></div><p class="text-sm text-gray-600">Scan this QR code with your authenticator app</p></div>',1)),e.createCommentVNode(" Setup Key "),r[3]||(r[3]=e.createElementVNode("div",null,[e.createElementVNode("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Setup Key (manual entry)"),e.createElementVNode("div",{class:"p-3 bg-gray-50 rounded border text-sm font-mono break-all"}," XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX ")],-1)),e.createCommentVNode(" Verification Code Input "),r[4]||(r[4]=e.createElementVNode("div",null,[e.createElementVNode("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Verification Code"),e.createElementVNode("input",{type:"text",placeholder:"Enter 6-digit code",class:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-strands-500 focus:border-strands-500",maxlength:"6"}),e.createElementVNode("p",{class:"text-xs text-gray-500 mt-1"},"Enter the 6-digit code from your authenticator app")],-1)),e.createCommentVNode(" Actions "),e.createElementVNode("div",Ao,[r[1]||(r[1]=e.createElementVNode("button",{type:"button",class:"flex-1 bg-strands-500 text-white py-2 px-4 rounded-md hover:bg-strands-600 focus:outline-none focus:ring-2 focus:ring-strands-500 focus:ring-offset-2 transition-colors"}," Enable 2FA ",-1)),e.createElementVNode("button",{type:"button",class:"flex-1 bg-gray-200 text-gray-800 py-2 px-4 rounded-md hover:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 transition-colors",onClick:r[0]||(r[0]=o=>s.$emit("back"))}," Cancel ")])])])}const uo=q(ao,[["render",co],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsMFASetup.vue"]]),mo=e.defineComponent({__name:"SignedIn",props:{showFallback:{type:Boolean,required:!1,default:!0}},emits:["sign-in-required"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{isAuthenticated:A,user:o,signOut:l}=T.useStrandsAuth(),p={props:t,emit:a,isAuthenticated:A,user:o,signOut:l,signIn:()=>{a("sign-in-required")}};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),fo={key:0,class:"animate-fade-in"},go={key:1,class:"animate-fade-in"};function po(s,r,n,t,a,A){return t.isAuthenticated?(e.openBlock(),e.createElementBlock("div",fo,[e.renderSlot(s.$slots,"default",{user:t.user,signOut:t.signOut})])):n.showFallback?(e.openBlock(),e.createElementBlock("div",go,[e.renderSlot(s.$slots,"fallback",{signIn:t.signIn},()=>[e.createCommentVNode(" Default fallback content "),e.createElementVNode("div",{class:"text-center py-8"},[r[0]||(r[0]=e.createStaticVNode('<div class="w-16 h-16 mx-auto mb-4 bg-neutral-100 rounded-full flex items-center justify-center"><svg class="w-8 h-8 text-neutral-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div><h3 class="text-lg font-semibold text-neutral-900 mb-2">Sign in required</h3><p class="text-neutral-600 mb-4">You need to be signed in to access this content.</p>',3)),e.createElementVNode("button",{onClick:t.signIn,class:"btn-primary !w-auto px-6 py-2"}," Sign in ")])])])):e.createCommentVNode("v-if",!0)}const Vo=q(mo,[["render",po],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedIn.vue"]]),vo=e.defineComponent({__name:"SignedOut",props:{showFallback:{type:Boolean,required:!1,default:!0}},emits:["sign-in-clicked","sign-up-clicked"],setup(s,{expose:r,emit:n}){r();const t=s,a=n,{isAuthenticated:A,isLoading:o,user:l,signOut:m}=T.useStrandsAuth(),i={props:t,emit:a,isAuthenticated:A,isLoading:o,user:l,signOut:m,signIn:()=>{a("sign-in-clicked")},signUp:()=>{a("sign-up-clicked")}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),No={key:0,class:"animate-fade-in"},ho={key:1,class:"animate-fade-in"},Co={class:"text-center py-8"},yo={class:"text-neutral-600 mb-4"},bo={key:2,class:"animate-pulse"};function wo(s,r,n,t,a,A){return!t.isAuthenticated&&!t.isLoading?(e.openBlock(),e.createElementBlock("div",No,[e.renderSlot(s.$slots,"default",{signIn:t.signIn,signUp:t.signUp})])):n.showFallback&&t.isAuthenticated?(e.openBlock(),e.createElementBlock("div",ho,[e.renderSlot(s.$slots,"fallback",{user:t.user,signOut:t.signOut},()=>[e.createCommentVNode(" Default fallback content for signed in users "),e.createElementVNode("div",Co,[r[1]||(r[1]=e.createElementVNode("div",{class:"w-16 h-16 mx-auto mb-4 bg-strands-100 rounded-full flex items-center justify-center"},[e.createElementVNode("svg",{class:"w-8 h-8 text-strands-600",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)),r[2]||(r[2]=e.createElementVNode("h3",{class:"text-lg font-semibold text-neutral-900 mb-2"},"Already signed in",-1)),e.createElementVNode("p",yo,"You're currently signed in as "+e.toDisplayString(t.user?.email)+".",1),e.createElementVNode("button",{onClick:r[0]||(r[0]=(...o)=>t.signOut&&t.signOut(...o)),class:"btn-secondary !w-auto px-6 py-2"}," Sign out ")])])])):t.isLoading?(e.openBlock(),e.createElementBlock("div",bo,[e.renderSlot(s.$slots,"loading",{},()=>[e.createCommentVNode(" Default loading state "),r[3]||(r[3]=e.createStaticVNode('<div class="text-center py-8"><div class="w-16 h-16 mx-auto mb-4 bg-neutral-200 rounded-full flex items-center justify-center"><svg class="animate-spin w-6 h-6 text-neutral-400" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="m4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg></div><p class="text-neutral-500">Checking authentication...</p></div>',1))])])):e.createCommentVNode("v-if",!0)}const xo=q(vo,[["render",wo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedOut.vue"]]),ko=e.defineComponent({__name:"StrandsLogo",props:{class:{type:String,required:!1,default:""}},setup(s,{expose:r}){r();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function qo(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 22571 9413",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(n.class),role:"img","aria-label":"Strands Services Logo"},r[0]||(r[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)}const So=q(ko,[["render",qo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsLogo.vue"]]),Bo=e.defineComponent({__name:"StrandsConfigProvider",props:{config:{type:Object,required:!0}},setup(s,{expose:r}){r();const n=s;e.onMounted(()=>{B.provideStrandsConfig(n.config)}),B.provideStrandsConfig(n.config);const t={props:n};return Object.defineProperty(t,"__isScriptSetup",{enumerable:!1,value:!0}),t}});function Eo(s,r,n,t,a,A){return e.renderSlot(s.$slots,"default")}const Uo=q(Bo,[["render",Eo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsConfigProvider.vue"]]),Wo=e.defineComponent({__name:"SvgIcon",props:{name:{type:String,required:!0},class:{type:String,required:!1,default:""},size:{type:String,required:!1,default:"md"},fill:{type:String,required:!1,default:"none"},stroke:{type:String,required:!1,default:"currentColor"},ariaHidden:{type:Boolean,required:!1,default:!0}},setup(s,{expose:r}){r();const n=s,t={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"},a=e.computed(()=>`${t[n.size]} ${n.class}`),A=e.computed(()=>"0 0 24 24"),o={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 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"}),"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"})},l=e.computed(()=>{const p=o[n.name];return p?p():e.h("path",{d:""})}),m={props:n,sizeClasses:t,iconClass:a,viewBox:A,icons:o,iconComponent:l};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),Lo=["fill","stroke","viewBox","aria-hidden"];function Mo(s,r,n,t,a,A){return e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(t.iconClass),fill:n.fill,stroke:n.stroke,viewBox:t.viewBox,"aria-hidden":n.ariaHidden},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))],10,Lo)}const Po=q(Wo,[["render",Mo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SvgIcon.vue"]]),zo=s=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(s),Do=s=>{const r=[];let n=0;s.length<8?r.push("Password must be at least 8 characters long"):n+=1,/[A-Z]/.test(s)?n+=1:r.push("Password must contain at least one uppercase letter"),/[a-z]/.test(s)?n+=1:r.push("Password must contain at least one lowercase letter"),/\d/.test(s)?n+=1:r.push("Password must contain at least one number"),/[!@#$%^&*(),.?":{}|<>]/.test(s)?n+=1:r.push("Password must contain at least one special character");const t=r.length===0;let a="weak";return n>=4?a="strong":n>=3&&(a="medium"),{isValid:t,strength:a,errors:r}},Fo=s=>s.trim().length>=2,Io=s=>/^[\+]?[1-9][\d]{0,15}$/.test(s.replace(/[\s\-\(\)]/g,"")),Xo=s=>s.trim().length>0,jo=(s,r)=>s===r,To=(s,r)=>{const n=s?.charAt(0).toUpperCase()||"",t=r?.charAt(0).toUpperCase()||"";return n+t||"U"},Zo=s=>(typeof s=="string"?new Date(s):s).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),Yo=(s,r)=>{let n;return(...t)=>{clearTimeout(n),n=setTimeout(()=>s(...t),r)}};exports.provideStrandsConfig=B.provideStrandsConfig;exports.setStrandsConfig=B.setStrandsConfig;exports.useStrandsConfig=B.useStrandsConfig;exports.useStrandsAuth=T.useStrandsAuth;exports.SignedIn=Vo;exports.SignedOut=xo;exports.StrandsAuth=tt;exports.StrandsCompleteSignUp=lr;exports.StrandsConfigProvider=Uo;exports.StrandsLogo=So;exports.StrandsMFASetup=uo;exports.StrandsPasswordReset=so;exports.StrandsSecuredFooter=P;exports.StrandsSignIn=ht;exports.StrandsSignUp=Ot;exports.StrandsUserProfile=_r;exports.SvgIcon=Po;exports.UiAlert=j;exports.UiButton=D;exports.UiCard=F;exports.UiInput=I;exports.UiLink=X;exports.UiTabs=O;exports.debounce=Yo;exports.formatDate=Zo;exports.getInitials=To;exports.isRequired=Xo;exports.isValidEmail=zo;exports.isValidName=Fo;exports.isValidPhone=Io;exports.passwordsMatch=jo;exports.useOAuthProviders=Z;exports.validatePassword=Do;
2
2
  //# sourceMappingURL=strands-auth-ui.cjs.js.map