=n))for(let t=f;t=r)continue;let i=(n*t+e)*4;a+=o[i+0],s+=o[i+1],c+=o[i+2],l+=o[i+3],m+=1}a/=m,s/=m,c/=m,l/=m;for(let e=u;e=n))for(let t=f;t=r)continue;let i=(n*t+e)*4;o[i+0]=a,o[i+1]=s,o[i+2]=c,o[i+3]=l}}};z.addGetterSetter(B,`pixelSize`,8,R(),z.afterSetFilter);var aa=function(e){let t=Math.round(this.levels()*254)+1,n=e.data,r=n.length,i=255/t;for(let e=0;e255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`green`,0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`blue`,0,qe,z.afterSetFilter);var sa=function(e){let t=e.data,n=t.length,r=this.red(),i=this.green(),a=this.blue(),o=this.alpha();for(let e=0;e255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`green`,0,function(e){return this._filterUpToDate=!1,e>255?255:e<0?0:Math.round(e)}),z.addGetterSetter(B,`blue`,0,qe,z.afterSetFilter),z.addGetterSetter(B,`alpha`,1,function(e){return this._filterUpToDate=!1,e>1?1:e<0?0:e});var ca=function(e){let t=e.data,n=t.length;for(let e=0;e=128&&(t[e]=255-n,t[e+1]=255-r,t[e+2]=255-i)}return e},ua=function(e){let t=this.threshold()*255,n=e.data,r=n.length;for(let e=0;e{i(e.getAttr(r))})}}var ya=`V`;function ba(e){function t(e){return e?.__konvaNode?e:e?.parent?t(e.parent):(console.error(`vue-konva error: Can not find parent node`),null)}return t(e.parent)}function xa(e){return e.component?e.component.__konvaNode||xa(e.component.subTree):null}function Sa(e){let{el:t,component:n}=e,r=xa(e);if(t?.tagName&&n&&!r){let e=t.tagName.toLowerCase();return console.error(`vue-konva error: You are trying to render "${e}" inside your component tree. Looks like it is not a Konva node. You can render only Konva components inside the Stage.`),null}return r}function Ca(e){let t=e=>!!e&&typeof e==`object`&&`component`in e,n=e=>Array.isArray(e),r=e=>t(e)?[e,...r(e.children)]:n(e)?e.flatMap(r):[];return r(e.children)}function wa(e,t){let n=Ca(e),r=[];n.forEach(e=>{let t=Sa(e);t&&r.push(t)});let i=!1;r.forEach((e,t)=>{e.getZIndex()!==t&&(e.setZIndex(t),i=!0)}),i&&fa(t)}var Ta=da.default?.Stage||da.Stage,Ea=n({name:`Stage`,props:{config:{type:Object,default:function(){return{}}},__useStrictMode:{type:Boolean}},inheritAttrs:!1,setup(t,{attrs:n,slots:r,expose:i}){let a=D();if(!a)return;let s=o({}),c=h(null),u=new Ta({width:t.config.width,height:t.config.height,container:document.createElement(`div`)});a.__konvaNode=u,p();function d(){return a?.__konvaNode}function f(){return a?.__konvaNode}function p(){if(!a)return;let e=s||{},r={...n,...t.config};ha(a,r,e,t.__useStrictMode),Object.assign(s,r)}return e(()=>{c.value&&u.container(c.value),p(),va(u,a)}),l(()=>{p(),wa(a.subTree,u),va(u,a)}),S(()=>{u.destroy()}),A(()=>t.config,p,{deep:!0}),i({getStage:f,getNode:d}),()=>m(`div`,{ref:c,id:n?.id,accesskey:n?.accesskey,class:n?.class,role:n?.role,style:n?.style,tabindex:n?.tabindex,title:n?.title},r.default?.())}}),Da=`.vue-konva-event`,Oa={Group:!0,Layer:!0,FastLayer:!0,Label:!0};function J(t,r){return n({name:t,props:{config:{type:Object,default:function(){return{}}},__useStrictMode:{type:Boolean}},setup(n,{attrs:i,slots:a,expose:s}){let c=D();if(!c)return;let u=o({}),d=new r;c.__konvaNode=d,c.vnode.__konvaNode=d,m();function f(){return c?.__konvaNode}function p(){return c?.__konvaNode}function m(){if(!c)return;let e={};for(let t in c?.vnode.props)t.slice(0,2)===`on`&&(e[t]=c.vnode.props[t]);let t=u||{},r={...i,...n.config,...e};ha(c,r,t,n.__useStrictMode),Object.assign(u,r)}e(()=>{let e=ba(c)?.__konvaNode;e&&`add`in e&&e.add(d),fa(d),va(d,c)}),x(()=>{fa(d),d.destroy(),d.off(Da),d.off(ga)}),l(()=>{m(),wa(c.subTree,d),va(d,c)}),A(()=>n.config,m,{deep:!0}),s({getStage:p,getNode:f});let h=Oa.hasOwnProperty(t);return()=>h?a.default?.():null}})}var Y=da.default||da,ka=J(`Arc`,Y.Arc),Aa=J(`Arrow`,Y.Arrow),ja=J(`Circle`,Y.Circle),Ma=J(`Ellipse`,Y.Ellipse),Na=J(`FastLayer`,Y.FastLayer),Pa=J(`Group`,Y.Group),Fa=J(`Image`,Y.Image),Ia=J(`Label`,Y.Label),La=J(`Layer`,Y.Layer),Ra=J(`Line`,Y.Line),za=J(`Path`,Y.Path),Ba=J(`Rect`,Y.Rect),Va=J(`RegularPolygon`,Y.RegularPolygon),Ha=J(`Ring`,Y.Ring),Ua=J(`Shape`,Y.Shape),Wa=J(`Sprite`,Y.Sprite),Ga=J(`Star`,Y.Star),Ka=J(`Tag`,Y.Tag),qa=J(`Text`,Y.Text),Ja=J(`TextPath`,Y.TextPath),Ya=J(`Transformer`,Y.Transformer),Xa=J(`Wedge`,Y.Wedge),Za=Object.freeze(Object.defineProperty({__proto__:null,Arc:ka,Arrow:Aa,Circle:ja,Ellipse:Ma,FastLayer:Na,Group:Pa,Image:Fa,Label:Ia,Layer:La,Line:Ra,Path:za,Rect:Ba,RegularPolygon:Va,Ring:Ha,Shape:Ua,Sprite:Wa,Star:Ga,Tag:Ka,Text:qa,TextPath:Ja,Transformer:Ya,Wedge:Xa},Symbol.toStringTag,{value:`Module`})),Qa={install:(e,t)=>{let n=t?.prefix||ya,r=t?.customNodes?Object.entries(t.customNodes).map(([e,t])=>J(e,t)):[];[Ea,...Object.values(Za),...r].forEach(t=>{e.component(`${n}${t.name}`,t)})}},$a=typeof document<`u`;function eo(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function to(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&eo(e.default)}var X=Object.assign;function no(e,t){let n={};for(let r in t){let i=t[r];n[r]=io(i)?i.map(e):e(i)}return n}var ro=()=>{},io=Array.isArray;function ao(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var oo=/#/g,so=/&/g,co=/\//g,lo=/=/g,uo=/\?/g,fo=/\+/g,po=/%5B/g,mo=/%5D/g,ho=/%5E/g,go=/%60/g,_o=/%7B/g,vo=/%7C/g,yo=/%7D/g,bo=/%20/g;function xo(e){return e==null?``:encodeURI(``+e).replace(vo,`|`).replace(po,`[`).replace(mo,`]`)}function So(e){return xo(e).replace(_o,`{`).replace(yo,`}`).replace(ho,`^`)}function Co(e){return xo(e).replace(fo,`%2B`).replace(bo,`+`).replace(oo,`%23`).replace(so,`%26`).replace(go,"`").replace(_o,`{`).replace(yo,`}`).replace(ho,`^`)}function wo(e){return Co(e).replace(lo,`%3D`)}function To(e){return xo(e).replace(oo,`%23`).replace(uo,`%3F`)}function Eo(e){return To(e).replace(co,`%2F`)}function Do(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Oo=/\/$/,ko=e=>e.replace(Oo,``);function Ao(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=Ro(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Do(o)}}function jo(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Mo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function No(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Po(t.matched[r],n.matched[i])&&Fo(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Po(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Fo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Io(e[n],t[n]))return!1;return!0}function Io(e,t){return io(e)?Lo(e,t):io(t)?Lo(t,e):e?.valueOf()===t?.valueOf()}function Lo(e,t){return io(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Ro(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var zo={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},Bo=function(e){return e.pop=`pop`,e.push=`push`,e}({}),Vo=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function Ho(e){if(!e)if($a){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),ko(e)}var Uo=/^[^#]+#/;function Wo(e,t){return e.replace(Uo,`#`)+t}function Go(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Ko=()=>({left:window.scrollX,top:window.scrollY});function qo(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Go(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Jo(e,t){return(history.state?history.state.position-t:-1)+e}var Yo=new Map;function Xo(e,t){Yo.set(e,t)}function Zo(e){let t=Yo.get(e);return Yo.delete(e),t}function Qo(e){return typeof e==`string`||e&&typeof e==`object`}function $o(e){return typeof e==`string`||typeof e==`symbol`}var Z=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),es=Symbol(``);Z.MATCHER_NOT_FOUND,Z.NAVIGATION_GUARD_REDIRECT,Z.NAVIGATION_ABORTED,Z.NAVIGATION_CANCELLED,Z.NAVIGATION_DUPLICATED;function ts(e,t){return X(Error(),{type:e,[es]:!0},t)}function ns(e,t){return e instanceof Error&&es in e&&(t==null||!!(e.type&t))}function rs(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Co(e)):[r&&Co(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function as(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=io(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var os=Symbol(``),ss=Symbol(``),cs=Symbol(``),ls=Symbol(``),us=Symbol(``);function ds(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function fs(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(ts(Z.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Qo(e)?c(ts(Z.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function ps(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(eo(s)){let c=(s.__vccOpts||s)[t];c&&a.push(fs(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=to(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&fs(c,n,r,o,e,i)()}))}}return a}function ms(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oPo(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Po(e,s))||i.push(s))}return[n,r,i]}var hs=()=>location.protocol+`//`+location.host;function gs(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Mo(n,``)}return Mo(n,e)+r+i}function _s(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=gs(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Bo.pop,direction:u?u>0?Vo.forward:Vo.back:Vo.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(X({},e.state,{scroll:Ko()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function vs(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Ko():null}}function ys(e){let{history:t,location:n}=window,r={value:gs(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:hs()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,X({},t.state,vs(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=X({},i.value,t.state,{forward:e,scroll:Ko()});a(o.current,o,!0),a(e,X({},vs(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function bs(e){e=Ho(e);let t=ys(e),n=_s(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=X({location:``,base:e,go:r,createHref:Wo.bind(null,e)},t,n);return Object.defineProperty(i,`location`,{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,`state`,{enumerable:!0,get:()=>t.state.value}),i}var xs=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),Q=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(Q||{}),Ss={type:xs.Static,value:``},Cs=/[a-zA-Z0-9_]/;function ws(e){if(!e)return[[]];if(e===`/`)return[[Ss]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=Q.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===Q.Static?a.push({type:xs.Static,value:l}):n===Q.Param||n===Q.ParamRegExp||n===Q.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:xs.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===$.Static+$.Segment?1:-1:0}function As(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Ms={strict:!1,end:!0,sensitive:!1};function Ns(e,t,n){let r=X(Os(ws(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ps(e,t){let n=[],r=new Map;t=ao(Ms,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Is(e);s.aliasOf=r&&r.record;let l=ao(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Is(X({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Ns(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Rs(d)&&o(e.name)),Hs(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:ro}function o(e){if($o(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Bs(e,n);n.splice(t,0,e),e.record.name&&!Rs(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw ts(Z.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=X(Fs(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Fs(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw ts(Z.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=X({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:zs(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Fs(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Is(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ls(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,`mods`,{value:{}}),t}function Ls(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Rs(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function zs(e){return e.reduce((e,t)=>X(e,t.meta),{})}function Bs(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;As(e,t[i])<0?r=i:n=i+1}let i=Vs(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Vs(e){let t=e;for(;t=t.parent;)if(Hs(t)&&As(e,t)===0)return t}function Hs({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Us(e){let t=r(cs),n=r(ls),i=b(()=>{let n=s(e.to);return t.resolve(n)}),a=b(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(Po.bind(null,r));if(o>-1)return o;let s=Js(e[t-2]);return t>1&&Js(r)===s&&a[a.length-1].path!==s?a.findIndex(Po.bind(null,e[t-2])):o}),o=b(()=>a.value>-1&&qs(n.params,i.value.params)),c=b(()=>a.value>-1&&a.value===n.matched.length-1&&Fo(n.params,i.value.params));function l(n={}){if(Ks(n)){let n=t[s(e.replace)?`replace`:`push`](s(e.to)).catch(ro);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:b(()=>i.value.href),isActive:o,isExactActive:c,navigate:l}}function Ws(e){return e.length===1?e[0]:e}var Gs=n({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Us,setup(e,{slots:t}){let n=o(Us(e)),{options:i}=r(cs),a=b(()=>({[Ys(e.activeClass,i.linkActiveClass,`router-link-active`)]:n.isActive,[Ys(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ws(t.default(n));return e.custom?r:m(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},r)}}});function Ks(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function qs(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!io(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Js(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Ys=(e,t,n)=>e??t??n,Xs=n({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let i=r(us),a=b(()=>e.route||i.value),o=r(ss,0),c=b(()=>{let e=s(o),{matched:t}=a.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),l=b(()=>a.value.matched[c.value]);f(ss,b(()=>c.value+1)),f(os,l),f(us,a);let u=h();return A(()=>[u.value,l.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Po(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=a.value,i=e.name,o=l.value,s=o&&o.components[i];if(!s)return Zs(n.default,{Component:s,route:r});let c=o.props[i],d=m(s,X({},c?c===!0?r.params:typeof c==`function`?c(r):c:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:u}));return Zs(n.default,{Component:d,route:r})||d}}});function Zs(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Qs=Xs;function $s(e){let t=Ps(e.routes,e),n=e.parseQuery||rs,r=e.stringifyQuery||is,i=e.history,o=ds(),c=ds(),l=ds(),u=a(zo),f=zo;$a&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let p=no.bind(null,e=>``+e),m=no.bind(null,Eo),h=no.bind(null,Do);function _(e,n){let r,i;return $o(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function v(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function y(){return t.getRoutes().map(e=>e.record)}function b(e){return!!t.getRecordMatcher(e)}function x(e,a){if(a=X({},a||u.value),typeof e==`string`){let r=Ao(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return X(r,o,{params:h(o.params),hash:Do(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=X({},e,{path:Ao(n,e.path,a.path).path});else{let t=X({},e.params);for(let e in t)t[e]??delete t[e];o=X({},e,{params:m(t)}),a.params=m(a.params)}let s=t.resolve(o,a),c=e.hash||``;s.params=p(h(s.params));let l=jo(r,X({},e,{hash:So(c),path:s.path})),d=i.createHref(l);return X({fullPath:l,hash:c,query:r===is?as(e.query):e.query||{}},s,{redirectedFrom:void 0,href:d})}function S(e){return typeof e==`string`?Ao(n,e,u.value.path):X({},e)}function C(e,t){if(f!==e)return ts(Z.NAVIGATION_CANCELLED,{from:t,to:e})}function w(e){return ne(e)}function ee(e){return w(X(S(e),{replace:!0}))}function te(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=S(i):{path:i},i.params={}),X({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function ne(e,t){let n=f=x(e),i=u.value,a=e.state,o=e.force,s=e.replace===!0,c=te(n,i);if(c)return ne(X(S(c),{state:typeof c==`object`?X({},a,c.state):a,force:o,replace:s}),t||n);let l=n;l.redirectedFrom=t;let d;return!o&&No(r,i,n)&&(d=ts(Z.NAVIGATION_DUPLICATED,{to:l,from:i}),oe(i,i,!0,!1)),(d?Promise.resolve(d):re(l,i)).catch(e=>ns(e)?ns(e,Z.NAVIGATION_GUARD_REDIRECT)?e:ae(e):N(e,l,i)).then(e=>{if(e){if(ns(e,Z.NAVIGATION_GUARD_REDIRECT))return ne(X({replace:s},S(e.to),{state:typeof e.to==`object`?X({},a,e.to.state):a,force:o}),t||l)}else e=O(l,i,!0,s,a);return D(l,i,e),e})}function T(e,t){let n=C(e,t);return n?Promise.reject(n):Promise.resolve()}function E(e){let t=ce.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function re(e,t){let n,[r,i,a]=ms(e,t);n=ps(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(fs(r,e,t))});let s=T.bind(null,e,t);return n.push(s),ue(n).then(()=>{n=[];for(let r of o.list())n.push(fs(r,e,t));return n.push(s),ue(n)}).then(()=>{n=ps(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(fs(r,e,t))});return n.push(s),ue(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(io(r.beforeEnter))for(let i of r.beforeEnter)n.push(fs(i,e,t));else n.push(fs(r.beforeEnter,e,t));return n.push(s),ue(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=ps(a,`beforeRouteEnter`,e,t,E),n.push(s),ue(n))).then(()=>{n=[];for(let r of c.list())n.push(fs(r,e,t));return n.push(s),ue(n)}).catch(e=>ns(e,Z.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function D(e,t,n){l.list().forEach(r=>E(()=>r(e,t,n)))}function O(e,t,n,r,a){let o=C(e,t);if(o)return o;let s=t===zo,c=$a?history.state:{};n&&(r||s?i.replace(e.fullPath,X({scroll:s&&c&&c.scroll},a)):i.push(e.fullPath,a)),u.value=e,oe(e,t,n,s),ae()}let k;function A(){k||=i.listen((e,t,n)=>{if(!le.listening)return;let r=x(e),a=te(r,le.currentRoute.value);if(a){ne(X(a,{replace:!0,force:!0}),r).catch(ro);return}f=r;let o=u.value;$a&&Xo(Jo(o.fullPath,n.delta),Ko()),re(r,o).catch(e=>ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_CANCELLED)?e:ns(e,Z.NAVIGATION_GUARD_REDIRECT)?(ne(X(S(e.to),{force:!0}),r).then(e=>{ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Bo.pop&&i.go(-1,!1)}).catch(ro),Promise.reject()):(n.delta&&i.go(-n.delta,!1),N(e,r,o))).then(e=>{e||=O(r,o,!1),e&&(n.delta&&!ns(e,Z.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Bo.pop&&ns(e,Z.NAVIGATION_ABORTED|Z.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(r,o,e)}).catch(ro)})}let j=ds(),M=ds(),ie;function N(e,t,n){ae(e);let r=M.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function P(){return ie&&u.value!==zo?Promise.resolve():new Promise((e,t)=>{j.add([e,t])})}function ae(e){return ie||(ie=!e,A(),j.list().forEach(([t,n])=>e?n(e):t()),j.reset()),e}function oe(t,n,r,i){let{scrollBehavior:a}=e;if(!$a||!a)return Promise.resolve();let o=!r&&Zo(Jo(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return d().then(()=>a(t,n,o)).then(e=>e&&qo(e)).catch(e=>N(e,t,n))}let F=e=>i.go(e),se,ce=new Set,le={currentRoute:u,listening:!0,addRoute:_,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:y,resolve:x,options:e,push:w,replace:ee,go:F,back:()=>F(-1),forward:()=>F(1),beforeEach:o.add,beforeResolve:c.add,afterEach:l.add,onError:M.add,isReady:P,install(e){e.component(`RouterLink`,Gs),e.component(`RouterView`,Qs),e.config.globalProperties.$router=le,Object.defineProperty(e.config.globalProperties,`$route`,{enumerable:!0,get:()=>s(u)}),$a&&!se&&u.value===zo&&(se=!0,w(i.location).catch(e=>{}));let t={};for(let e in zo)Object.defineProperty(t,e,{get:()=>u.value[e],enumerable:!0});e.provide(cs,le),e.provide(ls,g(t)),e.provide(us,u);let n=e.unmount;ce.add(e),e.unmount=function(){ce.delete(e),ce.size<1&&(f=zo,k&&k(),k=null,u.value=zo,se=!1,ie=!1),n()}}};function ue(e){return e.reduce((e,t)=>e.then(()=>E(t)),Promise.resolve())}return le}function ec(){return r(cs)}function tc(e){return r(ls)}var nc=ne(`images`,()=>{let e=h([]),t=h(!1),n=h(null),r=h(0);async function i(r={}){r.silent||(t.value=!0),n.value=null;try{let t=await fetch(`/api/images`);if(!t.ok)throw Error(`Failed to load images`);e.value=await t.json()}catch(e){n.value=e instanceof Error?e.message:`Unknown error`}finally{t.value=!1}}async function a(t,n){let r=new FormData;r.append(`file`,t),n?.original&&r.append(`original`,n.original),n?.cropParams&&r.append(`cropParams`,JSON.stringify(n.cropParams)),n?.stickerState&&r.append(`stickerState`,JSON.stringify(n.stickerState)),n?.cropOrientation&&r.append(`cropOrientation`,n.cropOrientation);let i=await fetch(`/api/images`,{method:`POST`,body:r});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`Upload failed`)}let a=await i.json();return e.value.unshift(a),a}async function o(t,n,r){let i=new FormData;i.append(`file`,n),r?.cropParams&&i.append(`cropParams`,JSON.stringify(r.cropParams)),r?.stickerState&&i.append(`stickerState`,JSON.stringify(r.stickerState)),r?.cropOrientation&&i.append(`cropOrientation`,r.cropOrientation);let a=await fetch(`/api/images/${t}/reprocess`,{method:`POST`,body:i});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error??`Reprocess failed`)}let o=await a.json(),s=e.value.findIndex(e=>e.id===t);return s!==-1&&(e.value[s]=o),o}async function s(t){if(!(await fetch(`/api/images/${t}`,{method:`DELETE`})).ok)throw Error(`Delete failed`);e.value=e.value.filter(e=>e.id!==t)}async function c(t,n,r){let i=r?`POST`:`DELETE`,a=await fetch(`/api/images/${t}/approve/${n}`,{method:i});if(!a.ok)throw Error(`Failed to update approval`);let o=await a.json(),s=e.value.findIndex(e=>e.id===t);s!==-1&&(e.value[s]=o)}async function l(e,t=1,n=20){let r=new URLSearchParams({page:String(t),limit:String(n)});e&&r.set(`status`,e);let i=await fetch(`/api/shared-images?${r}`);if(!i.ok)throw Error(`Failed to load shared images`);return i.json()}async function u(){let e=await fetch(`/api/shared-images/pending-count`);e.ok&&(r.value=(await e.json()).count)}async function d(e,t){let n=await fetch(`/api/shared-images/${e}/approve`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({deviceIds:t})});if(!n.ok)throw Error(`Failed to approve`);return r.value>0&&r.value--,n.json()}async function f(e){let t=await fetch(`/api/shared-images/${e}/decline`,{method:`POST`});if(!t.ok)throw Error(`Failed to decline`);return r.value>0&&r.value--,t.json()}async function p(e,t){let n=await fetch(`/api/images/${e}/share`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({recipientEmail:t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`Failed to share`)}}return{images:e,loading:t,error:n,pendingCount:r,fetchImages:i,uploadImage:a,reprocessImage:o,deleteImage:s,setApproval:c,fetchSharedImages:l,fetchPendingCount:u,approveShared:d,declineShared:f,shareImage:p}}),rc={class:`top-nav`,"aria-label":`Main navigation`},ic={class:`top-nav__title-group`},ac={class:`top-nav__sub`},oc={class:`top-nav__tabs`},sc=[`innerHTML`],cc={class:`top-nav__label`},lc={key:0,class:`top-nav__badge`},uc=`/build/icons/apple-touch-icon.png`,dc=E(n({__name:`TopNav`,setup(e){let n=tc(),r=nc(),a=b(()=>{let e=n.path;return e.startsWith(`/library`)?`library`:e.startsWith(`/settings`)?`settings`:e.startsWith(`/upload`)?`add photograph`:`home`}),o=[{name:`home`,label:`Home`,to:`/`,icon:``,isActive:e=>e.path===`/`},{name:`library`,label:`Library`,to:`/library`,icon:``,isActive:e=>e.path.startsWith(`/library`)},{name:`settings`,label:`Settings`,to:`/settings`,icon:``,isActive:e=>e.path.startsWith(`/settings`)}];return(e,l)=>{let d=c(`RouterLink`);return u(),k(`header`,rc,[p(d,{to:`/`,class:`top-nav__brand`},{default:t(()=>[y(`span`,{class:`top-nav__mark`},[y(`img`,{src:uc,alt:``})]),y(`span`,ic,[l[0]||=y(`span`,{class:`top-nav__wordmark`},[O(`We`),y(`span`,{class:`top-nav__wordmark-v`},`V`),O(`isto`)],-1),y(`span`,ac,`— `+_(a.value),1)])]),_:1}),y(`nav`,oc,[(u(),k(ee,null,i(o,e=>p(d,{key:e.name,to:e.to,class:te([`top-nav__tab`,{"top-nav__tab--active":e.isActive(s(n))}]),"aria-current":e.isActive(s(n))?`page`:void 0},{default:t(()=>[y(`span`,{class:`top-nav__icon`,"aria-hidden":`true`,innerHTML:e.icon},null,8,sc),y(`span`,cc,_(e.label),1),e.name===`library`&&s(r).pendingCount>0?(u(),k(`span`,lc,_(s(r).pendingCount>9?`9+`:s(r).pendingCount),1)):re(``,!0)]),_:2},1032,[`to`,`class`,`aria-current`])),64))])])}}}),[[`__scopeId`,`data-v-81d5cae2`]]),fc={class:`bottom-nav`,"aria-label":`Main navigation`},pc={class:`bottom-nav__icon-wrap`,"aria-hidden":`true`},mc=[`innerHTML`],hc={key:0,class:`bottom-nav__badge`},gc={class:`bottom-nav__label`},_c=E(n({__name:`BottomNav`,setup(e){let n=tc(),r=nc(),a=[{name:`home`,label:`Home`,to:`/`,icon:``,isActive:e=>e.path===`/`},{name:`library`,label:`Library`,to:`/library`,icon:``,isActive:e=>e.path.startsWith(`/library`)},{name:`settings`,label:`Settings`,to:`/settings`,icon:``,isActive:e=>e.path.startsWith(`/settings`)}];return(e,o)=>{let l=c(`RouterLink`);return u(),k(`nav`,fc,[(u(),k(ee,null,i(a,e=>p(l,{key:e.name,to:e.to,class:te([`bottom-nav__tab`,{"bottom-nav__tab--active":e.isActive(s(n))}]),"aria-label":e.label,"aria-current":e.isActive(s(n))?`page`:void 0},{default:t(()=>[y(`span`,pc,[y(`span`,{class:`bottom-nav__icon`,innerHTML:e.icon},null,8,mc),e.name===`library`&&s(r).pendingCount>0?(u(),k(`span`,hc,_(s(r).pendingCount>9?`9+`:s(r).pendingCount),1)):re(``,!0)]),y(`span`,gc,_(e.label),1)]),_:2},1032,[`to`,`class`,`aria-label`,`aria-current`])),64))])}}}),[[`__scopeId`,`data-v-e670448a`]]),vc=0,yc=ne(`toast`,()=>{let e=h([]);function t(t,r=`info`){let i=++vc;e.value.push({id:i,message:t,type:r}),setTimeout(()=>n(i),2500)}function n(t){let n=e.value.findIndex(e=>e.id===t);n!==-1&&e.value.splice(n,1)}return{toasts:e,show:t,dismiss:n}}),bc={class:`toast-region`,"aria-live":`polite`,"aria-atomic":`false`},xc=[`onClick`],Sc=E(n({__name:`BaseToast`,setup(e){let n=yc();return(e,r)=>(u(),k(`div`,bc,[p(w,{name:`toast`,tag:`ul`,class:`toast-list`},{default:t(()=>[(u(!0),k(ee,null,i(s(n).toasts,e=>(u(),k(`li`,{key:e.id,class:te([`toast`,`toast--${e.type}`]),role:`status`},[O(_(e.message)+` `,1),y(`button`,{class:`toast__close`,"aria-label":`Dismiss`,onClick:t=>s(n).dismiss(e.id)},` × `,8,xc)],2))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-546af507`]]),Cc=ne(`auth`,()=>{let e=h(window.__PF_USER__??null),t=b(()=>e.value!==null);function n(t){e.value=t}return{user:e,isAuthenticated:t,setUser:n}}),wc=[{id:`warm-craft`,label:`Warm Craft`,primary:`#c97c3a`,bg:`#fdf6ee`,text:`#3a2e22`},{id:`playful-pop`,label:`Playful Pop`,primary:`#d63aab`,bg:`#fff0fb`,text:`#2d0a28`},{id:`sage-cream`,label:`Sage & Cream`,primary:`#4e7c3a`,bg:`#f6f8f3`,text:`#1e2b1a`},{id:`dusty-mauve`,label:`Dusty Mauve`,primary:`#8e4a84`,bg:`#f6f0f4`,text:`#2a1828`},{id:`ocean-dusk`,label:`Ocean Dusk`,primary:`#1a6ea8`,bg:`#eef3f8`,text:`#0e2030`},{id:`honey-slate`,label:`Honey & Slate`,primary:`#c49a20`,bg:`#f2f2ee`,text:`#1c1c18`}];function Tc(){let e=Cc(),t=yc();function n(t){document.documentElement.dataset.theme=t,e.user&&(e.user.theme=t);let n=wc.find(e=>e.id===t);if(n){let e=document.querySelector(`meta[name="theme-color"]`);e&&e.setAttribute(`content`,n.bg)}}async function r(e){n(e);try{if(!(await fetch(`/api/user/theme`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({theme:e})})).ok)throw Error(`Failed to save theme`)}catch{t.show(`Could not save theme — try again`,`error`)}}return{THEMES:wc,applyTheme:n,saveTheme:r}}var Ec=n({__name:`App`,setup(t){let n=tc(),r=Cc(),{applyTheme:i}=Tc();return e(()=>{let e=document.documentElement.dataset.theme||r.user?.theme;e&&i(e)}),(e,t)=>{let r=c(`RouterView`);return u(),k(ee,null,[s(n).meta.hideNav?re(``,!0):(u(),v(dc,{key:0})),p(r),s(n).meta.hideNav?re(``,!0):(u(),v(_c,{key:1})),p(Sc)],64)}}}),Dc=`modulepreload`,Oc=function(e){return`/build/`+e},kc={},Ac=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Oc(t,n),t in kc)return;kc[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Dc,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},jc=$s({history:bs(),routes:[{path:`/`,name:`home`,component:()=>Ac(()=>import(`./HomeView-r6BSe37N.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),meta:{requiresAuth:!0}},{path:`/library`,name:`library`,component:()=>Ac(()=>import(`./LibraryView-C-ka0isv.js`),__vite__mapDeps([8,1,2,3,9,10,4,5,11])),meta:{requiresAuth:!0}},{path:`/upload`,name:`upload`,component:()=>Ac(()=>import(`./UploadView-DFqyynAD.js`),__vite__mapDeps([12,1,2,3,9,10,6,13])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/settings`,name:`settings`,component:()=>Ac(()=>import(`./SettingsView-DxoHpseP.js`),__vite__mapDeps([14,1,15])),meta:{requiresAuth:!0}},{path:`/shared`,redirect:`/library?tab=shared`},{path:`/:pathMatch(.*)*`,redirect:`/`}]});jc.beforeEach(e=>{let t=Cc();if(e.meta.requiresAuth&&!t.isAuthenticated)return window.location.href=`/login`,!1});var Mc=T(Ec);Mc.use(C()),Mc.use(jc),Mc.use(Qa),Mc.mount(`#app`),`serviceWorker`in navigator&&window.addEventListener(`load`,()=>{navigator.serviceWorker.register(`/sw.js`).catch(()=>{})});export{nc as a,yc as i,Tc as n,tc as o,Cc as r,ec as s,wc as t};
\ No newline at end of file
diff --git a/public/build/index.html b/public/build/index.html
index 4b356ed..ba88b4c 100644
--- a/public/build/index.html
+++ b/public/build/index.html
@@ -17,7 +17,7 @@
-
+
diff --git a/src/Entity/User.php b/src/Entity/User.php
index ee8960c..9a8f5b5 100644
--- a/src/Entity/User.php
+++ b/src/Entity/User.php
@@ -113,10 +113,10 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
return $this;
}
- /** Returns 'v1' or 'v2'; defaults to 'v1' when unset. */
+ /** Returns 'v1' or 'v2'; defaults to 'v2' (current default). */
public function getDesignVersion(): string
{
- return $this->designVersion ?? 'v1';
+ return $this->designVersion ?? 'v2';
}
public function setDesignVersion(?string $version): static
diff --git a/templates/base.html.twig b/templates/base.html.twig
index 32f3ca6..0e51b2c 100644
--- a/templates/base.html.twig
+++ b/templates/base.html.twig
@@ -1,5 +1,5 @@
-
+
{% block title %}Welcome!{% endblock %}
diff --git a/templates/help/index.html.twig b/templates/help/index.html.twig
index 425622e..92a10fa 100644
--- a/templates/help/index.html.twig
+++ b/templates/help/index.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/security/login.html.twig b/templates/security/login.html.twig
index 1499cf1..e09c4d9 100644
--- a/templates/security/login.html.twig
+++ b/templates/security/login.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/security/register.html.twig b/templates/security/register.html.twig
index 3ff4dd1..ac242fc 100644
--- a/templates/security/register.html.twig
+++ b/templates/security/register.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/setup/configure.html.twig b/templates/setup/configure.html.twig
index 6b25ac9..26e37e6 100644
--- a/templates/setup/configure.html.twig
+++ b/templates/setup/configure.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/setup/index.html.twig b/templates/setup/index.html.twig
index c84dfa2..4080747 100644
--- a/templates/setup/index.html.twig
+++ b/templates/setup/index.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/token/approve.html.twig b/templates/token/approve.html.twig
index d44d92a..be10d37 100644
--- a/templates/token/approve.html.twig
+++ b/templates/token/approve.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/token/approved.html.twig b/templates/token/approved.html.twig
index 7b3c7fb..1a19837 100644
--- a/templates/token/approved.html.twig
+++ b/templates/token/approved.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/token/decline.html.twig b/templates/token/decline.html.twig
index ebbbb36..7ed1534 100644
--- a/templates/token/decline.html.twig
+++ b/templates/token/decline.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/token/declined.html.twig b/templates/token/declined.html.twig
index e8d2983..654c954 100644
--- a/templates/token/declined.html.twig
+++ b/templates/token/declined.html.twig
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/token/invalid.html.twig b/templates/token/invalid.html.twig
index 4ff4dde..3caf1ba 100644
--- a/templates/token/invalid.html.twig
+++ b/templates/token/invalid.html.twig
@@ -1,5 +1,5 @@
-
+