@strands.gg/accui 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/strands-auth-ui.cjs.js +2 -2
- package/dist/strands-auth-ui.cjs.js.map +1 -1
- package/dist/strands-auth-ui.es.js +227 -226
- package/dist/strands-auth-ui.es.js.map +1 -1
- package/dist/vue/components/SignedOut.vue.d.ts.map +1 -1
- package/dist/vue/index.d.ts +2 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/plugins/StrandsUIPlugin.d.ts +18 -0
- package/dist/vue/plugins/StrandsUIPlugin.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),E=require("./useStrandsConfig-R8O__glt.cjs"),P=require("./useStrandsAuth-C_MiRZbU.cjs"),R=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(a,{expose:r}){r();const n=a,t=e.computed(()=>{const N=["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[...N,v[n.variant]].join(" ")}),s=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(" ")),i=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(" ")),c=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:s,messageClasses:i,dismissClasses:o,iconPath:c};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),q=(a,r)=>{const n=a.__vccOpts||a;for(const[t,s]of r)n[t]=s;return n},G={class:"flex items-start"},J={class:"flex-shrink-0"},_={class:"h-5 w-5",fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true"},$=["d"],ee={class:"ml-3 flex-1"},te={key:0,class:"ml-auto pl-3"};function re(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.alertClasses),role:"alert"},[e.createElementVNode("div",G,[e.createElementVNode("div",J,[(e.openBlock(),e.createElementBlock("svg",_,[e.createElementVNode("path",{"fill-rule":"evenodd",d:t.iconPath,"clip-rule":"evenodd"},null,8,$)]))]),e.createElementVNode("div",ee,[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(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])],2)]),n.dismissible?(e.openBlock(),e.createElementBlock("div",te,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(t.dismissClasses),onClick:r[0]||(r[0]=o=>a.$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 Z=q(R,[["render",re],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiAlert.vue"]]),oe=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(a,{expose:r}){r();const n=a,t=e.computed(()=>{const i=["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"},c={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[...i,o[n.size],c[n.variant],p].filter(Boolean).join(" ")}),s={props:n,buttonClasses:t};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),ne=["type","disabled"],ae={key:0,class:"flex items-center justify-center gap-2"},se={key:1,class:"flex items-center justify-center gap-2"};function le(a,r,n,t,s,i){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=>a.$emit("click",o))},[n.loading?(e.openBlock(),e.createElementBlock("span",ae,[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",se,[e.renderSlot(a.$slots,"icon"),e.renderSlot(a.$slots,"default")]))],10,ne)}const z=q(oe,[["render",le],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiButton.vue"]]),ie=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(a,{expose:r}){r();const n=a,t=e.computed(()=>{const i=["bg-white border border-gray-200"],o={default:"rounded-lg",modern:"rounded-2xl backdrop-blur-lg",minimal:"rounded-md"},c={sm:"p-4",md:"p-6",lg:"p-8"},p={none:"",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"};return[...i,o[n.variant],c[n.padding],p[n.shadow]].filter(Boolean).join(" ")}),s={props:n,cardClasses:t};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),de={key:0,class:"border-b border-gray-200 pb-4 mb-6"},Ae={class:"space-y-6"},ce={key:1,class:"border-t border-gray-200 pt-4 mt-6"};function ue(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.cardClasses)},[a.$slots.header?(e.openBlock(),e.createElementBlock("div",de,[e.renderSlot(a.$slots,"header")])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Ae,[e.renderSlot(a.$slots,"default")]),a.$slots.footer?(e.openBlock(),e.createElementBlock("div",ce,[e.renderSlot(a.$slots,"footer")])):e.createCommentVNode("v-if",!0)],2)}const j=q(ie,[["render",ue],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiCard.vue"]]),me=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(a,{expose:r,emit:n}){r();const t=a,s=n,i=e.useSlots(),o=e.ref(!1),c=e.ref(`input-${Math.random().toString(36).substr(2,9)}`),p=e.computed(()=>t.type==="password"?o.value?"text":"password":t.type),N=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"],A={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":"",y=i.icon?"pl-10":"",x=t.type==="password"?"pr-10":"";return[...u,A[t.size],h,y,x].filter(Boolean).join(" ")}),V={props:t,emit:s,slots:i,showPassword:o,inputId:c,computedType:p,inputClasses:N,handleInput:u=>{const A=u.target;s("update:modelValue",A.value)},togglePasswordVisibility:()=>{o.value=!o.value}};return Object.defineProperty(V,"__isScriptSetup",{enumerable:!1,value:!0}),V}}),fe={class:"space-y-1"},ge=["for"],pe={key:0,class:"text-red-500"},Ve={class:"relative"},ve=["id","type","value","placeholder","disabled","required","autocomplete"],Ne={key:0,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},he={key:1,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ye={key:1,class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},Ce={key:1,class:"text-sm text-red-600"},we={key:2,class:"text-sm text-gray-500"};function be(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",fe,[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",pe,"*")):e.createCommentVNode("v-if",!0)],8,ge)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Ve,[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=>a.$emit("blur",o)),onFocus:r[1]||(r[1]=o=>a.$emit("focus",o))},null,42,ve),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",Ne,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",he,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 "),a.$slots.icon?(e.openBlock(),e.createElementBlock("div",ye,[e.renderSlot(a.$slots,"icon",{},void 0,!0)])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Help text or error message "),n.error?(e.openBlock(),e.createElementBlock("p",Ce,e.toDisplayString(n.error),1)):n.helpText?(e.openBlock(),e.createElementBlock("p",we,e.toDisplayString(n.helpText),1)):e.createCommentVNode("v-if",!0)])}const F=q(me,[["render",be],["__scopeId","data-v-e87dc617"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiInput.vue"]]),Se=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(a,{expose:r,emit:n}){r();const t=a,s=n,i=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}),c=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"],d={sm:"text-xs",md:"text-sm",lg:"text-base"},V={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,d[t.size],V[t.variant]].filter(Boolean).join(" ")}),N={props:t,emit:s,tag:i,linkProps:o,linkClasses:c,handleClick:v=>{t.disabled||s("click",v)}};return Object.defineProperty(N,"__isScriptSetup",{enumerable:!1,value:!0}),N}});function xe(a,r,n,t,s,i){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),e.mergeProps({class:t.linkClasses},t.linkProps,{onClick:t.handleClick}),{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},16,["class"])}const I=q(Se,[["render",xe],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLink.vue"]]),ke=e.defineComponent({__name:"UiTabs",props:{modelValue:{type:String,required:!0},tabs:{type:Array,required:!0}},emits:["update:modelValue"],setup(a,{expose:r,emit:n}){r();const t=a,s=n,i=e.ref([]),o=e.ref({width:"0px",left:"0px",opacity:"0"});let c=-1,p=!1;const N=async(A,h)=>{p||(s("update:modelValue",A),await e.nextTick(),v(h))},v=async A=>{if(!i.value[A]||A===c)return;p=!0;const h=i.value[A],y=h.parentElement;if(!y)return;const x=h.getBoundingClientRect(),g=y.getBoundingClientRect(),m=x.left-g.left,l=x.width;if(c===-1){o.value={width:`${l}px`,left:`${m}px`,opacity:"1"},c=A,p=!1;return}const U=i.value[c].getBoundingClientRect(),L=U.left-g.left,k=U.width,w=A>c,B=w?L:m,M=w?m+l-L:L+k-m;o.value={width:`${M}px`,left:`${B}px`,opacity:"1"},setTimeout(()=>{o.value={width:`${l}px`,left:`${m}px`,opacity:"1"},c=A,setTimeout(()=>{p=!1},150)},120)};e.onMounted(async()=>{await e.nextTick();const A=t.tabs.findIndex(h=>h.value===t.modelValue);A!==-1&&v(A)});const d=e.computed(()=>t.tabs.findIndex(A=>A.value===t.modelValue)),{modelValue:V}=e.toRefs(t);e.watch(V,async()=>{await e.nextTick();const A=t.tabs.findIndex(h=>h.value===t.modelValue);A!==-1&&v(A)});const u={props:t,emit:s,tabButtons:i,underlineStyle:o,get currentTabIndex(){return c},set currentTabIndex(A){c=A},get isAnimating(){return p},set isAnimating(A){p=A},handleTabClick:N,animateUnderlineStretch:v,activeTabIndex:d,modelValue:V};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),qe={class:"relative"},Be={class:"relative flex border-b border-neutral-200",role:"tablist"},Ue=["aria-selected","aria-controls","id","onClick"];function Ee(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",qe,[e.createCommentVNode(" Tab List "),e.createElementVNode("div",Be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabs,(o,c)=>(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,c)},e.toDisplayString(o.label),11,Ue))),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 Q=q(ke,[["render",Ee],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiTabs.vue"]]),We=e.defineComponent({__name:"UiLoader",props:{size:{type:Number,required:!1,default:48},variant:{type:String,required:!1,default:"auto"},text:{type:String,required:!1},showParticles:{type:Boolean,required:!1,default:!0},centered:{type:Boolean,required:!1,default:!0}},setup(a,{expose:r}){r();const n=a,t=e.ref(Math.random().toString(36).substr(2,9)),s=e.computed(()=>`url(#gradient-${t.value})`),i=e.computed(()=>["flex flex-col items-center gap-4",n.centered?"justify-center":""].filter(Boolean).join(" ")),o=e.computed(()=>["text-sm font-medium animate-pulse",n.variant==="light"?"text-gray-600":n.variant==="dark"?"text-gray-300":"text-gray-600 dark:text-gray-300"].filter(Boolean).join(" ")),c=e.computed(()=>["absolute w-1 h-1 rounded-full animate-float",n.variant==="light"?"bg-strands-400":n.variant==="dark"?"bg-white/40":"bg-strands-400 dark:bg-white/40"].filter(Boolean).join(" ")),p={props:n,componentId:t,gradientId:s,containerClasses:i,textClasses:o,particleClasses:c};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Le={class:"relative"},Me=["width","height"],Pe=["stroke"],ze=["stroke"],Fe=["stroke"],Ie=["fill"],De=["id"],Xe=["stop-color"],je=["stop-color"],Te=["stop-color"],Ze={key:0,class:"absolute inset-0 pointer-events-none"};function Ye(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.containerClasses)},[e.createElementVNode("div",Le,[e.createCommentVNode(" Main animated SVG "),(e.openBlock(),e.createElementBlock("svg",{width:n.size,height:n.size,viewBox:"0 0 100 100",class:"animate-spin-slow"},[e.createCommentVNode(" Outer decorative ring "),e.createElementVNode("circle",{cx:"50",cy:"50",r:"45",fill:"none",stroke:n.variant==="light"?"rgba(234, 0, 168, 0.1)":"rgba(255, 255, 255, 0.1)","stroke-width":"1",class:"animate-pulse"},null,8,Pe),e.createCommentVNode(' Main animated path - Strands "S" inspired curve '),e.createElementVNode("path",{d:`M 25 20
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),E=require("./useStrandsConfig-R8O__glt.cjs"),P=require("./useStrandsAuth-C_MiRZbU.cjs"),R=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(a,{expose:r}){r();const n=a,t=e.computed(()=>{const N=["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[...N,v[n.variant]].join(" ")}),s=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(" ")),i=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(" ")),c=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:s,messageClasses:i,dismissClasses:o,iconPath:c};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),q=(a,r)=>{const n=a.__vccOpts||a;for(const[t,s]of r)n[t]=s;return n},G={class:"flex items-start"},J={class:"flex-shrink-0"},_={class:"h-5 w-5",fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true"},$=["d"],ee={class:"ml-3 flex-1"},te={key:0,class:"ml-auto pl-3"};function re(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.alertClasses),role:"alert"},[e.createElementVNode("div",G,[e.createElementVNode("div",J,[(e.openBlock(),e.createElementBlock("svg",_,[e.createElementVNode("path",{"fill-rule":"evenodd",d:t.iconPath,"clip-rule":"evenodd"},null,8,$)]))]),e.createElementVNode("div",ee,[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(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])],2)]),n.dismissible?(e.openBlock(),e.createElementBlock("div",te,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(t.dismissClasses),onClick:r[0]||(r[0]=o=>a.$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 Z=q(R,[["render",re],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiAlert.vue"]]),oe=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(a,{expose:r}){r();const n=a,t=e.computed(()=>{const i=["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"},c={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[...i,o[n.size],c[n.variant],p].filter(Boolean).join(" ")}),s={props:n,buttonClasses:t};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),ne=["type","disabled"],ae={key:0,class:"flex items-center justify-center gap-2"},se={key:1,class:"flex items-center justify-center gap-2"};function le(a,r,n,t,s,i){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=>a.$emit("click",o))},[n.loading?(e.openBlock(),e.createElementBlock("span",ae,[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",se,[e.renderSlot(a.$slots,"icon"),e.renderSlot(a.$slots,"default")]))],10,ne)}const z=q(oe,[["render",le],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiButton.vue"]]),ie=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(a,{expose:r}){r();const n=a,t=e.computed(()=>{const i=["bg-white border border-gray-200"],o={default:"rounded-lg",modern:"rounded-2xl backdrop-blur-lg",minimal:"rounded-md"},c={sm:"p-4",md:"p-6",lg:"p-8"},p={none:"",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"};return[...i,o[n.variant],c[n.padding],p[n.shadow]].filter(Boolean).join(" ")}),s={props:n,cardClasses:t};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),de={key:0,class:"border-b border-gray-200 pb-4 mb-6"},Ae={class:"space-y-6"},ce={key:1,class:"border-t border-gray-200 pt-4 mt-6"};function ue(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.cardClasses)},[a.$slots.header?(e.openBlock(),e.createElementBlock("div",de,[e.renderSlot(a.$slots,"header")])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Ae,[e.renderSlot(a.$slots,"default")]),a.$slots.footer?(e.openBlock(),e.createElementBlock("div",ce,[e.renderSlot(a.$slots,"footer")])):e.createCommentVNode("v-if",!0)],2)}const j=q(ie,[["render",ue],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiCard.vue"]]),me=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(a,{expose:r,emit:n}){r();const t=a,s=n,i=e.useSlots(),o=e.ref(!1),c=e.ref(`input-${Math.random().toString(36).substr(2,9)}`),p=e.computed(()=>t.type==="password"?o.value?"text":"password":t.type),N=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"],A={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":"",y=i.icon?"pl-10":"",x=t.type==="password"?"pr-10":"";return[...u,A[t.size],h,y,x].filter(Boolean).join(" ")}),V={props:t,emit:s,slots:i,showPassword:o,inputId:c,computedType:p,inputClasses:N,handleInput:u=>{const A=u.target;s("update:modelValue",A.value)},togglePasswordVisibility:()=>{o.value=!o.value}};return Object.defineProperty(V,"__isScriptSetup",{enumerable:!1,value:!0}),V}}),fe={class:"space-y-1"},ge=["for"],pe={key:0,class:"text-red-500"},Ve={class:"relative"},ve=["id","type","value","placeholder","disabled","required","autocomplete"],Ne={key:0,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},he={key:1,class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ye={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 be(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",fe,[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",pe,"*")):e.createCommentVNode("v-if",!0)],8,ge)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Ve,[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=>a.$emit("blur",o)),onFocus:r[1]||(r[1]=o=>a.$emit("focus",o))},null,42,ve),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",Ne,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",he,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 "),a.$slots.icon?(e.openBlock(),e.createElementBlock("div",ye,[e.renderSlot(a.$slots,"icon",{},void 0,!0)])):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 F=q(me,[["render",be],["__scopeId","data-v-e87dc617"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiInput.vue"]]),Se=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(a,{expose:r,emit:n}){r();const t=a,s=n,i=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}),c=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"],d={sm:"text-xs",md:"text-sm",lg:"text-base"},V={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,d[t.size],V[t.variant]].filter(Boolean).join(" ")}),N={props:t,emit:s,tag:i,linkProps:o,linkClasses:c,handleClick:v=>{t.disabled||s("click",v)}};return Object.defineProperty(N,"__isScriptSetup",{enumerable:!1,value:!0}),N}});function xe(a,r,n,t,s,i){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),e.mergeProps({class:t.linkClasses},t.linkProps,{onClick:t.handleClick}),{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},16,["class"])}const I=q(Se,[["render",xe],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLink.vue"]]),ke=e.defineComponent({__name:"UiTabs",props:{modelValue:{type:String,required:!0},tabs:{type:Array,required:!0}},emits:["update:modelValue"],setup(a,{expose:r,emit:n}){r();const t=a,s=n,i=e.ref([]),o=e.ref({width:"0px",left:"0px",opacity:"0"});let c=-1,p=!1;const N=async(A,h)=>{p||(s("update:modelValue",A),await e.nextTick(),v(h))},v=async A=>{if(!i.value[A]||A===c)return;p=!0;const h=i.value[A],y=h.parentElement;if(!y)return;const x=h.getBoundingClientRect(),g=y.getBoundingClientRect(),m=x.left-g.left,l=x.width;if(c===-1){o.value={width:`${l}px`,left:`${m}px`,opacity:"1"},c=A,p=!1;return}const U=i.value[c].getBoundingClientRect(),L=U.left-g.left,k=U.width,C=A>c,B=C?L:m,M=C?m+l-L:L+k-m;o.value={width:`${M}px`,left:`${B}px`,opacity:"1"},setTimeout(()=>{o.value={width:`${l}px`,left:`${m}px`,opacity:"1"},c=A,setTimeout(()=>{p=!1},150)},120)};e.onMounted(async()=>{await e.nextTick();const A=t.tabs.findIndex(h=>h.value===t.modelValue);A!==-1&&v(A)});const d=e.computed(()=>t.tabs.findIndex(A=>A.value===t.modelValue)),{modelValue:V}=e.toRefs(t);e.watch(V,async()=>{await e.nextTick();const A=t.tabs.findIndex(h=>h.value===t.modelValue);A!==-1&&v(A)});const u={props:t,emit:s,tabButtons:i,underlineStyle:o,get currentTabIndex(){return c},set currentTabIndex(A){c=A},get isAnimating(){return p},set isAnimating(A){p=A},handleTabClick:N,animateUnderlineStretch:v,activeTabIndex:d,modelValue:V};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),qe={class:"relative"},Be={class:"relative flex border-b border-neutral-200",role:"tablist"},Ue=["aria-selected","aria-controls","id","onClick"];function Ee(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",qe,[e.createCommentVNode(" Tab List "),e.createElementVNode("div",Be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabs,(o,c)=>(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,c)},e.toDisplayString(o.label),11,Ue))),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 K=q(ke,[["render",Ee],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiTabs.vue"]]),We=e.defineComponent({__name:"UiLoader",props:{size:{type:Number,required:!1,default:48},variant:{type:String,required:!1,default:"auto"},text:{type:String,required:!1},showParticles:{type:Boolean,required:!1,default:!0},centered:{type:Boolean,required:!1,default:!0}},setup(a,{expose:r}){r();const n=a,t=e.ref(Math.random().toString(36).substr(2,9)),s=e.computed(()=>`url(#gradient-${t.value})`),i=e.computed(()=>["flex flex-col items-center gap-4",n.centered?"justify-center":""].filter(Boolean).join(" ")),o=e.computed(()=>["text-sm font-medium animate-pulse",n.variant==="light"?"text-gray-600":n.variant==="dark"?"text-gray-300":"text-gray-600 dark:text-gray-300"].filter(Boolean).join(" ")),c=e.computed(()=>["absolute w-1 h-1 rounded-full animate-float",n.variant==="light"?"bg-strands-400":n.variant==="dark"?"bg-white/40":"bg-strands-400 dark:bg-white/40"].filter(Boolean).join(" ")),p={props:n,componentId:t,gradientId:s,containerClasses:i,textClasses:o,particleClasses:c};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Le={class:"relative"},Me=["width","height"],Pe=["stroke"],ze=["stroke"],Fe=["stroke"],Ie=["fill"],De=["id"],Xe=["stop-color"],je=["stop-color"],Te=["stop-color"],Ze={key:0,class:"absolute inset-0 pointer-events-none"};function Ye(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.containerClasses)},[e.createElementVNode("div",Le,[e.createCommentVNode(" Main animated SVG "),(e.openBlock(),e.createElementBlock("svg",{width:n.size,height:n.size,viewBox:"0 0 100 100",class:"animate-spin-slow"},[e.createCommentVNode(" Outer decorative ring "),e.createElementVNode("circle",{cx:"50",cy:"50",r:"45",fill:"none",stroke:n.variant==="light"?"rgba(234, 0, 168, 0.1)":"rgba(255, 255, 255, 0.1)","stroke-width":"1",class:"animate-pulse"},null,8,Pe),e.createCommentVNode(' Main animated path - Strands "S" inspired curve '),e.createElementVNode("path",{d:`M 25 20
|
|
2
2
|
Q 50 10, 75 20
|
|
3
3
|
Q 85 35, 75 50
|
|
4
4
|
Q 50 60, 25 50
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
Q 75 40, 70 50
|
|
9
9
|
Q 50 55, 30 50
|
|
10
10
|
Q 25 60, 30 75
|
|
11
|
-
Q 50 85, 70 75`,fill:"none",stroke:n.variant==="light"?"rgba(234, 0, 168, 0.3)":"rgba(255, 255, 255, 0.3)","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",class:"animate-draw-delayed"},null,8,Fe),e.createCommentVNode(" Center pulsing dot "),e.createElementVNode("circle",{cx:"50",cy:"50",r:"3",fill:n.variant==="light"?"#EA00A8":"#ffffff",class:"animate-pulse-center"},null,8,Ie),e.createCommentVNode(" Gradient definitions "),e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:`gradient-${t.componentId}`,x1:"0%",y1:"0%",x2:"100%",y2:"100%"},[e.createElementVNode("stop",{offset:"0%","stop-color":n.variant==="light"?"#EA00A8":"#ffffff","stop-opacity":"1"},r[0]||(r[0]=[e.createElementVNode("animate",{attributeName:"stop-opacity",values:"1;0.5;1",dur:"2s",repeatCount:"indefinite"},null,-1)]),8,Xe),e.createElementVNode("stop",{offset:"50%","stop-color":n.variant==="light"?"#FF6B9D":"#ffffff","stop-opacity":"0.8"},r[1]||(r[1]=[e.createElementVNode("animate",{attributeName:"stop-opacity",values:"0.8;0.3;0.8",dur:"2s",repeatCount:"indefinite"},null,-1)]),8,je),e.createElementVNode("stop",{offset:"100%","stop-color":n.variant==="light"?"#FFB7D7":"#ffffff","stop-opacity":"0.6"},r[2]||(r[2]=[e.createElementVNode("animate",{attributeName:"stop-opacity",values:"0.6;0.2;0.6",dur:"2s",repeatCount:"indefinite"},null,-1)]),8,Te)],8,De)])],8,Me)),e.createCommentVNode(" Floating particles for extra flair "),n.showParticles?(e.openBlock(),e.createElementBlock("div",Ze,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,o=>e.createElementVNode("div",{key:o,class:e.normalizeClass(t.particleClasses),style:e.normalizeStyle({animationDelay:`${o*.5}s`,left:`${20+o*30}%`,top:`${30+o*20}%`})},null,6)),64))])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Optional text "),n.text?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(t.textClasses)},e.toDisplayString(n.text),3)):e.createCommentVNode("v-if",!0)],2)}const K=q(We,[["render",Ye],["__scopeId","data-v-32cc7309"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLoader.vue"]]),Oe=e.defineComponent({__name:"StrandsSecuredFooter",props:{config:{type:Object,required:!1}},setup(a,{expose:r}){r();const n=a,{config:t}=E.useStrandsConfig(n.config),s=e.computed(()=>t.value.baseUrl!=="https://accounts.strands.gg"),i={props:n,config:t,shouldShowSecuredBy:s};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Qe="data:image/png;base64,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",Ke={key:0,class:"flex items-center justify-center gap-2 mt-4 -mb-4 pt-4 border-t border-neutral-200"};function He(a,r,n,t,s,i){return t.shouldShowSecuredBy?(e.openBlock(),e.createElementBlock("div",Ke,r[0]||(r[0]=[e.createElementVNode("img",{src:Qe,class:"h-12 w-auto"},null,-1)]))):e.createCommentVNode("v-if",!0)}const D=q(Oe,[["render",He],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSecuredFooter.vue"]]);function Y(a={}){const{getUrl:r}=E.useStrandsConfig(),n=e.ref([]),t=e.ref(!1),s=e.ref(null),i=e.computed(()=>n.value.filter(d=>d.enabled)),o=async()=>{t.value=!0,s.value=null;try{const d=r("oauthProviders"),V=await fetch(d,{method:"GET",headers:{"Content-Type":"application/json"}});if(!V.ok){const A=await V.json().catch(()=>({}));throw new Error(A.error?.message||`HTTP ${V.status}: ${V.statusText}`)}const u=await V.json();n.value=u.providers||[]}catch(d){const V=d instanceof Error?d.message:"Failed to fetch OAuth providers";s.value=V}finally{t.value=!1}},c=async(d,V)=>{const u={...a,...V},A=new URLSearchParams;u.redirectUrl&&A.append("redirect_url",u.redirectUrl),u.scopes&&u.scopes.length>0&&A.append("scopes",u.scopes.join(","));const h=A.toString(),y=r("oauthProvider").replace("{provider_id}",d),x=h?`${y}?${h}`:y;try{const g=await fetch(x,{method:"GET",headers:{"Content-Type":"application/json"}});if(!g.ok){const l=await g.json().catch(()=>({}));throw new Error(l.error?.message||`HTTP ${g.status}: ${g.statusText}`)}const m=await g.json();if(!m.success)throw new Error(m.error?.message||"Failed to get OAuth auth URL");return m.data.authUrl}catch(g){const m=g instanceof Error?g.message:"Failed to get OAuth auth URL";throw new Error(m)}},p=async(d,V)=>{try{const u=n.value.find(A=>A.id===d);if(!u)throw new Error(`OAuth provider '${d}' not found`);if(!u.auth_url)throw new Error(`No auth URL configured for provider '${d}'`);window.location.href=u.auth_url}catch(u){throw s.value=u instanceof Error?u.message:"Failed to redirect to OAuth provider",u}},N=d=>n.value.find(V=>V.id===d),v=d=>{if(d.iconUrl)return d.iconUrl;switch(d.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:i,loading:e.computed(()=>t.value),error:e.computed(()=>s.value),fetchProviders:o,getProviderAuthUrl:c,redirectToProvider:p,getProviderById:N,getProviderIcon:v}}const Re=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config);console.log("support email:",o());const{setAuthData:c}=P.useStrandsAuth(),{enabledProviders:p,loading:N,error:v,fetchProviders:d,redirectToProvider:V,getProviderIcon:u}=Y({redirectUrl:t.redirectUrl});e.onMounted(()=>{d().catch(C=>{console.warn("Failed to fetch OAuth providers:",C)})});const A=e.computed(()=>p.value),h={async signIn(C,S){const f=await fetch(i("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:C,password:S})});if(!f.ok)throw f.status===401?new Error("Invalid email or password"):f.status===403?new Error("Please verify your email address before signing in"):new Error(`Sign in failed: ${f.status} ${f.statusText}`);return await f.json()},async signUp(C,S,f,W){const T=await fetch(i("signUp"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:C,password:S,firstName:f,lastName:W})});if(!T.ok){const H=await T.json().catch(()=>({}));throw new Error(H.error?.message||`HTTP ${T.status}: ${T.statusText}`)}return(await T.json()).message},async requestPasswordReset(C){throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.")}},y=e.ref(t.mode),x=e.ref(!1),g=e.ref(""),m=e.ref(!1),l=e.reactive({firstName:"",lastName:"",email:"",password:"",confirmPassword:""}),b=e.computed(()=>y.value==="signup"),U=e.computed(()=>y.value==="reset-password"),L=e.computed(()=>l.password===l.confirmPassword),k=e.computed(()=>U.value?l.email.trim()&&!m.value:b.value?l.email.trim():l.email.trim()&&l.password),w={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}},B=C=>{let S=0;C.length>=8&&(S+=1),C.length>=12&&(S+=1),/[a-z]/.test(C)&&(S+=1),/[A-Z]/.test(C)&&(S+=1),/[0-9]/.test(C)&&(S+=1),/[^A-Za-z0-9]/.test(C)&&(S+=1);const f=S<=2?w.weak:S<=4?w.medium:w.strong;return{score:S,...f}},M=async()=>{x.value=!0,g.value="";try{if(U.value)await h.requestPasswordReset(l.email),m.value=!0,s("password-reset-sent",l.email);else if(b.value){const C=await h.signUp(l.email,l.password,l.firstName,l.lastName);s("success",C.user)}else{const C=await h.signIn(l.email,l.password);c(C),s("success",C.user)}}catch(C){const S=C instanceof Error?C.message:"An unexpected error occurred";g.value=S,s("error",S)}finally{x.value=!1}},X=async C=>{try{await V(C,{redirectUrl:t.redirectUrl})}catch(S){const f=S instanceof Error?S.message:`Failed to ${b.value?"sign up":"sign in"} with ${C}`;g.value=f,s("error",f)}};e.watch(()=>t.mode,C=>{y.value=C}),e.watch(y,C=>{g.value="",m.value=!1,l.firstName="",l.lastName="",l.email="",l.password="",l.confirmPassword="",s("mode-changed",C)});const O={props:t,emit:s,getUrl:i,getSupportEmail:o,setAuthData:c,enabledProviders:p,oauthLoading:N,oauthError:v,fetchProviders:d,redirectToProvider:V,getProviderIcon:u,displayProviders:A,authApi:h,currentMode:y,loading:x,error:g,isPasswordResetSubmitted:m,form:l,isSignUp:b,isPasswordReset:U,isPasswordMatch:L,isFormValid:k,PASSWORD_STRENGTH_CONFIGS:w,getPasswordStrength:B,handleAuth:M,handleOAuthAuth:X,get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},get StrandsUiTabs(){return Q},StrandsSecuredFooter:D};return Object.defineProperty(O,"__isScriptSetup",{enumerable:!1,value:!0}),O}}),Ge={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},Je={class:"text-center mb-8"},_e={key:0,class:"mb-8"},$e={key:0,class:"space-y-3 mb-6"},et={class:"w-5 h-5 flex items-center justify-center"},tt={key:0,class:"w-5 h-5"},rt=["src","alt"],ot={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},nt={class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},at={class:"text-xs font-semibold text-neutral-600"},st={class:"font-medium"},lt={key:0,class:"divider-with-text"},it={class:"divider-text"},dt={key:0,class:"mb-4"},At={class:"flex items-center justify-between mb-2"},ct={key:0,class:"mt-8 text-center"},ut={key:0,class:"mt-6 text-center"},mt={class:"text-neutral-400 text-sm"};function ft(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",Ge,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",Je,[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"},{default:e.withCtx(()=>[t.isPasswordReset?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",_e,[e.createVNode(t.StrandsUiTabs,{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"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",$e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.displayProviders,o=>(e.openBlock(),e.createBlock(t.StrandsUiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:c=>t.handleOAuthAuth(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",et,[e.createCommentVNode(" Dynamic provider icons "),o.icon||o.iconUrl?(e.openBlock(),e.createElementBlock("div",tt,[e.createElementVNode("img",{src:o.icon||o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,rt)])):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",ot,[...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",nt,[e.createElementVNode("span",at,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)])],2112))]),e.createElementVNode("span",st," 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"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",lt,[e.createElementVNode("span",it,"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",null,[e.createCommentVNode(" Email "),e.createElementVNode("div",{class:e.normalizeClass(["email-field-spacing",!t.isPasswordReset&&!t.isSignUp?"has-password":"no-password"])},[e.createVNode(t.StrandsUiInput,{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"])],2),e.createCommentVNode(" Password (Sign In Only) "),e.createVNode(e.Transition,{name:"password-fade"},{default:e.withCtx(()=>[!t.isPasswordReset&&!t.isSignUp?(e.openBlock(),e.createElementBlock("div",dt,[e.createElementVNode("div",At,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-gray-700"},"Password",-1)),e.createVNode(t.StrandsUiLink,{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.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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"},{default:e.withCtx(()=>[t.isPasswordReset?(e.openBlock(),e.createElementBlock("div",ct,[e.createVNode(t.StrandsUiLink,{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.StrandsUiAlert,{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.createVNode(e.Transition,{name:"support-fade"},{default:e.withCtx(()=>[t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",ut,[e.createElementVNode("p",mt,[r[12]||(r[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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)]),_:1}),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])]),_:1})])}const gt=q(Re,[["render",ft],["__scopeId","data-v-4583e1b6"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsAuth.vue"]]),pt=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config),{setAuthData:c}=P.useStrandsAuth(),{enabledProviders:p,loading:N,error:v,fetchProviders:d,redirectToProvider:V}=Y({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{d().catch(m=>{console.warn("Failed to fetch OAuth providers:",m)})});const u=e.ref(!1),A=e.ref(""),h=e.reactive({email:"",password:""}),g={props:t,emit:s,getUrl:i,getSupportEmail:o,setAuthData:c,enabledProviders:p,oauthLoading:N,oauthError:v,fetchProviders:d,redirectToProvider:V,loading:u,error:A,form:h,handleSignIn:async()=>{u.value=!0,A.value="";try{const m=await fetch(i("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:h.email,password:h.password})});if(!m.ok)throw m.status===401?new Error("Invalid email or password"):m.status===403?new Error("Please verify your email address before signing in"):new Error(`Sign in failed: ${m.status} ${m.statusText}`);const l=await m.json();c(l),s("success",l.user)}catch(m){const l=m instanceof Error?m.message:"Sign in failed";A.value=l,s("error",l)}finally{u.value=!1}},handleOAuthSignIn:async m=>{try{await V(m,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(l){const b=l instanceof Error?l.message:`Failed to sign in with ${m}`;A.value=b,s("error",b)}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}}),Vt={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},vt={key:0,class:"space-y-3 mb-6"},Nt={class:"w-5 h-5 flex items-center justify-center"},ht={key:0,class:"w-5 h-5"},yt=["src","alt"],Ct={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"},bt={class:"text-xs font-semibold text-neutral-600"},St={class:"font-medium"},xt={key:1,class:"divider-with-text"},kt={class:"space-y-4"},qt={class:"flex items-center justify-between mb-2"},Bt={class:"mt-8 text-center"},Ut={class:"text-sm text-neutral-600"},Et={key:3,class:"mt-6 text-center"},Wt={class:"text-neutral-400 text-sm"};function Lt(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",Vt,[e.createVNode(t.StrandsUiCard,{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",vt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.StrandsUiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:c=>t.handleOAuthSignIn(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Nt,[e.createCommentVNode(" Dynamic provider icons "),o.icon||o.iconUrl?(e.openBlock(),e.createElementBlock("div",ht,[e.createElementVNode("img",{src:o.icon||o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,yt)])):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",Ct,[...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",bt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",St,"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",xt,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",kt,[e.createVNode(t.StrandsUiInput,{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",qt,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-neutral-700"},"Password",-1)),e.createVNode(t.StrandsUiLink,{onClick:r[1]||(r[1]=o=>a.$emit("forgot-password")),class:"text-sm"},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(t.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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",Bt,[e.createElementVNode("p",Ut,[r[12]||(r[12]=e.createTextVNode(" Don't have an account? ",-1)),e.createVNode(t.StrandsUiLink,{onClick:r[4]||(r[4]=o=>a.$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",Et,[e.createElementVNode("p",Wt,[r[14]||(r[14]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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 Mt=q(pt,[["render",Lt],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignIn.vue"]]),Pt=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config),{enabledProviders:c,loading:p,error:N,fetchProviders:v,redirectToProvider:d}=Y({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{v().catch(k=>{console.warn("Failed to fetch OAuth providers:",k)})});const V=e.ref(!1),u=e.ref(""),A=e.ref(!1),h=e.ref(""),y=e.ref("Magic Link Sent!"),x=e.ref(""),g=e.reactive({email:""}),m=e.computed(()=>g.email.trim()&&g.email.includes("@")),L={props:t,emit:s,getUrl:i,getSupportEmail:o,enabledProviders:c,oauthLoading:p,oauthError:N,fetchProviders:v,redirectToProvider:d,loading:V,error:u,signupSuccess:A,successMessage:h,successTitle:y,successEmail:x,form:g,isFormValid:m,handleSignUp:async()=>{V.value=!0,u.value="";try{const k=i("signUp");console.log("Attempting sign up to URL:",k);const w=await fetch(k,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:g.email})});if(process.env.NODE_ENV==="development"&&console.log("Sign up response status:",w.status),!w.ok){let M=`Sign up failed (${w.status})`;try{const X=await w.json();M=X.message||X.error||M}catch{M=await w.text()||M}throw new Error(M)}const B=await w.json();console.log("Magic link sign up success:",B),A.value=!0,x.value=g.email,h.value=B.message||"Magic link sent! Check your email.",B.message&&(B.message.includes("already have an account")||B.message.includes("Welcome back")?y.value="Welcome Back!":B.message.includes("Magic link sent")||B.message.includes("Check your email")?y.value="Magic Link Sent!":y.value="Success!"),s("success",{email:g.email,message:B.message||"Magic link sent! Check your email."})}catch(k){console.error("Sign up error:",k);let w="Unable to send magic link. Please try again.";if(k instanceof Error)if(k.message.includes("fetch"))w="Unable to connect to authentication service. Please check your internet connection and try again.";else if(k.message.includes("CORS")){const B=o();w=B?`Authentication service configuration error. Please contact ${B}.`:"Authentication service configuration error."}else w=k.message;u.value=w,s("error",w)}finally{V.value=!1}},resetToForm:()=>{A.value=!1,h.value="",y.value="Magic Link Sent!",x.value="",g.email="",u.value=""},handleOAuthSignUp:async k=>{try{await d(k,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(w){const B=w instanceof Error?w.message:`Failed to sign up with ${k}`;u.value=B,s("error",B)}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(L,"__isScriptSetup",{enumerable:!1,value:!0}),L}}),zt={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},Ft={class:"text-center"},It={class:"text-2xl font-bold text-gray-900 mb-2"},Dt={class:"text-gray-600 mb-4"},Xt={key:0,class:"text-sm text-gray-500 mb-4"},jt={key:0,class:"space-y-3 mb-6"},Tt={class:"w-5 h-5 flex items-center justify-center"},Zt={key:0,class:"w-5 h-5"},Yt=["src","alt"],Ot={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},Qt={key:3,class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},Kt={class:"text-xs font-semibold text-neutral-600"},Ht={class:"font-medium"},Rt={key:1,class:"divider-with-text"},Gt={key:2,class:"mt-6 animate-fade-in"},Jt={class:"alert-error"},_t={class:"flex items-start gap-3"},$t={class:"font-medium"},er={class:"mt-8 text-center"},tr={class:"text-sm text-neutral-600"},rr={key:3,class:"mt-6 text-center"},or={class:"text-neutral-400 text-sm"};function nr(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",zt,[e.createCommentVNode(" Success State "),t.signupSuccess?(e.openBlock(),e.createBlock(t.StrandsUiCard,{key:0,variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ft,[r[3]||(r[3]=e.createElementVNode("div",{class:"text-green-500 text-6xl mb-4"},"📧",-1)),e.createElementVNode("h1",It,e.toDisplayString(t.successTitle),1),e.createElementVNode("p",Dt,e.toDisplayString(t.successMessage),1),t.successEmail?(e.openBlock(),e.createElementBlock("div",Xt,[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.StrandsUiButton,{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.StrandsUiCard,{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",jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.StrandsUiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:c=>t.handleOAuthSignUp(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Tt,[e.createCommentVNode(" Dynamic provider icons "),o.icon||o.iconUrl?(e.openBlock(),e.createElementBlock("div",Zt,[e.createElementVNode("img",{src:o.icon||o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,Yt)])):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",Ot,[...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",Qt,[e.createElementVNode("span",Kt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Ht,"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",Rt,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.StrandsUiInput,{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.StrandsUiButton,{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",Gt,[e.createElementVNode("div",Jt,[e.createElementVNode("div",_t,[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",$t,e.toDisplayString(t.error),1)])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign in link "),e.createElementVNode("div",er,[e.createElementVNode("p",tr,[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=>a.$emit("switch-to-signin"))}," Sign in ")])]),e.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",rr,[e.createElementVNode("p",or,[r[12]||(r[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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 ar=q(Pt,[["render",nr],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignUp.vue"]]),sr=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config),{setAuthData:c}=P.useStrandsAuth(),p=e.ref(!1),N=e.ref(!1),v=e.ref(!1),d=e.ref(""),V=e.ref(""),u=e.reactive({username:"",firstName:"",lastName:"",password:""}),A=e.reactive({username:"",firstName:"",lastName:"",password:""}),h=e.computed(()=>{const l=u.username.trim()&&u.password.trim(),b=u.password.length>=8,U=!!t.token;return l&&b&&U});e.watch(()=>u.password,l=>{l&&l.length<8?A.password="Password must be at least 8 characters long":A.password=""}),e.watch(()=>u.username,l=>{l&&l.length<2?A.username="Username must be at least 2 characters long":A.username=""});const y=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 b=JSON.parse(atob(l[1]));b.email&&(V.value=b.email)}}catch(l){console.warn("Could not decode token for email display:",l)}});const x=()=>{y.value.referrerUrl&&(console.log("Redirecting to referrer:",y.value.referrerUrl),window.location.href=y.value.referrerUrl)},m={props:t,emit:s,getUrl:i,getSupportEmail:o,setAuthData:c,registrationComplete:p,invalidToken:N,loading:v,error:d,email:V,form:u,fieldErrors:A,isFormValid:h,authConfig:y,redirectToReferrer:x,handleCompleteSignUp:async()=>{if(!t.token){d.value="Registration token is required";return}if(d.value="",Object.keys(A).forEach(l=>{A[l]=""}),!h.value){d.value="Please fill in all required fields correctly";return}v.value=!0;try{const l=await fetch(`${y.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(!l.ok){const U=await l.text();throw new Error(`Failed to complete registration: ${U}`)}const b=await l.json();console.log("Registration success:",b),b.access_token&&b.refresh_token&&b.user?(c(b),console.log("Auth tokens stored successfully for user:",b.user.email)):console.warn("Registration response missing auth tokens or user data"),p.value=!0,s("success",b),setTimeout(()=>{x()},2e3)}catch(l){l instanceof Error?l.message.includes("CONFLICT")||l.message.includes("409")?d.value="This account already exists. Please try signing in instead.":l.message.includes("BAD_REQUEST")||l.message.includes("400")?(d.value="Invalid or expired registration link. Please request a new one.",N.value=!0,s("invalid-token")):d.value=l.message:d.value="Failed to complete registration. Please try again.",s("error",d.value)}finally{v.value=!1}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),lr={key:0,class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},ir={class:"text-center"},dr={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Ar={class:"text-center"},cr={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},ur={class:"text-center mb-8"},mr={key:0,class:"mt-2"},fr={class:"text-sm text-neutral-500"},gr={class:"font-medium text-neutral-700"},pr={key:1,class:"mt-6 text-center"},Vr={class:"text-neutral-400 text-sm"},vr={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Nr={class:"text-center"};function hr(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createCommentVNode(" Success State "),t.registrationComplete?(e.openBlock(),e.createElementBlock("div",lr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",ir,[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.StrandsUiButton,{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",dr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ar,[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.StrandsUiButton,{variant:"primary","full-width":"",onClick:r[0]||(r[0]=o=>a.$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",cr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",ur,[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",mr,[e.createElementVNode("p",fr,[r[17]||(r[17]=e.createTextVNode("Creating account for: ",-1)),e.createElementVNode("span",gr,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.StrandsUiInput,{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.StrandsUiInput,{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.StrandsUiInput,{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.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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",pr,[e.createElementVNode("p",Vr,[r[23]||(r[23]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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",vr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Nr,[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.StrandsUiButton,{variant:"primary","full-width":"",onClick:r[6]||(r[6]=o=>a.$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 yr=q(sr,[["render",hr],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsCompleteSignUp.vue"]]),Cr=e.defineComponent({__name:"StrandsUserProfile",props:{user:{type:Object,required:!1},config:{type:Object,required:!1},autoFetch:{type:Boolean,required:!1,default:!0}},emits:["profile-updated","error","manage-sessions","mfa-toggle"],setup(a,{expose:r,emit:n}){r();const t=a,s=n,{getSupportEmail:i}=E.useStrandsConfig(t.config),{fetchProfile:o,updateProfile:c,currentUser:p,isAuthenticated:N}=P.useStrandsAuth(),v=e.ref(null),d=e.ref(!1),V=e.computed(()=>p.value||t.user||v.value),u=e.ref(!1),A=e.ref(!1),h=e.ref(""),y=e.ref(""),x=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}]),g=e.reactive({firstName:"",lastName:"",email:"",phone:""}),m=e.reactive({current:"",new:"",confirm:""}),l=e.reactive({firstName:"",lastName:"",email:"",phone:""}),b=e.computed(()=>{const f=V.value;return f?g.firstName!==f.firstName||g.lastName!==f.lastName||g.email!==f.email||g.phone!==(f.phone||""):!1}),U=e.computed(()=>m.current&&m.new&&m.confirm&&m.new===m.confirm&&m.new.length>=8),L=(f,W)=>!f&&!W?"U":`${f?.[0]||""}${W?.[0]||""}`.toUpperCase(),k=async()=>{if(!(!t.autoFetch||t.user||!N.value)){d.value=!0;try{await o()}catch(f){const W=f instanceof Error?f.message:"Failed to load profile";y.value=W,s("error",W)}finally{d.value=!1}}};e.watch(()=>V.value,f=>{f&&(g.firstName=f.firstName,g.lastName=f.lastName,g.email=f.email,g.phone=f.phone||"")},{immediate:!0}),e.onMounted(()=>{k()});const w=()=>{h.value="",y.value="",Object.keys(l).forEach(f=>{l[f]=""})},S={props:t,emit:s,getSupportEmail:i,fetchProfile:o,updateProfile:c,authUser:p,isAuthenticated:N,internalUser:v,fetchingProfile:d,currentUser:V,loading:u,showPasswordChange:A,successMessage:h,errorMessage:y,activeSessions:x,form:g,passwordForm:m,errors:l,hasChanges:b,isPasswordFormValid:U,getInitials:L,fetchUserProfile:k,clearMessages:w,handleUpdateProfile:async()=>{w(),u.value=!0;try{const f=await c({firstName:g.firstName,lastName:g.lastName,email:g.email,phone:g.phone||void 0});f&&(h.value="Profile updated successfully",s("profile-updated",f))}catch(f){const W=f instanceof Error?f.message:"Failed to update profile";y.value=W,s("error",W)}finally{u.value=!1}},handlePasswordChange:async()=>{if(U.value){w(),u.value=!0;try{await new Promise(f=>setTimeout(f,1e3)),h.value="Password updated successfully",A.value=!1,m.current="",m.new="",m.confirm=""}catch{y.value="Failed to update password"}finally{u.value=!1}}},handleImageUpload:()=>{s("error","Image upload functionality not yet implemented")},handleMFAToggle:()=>{s("mfa-toggle",!V.value?.mfaEnabled)},handleCancel:()=>{const f=V.value;f&&(g.firstName=f.firstName,g.lastName=f.lastName,g.email=f.email,g.phone=f.phone||""),w(),A.value=!1,m.current="",m.new="",m.confirm=""},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(S,"__isScriptSetup",{enumerable:!1,value:!0}),S}}),wr={class:"w-full min-w-xl max-w-2xl mx-auto animate-slide-up"},br={class:"card-modern"},Sr={class:"flex flex-col items-center mb-8"},xr={class:"relative group"},kr={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"},qr={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Br={class:"space-y-4"},Ur={class:"space-y-4"},Er={class:"space-y-4 p-4 bg-gray-50 rounded-xl"},Wr={class:"flex items-center justify-between"},Lr={key:0,class:"space-y-3"},Mr={class:"p-4 bg-gray-50 rounded-xl"},Pr={class:"flex items-center justify-between"},zr={class:"text-sm text-gray-600"},Fr={class:"p-4 bg-gray-50 rounded-xl"},Ir={class:"flex items-center justify-between"},Dr={class:"text-sm text-gray-600"},Xr={class:"flex flex-col sm:flex-row gap-3 pt-6 border-t border-gray-200"},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"},Qr={class:"alert-error"},Kr={class:"flex items-start gap-3"},Hr={class:"font-medium"},Rr={key:2,class:"mt-6 text-center"},Gr={class:"text-gray-400 text-sm"};function Jr(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",wr,[e.createElementVNode("div",br,[e.createCommentVNode(" Header "),r[23]||(r[23]=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-gray-600"},"Manage your account information and preferences")],-1)),e.createCommentVNode(" Profile Image Section "),e.createElementVNode("div",Sr,[e.createElementVNode("div",xr,[e.createElementVNode("div",kr,e.toDisplayString(t.getInitials(t.currentUser?.firstName,t.currentUser?.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",qr,[e.createCommentVNode(" Personal Information "),e.createElementVNode("div",Br,[r[11]||(r[11]=e.createElementVNode("h3",{class:"text-lg font-semibold text-gray-900 mb-4"},"Personal Information",-1)),e.createVNode(t.StrandsUiInput,{id:"firstName",modelValue:t.form.firstName,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.firstName=o),type:"text",label:"First name",placeholder:"Enter your first name",autocomplete:"given-name",required:"",disabled:t.loading||t.fetchingProfile,error:t.errors.firstName},null,8,["modelValue","disabled","error"]),e.createVNode(t.StrandsUiInput,{id:"lastName",modelValue:t.form.lastName,"onUpdate:modelValue":r[1]||(r[1]=o=>t.form.lastName=o),type:"text",label:"Last name",placeholder:"Enter your last name",autocomplete:"family-name",required:"",disabled:t.loading||t.fetchingProfile,error:t.errors.lastName},null,8,["modelValue","disabled","error"]),e.createVNode(t.StrandsUiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[2]||(r[2]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",disabled:t.loading||t.fetchingProfile,error:t.errors.email},e.createSlots({_:2},[t.form.email!==t.currentUser?.email?{name:"help",fn:e.withCtx(()=>[r[10]||(r[10]=e.createElementVNode("p",{class:"text-yellow-600"},"Changing your email will require verification",-1))]),key:"0"}:void 0]),1032,["modelValue","disabled","error"]),e.createVNode(t.StrandsUiInput,{id:"phone",modelValue:t.form.phone,"onUpdate:modelValue":r[3]||(r[3]=o=>t.form.phone=o),type:"tel",label:"Phone number",placeholder:"Enter your phone number",autocomplete:"tel",disabled:t.loading||t.fetchingProfile,error:t.errors.phone},null,8,["modelValue","disabled","error"])]),e.createCommentVNode(" Security Settings "),e.createElementVNode("div",Ur,[r[17]||(r[17]=e.createElementVNode("h3",{class:"text-lg font-semibold text-gray-900 mb-4"},"Security Settings",-1)),e.createCommentVNode(" Password Change "),e.createElementVNode("div",Er,[e.createElementVNode("div",Wr,[r[12]||(r[12]=e.createElementVNode("div",null,[e.createElementVNode("h4",{class:"font-medium text-gray-900"},"Password"),e.createElementVNode("p",{class:"text-sm text-gray-600"},"Last updated 30 days ago")],-1)),e.createVNode(t.StrandsUiButton,{variant:"secondary",size:"sm",onClick:r[4]||(r[4]=o=>t.showPasswordChange=!t.showPasswordChange)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.showPasswordChange?"Cancel":"Change"),1)]),_:1})]),t.showPasswordChange?(e.openBlock(),e.createElementBlock("div",Lr,[e.createVNode(t.StrandsUiInput,{modelValue:t.passwordForm.current,"onUpdate:modelValue":r[5]||(r[5]=o=>t.passwordForm.current=o),type:"password",placeholder:"Current password",autocomplete:"current-password"},null,8,["modelValue"]),e.createVNode(t.StrandsUiInput,{modelValue:t.passwordForm.new,"onUpdate:modelValue":r[6]||(r[6]=o=>t.passwordForm.new=o),type:"password",placeholder:"New password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(t.StrandsUiInput,{modelValue:t.passwordForm.confirm,"onUpdate:modelValue":r[7]||(r[7]=o=>t.passwordForm.confirm=o),type:"password",placeholder:"Confirm new password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(t.StrandsUiButton,{variant:"primary",size:"sm",onClick:t.handlePasswordChange,disabled:!t.isPasswordFormValid},{default:e.withCtx(()=>r[13]||(r[13]=[e.createTextVNode(" Update Password ",-1)])),_:1,__:[13]},8,["disabled"])])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Two-Factor Authentication "),e.createElementVNode("div",Mr,[e.createElementVNode("div",Pr,[e.createElementVNode("div",null,[r[14]||(r[14]=e.createElementVNode("h4",{class:"font-medium text-gray-900"},"Two-Factor Authentication",-1)),e.createElementVNode("p",zr,e.toDisplayString(t.currentUser?.mfaEnabled?"Enabled":"Add extra security to your account"),1)]),e.createVNode(t.StrandsUiButton,{variant:t.currentUser?.mfaEnabled?"secondary":"primary",size:"sm",onClick:t.handleMFAToggle},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.currentUser?.mfaEnabled?"Disable":"Enable"),1)]),_:1},8,["variant"])])]),e.createCommentVNode(" Active Sessions "),e.createElementVNode("div",Fr,[e.createElementVNode("div",Ir,[e.createElementVNode("div",null,[r[15]||(r[15]=e.createElementVNode("h4",{class:"font-medium text-gray-900"},"Active Sessions",-1)),e.createElementVNode("p",Dr,e.toDisplayString(t.activeSessions.length)+" active device(s)",1)]),e.createVNode(t.StrandsUiButton,{variant:"secondary",size:"sm",onClick:r[8]||(r[8]=o=>a.$emit("manage-sessions"))},{default:e.withCtx(()=>r[16]||(r[16]=[e.createTextVNode(" Manage ",-1)])),_:1,__:[16]})])])])]),e.createCommentVNode(" Action Buttons "),e.createElementVNode("div",Xr,[e.createVNode(t.StrandsUiButton,{type:"submit",variant:"primary",disabled:t.loading||!t.hasChanges,loading:t.loading},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.loading?"Saving changes...":"Save changes"),1)]),_:1},8,["disabled","loading"]),e.createVNode(t.StrandsUiButton,{variant:"secondary",onClick:t.handleCancel,disabled:t.loading},{default:e.withCtx(()=>r[18]||(r[18]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[18]},8,["disabled"])])],32),e.createCommentVNode(" Success/Error Messages "),t.successMessage?(e.openBlock(),e.createElementBlock("div",jr,[e.createElementVNode("div",Tr,[e.createElementVNode("div",Zr,[r[19]||(r[19]=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",Qr,[e.createElementVNode("div",Kr,[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 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[22]||(r[22]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[21]||(r[21]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[21]},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(Cr,[["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(a,{expose:r,emit:n}){r();const t=a,s=n,{getSupportEmail:i}=E.useStrandsConfig(t.config),o=e.ref(!1),c=e.ref(""),p=e.ref(!1),N=e.reactive({email:""}),d={props:t,emit:s,getSupportEmail:i,loading:o,error:c,isSubmitted:p,form:N,handlePasswordReset:async()=>{o.value=!0,c.value="";try{console.log("Password reset request:",{email:N.email}),await new Promise(V=>setTimeout(V,1e3)),p.value=!0,s("success",N.email)}catch{c.value="Failed to send password reset email. Please try again.",s("error",c.value)}finally{o.value=!1}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),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(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",eo,[e.createVNode(t.StrandsUiCard,{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.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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.StrandsUiAlert,{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.StrandsUiLink,{onClick:r[2]||(r[2]=o=>a.$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.StrandsUiLink,{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 ao=q($r,[["render",no],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsPasswordReset.vue"]]),so=e.defineComponent({__name:"StrandsMFASetup",emits:["success","error","back"],setup(a,{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(a,r,n,t,s,i){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=>a.$emit("back"))}," Cancel ")])])])}const uo=q(so,[["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(a,{expose:r,emit:n}){r();const t=n,s=e.ref(!1),{isAuthenticated:i,isLoading:o,user:c,signOut:p}=P.useStrandsAuth(),N=e.computed(()=>o.value||!s.value);e.onMounted(()=>{setTimeout(()=>{s.value=!0},100)});const d={emit:t,isComponentReady:s,isAuthenticated:i,isLoading:o,user:c,signOut:p,showLoading:N,signIn:()=>{t("sign-in-required")},get StrandsUiLoader(){return K}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),fo={key:0,class:"animate-fade-in"},go={key:1,class:"animate-fade-in"},po={key:2,class:"animate-fade-in py-8"};function Vo(a,r,n,t,s,i){return t.isAuthenticated&&!t.showLoading?(e.openBlock(),e.createElementBlock("div",fo,[e.renderSlot(a.$slots,"default",{user:t.user,signOut:t.signOut})])):n.showFallback&&!t.showLoading?(e.openBlock(),e.createElementBlock("div",go,[e.renderSlot(a.$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 ")])])])):t.showLoading?(e.openBlock(),e.createElementBlock("div",po,[e.renderSlot(a.$slots,"loading",{},()=>[e.createVNode(t.StrandsUiLoader,{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})])])):e.createCommentVNode("v-if",!0)}const vo=q(mo,[["render",Vo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedIn.vue"]]),No=e.defineComponent({__name:"SignedOut",props:{showFallback:{type:Boolean,required:!1,default:!0}},emits:["sign-in-clicked","sign-up-clicked"],setup(a,{expose:r,emit:n}){r();const t=a,s=n,{isAuthenticated:i,isLoading:o,user:c,signOut:p}=P.useStrandsAuth(),d={props:t,emit:s,isAuthenticated:i,isLoading:o,user:c,signOut:p,signIn:()=>{s("sign-in-clicked")},signUp:()=>{s("sign-up-clicked")}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),ho={key:0,class:"animate-fade-in"},yo={key:1,class:"animate-fade-in"},Co={class:"text-center py-8"},wo={class:"text-neutral-600 mb-4"},bo={key:2,class:"animate-fade-in py-8"};function So(a,r,n,t,s,i){const o=e.resolveComponent("StrandsUiLoader");return!t.isAuthenticated&&!t.isLoading?(e.openBlock(),e.createElementBlock("div",ho,[e.renderSlot(a.$slots,"default",{signIn:t.signIn,signUp:t.signUp})])):n.showFallback&&t.isAuthenticated&&!t.isLoading?(e.openBlock(),e.createElementBlock("div",yo,[e.renderSlot(a.$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",wo,"You're currently signed in as "+e.toDisplayString(t.user?.email)+".",1),e.createElementVNode("button",{onClick:r[0]||(r[0]=(...c)=>t.signOut&&t.signOut(...c)),class:"btn-secondary !w-auto px-6 py-2"}," Sign out ")])])])):t.isLoading?(e.openBlock(),e.createElementBlock("div",bo,[e.renderSlot(a.$slots,"loading",{},()=>[e.createVNode(o,{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})])])):e.createCommentVNode("v-if",!0)}const xo=q(No,[["render",So],["__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(a,{expose:r}){r();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function qo(a,r,n,t,s,i){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 Bo=q(ko,[["render",qo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsLogo.vue"]]),Uo=e.defineComponent({__name:"StrandsConfigProvider",props:{config:{type:Object,required:!0}},setup(a,{expose:r}){r();const n=a;e.onMounted(()=>{E.provideStrandsConfig(n.config)}),E.provideStrandsConfig(n.config);const t={props:n};return Object.defineProperty(t,"__isScriptSetup",{enumerable:!1,value:!0}),t}});function Eo(a,r,n,t,s,i){return e.renderSlot(a.$slots,"default")}const Wo=q(Uo,[["render",Eo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsConfigProvider.vue"]]),Lo=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(a,{expose:r}){r();const n=a,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"},s=e.computed(()=>`${t[n.size]} ${n.class}`),i=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"})},c=e.computed(()=>{const N=o[n.name];return N?N():e.h("path",{d:""})}),p={props:n,sizeClasses:t,iconClass:s,viewBox:i,icons:o,iconComponent:c};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Mo=["fill","stroke","viewBox","aria-hidden"];function Po(a,r,n,t,s,i){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,Mo)}const zo=q(Lo,[["render",Po],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SvgIcon.vue"]]),Fo=a=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a),Io=a=>{const r=[];let n=0;a.length<8?r.push("Password must be at least 8 characters long"):n+=1,/[A-Z]/.test(a)?n+=1:r.push("Password must contain at least one uppercase letter"),/[a-z]/.test(a)?n+=1:r.push("Password must contain at least one lowercase letter"),/\d/.test(a)?n+=1:r.push("Password must contain at least one number"),/[!@#$%^&*(),.?":{}|<>]/.test(a)?n+=1:r.push("Password must contain at least one special character");const t=r.length===0;let s="weak";return n>=4?s="strong":n>=3&&(s="medium"),{isValid:t,strength:s,errors:r}},Do=a=>a.trim().length>=2,Xo=a=>/^[\+]?[1-9][\d]{0,15}$/.test(a.replace(/[\s\-\(\)]/g,"")),jo=a=>a.trim().length>0,To=(a,r)=>a===r,Zo=(a,r)=>{const n=a?.charAt(0).toUpperCase()||"",t=r?.charAt(0).toUpperCase()||"";return n+t||"U"},Yo=a=>(typeof a=="string"?new Date(a):a).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),Oo=(a,r)=>{let n;return(...t)=>{clearTimeout(n),n=setTimeout(()=>a(...t),r)}};exports.provideStrandsConfig=E.provideStrandsConfig;exports.setStrandsConfig=E.setStrandsConfig;exports.useStrandsConfig=E.useStrandsConfig;exports.useStrandsAuth=P.useStrandsAuth;exports.SignedIn=vo;exports.SignedOut=xo;exports.StrandsAuth=gt;exports.StrandsCompleteSignUp=yr;exports.StrandsConfigProvider=Wo;exports.StrandsLogo=Bo;exports.StrandsMFASetup=uo;exports.StrandsPasswordReset=ao;exports.StrandsSecuredFooter=D;exports.StrandsSignIn=Mt;exports.StrandsSignUp=ar;exports.StrandsUiAlert=Z;exports.StrandsUiButton=z;exports.StrandsUiCard=j;exports.StrandsUiInput=F;exports.StrandsUiLink=I;exports.StrandsUiLoader=K;exports.StrandsUiTabs=Q;exports.StrandsUserProfile=_r;exports.SvgIcon=zo;exports.debounce=Oo;exports.formatDate=Yo;exports.getInitials=Zo;exports.isRequired=jo;exports.isValidEmail=Fo;exports.isValidName=Do;exports.isValidPhone=Xo;exports.passwordsMatch=To;exports.useOAuthProviders=Y;exports.validatePassword=Io;
|
|
11
|
+
Q 50 85, 70 75`,fill:"none",stroke:n.variant==="light"?"rgba(234, 0, 168, 0.3)":"rgba(255, 255, 255, 0.3)","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",class:"animate-draw-delayed"},null,8,Fe),e.createCommentVNode(" Center pulsing dot "),e.createElementVNode("circle",{cx:"50",cy:"50",r:"3",fill:n.variant==="light"?"#EA00A8":"#ffffff",class:"animate-pulse-center"},null,8,Ie),e.createCommentVNode(" Gradient definitions "),e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:`gradient-${t.componentId}`,x1:"0%",y1:"0%",x2:"100%",y2:"100%"},[e.createElementVNode("stop",{offset:"0%","stop-color":n.variant==="light"?"#EA00A8":"#ffffff","stop-opacity":"1"},r[0]||(r[0]=[e.createElementVNode("animate",{attributeName:"stop-opacity",values:"1;0.5;1",dur:"2s",repeatCount:"indefinite"},null,-1)]),8,Xe),e.createElementVNode("stop",{offset:"50%","stop-color":n.variant==="light"?"#FF6B9D":"#ffffff","stop-opacity":"0.8"},r[1]||(r[1]=[e.createElementVNode("animate",{attributeName:"stop-opacity",values:"0.8;0.3;0.8",dur:"2s",repeatCount:"indefinite"},null,-1)]),8,je),e.createElementVNode("stop",{offset:"100%","stop-color":n.variant==="light"?"#FFB7D7":"#ffffff","stop-opacity":"0.6"},r[2]||(r[2]=[e.createElementVNode("animate",{attributeName:"stop-opacity",values:"0.6;0.2;0.6",dur:"2s",repeatCount:"indefinite"},null,-1)]),8,Te)],8,De)])],8,Me)),e.createCommentVNode(" Floating particles for extra flair "),n.showParticles?(e.openBlock(),e.createElementBlock("div",Ze,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,o=>e.createElementVNode("div",{key:o,class:e.normalizeClass(t.particleClasses),style:e.normalizeStyle({animationDelay:`${o*.5}s`,left:`${20+o*30}%`,top:`${30+o*20}%`})},null,6)),64))])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Optional text "),n.text?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(t.textClasses)},e.toDisplayString(n.text),3)):e.createCommentVNode("v-if",!0)],2)}const Q=q(We,[["render",Ye],["__scopeId","data-v-32cc7309"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/ui/UiLoader.vue"]]),Oe=e.defineComponent({__name:"StrandsSecuredFooter",props:{config:{type:Object,required:!1}},setup(a,{expose:r}){r();const n=a,{config:t}=E.useStrandsConfig(n.config),s=e.computed(()=>t.value.baseUrl!=="https://accounts.strands.gg"),i={props:n,config:t,shouldShowSecuredBy:s};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Qe="data:image/png;base64,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",Ke={key:0,class:"flex items-center justify-center gap-2 mt-4 -mb-4 pt-4 border-t border-neutral-200"};function He(a,r,n,t,s,i){return t.shouldShowSecuredBy?(e.openBlock(),e.createElementBlock("div",Ke,r[0]||(r[0]=[e.createElementVNode("img",{src:Qe,class:"h-12 w-auto"},null,-1)]))):e.createCommentVNode("v-if",!0)}const D=q(Oe,[["render",He],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSecuredFooter.vue"]]);function Y(a={}){const{getUrl:r}=E.useStrandsConfig(),n=e.ref([]),t=e.ref(!1),s=e.ref(null),i=e.computed(()=>n.value.filter(d=>d.enabled)),o=async()=>{t.value=!0,s.value=null;try{const d=r("oauthProviders"),V=await fetch(d,{method:"GET",headers:{"Content-Type":"application/json"}});if(!V.ok){const A=await V.json().catch(()=>({}));throw new Error(A.error?.message||`HTTP ${V.status}: ${V.statusText}`)}const u=await V.json();n.value=u.providers||[]}catch(d){const V=d instanceof Error?d.message:"Failed to fetch OAuth providers";s.value=V}finally{t.value=!1}},c=async(d,V)=>{const u={...a,...V},A=new URLSearchParams;u.redirectUrl&&A.append("redirect_url",u.redirectUrl),u.scopes&&u.scopes.length>0&&A.append("scopes",u.scopes.join(","));const h=A.toString(),y=r("oauthProvider").replace("{provider_id}",d),x=h?`${y}?${h}`:y;try{const g=await fetch(x,{method:"GET",headers:{"Content-Type":"application/json"}});if(!g.ok){const l=await g.json().catch(()=>({}));throw new Error(l.error?.message||`HTTP ${g.status}: ${g.statusText}`)}const m=await g.json();if(!m.success)throw new Error(m.error?.message||"Failed to get OAuth auth URL");return m.data.authUrl}catch(g){const m=g instanceof Error?g.message:"Failed to get OAuth auth URL";throw new Error(m)}},p=async(d,V)=>{try{const u=n.value.find(A=>A.id===d);if(!u)throw new Error(`OAuth provider '${d}' not found`);if(!u.auth_url)throw new Error(`No auth URL configured for provider '${d}'`);window.location.href=u.auth_url}catch(u){throw s.value=u instanceof Error?u.message:"Failed to redirect to OAuth provider",u}},N=d=>n.value.find(V=>V.id===d),v=d=>{if(d.iconUrl)return d.iconUrl;switch(d.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:i,loading:e.computed(()=>t.value),error:e.computed(()=>s.value),fetchProviders:o,getProviderAuthUrl:c,redirectToProvider:p,getProviderById:N,getProviderIcon:v}}const Re=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config);console.log("support email:",o());const{setAuthData:c}=P.useStrandsAuth(),{enabledProviders:p,loading:N,error:v,fetchProviders:d,redirectToProvider:V,getProviderIcon:u}=Y({redirectUrl:t.redirectUrl});e.onMounted(()=>{d().catch(w=>{console.warn("Failed to fetch OAuth providers:",w)})});const A=e.computed(()=>p.value),h={async signIn(w,S){const f=await fetch(i("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:w,password:S})});if(!f.ok)throw f.status===401?new Error("Invalid email or password"):f.status===403?new Error("Please verify your email address before signing in"):new Error(`Sign in failed: ${f.status} ${f.statusText}`);return await f.json()},async signUp(w,S,f,W){const T=await fetch(i("signUp"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:w,password:S,firstName:f,lastName:W})});if(!T.ok){const H=await T.json().catch(()=>({}));throw new Error(H.error?.message||`HTTP ${T.status}: ${T.statusText}`)}return(await T.json()).message},async requestPasswordReset(w){throw new Error("Password reset functionality is not yet implemented in the API. Please contact support.")}},y=e.ref(t.mode),x=e.ref(!1),g=e.ref(""),m=e.ref(!1),l=e.reactive({firstName:"",lastName:"",email:"",password:"",confirmPassword:""}),b=e.computed(()=>y.value==="signup"),U=e.computed(()=>y.value==="reset-password"),L=e.computed(()=>l.password===l.confirmPassword),k=e.computed(()=>U.value?l.email.trim()&&!m.value:b.value?l.email.trim():l.email.trim()&&l.password),C={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}},B=w=>{let S=0;w.length>=8&&(S+=1),w.length>=12&&(S+=1),/[a-z]/.test(w)&&(S+=1),/[A-Z]/.test(w)&&(S+=1),/[0-9]/.test(w)&&(S+=1),/[^A-Za-z0-9]/.test(w)&&(S+=1);const f=S<=2?C.weak:S<=4?C.medium:C.strong;return{score:S,...f}},M=async()=>{x.value=!0,g.value="";try{if(U.value)await h.requestPasswordReset(l.email),m.value=!0,s("password-reset-sent",l.email);else if(b.value){const w=await h.signUp(l.email,l.password,l.firstName,l.lastName);s("success",w.user)}else{const w=await h.signIn(l.email,l.password);c(w),s("success",w.user)}}catch(w){const S=w instanceof Error?w.message:"An unexpected error occurred";g.value=S,s("error",S)}finally{x.value=!1}},X=async w=>{try{await V(w,{redirectUrl:t.redirectUrl})}catch(S){const f=S instanceof Error?S.message:`Failed to ${b.value?"sign up":"sign in"} with ${w}`;g.value=f,s("error",f)}};e.watch(()=>t.mode,w=>{y.value=w}),e.watch(y,w=>{g.value="",m.value=!1,l.firstName="",l.lastName="",l.email="",l.password="",l.confirmPassword="",s("mode-changed",w)});const O={props:t,emit:s,getUrl:i,getSupportEmail:o,setAuthData:c,enabledProviders:p,oauthLoading:N,oauthError:v,fetchProviders:d,redirectToProvider:V,getProviderIcon:u,displayProviders:A,authApi:h,currentMode:y,loading:x,error:g,isPasswordResetSubmitted:m,form:l,isSignUp:b,isPasswordReset:U,isPasswordMatch:L,isFormValid:k,PASSWORD_STRENGTH_CONFIGS:C,getPasswordStrength:B,handleAuth:M,handleOAuthAuth:X,get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},get StrandsUiTabs(){return K},StrandsSecuredFooter:D};return Object.defineProperty(O,"__isScriptSetup",{enumerable:!1,value:!0}),O}}),Ge={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},Je={class:"text-center mb-8"},_e={key:0,class:"mb-8"},$e={key:0,class:"space-y-3 mb-6"},et={class:"w-5 h-5 flex items-center justify-center"},tt={key:0,class:"w-5 h-5"},rt=["src","alt"],ot={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},nt={class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},at={class:"text-xs font-semibold text-neutral-600"},st={class:"font-medium"},lt={key:0,class:"divider-with-text"},it={class:"divider-text"},dt={key:0,class:"mb-4"},At={class:"flex items-center justify-between mb-2"},ct={key:0,class:"mt-8 text-center"},ut={key:0,class:"mt-6 text-center"},mt={class:"text-neutral-400 text-sm"};function ft(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",Ge,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",Je,[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"},{default:e.withCtx(()=>[t.isPasswordReset?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",_e,[e.createVNode(t.StrandsUiTabs,{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"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",$e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.displayProviders,o=>(e.openBlock(),e.createBlock(t.StrandsUiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:c=>t.handleOAuthAuth(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",et,[e.createCommentVNode(" Dynamic provider icons "),o.icon||o.iconUrl?(e.openBlock(),e.createElementBlock("div",tt,[e.createElementVNode("img",{src:o.icon||o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,rt)])):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",ot,[...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",nt,[e.createElementVNode("span",at,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)])],2112))]),e.createElementVNode("span",st," 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"},{default:e.withCtx(()=>[!t.isPasswordReset&&t.displayProviders?.length?(e.openBlock(),e.createElementBlock("div",lt,[e.createElementVNode("span",it,"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",null,[e.createCommentVNode(" Email "),e.createElementVNode("div",{class:e.normalizeClass(["email-field-spacing",!t.isPasswordReset&&!t.isSignUp?"has-password":"no-password"])},[e.createVNode(t.StrandsUiInput,{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"])],2),e.createCommentVNode(" Password (Sign In Only) "),e.createVNode(e.Transition,{name:"password-fade"},{default:e.withCtx(()=>[!t.isPasswordReset&&!t.isSignUp?(e.openBlock(),e.createElementBlock("div",dt,[e.createElementVNode("div",At,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-gray-700"},"Password",-1)),e.createVNode(t.StrandsUiLink,{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.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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"},{default:e.withCtx(()=>[t.isPasswordReset?(e.openBlock(),e.createElementBlock("div",ct,[e.createVNode(t.StrandsUiLink,{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.StrandsUiAlert,{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.createVNode(e.Transition,{name:"support-fade"},{default:e.withCtx(()=>[t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",ut,[e.createElementVNode("p",mt,[r[12]||(r[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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)]),_:1}),e.createCommentVNode(" Secured by footer "),e.createVNode(t.StrandsSecuredFooter,{config:t.props.config},null,8,["config"])]),_:1})])}const gt=q(Re,[["render",ft],["__scopeId","data-v-4583e1b6"],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsAuth.vue"]]),pt=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config),{setAuthData:c}=P.useStrandsAuth(),{enabledProviders:p,loading:N,error:v,fetchProviders:d,redirectToProvider:V}=Y({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{d().catch(m=>{console.warn("Failed to fetch OAuth providers:",m)})});const u=e.ref(!1),A=e.ref(""),h=e.reactive({email:"",password:""}),g={props:t,emit:s,getUrl:i,getSupportEmail:o,setAuthData:c,enabledProviders:p,oauthLoading:N,oauthError:v,fetchProviders:d,redirectToProvider:V,loading:u,error:A,form:h,handleSignIn:async()=>{u.value=!0,A.value="";try{const m=await fetch(i("signIn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:h.email,password:h.password})});if(!m.ok)throw m.status===401?new Error("Invalid email or password"):m.status===403?new Error("Please verify your email address before signing in"):new Error(`Sign in failed: ${m.status} ${m.statusText}`);const l=await m.json();c(l),s("success",l.user)}catch(m){const l=m instanceof Error?m.message:"Sign in failed";A.value=l,s("error",l)}finally{u.value=!1}},handleOAuthSignIn:async m=>{try{await V(m,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(l){const b=l instanceof Error?l.message:`Failed to sign in with ${m}`;A.value=b,s("error",b)}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}}),Vt={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},vt={key:0,class:"space-y-3 mb-6"},Nt={class:"w-5 h-5 flex items-center justify-center"},ht={key:0,class:"w-5 h-5"},yt=["src","alt"],wt={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},Ct={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"},St={class:"font-medium"},xt={key:1,class:"divider-with-text"},kt={class:"space-y-4"},qt={class:"flex items-center justify-between mb-2"},Bt={class:"mt-8 text-center"},Ut={class:"text-sm text-neutral-600"},Et={key:3,class:"mt-6 text-center"},Wt={class:"text-neutral-400 text-sm"};function Lt(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",Vt,[e.createVNode(t.StrandsUiCard,{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",vt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.StrandsUiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:c=>t.handleOAuthSignIn(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Nt,[e.createCommentVNode(" Dynamic provider icons "),o.icon||o.iconUrl?(e.openBlock(),e.createElementBlock("div",ht,[e.createElementVNode("img",{src:o.icon||o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,yt)])):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",wt,[...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",Ct,[e.createElementVNode("span",bt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",St,"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",xt,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",kt,[e.createVNode(t.StrandsUiInput,{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",qt,[r[9]||(r[9]=e.createElementVNode("span",{class:"text-sm font-medium text-neutral-700"},"Password",-1)),e.createVNode(t.StrandsUiLink,{onClick:r[1]||(r[1]=o=>a.$emit("forgot-password")),class:"text-sm"},{default:e.withCtx(()=>r[8]||(r[8]=[e.createTextVNode(" Forgot password? ",-1)])),_:1,__:[8]})]),e.createVNode(t.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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",Bt,[e.createElementVNode("p",Ut,[r[12]||(r[12]=e.createTextVNode(" Don't have an account? ",-1)),e.createVNode(t.StrandsUiLink,{onClick:r[4]||(r[4]=o=>a.$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",Et,[e.createElementVNode("p",Wt,[r[14]||(r[14]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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 Mt=q(pt,[["render",Lt],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignIn.vue"]]),Pt=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config),{enabledProviders:c,loading:p,error:N,fetchProviders:v,redirectToProvider:d}=Y({redirectUrl:t.redirectUrl,scopes:t.oauthScopes});e.onMounted(()=>{v().catch(k=>{console.warn("Failed to fetch OAuth providers:",k)})});const V=e.ref(!1),u=e.ref(""),A=e.ref(!1),h=e.ref(""),y=e.ref("Magic Link Sent!"),x=e.ref(""),g=e.reactive({email:""}),m=e.computed(()=>g.email.trim()&&g.email.includes("@")),L={props:t,emit:s,getUrl:i,getSupportEmail:o,enabledProviders:c,oauthLoading:p,oauthError:N,fetchProviders:v,redirectToProvider:d,loading:V,error:u,signupSuccess:A,successMessage:h,successTitle:y,successEmail:x,form:g,isFormValid:m,handleSignUp:async()=>{V.value=!0,u.value="";try{const k=i("signUp");console.log("Attempting sign up to URL:",k);const C=await fetch(k,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:g.email})});if(process.env.NODE_ENV==="development"&&console.log("Sign up response status:",C.status),!C.ok){let M=`Sign up failed (${C.status})`;try{const X=await C.json();M=X.message||X.error||M}catch{M=await C.text()||M}throw new Error(M)}const B=await C.json();console.log("Magic link sign up success:",B),A.value=!0,x.value=g.email,h.value=B.message||"Magic link sent! Check your email.",B.message&&(B.message.includes("already have an account")||B.message.includes("Welcome back")?y.value="Welcome Back!":B.message.includes("Magic link sent")||B.message.includes("Check your email")?y.value="Magic Link Sent!":y.value="Success!"),s("success",{email:g.email,message:B.message||"Magic link sent! Check your email."})}catch(k){console.error("Sign up error:",k);let C="Unable to send magic link. Please try again.";if(k instanceof Error)if(k.message.includes("fetch"))C="Unable to connect to authentication service. Please check your internet connection and try again.";else if(k.message.includes("CORS")){const B=o();C=B?`Authentication service configuration error. Please contact ${B}.`:"Authentication service configuration error."}else C=k.message;u.value=C,s("error",C)}finally{V.value=!1}},resetToForm:()=>{A.value=!1,h.value="",y.value="Magic Link Sent!",x.value="",g.email="",u.value=""},handleOAuthSignUp:async k=>{try{await d(k,{redirectUrl:t.redirectUrl,scopes:t.oauthScopes})}catch(C){const B=C instanceof Error?C.message:`Failed to sign up with ${k}`;u.value=B,s("error",B)}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(L,"__isScriptSetup",{enumerable:!1,value:!0}),L}}),zt={class:"w-full min-w-100 max-w-md mx-auto animate-slide-up"},Ft={class:"text-center"},It={class:"text-2xl font-bold text-gray-900 mb-2"},Dt={class:"text-gray-600 mb-4"},Xt={key:0,class:"text-sm text-gray-500 mb-4"},jt={key:0,class:"space-y-3 mb-6"},Tt={class:"w-5 h-5 flex items-center justify-center"},Zt={key:0,class:"w-5 h-5"},Yt=["src","alt"],Ot={key:2,class:"w-5 h-5 fill-current",viewBox:"0 0 24 24"},Qt={key:3,class:"w-5 h-5 rounded-full bg-neutral-300 flex items-center justify-center"},Kt={class:"text-xs font-semibold text-neutral-600"},Ht={class:"font-medium"},Rt={key:1,class:"divider-with-text"},Gt={key:2,class:"mt-6 animate-fade-in"},Jt={class:"alert-error"},_t={class:"flex items-start gap-3"},$t={class:"font-medium"},er={class:"mt-8 text-center"},tr={class:"text-sm text-neutral-600"},rr={key:3,class:"mt-6 text-center"},or={class:"text-neutral-400 text-sm"};function nr(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",zt,[e.createCommentVNode(" Success State "),t.signupSuccess?(e.openBlock(),e.createBlock(t.StrandsUiCard,{key:0,variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ft,[r[3]||(r[3]=e.createElementVNode("div",{class:"text-green-500 text-6xl mb-4"},"📧",-1)),e.createElementVNode("h1",It,e.toDisplayString(t.successTitle),1),e.createElementVNode("p",Dt,e.toDisplayString(t.successMessage),1),t.successEmail?(e.openBlock(),e.createElementBlock("div",Xt,[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.StrandsUiButton,{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.StrandsUiCard,{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",jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.enabledProviders,o=>(e.openBlock(),e.createBlock(t.StrandsUiButton,{key:o.id,variant:"outline","full-width":"",disabled:t.oauthLoading,onClick:c=>t.handleOAuthSignUp(o.id),class:"btn-oauth group"},{default:e.withCtx(()=>[e.createElementVNode("div",Tt,[e.createCommentVNode(" Dynamic provider icons "),o.icon||o.iconUrl?(e.openBlock(),e.createElementBlock("div",Zt,[e.createElementVNode("img",{src:o.icon||o.iconUrl,alt:`${o.displayName||o.name} icon`,class:"w-5 h-5"},null,8,Yt)])):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",Ot,[...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",Qt,[e.createElementVNode("span",Kt,e.toDisplayString((o.displayName||o.name).charAt(0).toUpperCase()),1)]))]),e.createElementVNode("span",Ht,"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",Rt,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.StrandsUiInput,{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.StrandsUiButton,{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",Gt,[e.createElementVNode("div",Jt,[e.createElementVNode("div",_t,[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",$t,e.toDisplayString(t.error),1)])])])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Sign in link "),e.createElementVNode("div",er,[e.createElementVNode("p",tr,[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=>a.$emit("switch-to-signin"))}," Sign in ")])]),e.createCommentVNode(" Need help "),t.getSupportEmail()?(e.openBlock(),e.createElementBlock("div",rr,[e.createElementVNode("p",or,[r[12]||(r[12]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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 ar=q(Pt,[["render",nr],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsSignUp.vue"]]),sr=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(a,{expose:r,emit:n}){r();const t=a,s=n,{getUrl:i,getSupportEmail:o}=E.useStrandsConfig(t.config),{setAuthData:c}=P.useStrandsAuth(),p=e.ref(!1),N=e.ref(!1),v=e.ref(!1),d=e.ref(""),V=e.ref(""),u=e.reactive({username:"",firstName:"",lastName:"",password:""}),A=e.reactive({username:"",firstName:"",lastName:"",password:""}),h=e.computed(()=>{const l=u.username.trim()&&u.password.trim(),b=u.password.length>=8,U=!!t.token;return l&&b&&U});e.watch(()=>u.password,l=>{l&&l.length<8?A.password="Password must be at least 8 characters long":A.password=""}),e.watch(()=>u.username,l=>{l&&l.length<2?A.username="Username must be at least 2 characters long":A.username=""});const y=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 b=JSON.parse(atob(l[1]));b.email&&(V.value=b.email)}}catch(l){console.warn("Could not decode token for email display:",l)}});const x=()=>{y.value.referrerUrl&&(console.log("Redirecting to referrer:",y.value.referrerUrl),window.location.href=y.value.referrerUrl)},m={props:t,emit:s,getUrl:i,getSupportEmail:o,setAuthData:c,registrationComplete:p,invalidToken:N,loading:v,error:d,email:V,form:u,fieldErrors:A,isFormValid:h,authConfig:y,redirectToReferrer:x,handleCompleteSignUp:async()=>{if(!t.token){d.value="Registration token is required";return}if(d.value="",Object.keys(A).forEach(l=>{A[l]=""}),!h.value){d.value="Please fill in all required fields correctly";return}v.value=!0;try{const l=await fetch(`${y.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(!l.ok){const U=await l.text();throw new Error(`Failed to complete registration: ${U}`)}const b=await l.json();console.log("Registration success:",b),b.access_token&&b.refresh_token&&b.user?(c(b),console.log("Auth tokens stored successfully for user:",b.user.email)):console.warn("Registration response missing auth tokens or user data"),p.value=!0,s("success",b),setTimeout(()=>{x()},2e3)}catch(l){l instanceof Error?l.message.includes("CONFLICT")||l.message.includes("409")?d.value="This account already exists. Please try signing in instead.":l.message.includes("BAD_REQUEST")||l.message.includes("400")?(d.value="Invalid or expired registration link. Please request a new one.",N.value=!0,s("invalid-token")):d.value=l.message:d.value="Failed to complete registration. Please try again.",s("error",d.value)}finally{v.value=!1}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),lr={key:0,class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},ir={class:"text-center"},dr={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Ar={class:"text-center"},cr={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},ur={class:"text-center mb-8"},mr={key:0,class:"mt-2"},fr={class:"text-sm text-neutral-500"},gr={class:"font-medium text-neutral-700"},pr={key:1,class:"mt-6 text-center"},Vr={class:"text-neutral-400 text-sm"},vr={class:"min-w-100 w-full max-w-md mx-auto animate-slide-up"},Nr={class:"text-center"};function hr(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createCommentVNode(" Success State "),t.registrationComplete?(e.openBlock(),e.createElementBlock("div",lr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",ir,[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.StrandsUiButton,{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",dr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Ar,[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.StrandsUiButton,{variant:"primary","full-width":"",onClick:r[0]||(r[0]=o=>a.$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",cr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createCommentVNode(" Header "),e.createElementVNode("div",ur,[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",mr,[e.createElementVNode("p",fr,[r[17]||(r[17]=e.createTextVNode("Creating account for: ",-1)),e.createElementVNode("span",gr,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.StrandsUiInput,{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.StrandsUiInput,{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.StrandsUiInput,{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.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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",pr,[e.createElementVNode("p",Vr,[r[23]||(r[23]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{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",vr,[e.createVNode(t.StrandsUiCard,{variant:"modern"},{default:e.withCtx(()=>[e.createElementVNode("div",Nr,[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.StrandsUiButton,{variant:"primary","full-width":"",onClick:r[6]||(r[6]=o=>a.$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 yr=q(sr,[["render",hr],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsCompleteSignUp.vue"]]),wr=e.defineComponent({__name:"StrandsUserProfile",props:{user:{type:Object,required:!1},config:{type:Object,required:!1},autoFetch:{type:Boolean,required:!1,default:!0}},emits:["profile-updated","error","manage-sessions","mfa-toggle"],setup(a,{expose:r,emit:n}){r();const t=a,s=n,{getSupportEmail:i}=E.useStrandsConfig(t.config),{fetchProfile:o,updateProfile:c,currentUser:p,isAuthenticated:N}=P.useStrandsAuth(),v=e.ref(null),d=e.ref(!1),V=e.computed(()=>p.value||t.user||v.value),u=e.ref(!1),A=e.ref(!1),h=e.ref(""),y=e.ref(""),x=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}]),g=e.reactive({firstName:"",lastName:"",email:"",phone:""}),m=e.reactive({current:"",new:"",confirm:""}),l=e.reactive({firstName:"",lastName:"",email:"",phone:""}),b=e.computed(()=>{const f=V.value;return f?g.firstName!==f.firstName||g.lastName!==f.lastName||g.email!==f.email||g.phone!==(f.phone||""):!1}),U=e.computed(()=>m.current&&m.new&&m.confirm&&m.new===m.confirm&&m.new.length>=8),L=(f,W)=>!f&&!W?"U":`${f?.[0]||""}${W?.[0]||""}`.toUpperCase(),k=async()=>{if(!(!t.autoFetch||t.user||!N.value)){d.value=!0;try{await o()}catch(f){const W=f instanceof Error?f.message:"Failed to load profile";y.value=W,s("error",W)}finally{d.value=!1}}};e.watch(()=>V.value,f=>{f&&(g.firstName=f.firstName,g.lastName=f.lastName,g.email=f.email,g.phone=f.phone||"")},{immediate:!0}),e.onMounted(()=>{k()});const C=()=>{h.value="",y.value="",Object.keys(l).forEach(f=>{l[f]=""})},S={props:t,emit:s,getSupportEmail:i,fetchProfile:o,updateProfile:c,authUser:p,isAuthenticated:N,internalUser:v,fetchingProfile:d,currentUser:V,loading:u,showPasswordChange:A,successMessage:h,errorMessage:y,activeSessions:x,form:g,passwordForm:m,errors:l,hasChanges:b,isPasswordFormValid:U,getInitials:L,fetchUserProfile:k,clearMessages:C,handleUpdateProfile:async()=>{C(),u.value=!0;try{const f=await c({firstName:g.firstName,lastName:g.lastName,email:g.email,phone:g.phone||void 0});f&&(h.value="Profile updated successfully",s("profile-updated",f))}catch(f){const W=f instanceof Error?f.message:"Failed to update profile";y.value=W,s("error",W)}finally{u.value=!1}},handlePasswordChange:async()=>{if(U.value){C(),u.value=!0;try{await new Promise(f=>setTimeout(f,1e3)),h.value="Password updated successfully",A.value=!1,m.current="",m.new="",m.confirm=""}catch{y.value="Failed to update password"}finally{u.value=!1}}},handleImageUpload:()=>{s("error","Image upload functionality not yet implemented")},handleMFAToggle:()=>{s("mfa-toggle",!V.value?.mfaEnabled)},handleCancel:()=>{const f=V.value;f&&(g.firstName=f.firstName,g.lastName=f.lastName,g.email=f.email,g.phone=f.phone||""),C(),A.value=!1,m.current="",m.new="",m.confirm=""},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(S,"__isScriptSetup",{enumerable:!1,value:!0}),S}}),Cr={class:"w-full min-w-xl max-w-2xl mx-auto animate-slide-up"},br={class:"card-modern"},Sr={class:"flex flex-col items-center mb-8"},xr={class:"relative group"},kr={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"},qr={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Br={class:"space-y-4"},Ur={class:"space-y-4"},Er={class:"space-y-4 p-4 bg-gray-50 rounded-xl"},Wr={class:"flex items-center justify-between"},Lr={key:0,class:"space-y-3"},Mr={class:"p-4 bg-gray-50 rounded-xl"},Pr={class:"flex items-center justify-between"},zr={class:"text-sm text-gray-600"},Fr={class:"p-4 bg-gray-50 rounded-xl"},Ir={class:"flex items-center justify-between"},Dr={class:"text-sm text-gray-600"},Xr={class:"flex flex-col sm:flex-row gap-3 pt-6 border-t border-gray-200"},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"},Qr={class:"alert-error"},Kr={class:"flex items-start gap-3"},Hr={class:"font-medium"},Rr={key:2,class:"mt-6 text-center"},Gr={class:"text-gray-400 text-sm"};function Jr(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",Cr,[e.createElementVNode("div",br,[e.createCommentVNode(" Header "),r[23]||(r[23]=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-gray-600"},"Manage your account information and preferences")],-1)),e.createCommentVNode(" Profile Image Section "),e.createElementVNode("div",Sr,[e.createElementVNode("div",xr,[e.createElementVNode("div",kr,e.toDisplayString(t.getInitials(t.currentUser?.firstName,t.currentUser?.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",qr,[e.createCommentVNode(" Personal Information "),e.createElementVNode("div",Br,[r[11]||(r[11]=e.createElementVNode("h3",{class:"text-lg font-semibold text-gray-900 mb-4"},"Personal Information",-1)),e.createVNode(t.StrandsUiInput,{id:"firstName",modelValue:t.form.firstName,"onUpdate:modelValue":r[0]||(r[0]=o=>t.form.firstName=o),type:"text",label:"First name",placeholder:"Enter your first name",autocomplete:"given-name",required:"",disabled:t.loading||t.fetchingProfile,error:t.errors.firstName},null,8,["modelValue","disabled","error"]),e.createVNode(t.StrandsUiInput,{id:"lastName",modelValue:t.form.lastName,"onUpdate:modelValue":r[1]||(r[1]=o=>t.form.lastName=o),type:"text",label:"Last name",placeholder:"Enter your last name",autocomplete:"family-name",required:"",disabled:t.loading||t.fetchingProfile,error:t.errors.lastName},null,8,["modelValue","disabled","error"]),e.createVNode(t.StrandsUiInput,{id:"email",modelValue:t.form.email,"onUpdate:modelValue":r[2]||(r[2]=o=>t.form.email=o),type:"email",label:"Email address",placeholder:"Enter your email address",autocomplete:"email",required:"",disabled:t.loading||t.fetchingProfile,error:t.errors.email},e.createSlots({_:2},[t.form.email!==t.currentUser?.email?{name:"help",fn:e.withCtx(()=>[r[10]||(r[10]=e.createElementVNode("p",{class:"text-yellow-600"},"Changing your email will require verification",-1))]),key:"0"}:void 0]),1032,["modelValue","disabled","error"]),e.createVNode(t.StrandsUiInput,{id:"phone",modelValue:t.form.phone,"onUpdate:modelValue":r[3]||(r[3]=o=>t.form.phone=o),type:"tel",label:"Phone number",placeholder:"Enter your phone number",autocomplete:"tel",disabled:t.loading||t.fetchingProfile,error:t.errors.phone},null,8,["modelValue","disabled","error"])]),e.createCommentVNode(" Security Settings "),e.createElementVNode("div",Ur,[r[17]||(r[17]=e.createElementVNode("h3",{class:"text-lg font-semibold text-gray-900 mb-4"},"Security Settings",-1)),e.createCommentVNode(" Password Change "),e.createElementVNode("div",Er,[e.createElementVNode("div",Wr,[r[12]||(r[12]=e.createElementVNode("div",null,[e.createElementVNode("h4",{class:"font-medium text-gray-900"},"Password"),e.createElementVNode("p",{class:"text-sm text-gray-600"},"Last updated 30 days ago")],-1)),e.createVNode(t.StrandsUiButton,{variant:"secondary",size:"sm",onClick:r[4]||(r[4]=o=>t.showPasswordChange=!t.showPasswordChange)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.showPasswordChange?"Cancel":"Change"),1)]),_:1})]),t.showPasswordChange?(e.openBlock(),e.createElementBlock("div",Lr,[e.createVNode(t.StrandsUiInput,{modelValue:t.passwordForm.current,"onUpdate:modelValue":r[5]||(r[5]=o=>t.passwordForm.current=o),type:"password",placeholder:"Current password",autocomplete:"current-password"},null,8,["modelValue"]),e.createVNode(t.StrandsUiInput,{modelValue:t.passwordForm.new,"onUpdate:modelValue":r[6]||(r[6]=o=>t.passwordForm.new=o),type:"password",placeholder:"New password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(t.StrandsUiInput,{modelValue:t.passwordForm.confirm,"onUpdate:modelValue":r[7]||(r[7]=o=>t.passwordForm.confirm=o),type:"password",placeholder:"Confirm new password",autocomplete:"new-password"},null,8,["modelValue"]),e.createVNode(t.StrandsUiButton,{variant:"primary",size:"sm",onClick:t.handlePasswordChange,disabled:!t.isPasswordFormValid},{default:e.withCtx(()=>r[13]||(r[13]=[e.createTextVNode(" Update Password ",-1)])),_:1,__:[13]},8,["disabled"])])):e.createCommentVNode("v-if",!0)]),e.createCommentVNode(" Two-Factor Authentication "),e.createElementVNode("div",Mr,[e.createElementVNode("div",Pr,[e.createElementVNode("div",null,[r[14]||(r[14]=e.createElementVNode("h4",{class:"font-medium text-gray-900"},"Two-Factor Authentication",-1)),e.createElementVNode("p",zr,e.toDisplayString(t.currentUser?.mfaEnabled?"Enabled":"Add extra security to your account"),1)]),e.createVNode(t.StrandsUiButton,{variant:t.currentUser?.mfaEnabled?"secondary":"primary",size:"sm",onClick:t.handleMFAToggle},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.currentUser?.mfaEnabled?"Disable":"Enable"),1)]),_:1},8,["variant"])])]),e.createCommentVNode(" Active Sessions "),e.createElementVNode("div",Fr,[e.createElementVNode("div",Ir,[e.createElementVNode("div",null,[r[15]||(r[15]=e.createElementVNode("h4",{class:"font-medium text-gray-900"},"Active Sessions",-1)),e.createElementVNode("p",Dr,e.toDisplayString(t.activeSessions.length)+" active device(s)",1)]),e.createVNode(t.StrandsUiButton,{variant:"secondary",size:"sm",onClick:r[8]||(r[8]=o=>a.$emit("manage-sessions"))},{default:e.withCtx(()=>r[16]||(r[16]=[e.createTextVNode(" Manage ",-1)])),_:1,__:[16]})])])])]),e.createCommentVNode(" Action Buttons "),e.createElementVNode("div",Xr,[e.createVNode(t.StrandsUiButton,{type:"submit",variant:"primary",disabled:t.loading||!t.hasChanges,loading:t.loading},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.loading?"Saving changes...":"Save changes"),1)]),_:1},8,["disabled","loading"]),e.createVNode(t.StrandsUiButton,{variant:"secondary",onClick:t.handleCancel,disabled:t.loading},{default:e.withCtx(()=>r[18]||(r[18]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[18]},8,["disabled"])])],32),e.createCommentVNode(" Success/Error Messages "),t.successMessage?(e.openBlock(),e.createElementBlock("div",jr,[e.createElementVNode("div",Tr,[e.createElementVNode("div",Zr,[r[19]||(r[19]=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",Qr,[e.createElementVNode("div",Kr,[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 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[22]||(r[22]=e.createTextVNode(" Need help? ",-1)),e.createVNode(t.StrandsUiLink,{variant:"primary",href:`mailto:${t.getSupportEmail()}`},{default:e.withCtx(()=>r[21]||(r[21]=[e.createTextVNode(" Contact Support ",-1)])),_:1,__:[21]},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(wr,[["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(a,{expose:r,emit:n}){r();const t=a,s=n,{getSupportEmail:i}=E.useStrandsConfig(t.config),o=e.ref(!1),c=e.ref(""),p=e.ref(!1),N=e.reactive({email:""}),d={props:t,emit:s,getSupportEmail:i,loading:o,error:c,isSubmitted:p,form:N,handlePasswordReset:async()=>{o.value=!0,c.value="";try{console.log("Password reset request:",{email:N.email}),await new Promise(V=>setTimeout(V,1e3)),p.value=!0,s("success",N.email)}catch{c.value="Failed to send password reset email. Please try again.",s("error",c.value)}finally{o.value=!1}},get StrandsUiCard(){return j},get StrandsUiButton(){return z},get StrandsUiInput(){return F},get StrandsUiAlert(){return Z},get StrandsUiLink(){return I},StrandsSecuredFooter:D};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),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(a,r,n,t,s,i){return e.openBlock(),e.createElementBlock("div",eo,[e.createVNode(t.StrandsUiCard,{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.StrandsUiInput,{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.StrandsUiButton,{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.StrandsUiAlert,{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.StrandsUiAlert,{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.StrandsUiLink,{onClick:r[2]||(r[2]=o=>a.$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.StrandsUiLink,{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 ao=q($r,[["render",no],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsPasswordReset.vue"]]),so=e.defineComponent({__name:"StrandsMFASetup",emits:["success","error","back"],setup(a,{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(a,r,n,t,s,i){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=>a.$emit("back"))}," Cancel ")])])])}const uo=q(so,[["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(a,{expose:r,emit:n}){r();const t=n,s=e.ref(!1),{isAuthenticated:i,isLoading:o,user:c,signOut:p}=P.useStrandsAuth(),N=e.computed(()=>o.value||!s.value);e.onMounted(()=>{setTimeout(()=>{s.value=!0},100)});const d={emit:t,isComponentReady:s,isAuthenticated:i,isLoading:o,user:c,signOut:p,showLoading:N,signIn:()=>{t("sign-in-required")},get StrandsUiLoader(){return Q}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),fo={key:0,class:"animate-fade-in"},go={key:1,class:"animate-fade-in"},po={key:2,class:"animate-fade-in py-8"};function Vo(a,r,n,t,s,i){return t.isAuthenticated&&!t.showLoading?(e.openBlock(),e.createElementBlock("div",fo,[e.renderSlot(a.$slots,"default",{user:t.user,signOut:t.signOut})])):n.showFallback&&!t.showLoading?(e.openBlock(),e.createElementBlock("div",go,[e.renderSlot(a.$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 ")])])])):t.showLoading?(e.openBlock(),e.createElementBlock("div",po,[e.renderSlot(a.$slots,"loading",{},()=>[e.createVNode(t.StrandsUiLoader,{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})])])):e.createCommentVNode("v-if",!0)}const vo=q(mo,[["render",Vo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SignedIn.vue"]]),No=e.defineComponent({__name:"SignedOut",props:{showFallback:{type:Boolean,required:!1,default:!0}},emits:["sign-in-clicked","sign-up-clicked"],setup(a,{expose:r,emit:n}){r();const t=a,s=n,{isAuthenticated:i,isLoading:o,user:c,signOut:p}=P.useStrandsAuth(),d={props:t,emit:s,isAuthenticated:i,isLoading:o,user:c,signOut:p,signIn:()=>{s("sign-in-clicked")},signUp:()=>{s("sign-up-clicked")},get StrandsUiLoader(){return Q}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),ho={key:0,class:"animate-fade-in"},yo={key:1,class:"animate-fade-in"},wo={class:"text-center py-8"},Co={class:"text-neutral-600 mb-4"},bo={key:2,class:"animate-fade-in py-8"};function So(a,r,n,t,s,i){return!t.isAuthenticated&&!t.isLoading?(e.openBlock(),e.createElementBlock("div",ho,[e.renderSlot(a.$slots,"default",{signIn:t.signIn,signUp:t.signUp})])):n.showFallback&&t.isAuthenticated&&!t.isLoading?(e.openBlock(),e.createElementBlock("div",yo,[e.renderSlot(a.$slots,"fallback",{user:t.user,signOut:t.signOut},()=>[e.createCommentVNode(" Default fallback content for signed in users "),e.createElementVNode("div",wo,[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",Co,"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(a.$slots,"loading",{},()=>[e.createVNode(t.StrandsUiLoader,{size:64,text:"Checking authentication...",variant:"auto","show-particles":!0})])])):e.createCommentVNode("v-if",!0)}const xo=q(No,[["render",So],["__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(a,{expose:r}){r();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function qo(a,r,n,t,s,i){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 Bo=q(ko,[["render",qo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsLogo.vue"]]),Uo=e.defineComponent({__name:"StrandsConfigProvider",props:{config:{type:Object,required:!0}},setup(a,{expose:r}){r();const n=a;e.onMounted(()=>{E.provideStrandsConfig(n.config)}),E.provideStrandsConfig(n.config);const t={props:n};return Object.defineProperty(t,"__isScriptSetup",{enumerable:!1,value:!0}),t}});function Eo(a,r,n,t,s,i){return e.renderSlot(a.$slots,"default")}const Wo=q(Uo,[["render",Eo],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/StrandsConfigProvider.vue"]]),Lo=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(a,{expose:r}){r();const n=a,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"},s=e.computed(()=>`${t[n.size]} ${n.class}`),i=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"})},c=e.computed(()=>{const N=o[n.name];return N?N():e.h("path",{d:""})}),p={props:n,sizeClasses:t,iconClass:s,viewBox:i,icons:o,iconComponent:c};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Mo=["fill","stroke","viewBox","aria-hidden"];function Po(a,r,n,t,s,i){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,Mo)}const zo=q(Lo,[["render",Po],["__file","/home/runner/work/strands-accounts/strands-accounts/apps/accounts-ui/src/vue/components/SvgIcon.vue"]]),Fo=a=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a),Io=a=>{const r=[];let n=0;a.length<8?r.push("Password must be at least 8 characters long"):n+=1,/[A-Z]/.test(a)?n+=1:r.push("Password must contain at least one uppercase letter"),/[a-z]/.test(a)?n+=1:r.push("Password must contain at least one lowercase letter"),/\d/.test(a)?n+=1:r.push("Password must contain at least one number"),/[!@#$%^&*(),.?":{}|<>]/.test(a)?n+=1:r.push("Password must contain at least one special character");const t=r.length===0;let s="weak";return n>=4?s="strong":n>=3&&(s="medium"),{isValid:t,strength:s,errors:r}},Do=a=>a.trim().length>=2,Xo=a=>/^[\+]?[1-9][\d]{0,15}$/.test(a.replace(/[\s\-\(\)]/g,"")),jo=a=>a.trim().length>0,To=(a,r)=>a===r,Zo=(a,r)=>{const n=a?.charAt(0).toUpperCase()||"",t=r?.charAt(0).toUpperCase()||"";return n+t||"U"},Yo=a=>(typeof a=="string"?new Date(a):a).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),Oo=(a,r)=>{let n;return(...t)=>{clearTimeout(n),n=setTimeout(()=>a(...t),r)}};exports.provideStrandsConfig=E.provideStrandsConfig;exports.setStrandsConfig=E.setStrandsConfig;exports.useStrandsConfig=E.useStrandsConfig;exports.useStrandsAuth=P.useStrandsAuth;exports.SignedIn=vo;exports.SignedOut=xo;exports.StrandsAuth=gt;exports.StrandsCompleteSignUp=yr;exports.StrandsConfigProvider=Wo;exports.StrandsLogo=Bo;exports.StrandsMFASetup=uo;exports.StrandsPasswordReset=ao;exports.StrandsSecuredFooter=D;exports.StrandsSignIn=Mt;exports.StrandsSignUp=ar;exports.StrandsUiAlert=Z;exports.StrandsUiButton=z;exports.StrandsUiCard=j;exports.StrandsUiInput=F;exports.StrandsUiLink=I;exports.StrandsUiLoader=Q;exports.StrandsUiTabs=K;exports.StrandsUserProfile=_r;exports.SvgIcon=zo;exports.debounce=Oo;exports.formatDate=Yo;exports.getInitials=Zo;exports.isRequired=jo;exports.isValidEmail=Fo;exports.isValidName=Do;exports.isValidPhone=Xo;exports.passwordsMatch=To;exports.useOAuthProviders=Y;exports.validatePassword=Io;
|
|
12
12
|
//# sourceMappingURL=strands-auth-ui.cjs.js.map
|