1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/toaster-DG0vgMkJ.js","assets/query-CCllGbTQ.js","assets/vendor-D4vDED6K.js","assets/use-toast-CZeoTZrX.js","assets/supabase-BX9gqKp5.js","assets/sonner-DqIC8yNG.js","assets/StoriesPage-C1FlRY6b.js","assets/useInfiniteScroll-d1lwLC1b.js","assets/proxy-DrcAhyIh.js","assets/GhostStoriesPage-DC1UOgot.js","assets/StoryDetailPage-j7-mgmGd.js","assets/imageUtils-BZ6VZiMY.js","assets/AboutPage-Z6yYCuHF.js","assets/ContactPage-DYh9BXos.js","assets/PrivacyPolicyPage-Bc4zF1wi.js","assets/AdminLoginPage-BNTigycY.js","assets/AdminPage-t2Vwk6X9.js","assets/eye-CGhL8bfV.js","assets/Top15Page-vRaPm0WD.js","assets/AudiobooksPage-DafBBgL5.js","assets/NotFound-Dt0OKJeJ.js"])))=>i.map(i=>d[i]); 2var Ke=Object.defineProperty;var Ge=(e,t,n)=>t in e?Ke(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var D=(e,t,n)=>Ge(e,typeof t!="symbol"?t+"":t,n);import{j as r,Q as We,a as Je}from"./query-CCllGbTQ.js";import{a as Ze,g as ve,o as v,r as m,u as Ce,L as S,O as Ye,B as Xe,R as Qe,b as T}from"./vendor-D4vDED6K.js";import{c as et}from"./supabase-BX9gqKp5.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const d of o.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&a(d)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();var He,ke=Ze;He=ke.createRoot,ke.hydrateRoot;var tt=typeof Element<"u",rt=typeof Map=="function",nt=typeof Set=="function",at=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function Q(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,a,s;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(a=n;a--!==0;)if(!Q(e[a],t[a]))return!1;return!0}var o;if(rt&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(o=e.entries();!(a=o.next()).done;)if(!t.has(a.value[0]))return!1;for(o=e.entries();!(a=o.next()).done;)if(!Q(a.value[1],t.get(a.value[0])))return!1;return!0}if(nt&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(o=e.entries();!(a=o.next()).done;)if(!t.has(a.value[0]))return!1;return!0}if(at&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(a=n;a--!==0;)if(e[a]!==t[a])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(s=Object.keys(e),n=s.length,n!==Object.keys(t).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,s[a]))return!1;if(tt&&e instanceof Element)return!1;for(a=n;a--!==0;)if(!((s[a]==="_owner"||s[a]==="__v"||s[a]==="__o")&&e.$$typeof)&&!Q(e[s[a]],t[s[a]]))return!1;return!0}return e!==e&&t!==t}var st=function(t,n){try{return Q(t,n)}catch(a){if((a.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw a}};const ot=ve(st);var it=function(e,t,n,a,s,o,d,i){if(!e){var l;if(t===void 0)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,a,s,o,d,i],u=0;l=new Error(t.replace(/%s/g,function(){return c[u++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}},lt=it;const be=ve(lt);var dt=function(t,n,a,s){var o=a?a.call(s,t,n):void 0;if(o!==void 0)return!!o;if(t===n)return!0;
2if(typeof t!="object"||!t||typeof n!="object"||!n)return!1;var d=Object.keys(t),i=Object.keys(n);if(d.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(n),c=0;c<d.length;c++){var u=d[c];if(!l(u))return!1;var p=t[u],x=n[u];if(o=a?a.call(s,p,x,u):void 0,o===!1||o===void 0&&p!==x)return!1}return!0};const ct=ve(dt);var Re=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(Re||{}),ne={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},je=Object.values(Re),re={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Le=Object.entries(re).reduce((e,[t,n])=>(e[n]=t,e),{}),O="data-rh",U={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},F=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const a=e[n];if(Object.prototype.hasOwnProperty.call(a,t))return a[t]}return null},mt=e=>{let t=F(e,"title");const n=F(e,U.TITLE_TEMPLATE);if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,()=>t);const a=F(e,U.DEFAULT_TITLE);return t||a||void 0},ut=e=>F(e,U.ON_CHANGE_CLIENT_STATE)||(()=>{}),ae=(e,t)=>t.filter(n=>typeof n[e]<"u").map(n=>n[e]).reduce((n,a)=>({...n,...a}),{}),gt=(e,t)=>t.filter(n=>typeof n.base<"u").map(n=>n.base).reverse().reduce((n,a)=>{if(!n.length){const s=Object.keys(a);for(let o=0;o<s.length;o+=1){const i=s[o].toLowerCase();if(e.indexOf(i)!==-1&&a[i])return n.concat(a)}}return n},[]),pt=e=>console&&typeof console.warn=="function"&&console.warn(e),q=(e,t,n)=>{const a={};return n.filter(s=>Array.isArray(s[e])?!0:(typeof s[e]<"u"&&pt(`Helmet: ${e} should be of type "Array". Instead found type "${typeof s[e]}"`),!1)).map(s=>s[e]).reverse().reduce((s,o)=>{const d={};o.filter(l=>{let c;const u=Object.keys(l);for(let x=0;x<u.length;x+=1){const f=u[x],_=f.toLowerCase();t.indexOf(_)!==-1&&!(c==="rel"&&l[c].toLowerCase()==="canonical")&&!(_==="rel"&&l[_].toLowerCase()==="stylesheet")&&(c=_),t.indexOf(f)!==-1&&(f==="innerHTML"||f==="cssText"||f==="itemprop")&&(c=f)}if(!c||!l[c])return!1;const p=l[c].toLowerCase();return a[c]||(a[c]={}),d[c]||(d[c]={}),a[c][p]?!1:(d[c][p]=!0,!0)}).reverse().forEach(l=>s.push(l));const i=Object.keys(d);for(let l=0;l<i.length;l+=1){const c=i[l],u={...a[c],...d[c]};a[c]=u}return s},[]).reverse()},ht=(e,t)=>{if(Array.isArray(e)&&e.length){for(let n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},ft=e=>({baseTag:gt(["href"],e),bodyAttributes:ae("bodyAttributes",e),defer:F(e,U.DEFER),encode:F(e,U.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:ae("htmlAttributes",e),linkTags:q("link",["rel","href"],e),metaTags:q("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:q("noscript",["innerHTML"],e),onChangeClientState:ut(e),scriptTags:q("script",["src","innerHTML"],e),styleTags:q("style",["cssText"],e),title:mt(e),titleAttributes:ae("titleAttributes",e),prioritizeSeoTags:ht(e,U.PRIORITIZE_SEO_TAGS)}),Pe=e=>Array.isArray(e)?e.join(""):e,vt=(e,t)=>{const n=Object.keys(e);for(let a=0;a<n.length;a+=1)if(t[n[a]]&&t[n[a]].includes(e[n[a]]))return!0;return!1},se=(e,t)=>Array.isArray(e)?e.reduce((n,a)=>(vt(a,t)?n.priority.push(a):n.default.push(a),n),{priority:[],default:[]}):{default:e,priority:[]},we=(e,t)=>({...e,[t]:void 0}),xt=["noscript","script","style"],de=(e,t=!0)=>t===!1?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),ze=e=>Object.keys(e).reduce((t,n)=>{const a=typeof e[n]<"u"?`${n}="${e[n]}"`:`${n}`;return t?`${t} ${a}`:a},""),yt=(e,t,n,a)=>{const s=ze(n),o=Pe(t);return s?`<${e} ${O}="true" ${s}>${de(o,a)}</${e}>`:`<${e} ${O}="true">${de(o,a)}</${e}>`},kt=(e,t,n=!0)=>t.reduce((a,s)=>{const o=s,d=Object.keys(o).filter(c=>!(c==="innerHTML"||c==="cssText")).reduce((c,u)=>{const p=typeof o[u]>"u"?u:`${u}="${de(o[u],n)}"`;return c?`${c} ${p}`:p},""),i=o.innerHTML||o.cssText||"",l=xt.indexOf(e)===-1;return`${a}<${e} ${O}="true" ${d}${l?"/>":`>${i}</${e}>`}`},""),$e=(e,t={})=>Object.keys(e).reduce((n,a)=>{const s=re[a];return n[s||a]=e[a],n},t),bt=(e,t,n)=>{const a={key:t,[O]:!0},s=$e(n,a);return[v.createElement("title",s,t)]},ee=(e,t)=>
2t.map((n,a)=>{const s={key:a,[O]:!0};return Object.keys(n).forEach(o=>{const i=re[o]||o;if(i==="innerHTML"||i==="cssText"){const l=n.innerHTML||n.cssText;s.dangerouslySetInnerHTML={__html:l}}else s[i]=n[o]}),v.createElement(e,s)}),N=(e,t,n=!0)=>{switch(e){case"title":return{toComponent:()=>bt(e,t.title,t.titleAttributes),toString:()=>yt(e,t.title,t.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>$e(t),toString:()=>ze(t)};default:return{toComponent:()=>ee(e,t),toString:()=>kt(e,t,n)}}},jt=({metaTags:e,linkTags:t,scriptTags:n,encode:a})=>{const s=se(e,ne.meta),o=se(t,ne.link),d=se(n,ne.script);return{priorityMethods:{toComponent:()=>[...ee("meta",s.priority),...ee("link",o.priority),...ee("script",d.priority)],toString:()=>`${N("meta",s.priority,a)} ${N("link",o.priority,a)} ${N("script",d.priority,a)}`},metaTags:s.default,linkTags:o.default,scriptTags:d.default}},wt=e=>{const{baseTag:t,bodyAttributes:n,encode:a=!0,htmlAttributes:s,noscriptTags:o,styleTags:d,title:i="",titleAttributes:l,prioritizeSeoTags:c}=e;let{linkTags:u,metaTags:p,scriptTags:x}=e,f={toComponent:()=>[],toString:()=>""};return c&&({priorityMethods:f,linkTags:u,metaTags:p,scriptTags:x}=jt(e)),{priority:f,base:N("base",t,a),bodyAttributes:N("bodyAttributes",n,a),htmlAttributes:N("htmlAttributes",s,a),link:N("link",u,a),meta:N("meta",p,a),noscript:N("noscript",o,a),script:N("script",x,a),style:N("style",d,a),title:N("title",{title:i,titleAttributes:l},a)}},ce=wt,Y=[],xe=!!(typeof window<"u"&&window.document&&window.document.createElement),me=class{constructor(e,t){D(this,"instances",[]);D(this,"canUseDOM",xe);D(this,"context");D(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?Y:this.instances,add:e=>{(this.canUseDOM?Y:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?Y:this.instances).indexOf(e);(this.canUseDOM?Y:this.instances).splice(t,1)}}});this.context=e,this.canUseDOM=t||!1,t||(e.helmet=ce({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},Tt=parseInt(v.version.split(".")[0],10),ue=Tt>=19,St={},Ve=v.createContext(St),P,Ue=(P=class extends m.Component{constructor(n){super(n);D(this,"helmetData");ue?this.helmetData=null:this.helmetData=new me(this.props.context||{},P.canUseDOM)}render(){return ue?v.createElement(v.Fragment,null,this.props.children):v.createElement(Ve.Provider,{value:this.helmetData.value},this.props.children)}},D(P,"canUseDOM",xe),P),V=(e,t)=>{const n=document.head||document.querySelector("head"),a=n.querySelectorAll(`${e}[${O}]`),s=[].slice.call(a),o=[];let d;return t&&t.length&&t.forEach(i=>{const l=document.createElement(e);for(const c in i)if(Object.prototype.hasOwnProperty.call(i,c))if(c==="innerHTML")l.innerHTML=i.innerHTML;else if(c==="cssText"){const u=i.cssText;l.appendChild(document.createTextNode(u))}else{const u=c,p=typeof i[u]>"u"?"":i[u];l.setAttribute(c,p)}l.setAttribute(O,"true"),s.some((c,u)=>(d=u,l.isEqualNode(c)))?s.splice(d,1):o.push(l)}),s.forEach(i=>i.parentNode?.removeChild(i)),o.forEach(i=>n.appendChild(i)),{oldTags:s,newTags:o}},ge=(e,t)=>{const n=document.getElementsByTagName(e)[0];if(!n)return;const a=n.getAttribute(O),s=a?a.split(","):[],o=[...s],d=Object.keys(t);for(const i of d){const l=t[i]||"";n.getAttribute(i)!==l&&n.setAttribute(i,l),s.indexOf(i)===-1&&s.push(i);const c=o.indexOf(i);c!==-1&&o.splice(c,1)}for(let i=o.length-1;i>=0;i-=1)n.removeAttribute(o[i]);s.length===o.length?n.removeAttribute(O):n.getAttribute(O)!==d.join(",")&&n.setAttribute(O,d.join(","))},Et=(e,t)=>{typeof e<"u"&&document.title!==e&&(document.title=Pe(e)),ge("title",t)},Te=(e,t)=>{const{baseTag:n,bodyAttributes:a,htmlAttributes:s,linkTags:o,metaTags:d,noscriptTags:i,onChangeClientState:l,scriptTags:c,styleTags:u,title:p,titleAttributes:x}=e;ge("body",a),ge("html",s),Et(p,x);const f={baseTag:V("base",n),linkTags:V("link",o),metaTags:V("meta",d),noscriptTags:V("noscript",i),scriptTags:V("script",c),styleTags:V("style",u)},_={},R={};Object.keys(f).forEach(g=>{const{newTags:y,oldTags:k}=f[g];y.length&&(_[g]=y),k.length&&(R[g]=f[g].oldTags)}),t&&t(),l(e,_,R)},K=null,At=e=>{K&&cancelAnimationFrame(K),e.defer?K=requestAnimationFrame(()=>{Te(e,()=>{K=null})}):(Te(e),K=null)},_t=At,Se=class extends m.Component{constructor(){super(...arguments);D(this,"rendered",!1)}shouldComponentUpdate(t){return!ct(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:n}=this.props.context;let a=null;const s=ft(t.get().map(o=>{const{context:d,...i}=o.props;return i}));Ue.canUseDOM?_t(s):ce&&(a=ce(s)),n(a)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},te=[],Ee=e=>{const t={};for(const n of Object.keys(e))t[Le[n]||n]=e[n];return t},L=e=>{const t={};for(const n of Object.keys(e)){const a=re[n];t[a||n]=e[n]}return t},Ae=(e,t)=>
2{if(!xe)return;const n=document.getElementsByTagName(e)[0];if(!n)return;const a="data-rh-managed",s=n.getAttribute(a),o=s?s.split(","):[],d=Object.keys(t);for(const i of o)d.includes(i)||n.removeAttribute(i);for(const i of d){const l=t[i];l==null||l===!1?n.removeAttribute(i):l===!0?n.setAttribute(i,""):n.setAttribute(i,String(l))}d.length>0?n.setAttribute(a,d.join(",")):n.removeAttribute(a)},oe=()=>{const e={},t={};for(const n of te){const{htmlAttributes:a,bodyAttributes:s}=n.props;a&&Object.assign(e,Ee(a)),s&&Object.assign(t,Ee(s))}Ae("html",e),Ae("body",t)},Nt=class extends m.Component{componentDidMount(){te.push(this),oe()}componentDidUpdate(){oe()}componentWillUnmount(){const e=te.indexOf(this);e!==-1&&te.splice(e,1),oe()}resolveTitle(){const{title:e,titleTemplate:t,defaultTitle:n}=this.props;return e&&t?t.replace(/%s/g,()=>Array.isArray(e)?e.join(""):e):e||n||void 0}renderTitle(){const e=this.resolveTitle();if(e===void 0)return null;const t=this.props.titleAttributes||{};return v.createElement("title",L(t),e)}renderBase(){const{base:e}=this.props;return e?v.createElement("base",L(e)):null}renderMeta(){const{meta:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>v.createElement("meta",{key:n,...L(t)}))}renderLink(){const{link:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>v.createElement("link",{key:n,...L(t)}))}renderScript(){const{script:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{innerHTML:a,...s}=t,o=L(s);return a&&(o.dangerouslySetInnerHTML={__html:a}),v.createElement("script",{key:n,...o})})}renderStyle(){const{style:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{cssText:a,...s}=t,o=L(s);return a&&(o.dangerouslySetInnerHTML={__html:a}),v.createElement("style",{key:n,...o})})}renderNoscript(){const{noscript:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{innerHTML:a,...s}=t,o=L(s);return a&&(o.dangerouslySetInnerHTML={__html:a}),v.createElement("noscript",{key:n,...o})})}render(){return v.createElement(v.Fragment,null,this.renderTitle(),this.renderBase(),this.renderMeta(),this.renderLink(),this.renderScript(),this.renderStyle(),this.renderNoscript())}},le,Mt=(le=class extends m.Component{shouldComponentUpdate(e){return!ot(we(this.props,"helmetData"),we(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,t,n,a){return{...t,[e.type]:[...t[e.type]||[],{...n,...this.mapNestedChildrenToProps(e,a)}]}}mapObjectTypeChildren(e,t,n,a){switch(e.type){case"title":return{...t,[e.type]:a,titleAttributes:{...n}};case"body":return{...t,bodyAttributes:{...n}};case"html":return{...t,htmlAttributes:{...n}};default:return{...t,[e.type]:{...n}}}}mapArrayTypeChildrenToProps(e,t){let n={...t};return Object.keys(e).forEach(a=>{n={...n,[a]:e[a]}}),n}warnOnInvalidChildren(e,t){return be(je.some(n=>e.type===n),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${je.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),be(!t||typeof t=="string"||Array.isArray(t)&&!t.some(n=>typeof n!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,t){let n={};return v.Children.forEach(e,a=>{if(!a||!a.props)return;const{children:s,...o}=a.props,d=Object.keys(o).reduce((l,c)=>(l[Le[c]||c]=o[c],l),{});let{type:i}=a;
2switch(typeof i=="symbol"?i=i.toString():this.warnOnInvalidChildren(a,s),i){case"Symbol(react.fragment)":t=this.mapChildrenToProps(s,t);break;case"link":case"meta":case"noscript":case"script":case"style":n=this.flattenArrayTypeChildren(a,n,d,s);break;default:t=this.mapObjectTypeChildren(a,t,d,s);break}}),this.mapArrayTypeChildrenToProps(n,t)}render(){const{children:e,...t}=this.props;let n={...t},{helmetData:a}=t;if(e&&(n=this.mapChildrenToProps(e,n)),a&&!(a instanceof me)){const s=a;a=new me(s.context,!0),delete n.helmetData}return ue?v.createElement(Nt,{...n}):a?v.createElement(Se,{...n,context:a.value}):v.createElement(Ve.Consumer,null,s=>v.createElement(Se,{...n,context:s}))}},D(le,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),le);const Ot="modulepreload",It=function(e){return"/"+e},_e={},E=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const d=document.querySelector("meta[property=csp-nonce]"),i=d?.nonce||d?.getAttribute("nonce");s=Promise.allSettled(n.map(l=>{if(l=It(l),l in _e)return;_e[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const p=document.createElement("link");if(p.rel=c?"stylesheet":Ot,c||(p.as="script"),p.crossOrigin="",p.href=l,i&&p.setAttribute("nonce",i),document.head.appendChild(p),c)return new Promise((x,f)=>{p.addEventListener("load",x),p.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${l}`)))})}))}function o(d){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=d,window.dispatchEvent(i),!i.defaultPrevented)throw d}return s.then(d=>{for(const i of d||[])i.status==="rejected"&&o(i.reason);return t().catch(o)})};/** 3 * @license lucide-react v0.462.0 - ISC 4 * 5 * This source code is licensed under the ISC license. 6 * See the LICENSE file in the root directory of this source tree. 7 */const Dt=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Fe=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();/** 8 * @license lucide-react v0.462.0 - ISC 9 * 10 * This source code is licensed under the ISC license. 11 * See the LICENSE file in the root directory of this source tree. 12 */var Ct={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 13 * @license lucide-react v0.462.0 - ISC 14 * 15 * This source code is licensed under the ISC license. 16 * See the LICENSE file in the root directory of this source tree. 17 */const Ht=m.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:s="",children:o,iconNode:d,...i},l)=>m.createElement("svg",{ref:l,...Ct,width:t,height:t,stroke:e,strokeWidth:a?Number(n)*24/Number(t):n,className:Fe("lucide",s),...i},[...d.map(([c,u])=>m.createElement(c,u)),...Array.isArray(o)?o:[o]]));/** 18 * @license lucide-react v0.462.0 - ISC 19 * 20 * This source code is licensed under the ISC license. 21 * See the LICENSE file in the root directory of this source tree. 22 */const A=(e,t)=>{const n=m.forwardRef(({className:a,...s},o)=>m.createElement(Ht,{ref:o,iconNode:t,className:Fe(`lucide-${Dt(e)}`,a),...s}));return n.displayName=`${e}`,n};/** 23 * @license lucide-react v0.462.0 - ISC 24 * 25 * This source code is licensed under the ISC license. 26 * See the LICENSE file in the root directory of this source tree. 27 */const G=A("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** 28 * @license lucide-react v0.462.0 - ISC 29 * 30 * This source code is licensed under the ISC license. 31 * See the LICENSE file in the root directory of this source tree. 32 */const Rt=A("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** 33 * @license lucide-react v0.462.0 - ISC 34 * 35 * This source code is licensed under the ISC license. 36 * See the LICENSE file in the root directory of this source tree. 37 */const J=A("Book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]);/** 38 * @license lucide-react v0.462.0 - ISC 39 * 40 * This source code is licensed under the ISC license. 41 * See the LICENSE file in the root directory of this source tree. 42 */const Lt=A("BriefcaseBusiness",[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M22 13a18.15 18.15 0 0 1-20 0",key:"12hx5q"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);/** 43 * @license lucide-react v0.462.0 - ISC 44 * 45 * This source code is licensed under the ISC license. 46 * See the LICENSE file in the root directory of this source tree. 47 */const Pt=A("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** 48 * @license lucide-react v0.462.0 - ISC 49 * 50 * This source code is licensed under the ISC license. 51 * See the LICENSE file in the root directory of this source tree. 52 */const zt=A("Film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]);/** 53 * @license lucide-react v0.462.0 - ISC 54 * 55 * This source code is licensed under the ISC license. 56 * See the LICENSE file in the root directory of this source tree. 57 */const pe=A("Ghost",[["path",{d:"M9 10h.01",key:"qbtxuw"}],["path",{d:"M15 10h.01",key:"1qmjsl"}],["path",{d:"M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z",key:"uwwb07"}]]);/** 58 * @license lucide-react v0.462.0 - ISC 59 * 60 * This source code is licensed under the ISC license. 61 * See the LICENSE file in the root directory of this source tree. 62 */const Be=A("Headphones",[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]]);/** 63 * @license lucide-react v0.462.0 - ISC 64 * 65 * This source code is licensed under the ISC license. 66 * See the LICENSE file in the root directory of this source tree. 67 */const $t=A("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/** 68 * @license lucide-react v0.462.0 - ISC 69 * 70 * This source code is licensed under the ISC license. 71 * See the LICENSE file in the root directory of this source tree. 72 */const Vt=A("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/** 73 * @license lucide-react v0.462.0 - ISC 74 * 75 * This source code is licensed under the ISC license. 76 * See the LICENSE file in the root directory of this source tree. 77 */const Ut=A("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** 78 * @license lucide-react v0.462.0 - ISC 79 * 80 * This source code is licensed under the ISC license. 81 * See the LICENSE file in the root directory of this source tree. 82 */const ye=A("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** 83 * @license lucide-react v0.462.0 - ISC 84 * 85 * This source code is licensed under the ISC license. 86 * See the LICENSE file in the root directory of this source tree. 87 */const Ft=A("Trophy",[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}
87],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]]),Ne=[{to:"/",label:"Hem",icon:Vt},{to:"/sagor",label:"Sagor",icon:J},{to:"/spokhistorier",label:"Spökhistorier",icon:pe},{to:"/top15",label:"Topplistan",icon:Ft},{to:"/ljudbocker",label:"Ljudböcker",icon:Be},{to:"/kontakt",label:"Kontakt",icon:Ut},{to:"/om-oss",label:"Om Oss",icon:ye}],Bt=()=>{const e=Ce(),[t,n]=m.useState(!1);return r.jsxs("nav",{className:"sticky top-0 z-50 border-b border-border bg-background/90 backdrop-blur-md",children:[r.jsxs("div",{className:"container mx-auto flex items-center justify-between px-4 py-3",children:[r.jsxs(S,{to:"/",className:"flex items-center gap-2",children:[r.jsx(ye,{className:"h-6 w-6 text-primary"}),r.jsx("span",{className:"font-display text-xl font-bold text-foreground",children:"Sagopelatset"})]}),r.jsx("div",{className:"hidden items-center gap-1 md:flex",children:Ne.map(a=>{const s=a.icon,o=e.pathname===a.to;return r.jsxs(S,{to:a.to,className:`flex items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors ${o?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[r.jsx(s,{className:"h-4 w-4"}),a.label]},a.to)})}),r.jsx("button",{onClick:()=>n(!t),"aria-label":t?"Stäng meny":"Ãppna meny",className:"rounded-lg p-2 text-foreground hover:bg-muted md:hidden",children:r.jsx("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:t?r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"}):r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"})})})]}),t&&r.jsx("div",{className:"border-t border-border px-4 pb-3 md:hidden",children:Ne.map(a=>{const s=a.icon,o=e.pathname===a.to;return r.jsxs(S,{to:a.to,onClick:()=>n(!1),className:`flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors ${o?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"}`,children:[r.jsx(s,{className:"h-4 w-4"}),a.label]},a.to)})})]})},qt=()=>{const e=window;e.googlefc&&e.googlefc.showRevocationMessage?e.googlefc.showRevocationMessage():e.__tcfapi?e.__tcfapi("displayConsentUi",2,()=>{}):alert("Samtyckeshanteraren laddas fortfarande. Försök igen om en stund.")},Kt=()=>r.jsx("footer",{className:"border-t border-border bg-muted/50 py-8",children:r.jsxs("div",{className:"container mx-auto px-4 text-center",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 text-muted-foreground h-5",children:[r.jsx(J,{className:"h-4 w-4"}),r.jsx("span",{className:"text-sm font-semibold",children:"Sagopelatset"})]}),r.jsxs("p",{className:"mt-2 text-xs text-muted-foreground",children:["Skapad med ",r.jsx($t,{className:"inline h-3 w-3 text-primary"})," för alla som älskar sagor"]}),r.jsxs("div",{className:"mt-4 flex flex-wrap justify-center gap-x-4 gap-y-2 text-xs text-muted-foreground",children:[r.jsx(S,{to:"/sagor",className:"hover:text-foreground transition-colors",children:"Sagor"}),r.jsx(S,{to:"/spokhistorier",className:"hover:text-foreground transition-colors",children:"Spökhistorier"}),r.jsx(S,{to:"/kontakt",className:"hover:text-foreground transition-colors",children:"Kontakt"}),r.jsx(S,{to:"/om-oss",className:"hover:text-foreground transition-colors",children:"Om Oss"}),r.jsx(S,{to:"/integritetspolicy",className:"hover:text-foreground transition-colors",children:"Integritetspolicy"}),r.jsx("button",{type:"button",onClick:qt,className:"hover:text-foreground transition-colors underline-offset-2 hover:underline",children:"Hantera annonsval"})]})]})}),Gt=()=>{const{pathname:e}=Ce();return m.useEffect(()=>{window.scrollTo(0,0)},[e]),null},Wt=()=>r.jsxs("div",{className:"flex min-h-screen flex-col",children:[r.jsx(Gt,{}),r.jsx(Bt,{}),r.jsx("main",{className:"flex-1",children:r.jsx(Ye,{})}),r.jsx(Kt,{})]}),Me=({story:e,index:t=0})=>{const[n,a]=m.useState(!1),[s,o]=m.useState(!1),d=t<3;return r.jsx("div",{children:r.jsxs(S,{to:`/saga/${e.id}`,className:"story-card-hover group block overflow-hidden rounded-xl border border-border bg-card shadow-sm",children:[r.jsxs("div",{className:"relative aspect-[3/4] overflow-hidden bg-muted",children:[n?r.jsx("div",{className:"flex h-full w-full items-center justify-center bg-muted",children:r.jsx(Rt,{className:"h-16 w-16 text-muted-foreground
87/40"})}):r.jsx("img",{src:e.coverImage,alt:e.title,className:`h-full w-full object-cover transition-all duration-500 group-hover:scale-105 ${s?"opacity-100":"opacity-0"}`,loading:d?"eager":"lazy",decoding:"async",fetchPriority:d?"high":"low",width:"416",height:"555",sizes:"(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw",onError:()=>a(!0),onLoad:()=>o(!0)}),r.jsx("div",{className:"absolute inset-x-0 bottom-0 bg-gradient-to-t from-foreground/80 to-transparent p-4 pt-12",children:r.jsx("span",{className:"inline-block rounded-full bg-background/20 px-2 py-0.5 text-xs font-medium text-primary-foreground backdrop-blur-sm",children:e.category==="saga"?"Saga":"Spökhistoria"})})]}),r.jsxs("div",{className:"p-4",children:[r.jsx("h3",{className:"font-display text-lg font-bold text-foreground line-clamp-2 group-hover:text-primary transition-colors",children:e.title}),r.jsx("p",{className:"mt-1.5 text-sm text-muted-foreground line-clamp-2",children:e.excerpt}),r.jsxs("div",{className:"mt-3 flex items-center gap-3 text-xs text-muted-foreground",children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx(Pt,{className:"h-3 w-3"}),e.readTime]}),r.jsx("span",{children:new Date(e.date).toLocaleDateString("sv-SE")})]})]})]})})};function Jt(){if(typeof window>"u")return;const e=location.hostname,n=["lovableproject.com","lovableproject-dev.com","lovable.app","gpt-eng.com","gptengineer.run"].some(g=>e===g||e.endsWith("."+g)),a="[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}",s=n?e.match(new RegExp("^(?:id-preview(?:-[a-z0-9]+)?|project)--("+a+")(?:-dev)?(?=\\.|$)","i"))?.[1]??e.match(new RegExp("^("+a+")(?=[.-])","i"))?.[1]:void 0,o=window.parent&&window.parent!==window;if(!s||!o)return localStorage;const d=e.endsWith(".lovableproject-dev.com")||e.endsWith(".gpt-eng.com"),i=d?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,l=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:""),c=l&&i.test(l)?[l]:d?["https://lovable.dev","http://localhost:3000"]:["https://lovable.dev"],u="lovable-preview-auth:result",p=2e3,x=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),f=(g,y,k)=>new Promise(z=>{const j=x();let C=!1,I;const B=h=>{C||(C=!0,clearTimeout(I),window.removeEventListener("message",$),z(h))},$=h=>{if(c.indexOf(h.origin)<0)return;const w=h.data;w&&w.type===u&&w.requestId===j&&B(w)};window.addEventListener("message",$);const b={type:g,requestId:j,projectId:s,key:y};k!==void 0&&(b.value=k);for(const h of c)window.parent.postMessage(b,h);I=setTimeout(()=>B(null),p)});let _=!0;const R=250;return{getItem:async g=>{let y=await f("lovable-preview-auth:get",g);return!y&&_&&(await new Promise(k=>setTimeout(k,R)),y=await f("lovable-preview-auth:get",g)),_=!1,y&&y.ok&&typeof y.value=="string"?y.value===""?(localStorage.removeItem(g),null):y.value:localStorage.getItem(g)},setItem:(g,y)=>(localStorage.setItem(g,y),f("lovable-preview-auth:set",g,y).then(k=>{k&&k.ok&&typeof k.value=="string"&&localStorage.getItem(g)===y&&(k.value===""?localStorage.removeItem(g):localStorage.setItem(g,k.value))})),removeItem:g=>(localStorage.removeItem(g),f("lovable-preview-auth:remove",g).then(()=>{}))}}const Zt="https://obowtqmoitnrjquptsrk.supabase.co",Yt="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im9ib3d0cW1vaXRucmpxdXB0c3JrIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzI5Njc3MzIsImV4cCI6MjA4ODU0MzczMn0.i3bJSG7jiO9s9rHjki2wDrbednZrbAu9YiL6vnHBBX4",Xt=et(Zt,Yt,{auth:{storage:Jt(),persistSession:!0,autoRefreshToken:!0}}),Qt="/assets/story-cover-1-DW9WSyDX.webp",er="/assets/story-cover-2-BvaNhNQ8.webp",tr="/assets/story-cover-3-CRpkascv.webp",rr="/assets/ghost-cover-1-CETp4NhP.webp",nr="/assets/ghost-cover-2-DsKvn1Ea.webp",ar="/assets/ghost-cover-3-B7IPcnii.webp",qe=[{id:"raven-och-stjarnbron",title:"Räven och Stjärnbron",excerpt:"En modig liten räv ger sig ut på ett äventyr genom den förtrollade skogen för att hitta den legendariska stjärnbron.",content:`Det var en gång en liten räv vid namn Rufus som bodde i en mysig håla vid kanten av den Förtrollade Skogen. Varje kväll tittade han upp mot himlen och undrade vart stjärnorna tog vägen när morgonen kom. 88 89"De går över Stjärnbron," sa hans mormor en kväll. "En bro g
89jord av rent stjärnljus som bara visar sig för den som är modig nog att söka den." 90 91Rufus bestämde sig. Han skulle hitta Stjärnbron. 92 93Han vandrade genom skogen, förbi svamparna som lyste i mörkret och förbi den sjungande bäcken. Han mötte en uggla som satt pÃ¥ en gammal ek. 94 95"Vart ska du, lilla räv?" frÃ¥gade ugglan. 96 97"Jag söker Stjärnbron," svarade Rufus. 98 99"Följ eldflugornas dans," viskade ugglan. "De vet vägen." 100 101Rufus följde de blinkande ljusen djupare in i skogen. Snart kom han till en glänta där hundratals eldfluggor dansade i en spiral uppÃ¥t mot himlen. Och där, högt ovanför trädtopparna, glimmade den â Stjärnbron. 102 103Den var gjord av tusen och Ã¥ter tusen smÃ¥ stjärnor, sammanlänkade i ett skimrande bÃ¥ge över nattskyn. Rufus tog sitt första steg ut pÃ¥ bron och kände hur hela världen öppnade sig under honom. 104 105FrÃ¥n bron kunde han se allt â sin hÃ¥la, skogen, havet bortom bergen. Han förstod att världen var mycket större och vackrare än han nÃ¥gonsin hade trott. 106 107När han kom hem igen den natten, kröp han ner i sin varma hÃ¥la med ett leende. Han visste nu att äventyren alltid väntade pÃ¥ den som vÃ¥gade söka dem. 108 109Och eldflugorna? De dansade fortfarande i gläntan, väntande pÃ¥ nästa modiga själ.`,coverImage:Qt,category:"saga",date:"2026-03-01",readTime:"5 min"},{id:"hemliga-dorren-i-eken",title:"Den Hemliga Dörren i Eken",excerpt:"Lilla Maja hittar en hemlig dörr i det gamla ekträdet och upptäcker en värld full av magiska varelser.",content:`Maja var en nyfiken flicka med eldrödt hÃ¥r som alltid letade efter äventyr. En solig eftermiddag, när hon lekte i trädgÃ¥rden, upptäckte hon nÃ¥got märkligt med det gamla ekträdet. 110 111Där, halvt gömd bakom mossa och murgröna, fanns en liten dörr. Den var inte större än en katt, med ett handtag format som ett löv. 112 113"HallÃ¥?" viskade Maja och knackade försiktigt. 114 115Dörren öppnades av sig själv, och inifrÃ¥n strömmade ett gyllene ljus. Maja kröp in och befann sig plötsligt i en helt annan värld. 116 117Träden var gjorda av kristall, blommorna sjöng melodier, och smÃ¥ varelser med vingar av regnbÃ¥gsfärger fladdrade runt henne. 118 119"Välkommen till Ekariket!" sa en liten varelse som liknade en ekorre med ametistfärgade ögon. "Vi har väntat pÃ¥ dig." 120 121"Väntat pÃ¥ mig?" sa Maja förvÃ¥nat. 122 123"Ja, det är bara barn med riktigt stora hjärtan som kan se dörren. Och vi behöver din hjälp. VÃ¥r magiska ek hÃ¥ller pÃ¥ att tyna bort." 124 125Maja fick veta att ekens magi kunde räddas om nÃ¥gon sjöng den gamla sÃ¥ngen â sÃ¥ngen som bara barn kunde höra i vinden. Maja lyssnade noga, och där, i vindens viskningar, hörde hon melodin. 126 127Hon sjöng, och hela Ekariket blommade upp i tusen färger. Kristallträden glödde, blommorna jublade, och de smÃ¥ varelserna dansade av glädje. 128 129"Tack, Maja! Du räddade vÃ¥rt hem." 130 131Maja kröp tillbaka ut genom dörren med ett löfte att komma tillbaka. Och varje gÃ¥ng hon sjöng den gamla sÃ¥ngen kunde hon höra Ekariket sjunga tillbaka.`,coverImage:er,category:"saga",date:"2026-02-22",readTime:"6 min"},{id:"draken-och-riddaren",title:"Draken och Riddarens Tekalas",excerpt:"En ung riddare upptäcker att den fruktade draken egentligen bara vill ha en vän att dela kakor med.",content:`I kungariket Solglänta berättade alla om den fruktade draken som bodde pÃ¥ Molnberget. Ingen vÃ¥gade gÃ¥ dit, för alla visste att drakar var farliga. 132 133Men den unga riddaren Hugo var inte som andra riddare. Han tyckte inte om svärd, och han var mycket bättre pÃ¥ att baka kakor än att slÃ¥ss. 134 135"Jag ska besegra draken!" sa Hugo en dag, fast han egentligen var ganska nervös. 136 137Han packade sin ryggsäck â inte med vapen, utan med sina bästa chokladkakor och en termos varm choklad. 138 139När han klättrade upp pÃ¥ Molnberget hörde han ett ljud. Det var inte ett skrämmande vrÃ¥l. Det var... grÃ¥t? 140 141Hugo smög fram och sÃ¥g den gröna draken sitta ensam vid en liten eld. Stora tÃ¥rar rann nerför hans fjälliga kinder. 142 143"Hej," sa Hugo försiktigt. "Varför grÃ¥ter du?" 144 145Draken hoppade till. "à ! En riddare! Ska du slÃ¥ss med mig?" 146 147"Nej," sa Hugo och satte sig ner. "Jag tänkte bjuda pÃ¥ kakor." 148 149Drakens ögon blev stora som tefat. "Ka-kakor? Ingen har bjudit mig pÃ¥ kakor förut. Alla springer ifrÃ¥n mig." 150 151"Varför det?" frÃ¥gade Hugo. 152 153"För att jag nyser eld," sa draken sorgset. "Men jag vill inte skrämma nÃ¥gon. Jag vill bara ha en vän." 154 155Hugo skrattade. "Du kan nysa eld? Det är ju perfekt! Du kan hjälpa mig att grädda kakor!" 156 157Och sÃ¥ blev det. Hugo och draken â som hette Gull â startade det bästa bageriet i hela kungariket. Gull värmde ugnen med sina nysningar, och Hugo bakade de godaste kakorna. 158 159Snart kom alla i byn för att köpa kakor och klappa Gull pÃ¥ nosen. Och Gull? Han grät aldrig mer av ensamhet.`,coverImage:tr,category:"saga",date:"2026-02-15",readTime:"5 min"},{id:"spoket-i-slottet",title:"Spöket i Gamla Slottet",excerpt:"Tre modiga barn utforskar det övergivna slottet och upptäcker att spöket bara vill ha hjälp att hitta hem.",content:`Det gamla slottet hade stÃ¥tt tomt i hu
159ndra Ã¥r. Alla i byn sa att det spökade där. PÃ¥ nätterna kunde man se ett blÃ¥aktigt ljus i tornfönstret. 160 161"Vi borde undersöka saken," sa Astrid, som var den modigaste av de tre vännerna. 162 163"Jag vet inte..." sa Emil och bet sig i läppen. 164 165"Kom igen! Det blir kul!" sa Siri och tog fram sin ficklampa. 166 167De tre vännerna smög in genom den knarrande porten precis när klockan slog midnatt. Inne i slottet var det kallt och mörkt. Spindelnät hängde som gardiner och damm virvlade i ficklampans sken. 168 169BANG! 170 171En dörr slog igen nÃ¥gonstans ovanför dem. Emil grep tag i Astrids arm. 172 173De gick uppför den vindlande trappan, steg för steg. Vid varje trappsteg knarrade golvet, och skuggorna dansade pÃ¥ väggarna. 174 175Ãverst i tornet fann de det â ett litet blÃ¥aktigt ljus som svävade framför ett gammalt porträtt. 176 177"Hej?" viskade Astrid. 178 179Ljuset pulserade och formades lÃ¥ngsamt till en liten flicka i gammaldags kläder. 180 181"à ! Ni kan se mig!" sa spökflickan förvÃ¥nat. "Ingen har kunnat se mig pÃ¥ hundra Ã¥r!" 182 183"Vem är du?" frÃ¥gade Siri. 184 185"Jag heter Elsa. Jag bodde här en gÃ¥ng. Men jag har gÃ¥tt vilse. Jag kan inte hitta vägen till stjärnorna." 186 187"Till stjärnorna?" sa Emil. 188 189"Det är dit spöken gÃ¥r när de är redo. Men jag har inte hittat vägen." 190 191De tre barnen hjälpte Elsa att leta. De hittade en hemlig trappa som ledde upp till slottets allra högsta torn. Där uppe, under den öppna himlen, badade allt i stjärnljus. 192 193"Där!" sa Elsa med ett strÃ¥lande leende. En stig av ljus sträckte sig uppÃ¥t bland stjärnorna. "Nu ser jag den! Tack, kära vänner." 194 195Elsa vinkade och steg ut pÃ¥ ljusstigen. Med varje steg bleknade hon, tills hon blev en del av stjärnhimlen. 196 197De tre vännerna stod kvar och tittade uppÃ¥t. Och om du tittar noga pÃ¥ himlen en klar natt, kanske du kan se en stjärna som blinkar lite extra â det är Elsa som vinkar.`,coverImage:rr,category:"spokhistoria",date:"2026-03-05",readTime:"7 min"},{id:"skogen-som-viskade",title:"Skogen Som Viskade",excerpt:"När mörkret faller i den gamla skogen börjar träden viska hemligheter som ingen borde höra.",content:`Det fanns en skog utanför byn som alla kallade Viskerskogen. De gamla sa att man aldrig skulle gÃ¥ dit efter solnedgÃ¥ngen. Men Nils och Freja var nyfikna. 198 199"Det är bara dumma historier," sa Nils medan de vandrade in bland de mörka stammarna. 200 201Men sÃ¥ fort solen försvann bakom horisonten, hände det. Träden började viska. 202 203"Vännnnd tillllbaka..." väste en gammal ek. 204 205"Hörde du det?" viskade Freja och stannade tvärt. 206 207"Det är bara vinden," sa Nils, men hans röst darrade. 208 209De gick djupare in. Viskningarna blev starkare. De hörde röster som berättade historier â om barn som gÃ¥tt vilse, om skatter som gömts, om en tid dÃ¥ skogen var ung. 210 211Plötsligt sÃ¥g de ljus mellan träden. Gröna, blÃ¥ och lila lyktor som flöt i luften. 212 213"Kom nääärmare..." viskade rösterna. 214 215"Vi borde gÃ¥ tillbaka," sa Freja. 216 217Men Nils hade redan gÃ¥tt mot ljusen. Freja följde efter. 218 219I en glänta mitt i skogen stod ett träd som var äldre än alla andra. Dess stam var bred som ett hus, och i barken kunde man se ansikten â hundratals ansikten, alla med slutna ögon. 220 221"Det här är Minnesträdet," viskade en röst som var mjukare än de andra. En gammal kvinna trädde fram ur skuggorna. Hon var genomskinlig som dimma. 222 223"Vem är du?" frÃ¥gade Nils. 224 225"Jag är skogen. Och jag har en historia att berätta er." 226 227Hon berättade om hur skogen en gÃ¥ng räddats av modiga barn som planterade det första fröet. Varje viskning var minnet av en berättelse, bevarad i trädens ringar. 228 229"Nu har ni hört skogen," sa kvinnan. "Och nu är ni en del av den." 230 231Nils och Freja sprang hem genom mörkret, hjärtana bultande. Men de var aldrig rädda för skogen igen. För nu visste de â viskningarna var inte hotfulla. De var bara gamla historier som väntade pÃ¥ att berättas.`,coverImage:nr,category:"spokhistoria",date:"2026-02-28",readTime:"6 min"},{id:"huset-pa-kullen",title:"Huset PÃ¥ Kullen",excerpt:"Det gamla huset pÃ¥ kullen har stÃ¥tt tomt i Ã¥ratal, men varje natt tänds ett ljus i fönstret...",content:`Alla
231i byn kände till huset pÃ¥ kullen. Det hade stÃ¥tt tomt sedan gamla fru Bergström försvunnit en vinternatt för tjugo Ã¥r sedan. Men varje kväll, precis när klockan slog nio, tändes ett ljus i övervÃ¥ningens fönster. 232 233"Det är fru Bergströms spöke," sa barnen i byn och rös. 234 235Men en regnig oktoberkväll bestämde sig Lovisa för att ta reda pÃ¥ sanningen. Hon tog sin katt Katten (som var väldigt uppfinningsrikt döpt) och gick uppför den branta kullen. 236 237Grinden gnisslade när hon öppnade den. TrädgÃ¥rden var övervuxen med vildrosor och ogräs. En ensam katt â svart som natten â satt pÃ¥ staketet och betraktade henne med gula ögon. 238 239"Miau," sa Katten. 240 241"Miau," svarade den svarta katten. 242 243Lovisa klev upp pÃ¥ verandan. Trappstegen knarrade under hennes fötter. Hon tryckte ner handtaget, och dörren öppnades med ett lååångt gnyyyyyyy. 244 245Inne var det mörkt och tyst. Damm dansade i ljuset frÃ¥n hennes ficklampa. Möblerna stod kvar, täckta med vita lakan som spökklädnader. 246 247Hon gick uppför trappan. Steg för steg. Knarr för knarr. 248 249Och där, i rummet med det tända ljuset, fann hon sanningen. 250 251Det var inte ett spöke. Det var en liten fÃ¥gel â en liten rödhake â som hade byggt sitt bo bredvid en gammal oljelampa. Och varje kväll, när fÃ¥geln flaxade med vingarna, slog den mot lampans gamla tändmekanism. Klick! Och ljuset tändes. 252 253Lovisa skrattade högt. "Det var alltsÃ¥ du som skrämde hela byn!" 254 255Rödhaken tittade pÃ¥ henne och kvittrade glatt. 256 257Lovisa berättade sanningen för alla i byn. NÃ¥gra var lättade. NÃ¥gra var besvikna â de tyckte det var roligare med spöken. 258 259Men fru Bergströms hus stod inte tomt längre. Byborna fixade upp det och gjorde det till ett bibliotek. Och rödhaken? Den fick bo kvar, och varje kväll tändes ljuset i fönstret â inte av ett spöke, utan av en liten fÃ¥gel som tyckte om att läsa.`,coverImage:ar,category:"spokhistoria",date:"2026-02-20",readTime:"6 min"}],sr=()=>{const[e,t]=m.useState([]),[n,a]=m.useState(!0);return m.useEffect(()=>{(async()=>{const{data:d,error:i}=await Xt.from("stories").select("*").eq("published",!0).order("created_at",{ascending:!1});if(!i&&d){const l=d.map(c=>({id:c.slug,title:c.title,excerpt:c.excerpt,content:c.content,coverImage:c.cover_image_url,category:c.category,date:c.created_at.split("T")[0],readTime:c.read_time,audioUrl:c.audio_url||void 0}));t(l)}a(!1)})()},[]),{stories:[...e,...qe],loading:n}},Rr=e=>qe.find(t=>t.id===e),or="23349075145",ir={header:{adUnit:"sagopelatset_header",sizes:[[728,90],[970,90],[970,250],[320,100],[320,50],"fluid"],sizeMapping:[[[990,0],[[970,250],[970,90],[728,90],"fluid"]],[[768,0],[[728,90],"fluid"]],[[0,0],[[320,100],[320,50],"fluid"]]],reserveClass:"ad-header-reserve"},inline_top:{adUnit:"sagopelatset_inline_top",sizes:[[300,250],[336,280],[728,90],[970,250],[970,90],[300,600],"fluid"],sizeMapping:[[[990,0],[[970,250],[970,90],[728,90],[336,280],[300,250],[300,600],"fluid"]],[[768,0],[[728,90],[336,280],[300,250],"fluid"]],[[0,0],[[336,280],[300,250],"fluid"]]],reserveClass:"ad-inline-reserve"},inline_mid:{adUnit:"sagopelatset_inline_mid",sizes:[[300,250],[336,280],[728,90],[970,250],[970,90],[300,600],"fluid"],sizeMapping:[[[990,0],[[970,250],[970,90],[728,90],[336,280],[300,250],[300,600],"fluid"]],[[768,0],[[728,90],[336,280],[300,250],"fluid"]],[[0,0],[[336,280],[300,250],"fluid"]]],reserveClass:"ad-inline-reserve"},inline_bottom:{adUnit:"sagopelatset_inline_bottom",sizes:[[300,250],[336,280],[728,90],[970,250],[970,90],"fluid"],sizeMapping:[[[990,0],[[970,250],[970,90],[728,90],[336,280],[300,250],"fluid"]],[[768,0],[[728,90],[336,280],[300,250],"fluid"]],[[0,0],[[336,280],[300,250],"fluid"]]],reserveClass:"ad-inline-reserve"},sidebar:{adUnit:"sagopelatset_sidebar",sizes:[[300,250],[300,600],[160,600],[120,600]],sizeMapping:[[[1280,0],[[300,600],[300,250],[160,600]]],[[1024,0],[[300,250],[160,600]]],[[0,0],[[300,250]]]],reserveClass:"ad-sidebar-reserve"}},W=window.__lastRenderMap||(window.__lastRenderMap=new Map),ie=window.__lastRefreshMap||(window.__lastRefreshMap=new Map),Oe=6e4,lr=8e3,dr=1500,he={header:100,inline_top:250,inline_mid:250,inline_bottom:250,sidebar:250},cr=(e,t)=>
259{const n=he[e];if(typeof window>"u")return n;const a=window.innerWidth;let s=[];for(const[[l],c]of t.sizeMapping)if(a>=l){s=c;break}if(!s.length)return n;const o=fe(t);let d=n;e==="header"?d=a>=990?250:a>=768?90:100:e==="sidebar"?d=a>=1280?600:250:d=250;const i=s.filter(l=>Array.isArray(l)&&typeof l[1]=="number").map(l=>l[1]);if(i.length&&!i.includes(d)){const l=i.filter(c=>c<=d).sort((c,u)=>u-c);d=l.length?l[0]:Math.min(...i)}return Math.min(d,o)},mr=()=>{if(typeof window>"u")return"mobile";const e=window.innerWidth;return e>=1280?"xl":e>=990?"lg":e>=768?"md":"mobile"},fe=e=>{if(typeof window>"u")return he.inline_top;const t=window.innerWidth;let n=0;for(const[[a],s]of e.sizeMapping)if(t>=a){for(const o of s)Array.isArray(o)&&typeof o[1]=="number"&&o[1]>n&&(n=o[1]);break}return n||he.inline_top},ur=()=>typeof window>"u"?!1:new URLSearchParams(window.location.search).has("adsdebug"),H=(...e)=>{ur()&&console.log("[GAM]",...e)};let gr=0;const pr=()=>`gam-${++gr}-${Date.now().toString(36)}`,X=({type:e,slotKey:t,className:n="",usePredefHeader:a=!1})=>{const s=ir[e],o=m.useMemo(()=>a?"div-gpt-predef-header":`div-gpt-${t}-${pr()}`,[t,a]),d=m.useMemo(()=>mr(),[]),i=`${t}::${d}`,l=m.useMemo(()=>fe(s),[s]),[c,u]=m.useState(()=>{if(a&&typeof window<"u"&&window._predefHeaderRendered)return H("predef-header hydrate filled",window._predefHeaderHeight),"filled";const g=W.get(i);if(g){Date.now()-g.timestamp;const y=ie.get(i)||0;if(Date.now()-y<Oe)return H("cache-hit",i,g),g.isEmpty?"empty":"filled"}return"idle"}),[p,x]=m.useState(()=>{if(a&&typeof window<"u"&&window._predefHeaderHeight)return window._predefHeaderHeight;const g=W.get(i);return g&&!g.isEmpty&&g.height?Math.min(g.height,fe(s)):null}),f=m.useRef(null);m.useEffect(()=>{if(typeof window>"u")return;if((!window.googletag||!window.googletag.cmd)&&(window.googletag=window.googletag||{cmd:[]}),a){const b=()=>{window._predefHeaderRendered&&(u("filled"),window._predefHeaderHeight&&x(window._predefHeaderHeight))};b();const h=setInterval(b,200),w=setTimeout(()=>clearInterval(h),5e3);return()=>{clearInterval(h),clearTimeout(w)}}const g=ie.get(i)||0;if(Date.now()-g<Oe){const b=W.get(i);b?(H("guard-block hydrate from cache",i,b),u(b.isEmpty?"empty":"filled"),b.isEmpty||x(Math.min(b.height,l))):(H("guard-block no cache â idle",i),u("idle"));return}u("loading"),ie.set(i,Date.now());let k,z,j=null,C,I,B=!1;const $=()=>{B||window.googletag.cmd.push(()=>{try{const b=`/${or}/${s.adUnit}`;if(j=window.googletag.defineSlot(b,s.sizes,o),!j){H("defineSlot returned null",o),u("empty");return}try{const h=window.googletag.sizeMapping();for(const[w,Z]of s.sizeMapping)h.addSize(w,Z);j.defineSizeMapping(h.build())}catch{}try{const h=window.location.pathname,w=h==="/"?"home":h.startsWith("/saga/")?"story":h.startsWith("/spokhistoria/")?"ghost_story":h==="/sagor"?"stories_list":h==="/spokhistorier"?"ghosts_list":h==="/ljudbocker"?"audiobooks":h.startsWith("/topp")?"toplist":"other";j.setTargeting("page_type",w),j.setTargeting("slot_pos",e),j.setTargeting("ad_unit_name",s.adUnit)}catch{}j.addService(window.googletag.pubads()),f.current=j,z=h=>
259{if(h.slot!==j)return;const w=h.size&&h.size[1]?h.size[1]:0,Z={isEmpty:h.isEmpty,size:h.size,height:w,timestamp:Date.now()};W.set(i,Z),H("slotRenderEnded",i,Z),k&&window.clearTimeout(k),h.isEmpty?u("empty"):(u("filled"),w&&x(w))},window.googletag.pubads().addEventListener("slotRenderEnded",z),window.googletag.display(o),window.googletag.pubads().refresh([j]),H("refresh issued",t,o)}catch(b){console.warn("[GAM] define/refresh error",b),u("empty")}})};return window._gamConsentReady?$():(I=()=>{C&&window.clearTimeout(C),$()},window.addEventListener("gam:consent-ready",I,{once:!0}),C=window.setTimeout(()=>{I&&window.removeEventListener("gam:consent-ready",I),$()},dr)),k=window.setTimeout(()=>{u(b=>b==="loading"?(H("timeout â empty",i),W.set(i,{isEmpty:!0,size:null,height:0,timestamp:Date.now()}),"empty"):b)},lr),()=>{if(B=!0,C&&window.clearTimeout(C),I&&window.removeEventListener("gam:consent-ready",I),k&&window.clearTimeout(k),z&&window.googletag&&window.googletag.pubads)try{window.googletag.pubads().removeEventListener("slotRenderEnded",z)}catch{}if(j&&window.googletag&&window.googletag.destroySlots)try{window.googletag.destroySlots([j])}catch{}}},[o,i,a]);const _=m.useMemo(()=>cr(e,s),[e,s]);if(c==="empty")return null;const R=p?Math.min(p,l):_;return r.jsxs("div",{className:`gam-ad-wrapper ${n}`,children:[r.jsx("div",{className:"gam-ad-label","aria-hidden":"true",children:"Annons"}),r.jsx("div",{className:"gam-ad",style:p?{height:R}:{minHeight:R},children:r.jsx("div",{id:o,style:{margin:"0 auto"}})})]})},Ie="https://www.sagopelatset.se",hr=({title:e,description:t,path:n,image:a,type:s="website"})=>{const o=`${Ie}${n}`,d=a||`${Ie}/og-image.jpg`;return r.jsxs(Mt,{children:[r.jsx("title",{children:e}),r.jsx("meta",{name:"description",content:t}),r.jsx("link",{rel:"canonical",href:o}),r.jsx("meta",{property:"og:title",content:e}),r.jsx("meta",{property:"og:description",content:t}),r.jsx("meta",{property:"og:url",content:o}),r.jsx("meta",{property:"og:type",content:s}),r.jsx("meta",{property:"og:image",content:d}),r.jsx("meta",{name:"twitter:title",content:e}),r.jsx("meta",{name:"twitter:description",content:t}),r.jsx("meta",{name:"twitter:image",content:d})]})},De=()=>r.jsxs("div",{className:"overflow-hidden rounded-xl border border-border bg-card shadow-sm animate-pulse",children:[r.jsx("div",{className:"aspect-[3/4] bg-muted"}),r.jsxs("div",{className:"p-4 space-y-3",children:[r.jsx("div",{className:"h-5 bg-muted rounded w-3/4"}),r.jsx("div",{className:"h-4 bg-muted rounded w-full"}),r.jsx("div",{className:"h-3 bg-muted rounded w-1/3"})]})]}),fr=()=>{const{stories:e,loading:t}=sr(),n=e.filter(i=>i.category==="saga"),a=e.filter(i=>i.category==="spokhistoria"),s=e.filter(i=>i.audioUrl),o=n.slice(0,3),d=a.slice(0,3);return r.jsxs("div",{className:"min-h-screen",children:[r.jsx(hr,{title:"Sagopelatset â Barnsagor & Spökhistorier att läsa för barnen",description:"Svensk sagosamling för föräldrar och morföräldrar â magiska barnsagor och spökhistorier att läsa högt för barnen. Nya berättelser varje vecka, gratis.",path:"/"}),r.jsxs("section",{className:"relative overflow-hidden min-h-[480px] md:min-h-[540px]",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsxs("picture",{children:[r.jsx("source",{media:"(min-width: 768px)",srcSet:"/hero-bg.webp",type:"image/webp"}),r.jsx("img",{src:"/hero-bg-mobile.webp",alt:"Magisk sagobok",className:"h-full w-full object-cover",loading:"eager",decoding:"async",width:"768",height:"480",fetchpriority:"high"})]}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-background/40 via-background/70 to-background"})]}),r.jsxs("div",{className:"relative container mx-auto px-4 py-24 md:py-36 text-center",children:[r.jsx(ye,{className:"mx-auto mb-4 h-10 w-10 text-story-gold"}),r.jsx("h1",{className:"font-display text-4xl font-extrabold tracking-tight text-foreground drop-shadow-sm md:text-6xl",children:"Sagopelatset â Barnsagor & Spökhistorier att läsa för barnen"}),r.jsx("p",{className:"mx-auto mt-4 max-w-xl text-lg font-semibold text-foreground/90 md:text-xl",children:"För föräldrar och morföräldrar som vill läsa magiska sagor och spökhistorier högt för barnen. Nya berättelser varje vecka."}),r.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[r.jsxs(S,{to:"/sagor",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-3 font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:[r.jsx(J,{className:"h-4 w-4"}),"Läs Sagor"]}),r.jsxs(S,{to:"/spokhistorier",className:"inline-flex items-center gap-2 rounded-lg bg-accent px-5 py-3 font-semibold text-accent-foreground transition-colors hover:bg-accent/90",children:[r.jsx(pe,{className:"h-4 w-4"}),"Spökhistorier"]})]})]})]}),r.jsx("section",{className:"border-y border-border bg-card/60",children:r.jsx("div",{className:"container mx-auto px-4 py-10",children:r.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4 text-center",children:[r.jsxs("div",{children:[r.jsx("p",{className:"font-display text-3xl font-extrabold text-primary md:text-4xl min-h-[40px]",children:t?" ":e.length}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Berättelser totalt"})]}),r.jsxs("div",{children:[r.jsx("div",{className:"flex items-center justify-center gap-1.5 mb-1",children:r.jsx(J,{className:"h-5 w-5 text-primary"})}),r.jsx("p",{className:"font-display text-3xl font-extrabold text-foreground md:text-4xl min-h-[40px]",children:t?" ":n.length}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Sagor"})]}),r.jsxs("div",{children:[r.jsx("div",{className:"flex items-center justify-center gap-1.5 mb-1",children:r.jsx(pe,{className:"h-5 w-5 text-accent"})}),r.jsx("p",{className:"font-display text-3xl font-extrabold text-foreground md:text-4xl min-h-[40px]",children:t?" ":a.length}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Spökhistorier"})]}),r.jsxs("div",{children:[r.jsx("div",{className:"flex items-center justify-center gap-1.5 mb-1",children:r.jsx(Be,{className:"h-5 w-5 text-primary"})}),r.jsx("p",{className:"font-display text-3xl font-extrabold text-foreground md:text-4xl min-h-[40px]",children:t?" ":s.length}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Ljudböcker"})]})]})})}),r.jsx("div",{className:"container mx-auto px-4 py-4",children:r.jsx(X,{type:"header",slotKey:"home-header",usePredefHeader:!0})}),r.jsxs("section",{className:"container mx-auto px-4 py-12",style:{contentVisibility:"auto",containIntrinsicSize:"0 600px"},children:[r.jsxs("div",{className:"flex items-center justify-between mb-8",children:[r.jsx("h2",{className:"font-display text-2xl font-bold text-foreground md:text-3xl",children:"Senaste Sagorna"}),r.jsxs(S,{to:"/sagor",className:"flex items-center gap-1 text-sm font-medium text-primary hover:underline",children:["Alla sagor ",r.jsx(G,{className:"h-4 w-4"})]})]}),r.jsx("div",{className:"grid gap-6 sm:grid-cols-2 lg:grid-cols-3",children:t?Array.from({length:3}).map((i,l)=>r.jsx(De,{},l)):o.map((i,l)=>r.jsx(Me,{story:i,index:l},i.id))})]}),r.jsx("div",{className:"container mx-auto px-4 py-4",children:r.jsx(X,{type:"inline_top",slotKey:"home-inline-top"})}),r.jsx("div",{className:"container mx-auto px-4 py-4",children:r.jsx(X,{type:"inline_mid",slotKey:"home-inline-mid"})}),r.jsx("section",{className:"ghost-gradient py-12",style:{contentVisibility:"auto",containIntrinsicSize:"0 600px"},children:r.jsxs("div",{className:"container mx-auto px-4",children:[r.jsxs("div",{className:"flex items-center justify-between mb-8",children:[r.jsx("h2",{className:"font-display text-2xl font-bold text-accent-foreground md:text-3xl",children:"Spökhistorier"}),r.jsxs(S,{to:"/spokhistorier",className:"flex items-center gap-1 text-sm font-medium text-accent-foreground
259/80 hover:text-accent-foreground",children:["Alla spökhistorier ",r.jsx(G,{className:"h-4 w-4"})]})]}),r.jsx("div",{className:"grid gap-6 sm:grid-cols-2 lg:grid-cols-3",children:t?Array.from({length:3}).map((i,l)=>r.jsx(De,{},l)):d.map((i,l)=>r.jsx(Me,{story:i,index:l},i.id))})]})}),r.jsx("section",{className:"border-t border-border bg-card/40",children:r.jsxs("div",{className:"container mx-auto px-4 py-10",children:[r.jsx("h2",{className:"font-display text-center text-xl font-bold text-foreground md:text-2xl mb-8",children:"Upptäck mer"}),r.jsxs("div",{className:"grid gap-6 sm:grid-cols-3",children:[r.jsxs("div",{className:"flex flex-col items-center text-center rounded-xl border border-border bg-card p-6",children:[r.jsx(J,{className:"mb-3 h-8 w-8 text-primary"}),r.jsx("h3",{className:"font-display text-lg font-bold text-foreground",children:"Läs böcker i rätt ordning"}),r.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Hitta rätt läsordning för dina favoritbokserier."}),r.jsxs("a",{href:"https://bokordning.se",target:"_blank",rel:"noopener",className:"mt-4 inline-flex items-center gap-2 rounded-lg bg-primary px-4 py-2 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:["Bokordning.se ",r.jsx(G,{className:"h-4 w-4"})]})]}),r.jsxs("div",{className:"flex flex-col items-center text-center rounded-xl border border-border bg-card p-6",children:[r.jsx(zt,{className:"mb-3 h-8 w-8 text-accent"}),r.jsx("h3",{className:"font-display text-lg font-bold text-foreground",children:"Se filmer i rätt ordning"}),r.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Kolla filmserier i kronologisk eller utgivningsordning."}),r.jsxs("a",{href:"https://filmordning.nu",target:"_blank",rel:"noopener",className:"mt-4 inline-flex items-center gap-2 rounded-lg bg-accent px-4 py-2 text-sm font-semibold text-accent-foreground transition-colors hover:bg-accent/90",children:["Filmordning.nu ",r.jsx(G,{className:"h-4 w-4"})]})]}),r.jsxs("div",{className:"flex flex-col items-center text-center rounded-xl border border-border bg-card p-6",children:[r.jsx(Lt,{className:"mb-3 h-8 w-8 text-secondary"}),r.jsx("h3",{className:"font-display text-lg font-bold text-foreground",children:"AI Portföljkampen"}),r.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Följ tävlingen där AI-modeller investerar på börsen."}),r.jsxs("a",{href:"https://aiportfoljkampen.se",target:"_blank",rel:"noopener",className:"mt-4 inline-flex items-center gap-2 rounded-lg bg-secondary px-4 py-2 text-sm font-semibold text-secondary-foreground transition-colors hover:bg-secondary/90",children:["Aiportfoljkampen.se ",r.jsx(G,{className:"h-4 w-4"})]})]})]})]})}),r.jsx("div",{className:"container mx-auto px-4 py-6",children:r.jsx(X,{type:"inline_bottom",slotKey:"home-inline-bottom"})})]})},vr=m.lazy(()=>E(()=>import("./toaster-DG0vgMkJ.js"),__vite__mapDeps([0,1,2,3,4])).then(e=>({default:e.Toaster}))),xr=m.lazy(()=>E(()=>import("./sonner-DqIC8yNG.js"),__vite__mapDeps([5,1,2])).then(e=>({default:e.Toaster}))),yr=m.lazy(()=>E(()=>import("./StoriesPage-C1FlRY6b.js"),__vite__mapDeps([6,1,2,7,8,4]))),kr=m.lazy(()=>E(()=>import("./GhostStoriesPage-DC1UOgot.js"),__vite__mapDeps([9,1,2,7,8,4]))),br=m.lazy(()=>E(()=>import("./StoryDetailPage-j7-mgmGd.js"),__vite__mapDeps([10,1,2,11,8,4]))),jr=m.lazy(()=>E(()=>import("./AboutPage-Z6yYCuHF.js"),__vite__mapDeps([12,1,2,8,4]))),wr=m.lazy(()=>E(()=>import("./ContactPage-DYh9BXos.js"),__vite__mapDeps([13,1,2,3,8,4]))),Tr=m.lazy(()=>E(()=>import("./PrivacyPolicyPage-Bc4zF1wi.js"),__vite__mapDeps([14,1,2,8,4]))),Sr=m.lazy(()=>E(()=>import("./AdminLoginPage-BNTigycY.js"),__vite__mapDeps([15,1,2,3,8,4]))),Er=m.lazy(()=>E(()=>import("./AdminPage-t2Vwk6X9.js"),__vite__mapDeps([16,1,2,3,8,17,4]))),Ar=m.lazy(()=>E(()=>import("./Top15Page-vRaPm0WD.js"),__vite__mapDeps([18,1,2,8,17,4]))),_r=m.lazy(()=>E(()=>import("./AudiobooksPage-DafBBgL5.js"),__vite__mapDeps([19,1,2,11,8,4]))),Nr=m.lazy(()=>E(()=>import("./NotFound-Dt0OKJeJ.js"),__vite__mapDeps([20,1,2]))),Mr=new We({defaultOptions:{queries:{staleTime:5*60*1e3,gcTime:10*60*1e3}}}),M=()=>r.jsx("div",{className:"flex min-h-[80vh] items-center justify-center",children:r.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),Or=()=>r.jsxs(Je,{client:Mr,children:[r.jsxs(m.Suspense,{fallback:null,children:[r.jsx(vr,{}),r.jsx(xr,{})]}),r.jsx(Xe,{children:r.jsx(Qe,{children:r.jsxs(T,{element:r.jsx(Wt,{}),children:[r.jsx(T,{path:"/",element:r.jsx(fr,{})}
259),r.jsx(T,{path:"/sagor",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(yr,{})})}),r.jsx(T,{path:"/spokhistorier",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(kr,{})})}),r.jsx(T,{path:"/saga/:id",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(br,{})})}),r.jsx(T,{path:"/top15",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(Ar,{})})}),r.jsx(T,{path:"/ljudbocker",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(_r,{})})}),r.jsx(T,{path:"/integritetspolicy",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(Tr,{})})}),r.jsx(T,{path:"/kontakt",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(wr,{})})}),r.jsx(T,{path:"/om-oss",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(jr,{})})}),r.jsx(T,{path:"/admin/login",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(Sr,{})})}),r.jsx(T,{path:"/admin",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(Er,{})})}),r.jsx(T,{path:"*",element:r.jsx(m.Suspense,{fallback:r.jsx(M,{}),children:r.jsx(Nr,{})})})]})})})]});He(document.getElementById("root")).render(r.jsx(Ue,{children:r.jsx(Or,{})}));export{J as B,Pt as C,X as G,Be as H,Ut as M,Me as S,Ft as T,pe as a,hr as b,A as c,$t as d,Rr as g,Xt as s,sr as u};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.