feat: Add comprehensive backend validation, toast notifications, and Tokyo Night theme

- Backend: Add server-side validation with go-playground/validator/v10
- Frontend: Add toast notifications for API errors with @zerodevx/svelte-toast
- UI: Complete Tokyo Night theme redesign with modern animations
- Docs: Update COMPLETE_DOCUMENTATION.md and README.md with all enhancements
- Validation: Email format, password strength, and input sanitization
- UX: Real-time error feedback, loading states, and responsive design
This commit is contained in:
john-okeefe committed 2026-01-21 20:01:18 -05:00
1 parent 7448dfff30
commit 55c42f1f99
84 files changed
+7749 -4

No files matched your search

+1
View File
@@ -0,0 +1 @@
export const env={}
@@ -0,0 +1 @@
.static{position:static}.container{width:100%}.mx-auto{margin-inline:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.contents{display:contents}.flex{display:flex}.grid{display:grid}.aspect-\[3\/4\]{aspect-ratio:3/4}.h-full{height:100%}.w-full{width:100%}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-center{align-items:center}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.object-cover{-o-object-fit:cover;object-fit:cover}.text-center{text-align:center}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}
@@ -0,0 +1 @@
.line-clamp-2.svelte-1uha8ag{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3.svelte-1uha8ag{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@@ -0,0 +1 @@
import{b as c,h as _,a as o,E as d,r as b,H as E,s as T,c as p,d as f}from"./DnPHkIdi.js";import{B as y}from"./kSfNJqxT.js";function v(t,i,h=!1){_&&o();var e=new y(t),u=h?d:0;function n(a,r){if(_){const l=b(t)===E;if(a===l){var s=T();p(s),e.anchor=s,f(!1),e.ensure(a,r),f(!0);return}}e.ensure(a,r)}c(()=>{var a=!1;i((r,s=!0)=>{a=!0,n(s,r)}),a||n(!1,null)},u)}export{v as i};
@@ -0,0 +1 @@
import{t as o,q as n,C as c,v as l}from"./DnPHkIdi.js";function u(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function r(e){n===null&&u(),c&&n.l!==null?a(n).m.push(e):o(()=>{const t=l(e);if(typeof t=="function")return t})}function a(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}export{r as o};
@@ -0,0 +1 @@
import{h as c,N as f,L as p,g as a,e as g}from"./DnPHkIdi.js";const d=Symbol("is custom element"),h=Symbol("is html");function M(s,r,o,i){var t=A(s);c&&(t[r]=s.getAttribute(r),r==="src"||r==="srcset"||r==="href"&&s.nodeName==="LINK")||t[r]!==(t[r]=o)&&(r==="loading"&&(s[p]=o),o==null?s.removeAttribute(r):typeof o!="string"&&N(s).includes(r)?s[r]=o:s.setAttribute(r,o))}function A(s){return s.__attributes??={[d]:s.nodeName.includes("-"),[h]:s.namespaceURI===f}}var e=new Map;function N(s){var r=s.getAttribute("is")||s.nodeName,o=e.get(r);if(o)return o;e.set(r,o=[]);for(var i,t=s,_=Element.prototype;_!==t;){i=g(t);for(var n in i)i[n].set&&o.push(n);t=a(t)}return o}export{M as s};
@@ -0,0 +1 @@
import{aT as he,aU as pt,aQ as U,y as T,a2 as I,aR as ee,aV as gt}from"./DnPHkIdi.js";import{o as qe}from"./BOU_Z_Ye.js";const V=[];function Se(e,t=he){let n=null;const a=new Set;function r(s){if(pt(e,s)&&(e=s,n)){const c=!V.length;for(const l of a)l[1](),V.push(l,e);if(c){for(let l=0;l<V.length;l+=2)V[l][0](V[l+1]);V.length=0}}}function i(s){r(s(e))}function o(s,c=he){const l=[s,c];return a.add(l),a.size===1&&(n=t(r,i)||he),s(e),()=>{a.delete(l),a.size===0&&n&&(n(),n=null)}}return{set:r,update:i,subscribe:o}}class Ee{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Re{constructor(t,n){this.status=t,this.location=n}}class xe extends Error{constructor(t,n,a){super(a),this.status=t,this.text=n}}new URL("sveltekit-internal://");function _t(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function mt(e){return e.split("%25").map(decodeURI).join("%25")}function wt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function pe({href:e}){return e.split("#")[0]}function vt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let a=n.length;for(;a;)t=t*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)t=t*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function yt(e){const t=atob(e),n=new Uint8Array(t.length);for(let a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return n}const bt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&F.delete(Ae(e)),bt(e,t));const F=new Map;function kt(e,t){const n=Ae(e,t),a=document.querySelector(n);if(a?.textContent){a.remove();let{body:r,...i}=JSON.parse(a.textContent);const o=a.getAttribute("data-ttl");return o&&F.set(n,{body:r,init:i,ttl:1e3*Number(o)}),a.getAttribute("data-b64")!==null&&(r=yt(r)),Promise.resolve(new Response(r,i))}return window.fetch(e,t)}function St(e,t,n){if(F.size>0){const a=Ae(e,n),r=F.get(a);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(r.body,r.init);F.delete(a)}}return window.fetch(t,n)}function Ae(e,t){let a=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),a+=`[data-hash="${vt(...r)}"]`}return a}const Et=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Rt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${At(e).map(a=>{const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return t.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const o=a.split(/\[(.+?)\](?!\])/);return"/"+o.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return ge(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return ge(String.fromCharCode(...c.slice(2).split("-").map(m=>parseInt(m,16))));const f=Et.exec(c),[,h,w,u,g]=f;return t.push({name:u,matcher:g,optional:!!h,rest:!!w,chained:w?l===1&&o[0]==="":!1}),w?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return ge(c)}).join("")}).join("")}/?$`),params:t}}function xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function At(e){return e.slice(1).split("/").filter(xt)}function Lt(e,t,n){const a={},r=e.slice(1),i=r.filter(s=>s!==void 0);let o=0;for(let s=0;s<t.length;s+=1){const c=t[s];let l=r[s-o];if(c.chained&&c.rest&&o&&(l=r.slice(s-o,s+1).filter(f=>f).join("/"),o=0),l===void 0){c.rest&&(a[c.name]="");continue}if(!c.matcher||n[c.matcher](l)){a[c.name]=l;const f=t[s+1],h=r[s+1];f&&!f.rest&&f.optional&&h&&c.chained&&(o=0),!f&&!h&&Object.keys(a).length===i.length&&(o=0);continue}if(c.optional&&c.chained){o++;continue}return}if(!o)return a}function ge(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Ut({nodes:e,server_loads:t,dictionary:n,matchers:a}){const r=new Set(t);return Object.entries(n).map(([s,[c,l,f]])=>{const{pattern:h,params:w}=Rt(s),u={id:s,exec:g=>{const m=h.exec(g);if(m)return Lt(m,w,a)},errors:[1,...f||[]].map(g=>e[g]),layouts:[0,...l||[]].map(o),leaf:i(c)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function i(s){const c=s<0;return c&&(s=~s),[c,e[s]]}function o(s){return s===void 0?s:[r.has(s),e[s]]}}function Ge(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function De(e,t,n=JSON.stringify){const a=n(t);try{sessionStorage[e]=a}catch{}}const x=globalThis.__sveltekit_1nk8k67?.base??"",TLine truncated
@@ -0,0 +1 @@
import{k as d,O as f,a3 as v,a4 as u,a5 as E,a6 as p,h as i,m as o,a7 as h,a as T,a8 as N,c as g}from"./DnPHkIdi.js";function y(r){var n=document.createElement("template");return n.innerHTML=r.replaceAll("<!>","<!---->"),n.content}function a(r,n){var e=u;e.nodes===null&&(e.nodes={start:r,end:n,a:null,t:null})}function A(r,n){var e=(n&E)!==0,l=(n&p)!==0,t,_=!r.startsWith("<!>");return()=>{if(i)return a(o,null),o;t===void 0&&(t=y(_?r:"<!>"+r),e||(t=f(t)));var s=l||v?document.importNode(t,!0):t.cloneNode(!0);if(e){var c=f(s),m=s.lastChild;a(c,m)}else a(s,s);return s}}function M(r=""){if(!i){var n=d(r+"");return a(n,n),n}var e=o;return e.nodeType!==N&&(e.before(e=d()),g(e)),a(e,e),e}function O(){if(i)return a(o,null),o;var r=document.createDocumentFragment(),n=document.createComment(""),e=d();return r.append(n,e),a(n,e),r}function C(r,n){if(i){var e=u;((e.f&h)===0||e.nodes.end===null)&&(e.nodes.end=o),T();return}r!==null&&r.before(n)}const w="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(w);export{C as a,a as b,O as c,A as f,M as t};
@@ -0,0 +1,2 @@
import{aa as U,y as P,V as j,ab as G,v as J,ac as B,ad as W,m as d,h as c,a4 as b,b as K,a as X,Q as x,H as Z,l as _,ae as T,p as k,k as $,af as ee,ag as S,ah as y,ai as C,aj as te,ak as O,q as z,n as se,al as M,am as ie,an as V,ao as re,S as ne,j as A,c as D,ap as ae,s as he,aq as q,ar as oe,E as fe,as as le,at as ue,au as _e,av as de,aw as F,O as ce,ax as pe,a0 as ge,ay as I,d as w,az as ve,a1 as ye,T as me,aA as be,D as Ee,R as Te,aB as we,I as Re}from"./DnPHkIdi.js";import{b as Se}from"./DUCk1qN8.js";function De(t){let e=0,i=j(0),r;return()=>{U()&&(P(i),G(()=>(e===0&&(r=J(()=>t(()=>B(i)))),e+=1,()=>{W(()=>{e-=1,e===0&&(r?.(),r=void 0,B(i))})})))}}var Ne=fe|le|ue;function ke(t,e,i){new Ae(t,e,i)}class Ae{parent;is_pending=!1;#t;#v=c?d:null;#i;#l;#r;#s=null;#e=null;#n=null;#a=null;#o=null;#u=0;#h=0;#_=!1;#d=new Set;#c=new Set;#f=null;#b=De(()=>(this.#f=j(this.#u),()=>{this.#f=null}));constructor(e,i,r){this.#t=e,this.#i=i,this.#l=r,this.parent=b.b,this.is_pending=!!this.#i.pending,this.#r=K(()=>{if(b.b=this,c){const s=this.#v;X(),s.nodeType===x&&s.data===Z?this.#T():(this.#E(),this.#h===0&&(this.is_pending=!1))}else{var a=this.#y();try{this.#s=_(()=>r(a))}catch(s){this.error(s)}this.#h>0?this.#g():this.is_pending=!1}return()=>{this.#o?.remove()}},Ne),c&&(this.#t=d)}#E(){try{this.#s=_(()=>this.#l(this.#t))}catch(e){this.error(e)}}#T(){const e=this.#i.pending;e&&(this.#e=_(()=>e(this.#t)),T.enqueue(()=>{var i=this.#y();this.#s=this.#p(()=>(T.ensure(),_(()=>this.#l(i)))),this.#h>0?this.#g():(k(this.#e,()=>{this.#e=null}),this.is_pending=!1)}))}#y(){var e=this.#t;return this.is_pending&&(this.#o=$(),this.#t.before(this.#o),e=this.#o),e}defer_effect(e){ee(e,this.#d,this.#c)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#i.pending}#p(e){var i=b,r=O,a=z;S(this.#r),y(this.#r),C(this.#r.ctx);try{return e()}catch(s){return te(s),null}finally{S(i),y(r),C(a)}}#g(){const e=this.#i.pending;this.#s!==null&&(this.#a=document.createDocumentFragment(),this.#a.append(this.#o),se(this.#s,this.#a)),this.#e===null&&(this.#e=_(()=>e(this.#t)))}#m(e){if(!this.has_pending_snippet()){this.parent&&this.parent.#m(e);return}if(this.#h+=e,this.#h===0){this.is_pending=!1;for(const i of this.#d)M(i,ie),V(i);for(const i of this.#c)M(i,re),V(i);this.#d.clear(),this.#c.clear(),this.#e&&k(this.#e,()=>{this.#e=null}),this.#a&&(this.#t.before(this.#a),this.#a=null)}}update_pending_count(e){this.#m(e),this.#u+=e,this.#f&&ne(this.#f,this.#u)}get_effect_pending(){return this.#b(),P(this.#f)}error(e){var i=this.#i.onerror;let r=this.#i.failed;if(this.#_||!i&&!r)throw e;this.#s&&(A(this.#s),this.#s=null),this.#e&&(A(this.#e),this.#e=null),this.#n&&(A(this.#n),this.#n=null),c&&(D(this.#v),ae(),D(he()));var a=!1,s=!1;const o=()=>{if(a){_e();return}a=!0,s&&oe(),T.ensure(),this.#u=0,this.#n!==null&&k(this.#n,()=>{this.#n=null}),this.is_pending=this.has_pending_snippet(),this.#s=this.#p(()=>(this.#_=!1,_(()=>this.#l(this.#t)))),this.#h>0?this.#g():this.is_pending=!1};var l=O;try{y(null),s=!0,i?.(e,o),s=!1}catch(f){q(f,this.#r&&this.#r.parent)}finally{y(l)}r&&W(()=>{this.#n=this.#p(()=>{T.ensure(),this.#_=!0;try{return _(()=>{r(this.#t,()=>e,()=>o)})}catch(f){return q(f,this.#r.parent),null}finally{this.#_=!1}})})}}const Oe=["touchstart","touchmove"];function Fe(t){return Oe.includes(t)}const Ie=new Set,H=new Set;let L=null;function R(t){var e=this,i=e.ownerDocument,r=t.type,a=t.composedPath?.()||[],s=a[0]||t.target;L=t;var o=0,l=L===t&&t.__root;if(l){var f=a.indexOf(l);if(f!==-1&&(e===document||e===window)){t.__root=e;return}var p=a.indexOf(e);if(p===-1)return;f<=p&&(o=f)}if(s=a[o]||t.target,s!==e){de(t,"currentTarget",{configurable:!0,get(){return s||i}});var N=O,u=b;y(null),S(null);try{for(var n,h=[];s!==null;){var g=s.assignedSlot||s.parentNode||s.host||null;try{var m=s["__"+r];m!=null&&(!s.disabled||t.target===s)&&m.call(s,t)}catch(E){n?h.push(E):n=E}if(t.cancelBubble||g===e||g===null)break;s=g}if(n){for(let E of h)queueMicrotask(()=>{throw E});throw n}}finally{t.__root=e,delete t.currentTarget,y(N),S(u)}}}function Ce(t,e){var i=e==null?"":typeof e=="object"?e+"":e;i!==(t.__t??=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function Ye(t,e){return Q(t,e)}function Me(t,e){F(),e.intro=e.intro??!1;const i=e.target,r=c,a=d;try{for(var s=ce(i);s&&(s.nodeType!==x||s.data!==pe);)s=ge(s);if(!s)throw I;w(!0),D(s);const o=Q(t,{...e,anchor:s});return w(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
`).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==I&&console.warn("Failed to hydrate: ",o),e.recover===!1&&ve(),F(),ye(i),w(!1),Ye(t,e)}finally{w(r),D(a)}}const v=new Map;function Q(t,{target:e,anchor:i,props:r={},events:a,context:s,intro:o=!0}){F();var l=new Set,f=u=>{for(var n=0;n<u.length;n++){var h=u[n];if(!l.has(h)){l.add(h);var g=Fe(h);e.addEventListener(h,R,{passive:g});var m=v.get(h);m===void 0?(document.addEventListener(h,R,{passive:g}),v.set(h,1)):v.set(h,m+1)}}};f(me(Ie)),H.add(f);var p=void 0,N=be(()=>{var u=i??e.appendChild($());return ke(u,{pending:()=>{}},n=>{if(s){Ee({});var h=z;h.c=s}if(a&&(r.$$events=a),c&&Se(n,null),p=t(n,r)||{},c&&(b.nodes.end=d,d===null||d.nodeType!==x||d.data!==Te))throw we(),I;s&&Re()}),()=>{for(var n of l){e.removeEventListener(n,R);var h=v.get(n);--h===0?(document.removeEventListener(n,R),v.delete(n)):v.set(n,h)}H.delete(f),u!==i&&u.parentNode?.removeChild(u)}});return Y.set(p,N),p}let Y=new WeakMap;function Ve(t,e){const i=Y.get(t);return i?(Y.delete(t),i(e)):Promise.resolve()}export{Me as h,Ye as m,Ce as s,Ve as u};
@@ -0,0 +1 @@
var Ft=Array.isArray,Mt=Array.prototype.indexOf,bn=Array.from,Tn=Object.defineProperty,ae=Object.getOwnPropertyDescriptor,jt=Object.getOwnPropertyDescriptors,Lt=Object.prototype,qt=Array.prototype,We=Object.getPrototypeOf,ze=Object.isExtensible;const An=()=>{};function Rn(e){return e()}function Yt(e){for(var t=0;t<e.length;t++)e[t]()}function et(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}const w=2,Ee=4,_e=8,tt=1<<24,M=16,j=32,te=64,nt=128,k=512,E=1024,R=2048,B=4096,P=8192,q=16384,je=32768,ge=65536,$e=1<<17,rt=1<<18,ve=1<<19,st=1<<20,Sn=1<<25,X=32768,Ne=1<<21,Le=1<<22,Y=1<<23,le=Symbol("$state"),xn=Symbol("legacy props"),On=Symbol(""),ne=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},qe=3,ft=8;function Ut(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ht(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Bt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Vt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Gt(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Dn(){throw new Error("https://svelte.dev/e/hydration_failed")}function Nn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Kt(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function zt(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function $t(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Pn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const In=1,Cn=2,Fn=16,Mn=1,jn=2,Ln=4,qn=8,Yn=16,Un=1,Hn=2,Xt="[",Zt="[!",Jt="]",Ye={},y=Symbol(),Bn="http://www.w3.org/1999/xhtml";function Ue(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Vn(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let Z=!1;function Gn(e){Z=e}let A;function re(e){if(e===null)throw Ue(),Ye;return A=e}function Kn(){return re(V(A))}function zn(e){if(Z){if(V(A)!==null)throw Ue(),Ye;A=e}}function $n(e=1){if(Z){for(var t=e,n=A;t--;)n=V(n);A=n}}function Xn(e=!0){for(var t=0,n=A;;){if(n.nodeType===ft){var r=n.data;if(r===Jt){if(t===0)return n;t-=1}else(r===Xt||r===Zt)&&(t+=1)}var s=V(n);e&&n.remove(),n=s}}function Zn(e){if(!e||e.nodeType!==ft)throw Ue(),Ye;return e.data}function it(e){return e===this.v}function Qt(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function at(e){return!Qt(e,this.v)}let xe=!1;function Jn(){xe=!0}let b=null;function me(e){b=e}function Qn(e,t=!1,n){b={p:b,i:!1,c:null,e:null,s:e,x:null,l:xe&&!t?{s:null,u:null,$:[]}:null}}function Wn(e){var t=b,n=t.e;if(n!==null){t.e=null;for(var r of n)bt(r)}return t.i=!0,b=t.p,{}}function de(){return!xe||b!==null&&b.l===null}let K=[];function lt(){var e=K;K=[],Yt(e)}function Wt(e){if(K.length===0&&!ue){var t=K;queueMicrotask(()=>{t===K&&lt()})}K.push(e)}function en(){for(;K.length>0;)lt()}function tn(e){var t=h;if(t===null)return _.f|=Y,e;if((t.f&je)===0){if((t.f&nt)===0)throw e;t.b.error(e)}else be(e,t)}function be(e,t){for(;t!==null;){if((t.f&nt)!==0)try{t.b.error(e);return}catch(n){e=n}t=t.parent}throw e}const nn=-7169;function g(e,t){e.f=e.f&nn|t}function He(e){(e.f&k)!==0||e.deps===null?g(e,E):g(e,B)}function ut(e){if(e!==null)for(const t of e)(t.f&w)===0||(t.f&X)===0||(t.f^=X,ut(t.deps))}function rn(e,t,n){(e.f&R)!==0?t.add(e):(e.f&B)!==0&&n.add(e),ut(e.deps),g(e,E)}const we=new Set;let p=null,D=null,O=[],Oe=null,Pe=!1,ue=!1;class J{committed=!1;current=new Map;previous=new Map;#n=new Set;#r=new Set;#e=0;#t=0;#i=null;#s=new Set;#f=new Set;skipped_effects=new Set;is_fork=!1;is_deferred(){return this.is_fork||this.#t>0}process(t){O=[],this.apply();var n=[],r=[];for(const s of t)this.#a(s,n,r);this.is_fork||this.#u(),this.is_deferred()?(this.#l(r),this.#l(n)):(p=null,Xe(r),Xe(n),this.#i?.resolve()),D=null}#a(t,n,r){t.f^=E;for(var s=t.first,f=null;s!==null;){var i=s.f,l=(i&(j|te))!==0,a=l&&(i&E)!==0,u=a||(i&P)!==0||this.skipped_effects.has(s);if(!u&&s.fn!==null){l?s.f^=E:f!==null&&(i&(Ee|_e|tt))!==0?f.b.defer_effect(s):(i&Ee)!==0?n.push(s):he(s)&&((i&M)!==0&&this.#s.add(s),ce(s));var o=s.first;if(o!==null){s=o;continue}}var c=s.parent;for(s=s.next;s===null&&c!==null;)c===f&&(f=null),s=c.next,c=c.parent}}#l(t){for(var n=0;n<t.length;n+=1)rn(t[n],this.#s,this.#f)}capture(t,n){n!==y&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&Y)===0&&(this.current.set(t,t.v),D?.set(t,t.v))}activate(){p=this,this.apply()}deactivate(){p===this&&(p=null,D=null)}flush(){if(this.activate(),O.length>0){if(ot(),p!==null&&p!==this)return}else this.#e===0&&this.process([]);this.deactivate()}discard(){for(const t of this.#r)t(this);this.#r.clear()}#u(){if(this.#t===0){for(const t of this.#n)t();this.#n.clear()}this.#e===0&&this.#o()}#o(){if(we.size>1){this.previous.clear();var t=D,n=!0;for(const s of we){if(s===this){n=!1;continue}const f=[];for(conLine truncated
@@ -0,0 +1 @@
import{q as d,u as g,t as c,v as m,w as i,x as b,y as p,z as v,A as y,B as h}from"./DnPHkIdi.js";function x(n=!1){const s=d,e=s.l.u;if(!e)return;let f=()=>v(s.s);if(n){let a=0,t={};const _=y(()=>{let l=!1;const r=s.s;for(const o in r)r[o]!==t[o]&&(t[o]=r[o],l=!0);return l&&a++,a});f=()=>p(_)}e.b.length&&g(()=>{u(s,f),i(e.b)}),c(()=>{const a=m(()=>e.m.map(b));return()=>{for(const t of a)typeof t=="function"&&t()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}h();export{x as i};
@@ -0,0 +1 @@
import{f as n,i as p,j as o,p as u,k as d,l,h as m,m as _,n as v,o as b}from"./DnPHkIdi.js";class w{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#a=!0;constructor(e,s=!0){this.anchor=e,this.#a=s}#f=()=>{var e=n;if(this.#t.has(e)){var s=this.#t.get(e),t=this.#s.get(s);if(t)p(t),this.#i.delete(s);else{var a=this.#e.get(s);a&&(this.#s.set(s,a.effect),this.#e.delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),t=a.effect)}for(const[i,f]of this.#t){if(this.#t.delete(i),i===e)break;const h=this.#e.get(f);h&&(o(h.effect),this.#e.delete(f))}for(const[i,f]of this.#s){if(i===s||this.#i.has(i))continue;const h=()=>{if(Array.from(this.#t.values()).includes(i)){var c=document.createDocumentFragment();v(f,c),c.append(d()),this.#e.set(i,{effect:f,fragment:c})}else o(f);this.#i.delete(i),this.#s.delete(i)};this.#a||!t?(this.#i.add(i),u(f,h,!1)):h()}}};#h=e=>{this.#t.delete(e);const s=Array.from(this.#t.values());for(const[t,a]of this.#e)s.includes(t)||(o(a.effect),this.#e.delete(t))};ensure(e,s){var t=n,a=b();if(s&&!this.#s.has(e)&&!this.#e.has(e))if(a){var i=document.createDocumentFragment(),f=d();i.append(f),this.#e.set(e,{effect:l(()=>s(f)),fragment:i})}else this.#s.set(e,l(()=>s(this.anchor)));if(this.#t.set(t,e),a){for(const[h,r]of this.#s)h===e?t.skipped_effects.delete(r):t.skipped_effects.add(r);for(const[h,r]of this.#e)h===e?t.skipped_effects.delete(r.effect):t.skipped_effects.add(r.effect);t.oncommit(this.#f),t.ondiscard(this.#h)}else m&&(this.anchor=_),this.#f()}}export{w as B};
@@ -0,0 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.Cf73ubsW.js","../chunks/DUCk1qN8.js","../chunks/DnPHkIdi.js","../chunks/kSfNJqxT.js","../chunks/C9HAc536.js","../assets/0.DLollcCP.css","../nodes/1.Mwi0d7FS.js","../chunks/VM9GfMNA.js","../chunks/DZQwV0xP.js","../chunks/CKL1QNnB.js","../chunks/BOU_Z_Ye.js","../nodes/2.BQz_jWEl.js","../chunks/6OCXa8_L.js","../assets/2.D5pqjzFo.css"])))=>i.map(i=>d[i]);
import{h as z,a as H,b as Q,E as Z,aC as X,ab as p,v as U,ad as $,aD as q,aE as ee,aF as te,aG as re,y as v,A as ae,P as ne,aH as se,a2 as O,aI as ie,a4 as oe,aJ as ce,aK as ue,C as fe,aL as le,aM as de,aN as _e,aO as F,aP as me,av as ve,W as he,D as ge,u as be,t as ye,aQ as I,aR as Ee,F as w,M as Pe,I as Se,J as Re,K as Oe,aS as L,G as we}from"../chunks/DnPHkIdi.js";import{h as Ae,m as Ie,u as Le,s as Te}from"../chunks/DZQwV0xP.js";import{f as Y,a as R,c as T,t as xe}from"../chunks/DUCk1qN8.js";import{o as Ce}from"../chunks/BOU_Z_Ye.js";import{i as x}from"../chunks/6OCXa8_L.js";import{B as De}from"../chunks/kSfNJqxT.js";function C(t,e,a){z&&H();var c=new De(t);Q(()=>{var s=e()??null;c.ensure(s,s&&(r=>a(r,s)))},Z)}function k(t,e){return t===e||t?.[q]===e}function D(t={},e,a,c){return X(()=>{var s,r;return p(()=>{s=r,r=[],U(()=>{t!==a(...r)&&(e(t,...r),s&&k(a(...s),t)&&e(null,...s))})}),()=>{$(()=>{r&&k(a(...r),t)&&e(null,...r)})}}),t}let A=!1;function Me(t){var e=A;try{return A=!1,[t(),A]}finally{A=e}}function M(t,e,a,c){var s=!fe||(a&le)!==0,r=(a&ue)!==0,n=(a&_e)!==0,i=c,y=!0,P=()=>(y&&(y=!1,i=n?U(c):c),i),u;if(r){var h=q in t||F in t;u=ee(t,e)?.set??(h&&e in t?o=>t[e]=o:void 0)}var d,_=!1;r?[d,_]=Me(()=>t[e]):d=t[e],d===void 0&&c!==void 0&&(d=P(),u&&(s&&te(),u(d)));var l;if(s?l=()=>{var o=t[e];return o===void 0?P():(y=!0,o)}:l=()=>{var o=t[e];return o!==void 0&&(i=void 0),o===void 0?i:o},s&&(a&re)===0)return l;if(u){var f=t.$$legacy;return(function(o,b){return arguments.length>0?((!s||!b||f||_)&&u(b?l():o),o):l()})}var g=!1,m=((a&de)!==0?ae:ne)(()=>(g=!1,l()));r&&v(m);var S=oe;return(function(o,b){if(arguments.length>0){const E=b?v(m):s&&r?se(o):o;return O(m,E),g=!0,i!==void 0&&(i=E),o}return ie&&g||(S.f&ce)!==0?m.v:v(m)})}function Ne(t){return class extends je{constructor(e){super({component:t,...e})}}}class je{#t;#e;constructor(e){var a=new Map,c=(r,n)=>{var i=he(n,!1,!1);return a.set(r,i),i};const s=new Proxy({...e.props||{},$$events:{}},{get(r,n){return v(a.get(n)??c(n,Reflect.get(r,n)))},has(r,n){return n===F?!0:(v(a.get(n)??c(n,Reflect.get(r,n))),Reflect.has(r,n))},set(r,n,i){return O(a.get(n)??c(n,i),i),Reflect.set(r,n,i)}});this.#e=(e.hydrate?Ae:Ie)(e.component,{target:e.target,anchor:e.anchor,props:s,context:e.context,intro:e.intro??!1,recover:e.recover}),(!e?.props?.$$host||e.sync===!1)&&me(),this.#t=s.$$events;for(const r of Object.keys(this.#e))r==="$set"||r==="$destroy"||r==="$on"||ve(this,r,{get(){return this.#e[r]},set(n){this.#e[r]=n},enumerable:!0});this.#e.$set=r=>{Object.assign(s,r)},this.#e.$destroy=()=>{Le(this.#e)}}$set(e){this.#e.$set(e)}$on(e,a){this.#t[e]=this.#t[e]||[];const c=(...s)=>a.call(this,...s);return this.#t[e].push(c),()=>{this.#t[e]=this.#t[e].filter(s=>s!==c)}}$destroy(){this.#e.$destroy()}}const ke="modulepreload",Be=function(t,e){return new URL(t,e).href},B={},N=function(e,a,c){let s=Promise.resolve();if(a&&a.length>0){let P=function(u){return Promise.all(u.map(h=>Promise.resolve(h).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const n=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),y=i?.nonce||i?.getAttribute("nonce");s=P(a.map(u=>{if(u=Be(u,c),u in B)return;B[u]=!0;const h=u.endsWith(".css"),d=h?'[rel="stylesheet"]':"";if(c)for(let l=n.length-1;l>=0;l--){const f=n[l];if(f.href===u&&(!h||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${d}`))return;const _=document.createElement("link");if(_.rel=h?"stylesheet":ke,h||(_.as="script"),_.crossOrigin="",_.href=u,y&&_.setAttribute("nonce",y),document.head.appendChild(_),h)return new Promise((l,f)=>{_.addEventListener("load",l),_.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${u}`)))})}))}function r(n){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=n,window.dispatchEvent(i),!i.defaultPrevented)throw n}return s.then(n=>{for(const i of n||[])i.status==="rejected"&&r(i.reason);return e().catch(r)})},Qe={};var Ue=Y('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),qe=Y("<!> <!>",1);function Fe(t,e){ge(e,!0);let a=M(e,"components",23,()=>[]),c=M(e,"data_0",3,null),s=M(e,"data_1",3,null);be(()=>e.stores.page.set(e.page)),ye(()=>{e.stores,e.page,e.constructors,a(),e.form,c(),s(),e.stores.page.notify()});let r=I(!1),n=I(!1),i=I(null);Ce(()=>{const f=e.stores.page.subscribe(()=>{v(r)&&(O(n,!0),Ee().then(()=>{O(i,document.title||"untitled page",!0)}))});return O(r,!0),f});const y=L(()=>e.constructors[1]);var P=qe(),u=w(P);{var h=f=>{const g=L(()=>e.constructors[0]);var m=T(),S=w(m);C(S,()=>v(g),(o,b)=>{D(b(o,{get data(){return c()},get form(){return e.form},get params(){return e.page.params},children:(E,Ge)=>{var j=T(),V=w(j);C(V,()=>v(y),(J,K)=>{D(K(J,{get data(){return s()},get form(){return e.form},get pLine truncated
@@ -0,0 +1 @@
import{l as o,a as r}from"../chunks/CKL1QNnB.js";export{o as load_css,r as start};
@@ -0,0 +1 @@
import{c as p,a as r,f as v}from"../chunks/DUCk1qN8.js";import{b as m,E as g,k as h,a9 as u,h as n,O as _,Q as y,a0 as o,d as f,c,m as w,F as E,G as x}from"../chunks/DnPHkIdi.js";import{B as T}from"../chunks/kSfNJqxT.js";import{s as b}from"../chunks/C9HAc536.js";function A(l,s,...a){var i=new T(l);m(()=>{const t=s()??null;i.ensure(t,t&&(e=>t(e,...a)))},g)}function F(l,s){let a=null,i=n;var t;if(n){a=w;for(var e=_(document.head);e!==null&&(e.nodeType!==y||e.data!==l);)e=o(e);if(e===null)f(!1);else{var d=o(e);e.remove(),c(d)}}n||(t=document.head.appendChild(h()));try{m(()=>s(t),u)}finally{i&&(f(!0),c(a))}}const M="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='107'%20height='128'%20viewBox='0%200%20107%20128'%3e%3ctitle%3esvelte-logo%3c/title%3e%3cpath%20d='M94.157%2022.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282%2029.608A29.92%2029.92%200%200%200%208.764%2049.65a31.5%2031.5%200%200%200%203.108%2020.231%2030%2030%200%200%200-4.477%2011.183%2031.9%2031.9%200%200%200%205.448%2024.116c10.402%2014.887%2030.942%2019.297%2045.791%209.835l26.083-16.624A29.92%2029.92%200%200%200%2098.235%2078.35a31.53%2031.53%200%200%200-3.105-20.232%2030%2030%200%200%200%204.474-11.182%2031.88%2031.88%200%200%200-5.447-24.116'%20style='fill:%23ff3e00'/%3e%3cpath%20d='M45.817%20106.582a20.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.503%2018%2018%200%200%201%20.624-2.435l.49-1.498%201.337.981a33.6%2033.6%200%200%200%2010.203%205.098l.97.294-.09.968a5.85%205.85%200%200%200%201.052%203.878%206.24%206.24%200%200%200%206.695%202.485%205.8%205.8%200%200%200%201.603-.704L69.27%2076.28a5.43%205.43%200%200%200%202.45-3.631%205.8%205.8%200%200%200-.987-4.371%206.24%206.24%200%200%200-6.698-2.487%205.7%205.7%200%200%200-1.6.704l-9.953%206.345a19%2019%200%200%201-5.296%202.326%2020.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.502%2017.99%2017.99%200%200%201%208.13-12.052l26.081-16.623a19%2019%200%200%201%205.3-2.329%2020.72%2020.72%200%200%201%2022.237%208.243%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-.624%202.435l-.49%201.498-1.337-.98a33.6%2033.6%200%200%200-10.203-5.1l-.97-.294.09-.968a5.86%205.86%200%200%200-1.052-3.878%206.24%206.24%200%200%200-6.696-2.485%205.8%205.8%200%200%200-1.602.704L37.73%2051.72a5.42%205.42%200%200%200-2.449%203.63%205.79%205.79%200%200%200%20.986%204.372%206.24%206.24%200%200%200%206.698%202.486%205.8%205.8%200%200%200%201.602-.704l9.952-6.342a19%2019%200%200%201%205.295-2.328%2020.72%2020.72%200%200%201%2022.237%208.242%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-8.13%2012.053l-26.081%2016.622a19%2019%200%200%201-5.3%202.328'%20style='fill:%23fff'/%3e%3c/svg%3e";var k=v('<link rel="icon"/>');function O(l,s){var a=p();F("12qhfyh",t=>{var e=k();x(()=>b(e,"href",M)),r(t,e)});var i=E(a);A(i,()=>s.children),r(l,a)}export{O as component};
@@ -0,0 +1 @@
import{f as u,a as h}from"../chunks/DUCk1qN8.js";import{i as g}from"../chunks/VM9GfMNA.js";import{D as l,F as v,G as d,I as _,J as a,K as e,M as x}from"../chunks/DnPHkIdi.js";import{s as o}from"../chunks/DZQwV0xP.js";import{s as $,p}from"../chunks/CKL1QNnB.js";const k={get error(){return p.error},get status(){return p.status}};$.updated.check;const m=k;var b=u("<h1> </h1> <p> </p>",1);function J(i,f){l(f,!1),g();var t=b(),r=v(t),n=a(r,!0);e(r);var s=x(r,2),c=a(s,!0);e(s),d(()=>{o(n,m.status),o(c,m.error?.message)}),h(i,t),_()}export{J as component};
@@ -0,0 +1 @@
import{f as N,a as T,c as te}from"../chunks/DUCk1qN8.js";import{i as _e}from"../chunks/VM9GfMNA.js";import{o as he}from"../chunks/BOU_Z_Ye.js";import{c as J,h as H,O as me,k as K,a as xe,b as Ee,y as _,P as be,r as ye,H as we,s as se,d as Q,m as V,Q as Te,R as Ae,S as ie,f as Ie,l as $,o as Ne,T as ee,U as ke,V as ne,W as P,X as Ce,Y as Se,Z as Me,_ as F,i as ve,p as de,$ as W,a0 as Re,a1 as Fe,j as De,D as He,I as Oe,a2 as Z,M as Y,J as M,K as S,F as le,G as z}from"../chunks/DnPHkIdi.js";import{s as B}from"../chunks/DZQwV0xP.js";import{i as O}from"../chunks/6OCXa8_L.js";import{s as oe}from"../chunks/C9HAc536.js";function ze(e,i){return i}function Le(e,i,s){for(var u=[],h=i.length,n,l=i.length,t=0;t<h;t++){let f=i[t];de(f,()=>{if(n){if(n.pending.delete(f),n.done.add(f),n.pending.size===0){var m=e.outrogroups;j(ee(n.done)),m.delete(n),m.size===0&&(e.outrogroups=null)}}else l-=1},!1)}if(l===0){var v=u.length===0&&s!==null;if(v){var a=s,o=a.parentNode;Fe(o),o.append(a),e.items.clear()}j(i,!v)}else n={pending:new Set(i),done:new Set},(e.outrogroups??=new Set).add(n)}function j(e,i=!0){for(var s=0;s<e.length;s++)De(e[s],i)}var fe;function Ve(e,i,s,u,h,n=null){var l=e,t=new Map;{var v=e;l=H?J(me(v)):v.appendChild(K())}H&&xe();var a=null,o=be(()=>{var p=s();return ke(p)?p:p==null?[]:ee(p)}),f,m=!0;function D(){c.fallback=a,Ye(c,f,l,i,u),a!==null&&(f.length===0?(a.f&F)===0?ve(a):(a.f^=F,L(a,null,l)):de(a,()=>{a=null}))}var r=Ee(()=>{f=_(o);var p=f.length;let I=!1;if(H){var y=ye(l)===we;y!==(p===0)&&(l=se(),J(l),Q(!1),I=!0)}for(var w=new Set,x=Ie,k=Ne(),d=0;d<p;d+=1){H&&V.nodeType===Te&&V.data===Ae&&(l=V,I=!0,Q(!1));var C=f[d],g=u(C,d),A=m?null:t.get(g);A?(A.v&&ie(A.v,C),A.i&&ie(A.i,d),k&&x.skipped_effects.delete(A.e)):(A=Be(t,m?l:fe??=K(),C,g,d,h,i,s),m||(A.e.f|=F),t.set(g,A)),w.add(g)}if(p===0&&n&&!a&&(m?a=$(()=>n(l)):(a=$(()=>n(fe??=K())),a.f|=F)),H&&p>0&&J(se()),!m)if(k){for(const[U,X]of t)w.has(U)||x.skipped_effects.add(X.e);x.oncommit(D),x.ondiscard(()=>{})}else D();I&&Q(!0),_(o)}),c={effect:r,items:t,outrogroups:null,fallback:a};m=!1,H&&(l=V)}function Ye(e,i,s,u,h){var n=i.length,l=e.items,t=e.effect.first,v,a=null,o=[],f=[],m,D,r,c;for(c=0;c<n;c+=1){if(m=i[c],D=h(m,c),r=l.get(D).e,e.outrogroups!==null)for(const g of e.outrogroups)g.pending.delete(r),g.done.delete(r);if((r.f&F)!==0)if(r.f^=F,r===t)L(r,null,s);else{var p=a?a.next:t;r===e.effect.last&&(e.effect.last=r.prev),r.prev&&(r.prev.next=r.next),r.next&&(r.next.prev=r.prev),R(e,a,r),R(e,r,p),L(r,p,s),a=r,o=[],f=[],t=a.next;continue}if((r.f&W)!==0&&ve(r),r!==t){if(v!==void 0&&v.has(r)){if(o.length<f.length){var I=f[0],y;a=I.prev;var w=o[0],x=o[o.length-1];for(y=0;y<o.length;y+=1)L(o[y],I,s);for(y=0;y<f.length;y+=1)v.delete(f[y]);R(e,w.prev,x.next),R(e,a,w),R(e,x,I),t=I,a=x,c-=1,o=[],f=[]}else v.delete(r),L(r,t,s),R(e,r.prev,r.next),R(e,r,a===null?e.effect.first:a.next),R(e,a,r),a=r;continue}for(o=[],f=[];t!==null&&t!==r;)(v??=new Set).add(t),f.push(t),t=t.next;if(t===null)continue}(r.f&F)===0&&o.push(r),a=r,t=r.next}if(e.outrogroups!==null){for(const g of e.outrogroups)g.pending.size===0&&(j(ee(g.done)),e.outrogroups?.delete(g));e.outrogroups.size===0&&(e.outrogroups=null)}if(t!==null||v!==void 0){var k=[];if(v!==void 0)for(r of v)(r.f&W)===0&&k.push(r);for(;t!==null;)(t.f&W)===0&&t!==e.fallback&&k.push(t),t=t.next;var d=k.length;if(d>0){var C=n===0?s:null;Le(e,k,C)}}}function Be(e,i,s,u,h,n,l,t){var v=(l&Se)!==0?(l&Me)===0?P(s,!1,!1):ne(s):null,a=(l&Ce)!==0?ne(h):null;return{v,i:a,e:$(()=>(n(i,v??s,a??h,t),()=>{e.delete(u)}))}}function L(e,i,s){if(e.nodes)for(var u=e.nodes.start,h=e.nodes.end,n=i&&(i.f&F)===0?i.nodes.start:s;u!==null;){var l=Re(u);if(n.before(u),u===h)return;u=l}}function R(e,i,s){i===null?e.effect.first=s:i.next=s,s===null?e.effect.last=i:s.prev=i}const Pe="/api";async function Ue(e=20,i=0){const s=await fetch(`${Pe}/ebooks?limit=${e}&offset=${i}`);if(!s.ok)throw new Error("Failed to fetch ebooks");return s.json()}var Xe=N('<div class="text-center py-8">Loading ebooks...</div>'),qe=N('<div class="text-red-500 text-center py-8"> </div>'),Ge=N('<div class="text-center py-8 text-gray-500">No ebooks found. Add some ebooks to get started.</div>'),Je=N('<img class="w-full h-full object-cover"/>'),Ke=N('<div class="text-gray-400 text-center p-4"><div class="text-2xl mb-2">📖</div> <div class="text-sm">No Cover</div></div>'),Qe=N('<p class="text-gray-600 text-sm mb-2"> </p>'),We=N('<p class="text-gray-700 text-sm line-clamp-3 svelte-1uha8ag"> </p>'),Ze=N('<div class="bg-white rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow"><div class="aspect-[3/4] bg-gray-200 flex items-center justify-center"><!></div> <div class="p-4"><h3 class="font-semibold text-lg mb-1 line-clamp-2 svelte-1uha8ag"> </h3> <!> <!></div></div>'),$e=N('<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"></div>'),je=N('<main class="container mx-auto px-4 py-8"><h1 class="text-3xl font-bold mb-8">Ebook Library</h1> <!></mainLine truncated
+1
View File
@@ -0,0 +1 @@
{"version":"1768960079047"}
+37
View File
@@ -0,0 +1,37 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="modulepreload" href="/_app/immutable/entry/start.BrST8BG9.js">
<link rel="modulepreload" href="/_app/immutable/chunks/CKL1QNnB.js">
<link rel="modulepreload" href="/_app/immutable/chunks/DnPHkIdi.js">
<link rel="modulepreload" href="/_app/immutable/chunks/BOU_Z_Ye.js">
<link rel="modulepreload" href="/_app/immutable/entry/app.o34c63v3.js">
<link rel="modulepreload" href="/_app/immutable/chunks/DZQwV0xP.js">
<link rel="modulepreload" href="/_app/immutable/chunks/DUCk1qN8.js">
<link rel="modulepreload" href="/_app/immutable/chunks/6OCXa8_L.js">
<link rel="modulepreload" href="/_app/immutable/chunks/kSfNJqxT.js">
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">
<script>
{
__sveltekit_1nk8k67 = {
base: ""
};
const element = document.currentScript.parentElement;
Promise.all([
import("/_app/immutable/entry/start.BrST8BG9.js"),
import("/_app/immutable/entry/app.o34c63v3.js")
]).then(([kit, app]) => {
kit.start(app, element);
});
}
</script>
</div>
</body>
</html>
+3
View File
@@ -0,0 +1,3 @@
# allow crawling everything by default
User-agent: *
Disallow: