1import{c as Se,r as a,d as Ce,s as l,j as e,B as m,a as C,X as ee,S as te}from"./index-D1RwamVf.js";import{A as Ie,I as ge}from"./AdminLayout-CQ1ZCywC.js";import{s as He}from"./sanitize-BlYjTrnb.js";import{I as A}from"./input-DWdTtHmt.js";import{L as j}from"./label-DnOi2XOT.js";import{S as Ke}from"./switch-DvXMqcPh.js";import{D as ue,a as pe,b as _e,c as ke}from"./dialog-A_iTFPzM.js";import{S as Be,a as We,b as Oe,c as Ee,d as qe}from"./select-B_FHBsaz.js";import{R as he,C as fe}from"./RichTextEditor-BHL-efKR.js";import{S as be}from"./search-BWIdBq3K.js";import{T as ve}from"./trash-2-efq_WFK9.js";import{P as re}from"./plus-CbOm8x4O.js";import{F as O}from"./file-text-BNj1Ikmn.js";import{C as G}from"./chevron-down-Ck41Xxnt.js";import{m as Ue}from"./proxy-uAWUVxNt.js";import{A as Re,a as ze}from"./arrow-up-kqs5JEzl.js";import{P as Ge}from"./pencil-DUV-VaFv.js";import{U as $e}from"./upload-BD1pZIY8.js";import{T as ye}from"./type-BeJNWSMk.js";import{S as Je}from"./save-C2GbWM-Z.js";import{G as Xe}from"./globe-DHie2Ov1.js";import{C as Ye}from"./circle-help-CKB81B5a.js";import{M as Ze}from"./mail-869VMpqm.js";import{H as Qe}from"./menu-BV4BGHxp.js";import{U as xe}from"./users-vcsirtMx.js";import{B as je}from"./building-2-DZMWkRw9.js";import{M as et}from"./megaphone-CL2iUbxz.js";import{B as tt}from"./book-open-BTxHryhG.js";import{G as we}from"./gift-8I1fGKht.js";import{C as rt}from"./credit-card-DAZm9hH9.js";import"./calendar-rUT6zQLe.js";import"./handshake-dvxgH7Xz.js";import"./shopping-bag-CqfyIXNe.js";import"./purify.es-BSKMTLSQ.js";import"./index-D2vI5Na1.js";import"./index-BNfU9xX-.js";import"./index-QqCPQdBW.js";import"./index-BdQq_4o_.js";import"./index-CGybpNzJ.js";import"./index-Dh4i1-J3.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const st=Se("Crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Ne=Se("PanelsTopLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);function nt({imageUrl:E,pageSlug:D,sectionKey:T,onSave:$}){const[o,k]=a.useState(!1),[h,w]=a.useState({x:50,y:50}),P=a.useRef(null),{toast:F}=Ce(),s=`${T}_focal_point`;a.useEffect(()=>{l.from("content").select("content").eq("page_slug",D).eq("section_key",s).maybeSingle().then(({data:u})=>{if(u!=null&&u.content)try{const g=JSON.parse(u.content);w(g)}catch{}})},[D,s]);const f=u=>{if(!P.current)return;const g=P.current.getBoundingClientRect(),L=Math.round((u.clientX-g.left)/g.width*100),I=Math.round((u.clientY-g.top)/g.height*100);w({x:Math.max(0,Math.min(100,L)),y:Math.max(0,Math.min(100,I))})},N=async()=>{const u=JSON.stringify(h),{data:g}=await l.from("content").select("id").eq("page_slug",D).eq("section_key",s).maybeSingle();g?await l.from("content").update({content:u}).eq("id",g.id):await l.from("content").insert({page_slug:D,section_key:s,content:u,content_type:"text",sort_order:999}),F({title:"â Fokuspunkt gemt!"}),k(!1),$()};return o?e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-xs text-muted-foreground font-medium",children:"Klik pÃ¥ billedet for at vælge fokuspunktet:"}),e.jsxs("div",{ref:P,className:"relative cursor-crosshair border-2 border-secondary rounded-lg overflow-hidden",onClick:f,children:[e.jsx("img",{src:E,alt:"Vælg fokuspunkt",className:"w-full max-h-64 object-cover",style:{objectPosition:`${h.x}% ${h.y}%`}}),e.jsx("div",{className:"absolute w-6 h-6 border-2 border-secondary bg-secondary/30 rounded-full -translate-x-1/2 -translate-y-1/2 pointer-events-none",style:{left:`${h.x}%`,top:`${h.y}%`}})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Fokus: ",h.x,"% x ",h.y,"%"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(m,{size:"sm",onClick:N,children:"Gem fokuspunkt"}),e.jsx(m,{size:"sm",variant:"ghost",onClick:()=>k(!1),children:"Annuller"})]})]}):e.jsxs(m,{size:"sm",variant:"outline",onClick:()=>k(!0),children:[e.jsx(st,{className:"w-3 h-3 mr-1.5"})," Vælg fokuspunkt"]})}const it={ambassadorer:{reason_1_title:"Synlighed",reason_1_desc:"Ambassadører hjælper med at gøre flere opmærksomme pÃ¥ vores arbejde",reason_2_title:"Engagement",reason_2_desc:"De skaber engagement og inspirerer andre til at støtte vores sag",reason_3_title:"Inspiration",reason_3_desc:"De viser vejen og inspirerer til at gøre en forskel",hero_title:"Vores ambassadører",hero_description:"Kendte danskere der støtter vores mission og hjælper med at sprede budskabet om Make-A-Wish Danmark.",meet_title:"Mød vores ambassadører",meet_description:"Vores ambassadører bruger deres stemme til at gøre opmærksom pÃ¥ børn med livstruende sygdomme",placeholder_text:"Her vil du snart kunne møde vores fantastiske ambassadører.",placeholder_coming:"Indhold kommer snart...",read_more:"Læs mere â",why_title:"Hvorfor ambassadører?",become_title:"Bliv ambassadør",become_description:"Er du interesseret i at blive ambassadør for Make-A-Wish Danmark? Kontakt os for at høre mere om mulighederne.",become_button:"Kontakt os"},ansog:{criteria_1:"Barnet er mellem 3 og 17 Ã¥r",criteria_2:"Barnet har en livstruende sygdom",criteria_3:"Barnet bor i Danmark",criteria_4:"Barnet har ikke tidligere fÃ¥et opfyldt et ønske gennem Make-A-Wish",wish_type_1_title:"At møde",wish_type_1_desc:"Møde en berømthed, sportsstjerne eller idol",wish_type_2_title:"At være",wish_type_2_desc:"Prøve en særlig rolle eller oplevelse",wish_type_3_title:"At have",wish_type_3_desc:"FÃ¥ noget særligt som barnet drømmer om",wish_type_4_title:"At rejse",wish_type_4_desc:"Besøge et drømmested eller attraktion",hero_title:"Ansøg om et ønske",hero_description:"Kender du et barn med en livstruende sygdom, hvis ønske vi kan hjælpe med at opfylde?",status_title:"Ansøgningsportal midlertidigt lukket",status_description:"Grundet mange ønsker og begrænsede midler er vi nødsaget til midlertidigt at lukke for nye ansøgninger. Vi Ã¥bner op igen snarest muligt. Tilmeld dig vores nyhedsbrev for at blive orienteret, nÃ¥r vi Ã¥bner igen.",criteria_title:"Hvem kan ansøge?",criteria_description:"Make-A-Wish hjælper børn og unge med livstruende sygdomme med at fÃ¥ opfyldt deres største ønske. Her er kriterierne for at kunne ansøge:",nominate_title:"Hvem kan indstille et barn?",nominate_description:"Ansøgninger kan indsendes af forældre, værger, familiemedlemmer, sundhedspersonale eller andre, der kender barnet. En lægeerklæring er pÃ¥krævet som dokumentation.",wish_types_title:"Hvilke ønsker opfylder vi?",wish_types_subtitle:"Vi kategoriserer ønsker i fire typer",journey_title:"Ãnskerejsen",journey_subtitle:"Fra ansøgning til et opfyldt ønske â sÃ¥dan forløber processen",journey_step_1_title:"Ansøgning",journey_step_1_desc:"En forælder, værge eller sundhedspersonale indsender en ansøgning om et ønske.",journey_step_2_title:"Vurdering",journey_step_2_desc:"Vi gennemgÃ¥r ansøgningen og kontakter familien for at lære barnet og ønsket bedre at kende.",journey_step_3_title:"Planlægning",journey_step_3_desc:"Sammen med familien og vores frivillige planlægger vi det perfekte ønske ned i mindste detalje.",journey_step_4_title:"Ãnskedagen",journey_step_4_desc:"Den store dag er kommet â barnet fÃ¥r sit ønske opfyldt og skaber minder for livet.",journey_image_url:"",journey_image_alt:"Ãnskerejsen",journey_image_placeholder:"Upload en grafik via administrationspanelet",faq_title:"Har du spørgsmÃ¥l?",faq_description:"Kontakt os gerne, hvis du har spørgsmÃ¥l om ansøgningsprocessen.",faq_button:"Kontakt os"},begivenheder:{hero_title:"Begivenheder",hero_description:"Kommende events og indsamlinger",empty_state:"Ingen kommende begivenheder lige nu. Kom tilbage snart!"},medlemskab:{hero_badge:"Anbefalet",hero_title:"Bliv støttemedlem af Make-A-Wish Danmark",hero_description:"Som støttemedlem af Make-A-Wish Danmark er du med til at skabe magiske øjeblikke for børn og unge med livstruende sygdomme.",hero_description_2:"Dit medlemskab er mere end et Ã¥rligt kontingent. Det er en vigtig opbakning til vores arbejde og til vores fælles mÃ¥l om at give endnu flere børn mulighed for at fÃ¥ opfyldt et helt særligt ønske.",difference_title:"Dit medlemskab gør en forskel",difference_p1:"NÃ¥r du bliver støttemedlem, støtter du Make-A-Wish Danmark pÃ¥ flere mÃ¥der. Dit medlemskontingent bidrager til foreningens arbejde med at opfylde ønsker, der skaber hÃ¥b, styrke og glæde for alvorligt syge børn og deres familier.",difference_p2:"Samtidig er du med til at styrke Make-A-Wish Danmark som medlemsforening. Jo flere medlemmer vi er, desto stærkere stÃ¥r vi s
11om organisation, og en bred medlemsopbakning har betydning for vores muligheder for at søge visse puljer og midler.",difference_p3:"PÃ¥ den mÃ¥de er dit medlemskab med til at skabe et stærkere fundament for vores arbejde og bringe os tættere pÃ¥ vores mÃ¥l: at kunne opfylde endnu flere ønsker for børn og unge med livstruende sygdomme i Danmark.",facts_title:"Medlemskab af Make-A-Wish Danmark",fact_1:"Medlemskontingentet er 300 kr. om Ã¥ret (pensionister 100 kr./Ã¥rligt).",fact_2:"Alle med interesse for Make-A-Wish Danmarks arbejde kan blive medlem.",fact_3:"Som medlem fÃ¥r du adgang til medlemsfordele og stemmeret pÃ¥ foreningens generalforsamling, hvor der blandt andet vælges bestyrelse og godkendes regnskab.",fact_4:"Der er ingen binding, og du kan til enhver tid opsige dit medlemskab.",fact_5:"Medlemskontingentet er ikke fradragsberettiget.",fact_6:"VilkÃ¥rene for medlemskab fastsættes pÃ¥ foreningens generalforsamling.",facts_outro:"NÃ¥r du melder dig ind, bliver du en del af et fællesskab, der stÃ¥r sammen om at skabe lys i en svær tid.",cta_title:"Meld dig ind i dag",cta_description:"Vælg det medlemskab, der passer til dig. Betal nemt med MobilePay, Apple Pay eller kort.",cta_button_1:"Bliv støttemedlem i dag",cta_button_2:"For pensionister",cta_amount_standard:"300",cta_amount_senior:"200",cta_note:"Medlemskontingentet er ikke fradragsberettiget."},"frivillig-medlemskab":{hero_badge:"Kun for frivillige",hero_title:"Bliv medlem af Make-A-Wish Danmark",hero_description:"Som frivillig i Make-A-Wish Danmark skal du være medlem af foreningen. Som godkendt frivillig fÃ¥r du medlemskabet til en særlig pris pÃ¥ 100 kr. om Ã¥ret (normalpris 300 kr.).",body:"Dit medlemskab er med til at støtte vores arbejde og er samtidig en del af dit engagement som frivillig.",cta_button:"Opret dit medlemskab",cta_note:"Betal nemt med MobilePay, Apple Pay eller kort. Kontingentet er ikke fradragsberettiget.",outro:"Tak, fordi du er en del af Make-A-Wish",amount:"100"},frivillig:{benefit_1:"Mød fantastiske børn og familier",benefit_2:"Vær med til at skabe uforglemmelige øjeblikke",benefit_3:"Bliv en del af et engageret fællesskab",benefit_4:"Fleksible muligheder der passer til din hverdag",benefit_5:"Personlig udvikling og nye perspektiver",benefit_6:"Gør en reel forskel i andres liv",role_1_title:"Ãnskeopfylder",role_1_desc:"Hjælp med at planlægge og udføre ønsker for vores ønskebørn.",role_1_time:"5-10 timer pr. mÃ¥ned",role_2_title:"Event-frivillig",role_2_desc:"Deltag i vores events og hjælp med at skabe opmærksomhed.",role_2_time:"Varierende",role_3_title:"Administrativ støtte",role_3_desc:"Hjælp med kontorarbejde og kommunikation.",role_3_time:"2-5 timer pr. uge",role_4_title:"Tester boks",role_4_desc:"Tester tekst",role_4_time:"Varierende",hero_title:"Bliv frivillig",hero_description:"Vil du være med til at skabe magiske øjeblikke for børn med livstruende sygdomme? Vi har brug for din hjælp.",hero_button:"Ansøg nu",why_title:"Hvorfor blive frivillig?",why_description:"Som frivillig hos Make-A-Wish Danmark fÃ¥r du mulighed for at gøre en reel forskel for børn, der har særligt brug for det. Samtidig bliver du medlem af foreningen og en del af et fantastisk fællesskab af engagerede mennesker, der alle arbejder mod det samme mÃ¥l: At skabe magi for alvorligt syge børn og unge. Vi har fire typer frivillige - find den type, der passer bedst til dig. Har du lyst til at hjælpe med flere kategorier, sÃ¥ skriv det i din ansøgning. Som frivillig koster kontingentet kun 100 kr. om Ã¥ret, og sÃ¥ fÃ¥r du adgang til medlemsfordele og stemmeret pÃ¥ generalforsamlingen. Du modtager ikke skattefradrag for dit kontingent.",stat_volunteers:"200+",stat_volunteers_label:"Aktive frivillige i Danmark",stat_wishes:"100+",stat_wishes_label:"Ãnsker opfyldt Ã¥rligt",requirements_title:"Hvad kræver det at være frivillig?",requirements_description:"Som frivillig i Make-A-Wish Danmark er der plads til at være fleksibel, sÃ¥ det passer ind i din hverdag. Vi afholder generalforsamling én gang om Ã¥ret, hvor man sÃ¥ vidt muligt skal prioritere at deltage. Derudover holder vi et møde med alle frivillige i ens regi
11on én gang i kvartalet.",cta_title:"Klar til at gøre en forskel?",cta_description:"Send en ansøgning i dag, og vi vender tilbage til dig hurtigst muligt.",cta_button:"Bliv frivillig nu","task-a-label":"A: Ãnskeopfyldelse","task-a-description":"Kontakt til ønskebørn og familier","task-b-label":"B: Arrangere events","task-b-description":"Hjælp med at organisere og afholde events","task-c-label":"C: Markedsføring","task-c-description":"Markedsføring af Make-A-Wish Danmark","task-d-label":"D: Eventfrivillig","task-d-description":"Deltag som frivillig ved events og arrangementer","form-validation-missing-contact":"Udfyld venligst navn, e-mail og mobilnummer","form-validation-why":"Fortæl os venligst hvorfor du vil være frivillig","form-validation-task":"Vælg venligst mindst én opgavetype","form-validation-error":"Der opstod en fejl. Prøv venligst igen.","form-title":"Bliv frivillig","form-success-title":"Tak for din ansøgning!","form-success-description":"Vi har modtaget din ansøgning og vender tilbage til dig hurtigst muligt.","form-close_button":"Luk","form-step1-title":"Trin 1 af 3 â Personlige oplysninger","form-name-label":"Navn","form-name-placeholder":"Dit fulde navn","form-birthdate-label":"Fødselsdato","form-birthdate-placeholder":"dd/mm/åååå","form-address-label":"Adresse","form-address-placeholder":"Din adresse","form-postal-code-label":"Postnummer","form-postal-code-placeholder":"Postnummer","form-city-label":"By","form-city-placeholder":"By","form-phone-label":"Mobilnummer","form-phone-placeholder":"Dit mobilnummer","form-email-label":"E-mail","form-email-placeholder":"Din e-mail","form-validation-missing-required-step1":"Udfyld venligst alle obligatoriske felter","form-next_button":"Næste","form-step2-title":"Trin 2 af 3 â Om dig","form-occupation-label":"Nuværende arbejde / uddannelse","form-occupation-placeholder":"Dit nuværende arbejde eller uddannelse","form-hobbies-label":"Fritidsinteresser","form-hobbies-placeholder":"Dine fritidsinteresser","form-heard-label":"Hvorfra kender du Make-A-Wish Danmark?","form-heard-placeholder":"Hvor har du hørt om os?","form-why-label":"Hvorfor vil du være frivillig hos Make-A-Wish?","form-why-placeholder":"Fortæl os hvorfor du gerne vil være frivillig...","form-back_button":"Tilbage","form-step3-title":"Trin 3 af 3 â Opgaver & upload","form-tasks-label":"Hvilke opgaver vil du gerne pÃ¥tage dig?","form-special-skills-label":"Har du særlige kompetencer?","form-special-skills-placeholder":"F.eks. grafisk design, fundraising, sprog osv.","form-available-time-label":"Hvor meget tid pr. mÃ¥ned kan du bidrage?","form-available-time-placeholder":"F.eks. 5-10 timer","form-questions-label":"Eventuelle spørgsmÃ¥l","form-questions-placeholder":"Har du spørgsmÃ¥l til os?","form-cv-label":"CV (pdf, doc)","form-file-select-label":"Vælg fil","form-photo-label":"Foto (jpg, png)","form-submit_loading":"Sender...","form-submit_button":"Send ansøgning","form-footer":"Vi behandler dine oplysninger fortroligt · Børneattest indhentes ved ansættelse"},historier:{hero_title:"Ãnskehistorier",hero_description:"Mød de fantastiske børn, hvis drømme er blevet til virkelighed takket være jeres støtte.",empty_state:"Ingen historier endnu.",read_story:"Læs historien"},kontakt:{form_success_title:"Besked sendt! â",form_success_description:"Tak for din henvendelse. Vi vender tilbage hurtigst muligt.",form_error_title:"Noget gik galt",form_error_description:"Prøv venligst igen senere.",hero_title:"Kontakt os",hero_description:"Har du spørgsmÃ¥l eller vil du høre mere om Make-A-Wish Danmark? Vi vil meget gerne høre fra dig.",info_title:"Kontaktinformation",email_label:"Email",email:"[email protected]",phone_label:"Telefon",phone:"+45 33 13 13 00",address_label:"Adresse",address:"Make-A-Wish Danmark\\nVesterbrogade 12\\n1620 København V",hours_label:"Ã
bningstider",hours:"Mandag - Fredag: 9:00 - 16:00\\nWeekend: Lukket",form_title:"Send os en besked",form_name:"Navn",form_email:"Email",form_subject:"Emne",form_message:"Besked",form_sending:"Sender...",form_button:"Send besked"},oenskeliste:{hero_badge:"For virksomheder",hero_title:"Ãnskelisten",hero_description:"Se hvilke produkter vi søger til at opfylde ønsker. Som virksomhed kan I gøre en kæmpe forskel ved at donere produkter til vores ønskebørn.",hero_button:"Se Ãnskeshoppen",products_title:"Produkter vi søger",products_description:"Disse produkter er blandt de mest efterspurgte ønsker. Ved at donere hjælper I med at gøre drømme til virkelighed.",donate_title:"Ãnsker I at donere produkter?",donate_description:"Vi vil meget gerne høre fra jer! Kontakt os for at høre mere om, hvordan jeres virksomhed kan bidrage med produktdonationer.",donate_contact_button:"Kontakt os",donate_phone_button:"Ring til os",benefit_1_title:"100% gÃ¥r til børnene",benefit_1_desc:"Alle produktdonationer gÃ¥r direkte til at opfylde ønsker",benefit_2_title:"CSR-dokumentation",benefit_2_desc:"Vi udsteder dokumentation til jeres CSR-rapportering",benefit_3_title:"Synlighed",benefit_3_desc:"Jeres virksomhed fÃ¥r synlighed pÃ¥ vores kanaler"},oenskeshoppen:{"cta-link-primary":"/oenskeliste","cta-link-secondary":"/kontakt","hero-badge":"Ãnskeshoppen","hero-title":"Gør et ønske til virkelighed","hero-description":"Udforsk produkter der kan være med til at opfylde drømme for børn med livstruende sygdomme.",stats_products:"Produkter",stats_categories:"Kategorier",stats_percentage:"En del",stats_percentage_label:"Af overskuddet gÃ¥r til ønsker",empty_title:"Ingen produkter endnu",empty_description:"Kom snart tilbage â vi tilføjer løbende nye produkter til shoppen.",product_details_label:"Se detal
11jer","cta-title":"Vil du hjælpe med at opfylde ønsker?","cta-description":"Se vores ønskeliste for virksomheder, eller kontakt os direkte for at høre hvordan du kan bidrage.","cta-button-primary":"Se ønskelisten","cta-button-secondary":"Kontakt os"},"om-os":{value_1_title:"Omsorg",value_1_desc:"Vi behandler hvert barn og familie med kærlighed og respekt.",value_2_title:"HÃ¥b",value_2_desc:"Vi giver hÃ¥b og lyspunkter i svære tider.",value_3_title:"Fællesskab",value_3_desc:"Vi arbejder sammen for at skabe magi.",value_4_title:"Integritet",value_4_desc:"Vi handler altid med ærlighed og gennemsigtighed.",milestone_1_year:"",milestone_1_desc:"",milestone_2_year:"",milestone_2_desc:"",milestone_3_year:"",milestone_3_desc:"",milestone_4_year:"",milestone_4_desc:"",milestone_5_year:"",milestone_5_desc:"",milestone_6_year:"",milestone_6_desc:"",hero_title:"Om Make-A-Wish Danmark",hero_description:"Siden 1980 har Make-A-Wish opfyldt drømme for børn med livstruende sygdomme. Vi tror pÃ¥, at et ønske kan give hÃ¥b, styrke og glæde.",mission_title:"Vores mission",mission_text_1:"Make-A-Wish skaber livsendrende oplevelser for børn med livstruende sygdomme. Et ønske er en integreret del af behandlingen og giver børnene styrke til at kæmpe videre.",mission_text_2:"",mission_text_3:"",mission_image:"",mission_image_alt:"Vores mission",mission_image_placeholder:"Sammen opfylder vi helt særlige ønsker for børn og unge med livstruende sygdomme i Danmark.",stat_countries:"50+",stat_countries_label:"Lande",stat_wishes:"450.000+",stat_wishes_label:"Ãnsker opfyldt",stat_volunteers:"45.000+",stat_volunteers_label:"Frivillige",stat_years:"44+",stat_years_label:"Ã
r",work_title:"Vores arbejde",work_text_1:"Hvert Ã¥r arbejder vi pÃ¥ at opfylde ønsker for børn med livstruende sygdomme i hele Danmark. Fra det øjeblik et barn bliver henvist til os, begynder en omhyggelig proces med at finde ud af, hvad barnet drømmer allermest om.",work_text_2:"",work_text_3:"",work_text_4:"",work_image:"",work_image_alt:"Vores arbejde",work_image_placeholder:"Vi skaber magiske øjeblikke for børn hver eneste dag",values_title:"Vores værdier",values_subtitle:"Disse værdier guider alt hvad vi gør",history_title:"Vores historie",history_subtitle:"Fra en enkelt drøm til en global bevægelse",milestones_empty_text:"Tilføj milepæle via administrationspanelet (milestone_1_year, milestone_1_desc osv.)"},betaling:{accept_title:"Tak for din støtte!",accept_description:"Din betaling er gennemført. Du gør en kæmpe forskel for børn med livstruende sygdomme.",accept_order_label:"Ordrenummer",accept_home_button:"Tilbage til forsiden",accept_stories_button:"Læs ønskehistorier",cancel_title:"Betaling annulleret",cancel_description:"Din betaling blev ikke gennemført. Du er velkommen til at prøve igen.",cancel_retry_button:"Prøv igen",cancel_home_button:"Tilbage til forsiden"},samarbejdspartnere:{visit_link:"Besøg",badge:"Vores partnere",hero_title:"Samarbejdspartnere",hero_description:"Vi er stolte af at samarbejde med fantastiske virksomheder og organisationer, der hjælper os med at opfylde ønsker for børn og unge med livstruende sygdomme.",grid_title:"Tak til vores partnere",grid_description:"Disse virksomheder og organisationer bidrager til at gøre ønsker til virkelighed gennem donationer, oplevelser og samarbejde.",stat_partners_label:"Aktive partnere",stat_wishes:"500+",stat_wishes_label:"Ãnsker opfyldt",stat_years:"30+",stat_years_label:"Ã
r i Danmark",stat_magic:"â",stat_magic_label:"Magiske øjeblikke",cta_title:"Bliv samarbejdspartner",cta_description:"Ãnsker din virksomhed at gøre en forskel? Vi er altid pÃ¥ udkig efter nye samarbejdspartnere, der vil være med til at opfylde ønsker.",cta_button:"Læs mere om partnerskab"},"stot-os":{monthly_opt_1_label:"50 kr/md",monthly_opt_1_impact:"Hjælper med at planlægge ønsker",monthly_opt_2_label:"100 kr/md",monthly_opt_2_impact:"Bidrager til transport og logistik",monthly_opt_3_label:"200 kr/md",monthly_opt_3_impact:"Gør en betydelig forskel hver mÃ¥ned",monthly_opt_4_label:"500 kr/md",monthly_opt_4_impact:"Du er med til at opfylde ønsker",onetime_opt_1:"100 kr",onetime_opt_2:"250 kr",onetime_opt_3:"500 kr",onetime_opt_4:"1.000 kr",hero_title:"Støt Make-A-Wish",hero_description:"Din støtte gør det muligt for os at opfylde ønsker for børn med livstruende sygdomme. Hvert bidrag - stort som lille - gør en forskel.",member_badge:"Anbefalet",member_title:"Bliv støttemedlem",member_description:"Som støttemedlem af Make-A-Wish Danmark er du med til at skabe magiske øjeblikke for børn og unge med livstruende sygdomme.",member_description_2:"Dit medlemskab er mere end et Ã¥rligt kontingent. Det er en vigtig opbakning til vores arbejde og til vores fælles mÃ¥l om at give endnu flere børn mulighed for at fÃ¥ opfyldt et helt særligt ønske.",member_cta_1:"Bliv støttemedlem",member_cta_2:"Om medlemskabet",monthly_title:"Bliv fast støtte",monthly_description:"Som fast støtte gør du en kontinuerlig forskel og hjælper os med at planlægge langsigtigt",newsletter_label:"Ja tak, jeg vil gerne modtage nyhedsbrev",monthly_cta:"Bliv fast støtte",onetime_title:"Giv et enkelt bidrag",onetime_description:"Ãnsker du at give en engangsdonation? Vælg et beløb eller indtast dit eget.",custom_label:"Eller indtast et valgfrit beløb",custom_placeholder:"Indtast beløb",currency_suffix:"kr",onetime_cta:"Donér nu",payment_info:"Sikker betaling via MobilePay eller kort",other_title:"Andre mÃ¥der at støtte pÃ¥",other_gift_title:"Giv i gave",other_gift_desc:"Giv en donation i en andens navn som gave.",other_legacy_title:"Arv & testamente",other_legacy_desc:"Efterlad en arv der skaber magi for fremtidens børn.",impact_title:"Dit bidrag skaber magi",impact_description:"NÃ¥r du støtter Make-A-Wish, er du med til at opfylde ønsker for børn, der kæmper med livstruende sygdomme. Et ønske kan give hÃ¥b, styrke og uforglemmelige minder i en svær tid.",impact_point_1:"100% af donationer gÃ¥r til ønskearbejdet",impact_point_2:"Fuld gennemsigtighed i vores regnskaber",bank_title:"Kontoinformation",bank_label:"Bank",bank_name:"Danske Bank",bank_reg_label:"Reg.nr",bank_reg:"3000",bank_account_label:"Kontonr",bank_account:"4000 123456",bank_mobilepay_label:"MobilePay",bank_mobilepay:"123456"},team:{hero_title:"Mød vores team",hero_description:"Bag hvert opfyldt ønske stÃ¥r et dedikeret team af medarbejdere og frivillige, der arbejder med hjerte og sjæl for at skabe magi.",loading_text:"Indlæser...",staff_title:"Vores medarbejdere",staff_description:"Et passioneret team der arbejder for at gøre drømme til virkelighed",board_title:"Bestyrelsen",board_description:"Vores bestyrelse sikrer den strategiske retning for organisationen",ambassadors_title:"Ambassadører",empty_state:"Teammedlemmer kommer snart.",cta_title:"Bliv en del af holdet",cta_description:"Vi leder altid efter passionerede mennesker der vil være med til at skabe magi.",cta_volunteer:"Bliv frivillig",cta_contact:"Kontakt os"},virksomheder:{benefit_1:"Styrk jeres brand med meningsfuld CSR",benefit_2:"Engager medarbejdere i frivilligt arbejde",benefit_3:"Skab positive historier og omtale",benefit_4:"Gør en reel forskel for børn i nød",benefit_5:"Fleksible samarbejdsmodeller",benefit_6:"Skattebegunstiget donation",partnership_1_title:"Sponsorat",partnership_1_desc:"Bliv hovedsponsor for et eller flere ø
11nsker og følg historien fra start til slut.",partnership_2_title:"Medarbejderengagement",partnership_2_desc:"Engager jeres medarbejdere som frivillige og skab teambuilding med mening.",partnership_3_title:"Event-partner",partnership_3_desc:"Samarbejd om events der skaber opmærksomhed og indsamler midler.",hero_title:"For virksomheder",hero_description:"Bliv erhvervssponsor og gør en forskel for børn med livstruende sygdomme, mens I styrker jeres virksomheds CSR-profil.",contact_email:"[email protected]",why_title:"Hvorfor samarbejde med Make-A-Wish?",why_description:"Et samarbejde med Make-A-Wish giver jeres virksomhed mulighed for at gøre en konkret forskel, mens I engagerer medarbejdere og styrker jeres brand med meningsfulde værdier.",custom_title:"Tilpasset samarbejde",custom_description:"Vi tilbyder fleksible samarbejdsmodeller, der passer til jeres virksomheds størrelse, budget og ønsker. Kontakt os for at høre mere om mulighederne.",partnerships_title:"Samarbejdsmuligheder",cta_title:"Lad os tale om mulighederne",cta_description:"Kontakt os for en uforpligtende snak om, hvordan vi kan samarbejde."},index:{team_preview_eyebrow:"Vores ambassadører",team_preview_title:"Stemmerne der",team_preview_title_accent:"bærer ønskerne.",team_preview_description:"Vores ambassadører bruger deres stemme til at gøre opmærksom pÃ¥ børn med livstruende sygdomme â og hjælper med at forvandle drømme til virkelighed.",team_preview_tagline:"Med hjerte & handling",team_preview_cta_title:"Vil du møde alle ambassadørerne?",team_preview_cta_description:"Se alle de stemmer der bakker op om Make-A-Wish Danmark.",team_preview_cta:"Mød alle ambassadører"},home:{action_1_title:"Støt nu",action_1_description:"Din donation gør en direkte forskel for et barn med en livstruende sygdom.",action_2_title:"Bliv frivillig",action_2_description:"Hjælp os med at skabe magiske øjeblikke. Vi har brug for din tid og engagement.",action_3_title:"Ansøg om et ønske",action_3_description:"Kender du et barn med en livstruende sygdom? Vi kan mÃ¥ske hjælpe med at opfylde en drøm.",action_section_title:"SÃ¥dan kan du hjælpe",action_section_description:"Der er mange mÃ¥der at bidrage pÃ¥. Find den der passer til dig.",action_read_more:"Læs mere",apply_title:"Ansøg om et ønske",apply_description:"Kender du et barn mellem 3-18 Ã¥r med en livstruende sygdom? Make-A-Wish kan mÃ¥ske hjælpe med at opfylde barnets største drøm og skabe et magisk øjeblik.",apply_criteria_1:"Barnet skal være mellem 3-18 Ã¥r",apply_criteria_2:"Barnet skal have en livstruende sygdom",apply_criteria_3:"Ansøgning behandles fortroligt",apply_cta_button:"Ansøg nu",apply_who_title:"Hvem kan indstille et barn?",apply_who_parents:"Forældre eller værge",apply_who_parents_desc:"Kan ansøge pÃ¥ vegne af barnet",apply_who_health:"Sundhedspersonale",apply_who_health_desc:"Læger, sygeplejersker eller socialrÃ¥dgivere",apply_who_family:"Familie eller venner",apply_who_family_desc:"Med forældrenes samtykke",cta_donate_title:"Giv et bidrag der gør en forskel",cta_donate_desc:"Din donation gÃ¥r direkte til at opfylde ønsker for børn med livstruende sygdomme. Hvert bidrag tæller.",cta_donate_button:"Donér nu",cta_corporate_title:"Bliv erhvervssponsor",cta_corporate_desc:"Som virksomhedssponsor kan I støtte Make-A-Wish og samtidig engagere jeres medarbejdere i meningsfuld CSR.",cta_corporate_button:"Læs mere",hero_image_url:"",hero_image_url_focal_point:"",hero_image_alt:"Glad barn",hero_badge:"Opfylder drømme siden 1980",hero_cta_primary:"Støt et ønske",hero_cta_secondary:"Ansøg om et ønske",instagram_title:"Følg os pÃ¥ Instagram",instagram_handle:"@makeawishdanmark",instagram_description:"Se de seneste ønskehistorier, bag-scenen og magiske øjeblikke",instagram_loading_text:"Indlæser Instagram-opslag...",instagram_follow_button:"Følg @makeawishdanmark",stories_section_title:"Ãnskehistorier",stories_section_description:"Mød nogle af de fantastiske børn, hvis drømme er blevet til virkelighed",stories_read_all:"Se alle historier",support_donate_title:"Doner",support_donate_desc:"Din donation gør en direkte forskel for et barn med en livstruende sygdom. Hver krone tæller.",support_volunteer_title:"Bliv frivillig",support_volunteer_desc:"Hjælp os med at skabe magiske øjeblikke. Vi har brug for din tid og dit engagement.",support_corporate_title:"Virksomhedsdonation",support_corporate_desc:"Som virksomhed kan I gøre en forskel og støtte børn med livstruende sygdomme.",support_title:"Støt Make-A-Wish",support_description:"Der er mange mÃ¥der at bidrage pÃ¥. Find den der passer til dig.",support_read_more:"Læs mere",video_url:"",video_badge:"Se ønskehistorier",video_title:"Oplev magien bag hvert ønske",video_description:"Hver ønskehistorie er unik. Se hvordan vi skaber uforglemmelige øjeblikke for børn med livstruende sygdomme og deres familier. Et ønske kan forvandle hÃ¥b til virkelighed.",video_bullet_1:"",video_bullet_2:"",video_bullet_3:"",video_thumbnail:"https://images.unsplash.com/photo-1529156069898-49953e39b3ac?w=800&h=450&fit=crop",video_overlay_title:"Antons ønske",video_overlay_desc:"Se hele historien om Anton der fik sit drømmeønske opfyldt",video_thumbnail_alt:"Ãnskehistorie video thumbnail",video_empty_title:"Ingen video uploadet endnu",video_empty_description:"Upload en video via administrationspanelet",volunteer_1_name:"Zilan Belek",volunteer_1_age:"22",volunteer_1_quote:"At være frivillig, specielt i Make-A-Wish, har virkelig sat gang i min egen udvikling. Man fÃ¥r nogle helt nye syn pÃ¥ livet, nÃ¥r man sidder med folk og hører om deres historier.",volunteer_2_name:"Camilla Youssef",volunteer_2_age:"25",volunteer_2_quote:"Personligt giver det en masse glæde, men ogsÃ¥ viden om forskellige sygdomme, og hvordan børnene og familierne hÃ¥ndterer det. Man lærer ogsÃ¥ en del om sig selv.",volunteer_3_name:"Trine Brahm",volunteer_3_age:"51",volunteer_3_quote:"Det giver glæde i dagligdagen at modtage taknemmelighed for, hvad man gør. Det giver et indblik i, at livet som menneske og dansker er meget forskelligt.",volunteer_4_name:"Jørgen Overbye",volunteer_4_age:"72",volunteer_4_quote:"For mig er det fantastisk frivilligt arbejde da man møder børn og familier som har brug for et lyspunkt i en svær tid og det er det Make-A-Wish medvirker til.",volunteers_title:"Mød vores frivillige stjerner",volunteers_description:"Vores frivillige er hjertet i Make-A-Wish. Hør hvad de siger om at være en del af vores team.",volunteers_age_suffix:"Ã¥r",wish_counter:"1.200+",wish_counter_label:"ønsker opfyldt i Danmark",wish_counter_sub:"Hvert ønske gør en forskel",wish_counter_label_2:"børn har fÃ¥et opfyldt deres drøm",wish_counter_sub_2:"Tak til alle der støtter"},404:{eyebrow:"Fejl 404",title:"Vi kunne ikke finde siden",description:"Siden du leder efter findes ikke længere, er flyttet, eller blev aldrig oprettet. Lad os hjælpe dig videre.",primary_button_text:"Tilbage til forsiden",primary_button_url:"/",secondary_button_text:"Kontakt os",secondary_button_url:"/kontakt",suggestions_title:"MÃ¥ske leder du efter:",suggestion_1_label:"Støt os",suggestion_1_url:"/stot-os",suggestion_2_label:"Historier",suggestion_2_url:"/historier",suggestion_3_label:"Ãnskeshoppen",suggestion_3_url:"/oenskeshoppen",suggestion_4_label:"Om os",suggestion_4_url:"/om-os"}},W=[{key:"hero_title",label:"Hero overskrift",type:"text"},{key:"hero_description",label:"Hero beskrivelse",type:"text"},{key:"hero_image_url",label:"Hero billede",type:"image_url"},{key:"hero_image_alt",label:"Hero billede alt-tekst",type:"text"},{key:"overskrift",label:"Overskrift",type:"text"},{key:"underoverskrift",label:"Underoverskrift",type:"text"},{key:"brodtekst",label:"Brødtekst",type:"text"},{key:"indhold",label:"Indhold (rich text)",type:"html"},{key:"billede",label:"Billede",type:"image_url"},{key:"cta_tekst",label:"CTA knaptekst",type:"text"},{key:"cta_link",label:"CTA link",type:"text"},{key:"sektion_titel",label:"Sektion titel",type:"text"},{key:"sektion_beskrivelse",label:"Sektion beskrivelse",type:"text"},{key:"sektion_indhold",label:"Sektion indhold (rich text)",type:"html"},{key:"baggrundsbillede",label:"Baggrundsbillede",type:"image_url"},{key:"video_url",label:"Video (MP4 upload)",type:"image_url"},{key:"video_thumbnail",label:"Video thumbnail billede",type:"image_url"}],at=[{value:"home",label:"Forside",icon:Xe},{value:"om-os",label:"Om Make-A-Wish",icon:Ye},{value:"kontakt",label:"Kontakt",icon:Ze},{value:"stot-os",label:"Støt os",icon:Qe},{value:"medlemskab",label:"Bliv støttemedlem",icon:te},{value:"frivillig",label:"Frivillig",icon:xe},{value:"virksomheder",label:"Virksomheder",icon:je},{value:"ansog",label:"Ansøg",icon:te},{value:"ambassadorer",label:"Ambassadører",icon:et},{value:"team",label:"Team",icon:xe},{value:"historier",label:"Historier",icon:tt},{value:"samarbejdspartnere",label:"Samarbejdspartnere",icon:je},{value:"begivenheder",label:"Begivenheder",icon:te},{value:"oenskeliste",label:"Ãnskelisten",icon:we},{value:"oenskeshoppen",label:"Ãnskeshoppen",icon:we},{value:"betaling",label:"Betalingssider",icon:rt},{value:"persondatapolitik",label:"Persondatapolitik",icon:O},{value:"handelsbetingelser",label:"Handelsbetingelser",icon:O},{value:"404",label:"404 â Side ikke fundet",icon:O}];function Gt(){var me,ce;
11const[E,D]=a.useState([]),[T,$]=a.useState([]),[o,k]=a.useState(null),[h,w]=a.useState(!1),[P,F]=a.useState(!1),[s,f]=a.useState(null),[N,u]=a.useState(""),[g,L]=a.useState(""),[I,se]=a.useState(!1),[y,H]=a.useState(""),[J,K]=a.useState(""),[b,S]=a.useState(null),[q,M]=a.useState(""),[ne,X]=a.useState(!1),[p,Ae]=a.useState(""),[U,ie]=a.useState(""),ae=a.useRef(null),Y=a.useRef(null),{toast:c}=Ce(),v=async()=>{const{data:t}=await l.from("content").select("*").order("page_slug").order("sort_order");D(t??[])},Z=async()=>{const{data:t}=await l.from("pages").select("*").order("sort_order");$(t??[])},le=t=>{const r=it[t];if(!r)return[];const i=new Set((V[t]??[]).map(n=>n.section_key));return Object.entries(r).filter(([n])=>!i.has(n)).map(([n,d],B)=>({page_slug:t,section_key:n,content:d,content_type:n.includes("_image")||n.includes("image_")||n.endsWith("_url")||n==="video_url"||n==="video_thumbnail"?"image_url":n.includes("description")&&typeof d=="string"&&d.includes("<")||n==="indhold"?"html":"text",sort_order:(V[t]??[]).length+B}))},De=async()=>{if(!o)return;const t=le(o);if(t.length===0){c({title:"Ingen manglende tekstbokse",description:"Denne faste side har allerede alle standardfelter."});return}const{error:r}=await l.from("content").insert(t);if(r){c({title:"Fejl",description:r.message,variant:"destructive"});return}await v(),c({title:"â
Manglende tekstbokse oprettet",description:`${t.length} nye tekstbokse blev tilføjet.`})};a.useEffect(()=>{v(),Z()},[]);const R=[...at.map(t=>({slug:t.value,label:t.label,icon:t.icon,isStatic:!0})),...T.map(t=>({slug:t.slug,label:t.title,icon:Ne,isStatic:!1,isPublished:t.is_published,pageId:t.id}))],V=E.reduce((t,r)=>(t[r.page_slug]||(t[r.page_slug]=[]),t[r.page_slug].push(r),t),{}),_=R.find(t=>t.slug===o),x=o?V[o]??[]:[],z=o?le(o):[],Me=async()=>{var d;if(!N||!g)return;const t=g.toLowerCase().replace(/[^a-zæøå0-9-]/gi,"-").replace(/-+/g,"-"),{error:r}=await l.from("pages").insert({title:N,slug:t,is_published:I,sort_order:T.length});if(r){c({title:"Fejl",description:r.message,variant:"destructive"});return}const{data:i}=await l.from("navigation").select("sort_order").eq("location","header").order("sort_order",{ascending:!1}).limit(1),n=(((d=i==null?void 0:i[0])==null?void 0:d.sort_order)??0)+1;await l.from("navigation").insert({label:N,href:`/side/${t}`,location:"header",sort_order:n,is_visible:I}),F(!1),u(""),L(""),se(!1),Z(),k(t),c({title:"â
Side oprettet og tilføjet til navigation!"})},Ve=async t=>{t.pageId&&confirm(`Slet "${t.label}" og alle dens blokke?`)&&(await l.from("content").delete().eq("page_slug",t.slug),await l.from("pages").delete().eq("id",t.pageId),await l.from("navigation").delete().eq("href",`/side/${t.slug}`),o===t.slug&&k(null),Z(),v(),c({title:"Side slettet"}))},Te=async()=>{if(!o)return;const t=y||J;if(!t&&!(s!=null&&s.id)){c({title:"Fejl",description:"Du skal vælge en tekstbokstype eller angive en nøgle",variant:"destructive"});return}const r=W.find(n=>n.key===y),i=s!=null&&s.id?s.content_type??"text":(r==null?void 0:r.type)??(s==null?void 0:s.content_type)??"text";if(s!=null&&s.id){const{error:n}=await l.from("content").update({content:s.content??"",content_type:i,section_key:s.section_key??"",sort_order:s.sort_order??0}).eq("id",s.id);if(n){console.error("Content update error:",n),c({title:"Fejl",description:n.message,variant:"destructive"});return}}else{const{error:n}=await l.from("content").insert({page_slug:o,section_key:t,content:(s==null?void 0:s.content)??"",content_type:i,sort_order:x.length});if(n){console.error("Content insert error:",n),c({title:"Fejl",description:n.message,variant:"destructive"});return}}w(!1),f(null),H(""),K(""),v(),c({title:"â
Tekstboks gemt!"})},Pe=async t=>{confirm("Slet denne tekstboks?")&&(await l.from("content").delete().eq("id",t),v(),c({title:"Tekstboks slettet"}))},Q=async t=>{const{error:r}=await l.from("content").update({content:q}).eq("id",t.id);if(r){console.error("Inline save error:",r),c({title:"Fejl",description:r.message,variant:"destructive"});return}S(null),v(),c({title:"â
Opdateret!"})},oe=async(t,r)=>{const i=x.findIndex(B=>B.id===t.id),n=r==="up"?i-1:i+1;if(n<0||n>=x.length)return;const d=x[n];await Promise.all([l.from("content").update({sort_order:d.sort_order}).eq("id",t.id),l.from("content").update({sort_order:t.sort_order}).eq("id",d.id)]),v()},Fe=async(t,r)=>{X(!0);const i=t.name.split(".").pop(),n=`content/${r.page_slug}/${r.section_key}-${Date.now()}.${i}`,{error:d}=await l.storage.from("media").upload(n,t);if(d){c({title:"Fejl",description:d.message,variant:"destructive"}),X(!1);return}const{data:{publicUrl:B}}=l.storage.from("media").getPublicUrl(n);await l.from("content").update({content:B}).eq("id",r.id),v(),c({title:"â
Billede uploadet!"}),X(!1)},de=t=>t==="html"?e.jsx(fe,{className:"w-3 h-3"}):t==="image_url"?e.jsx(ge,{className:"w-3 h-3"}):e.jsx(ye,{className:"w-3 h-3"}),Le=t=>t==="text"?"Tekst":t==="html"?"Rich Text":"Billede";return e.jsxs(Ie,{children:[e.jsxs("div",{className:"flex h-[calc(100vh-4rem)]",children:[e.jsxs("div",{className:"w-72 border-r border-border bg-card flex flex-col shrink-0",children:[e.jsx("div",{className:"p-3 border-b border-border",children:e.jsxs("div",{className:"relative",children:[e.jsx(be,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground"}),e.jsx(A,{placeholder:"Søg side, nøgle eller tekst...",className:"pl-8 h-8 text-xs",value:p,onChange:t=>Ae(t.target.value)})]})}),p.length>=2&&(()=>{const t=p.toLowerCase(),r=E.filter(i=>i.section_key.toLowerCase().includes(t)||i.content.toLowerCase().includes(t));return r.length===0?null:e.jsxs("div",{className:"p-2 border-b border-border bg-muted/30 max-h-48 overflow-y-auto",children:[e.jsxs("p",{className:"text-[10px] uppercase tracking-wider font-semibold text-muted-foreground px-2 mb-1",children:[r.length," match",r.length!==1?"es":""," pÃ¥ tværs af sider"]}),r.slice(0,20).map(i=>{const n=R.find(d=>d.slug===i.page_slug);return e.jsxs("button",{onClick:()=>{k(i.page_slug),ie(i.section_key)},className:"w-full text-left px-2 py-1.5 rounded text-xs hover:bg-muted flex flex-col gap-0.5",children:[e.jsx("span",{className:"font-medium text-foreground truncate",children:i.section_key.replace(/_/g," ")}),e.jsxs("span",{className:"text-muted-foreground truncate text-[10px]",children:[(n==null?void 0:n.label)??i.page_slug," · ",i.content.slice(0,60),i.content.length>60?"â¦":""]})]},i.id)})]})})(),e.jsx("div",{className:"p-4 border-b border-border",children:e.jsx("h2",{className:"font-bold text-xs uppercase tracking-wider text-muted-foreground",children:"Faste sider"})}),e.jsxs("nav",{className:"flex-1 overflow-y-auto",children:[e.jsx("div",{className:"p-2 space-y-0.5",children:R.filter(t=>t.isStatic).filter(t=>!p||t.label.toLowerCase().includes(p.toLowerCase())||t.slug.toLowerCase().includes(p.toLowerCase())||(V[t.slug]??[]).some(r=>r.section_key.toLowerCase().includes(p.toLowerCase())||r.content.toLowerCase().includes(p.toLowerCase()))).map(t=>{const r=t.icon,i=(V[t.slug]??[]).length,n=o===t.slug;return e.jsxs("button",{onClick:()=>k(t.slug),className:C("w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all text-left",n?"bg-secondary text-secondary-foreground":"text-foreground hover:bg-muted"),children:[e.jsx(r,{className:"w-4 h-4 shrink-0"}),e.jsx("span",{className:"flex-1 truncate",children:t.label}),e.jsx("span",{className:C("text-[10px] tabular-nums",n?"text-secondary-foreground
11/70":"text-muted-foreground"),children:i})]},t.slug)})}),e.jsx("div",{className:"px-4 pt-4 pb-2 border-t border-border mt-2",children:e.jsx("h2",{className:"font-bold text-xs uppercase tracking-wider text-muted-foreground",children:"Dynamiske sider"})}),e.jsxs("div",{className:"px-2 pb-2 space-y-0.5",children:[R.filter(t=>!t.isStatic).filter(t=>!p||t.label.toLowerCase().includes(p.toLowerCase())||t.slug.toLowerCase().includes(p.toLowerCase())).map(t=>{const r=(V[t.slug]??[]).length,i=o===t.slug;return e.jsxs("div",{className:"group relative",children:[e.jsxs("button",{onClick:()=>k(t.slug),className:C("w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all text-left",i?"bg-secondary text-secondary-foreground":"text-foreground hover:bg-muted"),children:[e.jsx(Ne,{className:"w-4 h-4 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"truncate block",children:t.label}),e.jsxs("span",{className:C("text-[10px]",i?"text-secondary-foreground/70":"text-muted-foreground"),children:["/",t.slug," · ",t.isPublished?"Live":"Kladde"]})]}),e.jsx("span",{className:C("text-[10px] tabular-nums",i?"text-secondary-foreground/70":"text-muted-foreground"),children:r})]}),e.jsx("button",{onClick:()=>Ve(t),className:"absolute right-1 top-1/2 -translate-y-1/2 p-1 rounded hover:bg-destructive/10 hidden group-hover:block",children:e.jsx(ve,{className:"w-3 h-3 text-destructive"})})]},t.slug)}),T.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-4",children:"Ingen dynamiske sider endnu"})]})]}),e.jsx("div",{className:"p-3 border-t border-border",children:e.jsxs(m,{size:"sm",className:"w-full bg-secondary hover:bg-secondary/90 text-sm",onClick:()=>F(!0),children:[e.jsx(re,{className:"w-3.5 h-3.5 mr-1.5"})," Opret ny side"]})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:o?e.jsxs("div",{className:"p-6 md:p-8 max-w-4xl",children:[e.jsxs("div",{className:"flex items-center justify-between mb-8",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[_&&e.jsx("div",{className:"w-10 h-10 rounded-xl bg-secondary/10 flex items-center justify-center",children:e.jsx(_.icon,{className:"w-5 h-5 text-secondary"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-bold",children:(_==null?void 0:_.label)??o}),e.jsxs("p",{className:"text-muted-foreground text-xs",children:[x.length," tekstbokse"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[(_==null?void 0:_.isStatic)&&z.length>0&&e.jsxs(m,{size:"sm",variant:"outline",onClick:De,children:[e.jsx(G,{className:"w-3.5 h-3.5 mr-1.5"})," Opret manglende (",z.length,")"]}),e.jsxs(m,{size:"sm",className:"bg-secondary hover:bg-secondary/90",onClick:()=>{f({content_type:"text",sort_order:x.length,page_slug:o}),H(""),K(""),w(!0)},children:[e.jsx(re,{className:"w-3.5 h-3.5 mr-1.5"})," Tilføj tekstboks"]})]})]}),(_==null?void 0:_.isStatic)&&z.length>0&&e.jsxs("div",{className:"mb-4 rounded-xl border border-dashed border-secondary/40 bg-secondary/5 p-3 text-sm text-foreground",children:["Denne faste side mangler ",e.jsx("span",{className:"font-semibold",children:z.length})," standard-tekstbokse i backend."]}),e.jsxs("div",{className:"relative mb-4",children:[e.jsx(be,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(A,{placeholder:"Søg i tekstbokse (nøgle, indhold)...",className:"pl-10",value:U,onChange:t=>ie(t.target.value)})]}),e.jsx("div",{className:"space-y-3",children:(()=>{const t=U?x.filter(r=>r.section_key.toLowerCase().includes(U.toLowerCase())||r.content.toLowerCase().includes(U.toLowerCase())):x;return t.length===0?e.jsxs("div",{className:"bg-card rounded-2xl border border-dashed border-border p-12 text-center",children:[e.jsx(O,{className:"w-10 h-10 text-muted-foreground/20 mx-auto mb-3"}),e.jsx("p",{className:"text-muted-foreground font-medium mb-1",children:"Ingen tekstbokse endnu"}),e.jsx("p",{className:"text-muted-foreground text-xs",children:'Klik "Tilføj tekstboks" for at komme i gang.'})]}):t.map((r,i)=>e.jsxs(Ue.div,{initial:{opacity:0,y:8}
11,animate:{opacity:1,y:0},transition:{delay:i*.02},className:"bg-card rounded-xl border border-border overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 border-b border-border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"flex items-center gap-1.5 text-xs font-medium",children:[de(r.content_type),r.section_key.replace(/_/g," ").replace(/\b\w/g,n=>n.toUpperCase())]}),e.jsx("span",{className:C("text-[10px] uppercase tracking-wider font-semibold px-1.5 py-0.5 rounded",r.content_type==="text"?"bg-primary/10 text-primary":r.content_type==="html"?"bg-warm/10 text-warm":"bg-accent/10 text-accent"),children:Le(r.content_type)})]}),e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsx("button",{onClick:()=>oe(r,"up"),disabled:i===0,className:"p-1 rounded hover:bg-muted disabled:opacity-20",children:e.jsx(Re,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>oe(r,"down"),disabled:i===t.length-1,className:"p-1 rounded hover:bg-muted disabled:opacity-20",children:e.jsx(ze,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>{f(r),H(""),K(""),w(!0)},className:"p-1 rounded hover:bg-muted",children:e.jsx(Ge,{className:"w-3.5 h-3.5 text-muted-foreground"})}),e.jsx("button",{onClick:()=>Pe(r.id),className:"p-1 rounded hover:bg-destructive/10",children:e.jsx(ve,{className:"w-3.5 h-3.5 text-destructive"})})]})]}),e.jsx("div",{className:"p-4",children:r.content_type==="image_url"?e.jsxs("div",{className:"space-y-3",children:[r.content&&e.jsx("div",{className:"rounded-lg overflow-hidden border border-border bg-muted/10 p-2 relative",children:e.jsxs("div",{className:"relative inline-block w-full",children:[e.jsx("img",{src:r.content,alt:r.section_key,className:"max-h-40 object-contain mx-auto"}),r.section_key.includes("hero")&&e.jsx("div",{className:"mt-2",children:e.jsx(nt,{imageUrl:r.content,pageSlug:r.page_slug,sectionKey:r.section_key,onSave:v})})]})}),e.jsxs("div",{className:"flex gap-2 flex-wrap",children:[e.jsx("input",{type:"file",ref:ae,className:"hidden",accept:"image/*,video/mp4,video/webm,video/mov",onChange:n=>{var d;(d=n.target.files)!=null&&d[0]&&Y.current&&Fe(n.target.files[0],Y.current)}}),e.jsxs(m,{size:"sm",variant:"outline",onClick:()=>{var n;Y.current=r,(n=ae.current)==null||n.click()},disabled:ne,children:[e.jsx($e,{className:"w-3 h-3 mr-1.5"})," ",ne?"Uploader...":"Upload"]}),(b==null?void 0:b.id)===r.id?e.jsxs("div",{className:"flex gap-2 flex-1",children:[e.jsx(A,{value:q,onChange:n=>M(n.target.value),placeholder:"Indsæt billed-URL...",className:"h-8 text-xs flex-1"}),e.jsx(m,{size:"sm",onClick:()=>Q(r),children:e.jsx(G,{className:"w-3 h-3"})}),e.jsx(m,{size:"sm",variant:"ghost",onClick:()=>S(null),children:e.jsx(ee,{className:"w-3 h-3"})})]}):e.jsx(m,{size:"sm",variant:"ghost",onClick:()=>{S(r),M(r.content)},children:"Ãndr URL"})]})]}):r.content_type==="html"?(b==null?void 0:b.id)===r.id?e.jsxs("div",{className:"space-y-3",children:[e.jsx(he,{content:q,onChange:M}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(m,{size:"sm",onClick:()=>Q(r),children:[e.jsx(G,{className:"w-3 h-3 mr-1"})," Gem"]}),e.jsxs(m,{size:"sm",variant:"ghost",onClick:()=>S(null),children:[e.jsx(ee,{className:"w-3 h-3 mr-1"})," Annuller"]})]})]}):e.jsx("div",{onClick:()=>{S(r),M(r.content)},className:"prose prose-sm max-w-none cursor-pointer hover:bg-muted/20 rounded-lg p-2 -m-2 transition-colors min-h-[48px]",dangerouslySetInnerHTML:He(r.content||"<p class='text-muted-foreground italic'>Klik for at redigere...</p>")}):(b==null?void 0:b.id)===r.id?e.jsxs("div",{className:"space-y-3",children:[e.jsx("textarea",{value:q,onChange:n=>M(n.target.value),className:"w-full min-h-[80px] p-3 rounded-lg border border-input bg-background text-sm resize-y focus:outline-none focus:ring-2 focus:ring-secondary/30",autoFocus:!0}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(m,{size:"sm",onClick:()=>Q(r),children:[e.jsx(G,{className:"w-3 h-3 mr-1"})," Gem"]}),e.jsxs(m,{size:"sm",variant:"ghost",onClick:()=>S(null),children:[e.jsx(ee,{className:"w-3 h-3 mr-1"})," Annuller"]})]})]}):e.jsx("p",{onClick:()=>{S(r),M(r.content)},className:"text-sm cursor-pointer hover:bg-muted/20 rounded-lg p-2 -m-2 transition-colors min-h-[36px] whitespace-pre-wrap",children:r.content||e.jsx("span",{className:"italic text-muted-foreground",children:"Klik for at redigere..."})})})]},r.id))})()})]}):e.jsx("div",{className:"flex items-center justify-center h-full text-center p-8",children:e.jsxs("div",{children:[e.jsx(O,{className:"w-16 h-16 text-muted-foreground
11/20 mx-auto mb-4"}),e.jsx("h2",{className:"text-xl font-bold text-foreground mb-2",children:"Vælg en side"}),e.jsx("p",{className:"text-muted-foreground text-sm max-w-sm",children:"Klik på en side til venstre for at se og redigere dens tekstbokse. Du kan også oprette nye dynamiske sider."})]})})})]}),e.jsx(ue,{open:P,onOpenChange:F,children:e.jsxs(pe,{className:"max-w-md",children:[e.jsx(_e,{children:e.jsx(ke,{children:"Opret ny side"})}),e.jsxs("div",{className:"space-y-4 pt-2",children:[e.jsxs("div",{children:[e.jsx(j,{children:"Sidetitel"}),e.jsx(A,{value:N,onChange:t=>{u(t.target.value),L(t.target.value.toLowerCase().replace(/[^a-zæøå0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,""))},placeholder:"F.eks. Ofte stillede spørgsmål"})]}),e.jsxs("div",{children:[e.jsx(j,{children:"URL slug"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground shrink-0",children:"/side/"}),e.jsx(A,{value:g,onChange:t=>L(t.target.value),placeholder:"faq"})]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(j,{children:"Publicer med det samme"}),e.jsx(Ke,{checked:I,onCheckedChange:se})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Siden tilføjes automatisk til navigationen."}),e.jsxs(m,{className:"w-full bg-secondary hover:bg-secondary/90",onClick:Me,disabled:!N||!g,children:[e.jsx(re,{className:"w-4 h-4 mr-2"})," Opret side"]})]})]})}),e.jsx(ue,{open:h,onOpenChange:w,children:e.jsxs(pe,{className:"max-w-lg",children:[e.jsx(_e,{children:e.jsx(ke,{children:s!=null&&s.id?"Rediger tekstboks":"Tilføj tekstboks"})}),e.jsxs("div",{className:"space-y-4 pt-2",children:[!(s!=null&&s.id)&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx(j,{children:"Vælg tekstbokstype"}),e.jsxs(Be,{value:y,onValueChange:t=>{H(t),K("")},children:[e.jsx(We,{className:"mt-1",children:e.jsx(Oe,{placeholder:"Vælg en tekstbokstype..."})}),e.jsx(Ee,{className:"bg-card border border-border shadow-lg z-50",children:W.map(t=>e.jsx(qe,{value:t.key,children:e.jsxs("span",{className:"flex items-center gap-2",children:[de(t.type),t.label]})},t.key))})]})]}),e.jsx("div",{className:"text-center text-xs text-muted-foreground",children:"eller"}),e.jsxs("div",{children:[e.jsx(j,{children:"Brugerdefineret tekstboksnøgle"}),e.jsx(A,{value:J,onChange:t=>{K(t.target.value),H("")},placeholder:"F.eks. kontakt_telefon",className:"mt-1"})]})]}),(s==null?void 0:s.id)&&e.jsxs("div",{children:[e.jsx(j,{children:"Tekstboksnøgle"}),e.jsx(A,{value:(s==null?void 0:s.section_key)??"",onChange:t=>f(r=>r&&{...r,section_key:t.target.value}),className:"mt-1"})]}),e.jsxs("div",{children:[e.jsx(j,{children:"Type"}),e.jsx("div",{className:"flex gap-2 mt-2",children:[{value:"text",label:"Tekst",icon:ye},{value:"html",label:"Rich Text",icon:fe},{value:"image_url",label:"Billede",icon:ge}].map(t=>{var i;const r=s!=null&&s.id?s.content_type===t.value:y?((i=W.find(n=>n.key===y))==null?void 0:i.type)===t.value:(s==null?void 0:s.content_type)===t.value;return e.jsxs("button",{onClick:()=>f(n=>n&&{...n,content_type:t.value}),className:C("flex items-center gap-1.5 px-3 py-2 rounded-lg text-xs font-medium border transition-all",r?"bg-secondary text-secondary-foreground border-secondary":"bg-muted/30 text-muted-foreground border-border hover:bg-muted/50"),children:[e.jsx(t.icon,{className:"w-3 h-3"}),t.label]},t.value)})})]}),e.jsxs("div",{children:[e.jsx(j,{children:"Indhold"}),((s==null?void 0:s.content_type)??((me=W.find(t=>t.key===y))==null?void 0:me.type))==="html"?e.jsx("div",{className:"mt-1",children:e.jsx(he,{content:(s==null?void 0:s.content)??"",onChange:t=>f(r=>r&&{...r,content:t})})}):e.jsx("textarea",{className:"w-full mt-1 min-h-[100px] p-3 rounded-lg border border-input bg-background text-sm resize-y",value:(s==null?void 0:s.content)??"",onChange:t=>f(r=>r&&{...r,content:t.target.value}),placeholder:((s==null?void 0:s.content_type)??((ce=W.find(t=>t.key===y))==null?void 0:ce.type))==="image_url"?"https://...":"Indtast indhold..."})]}),e.jsxs(m,{className:"w-full bg-secondary hover:bg-secondary/90",onClick:Te,disabled:!(s!=null&&s.id)&&!y&&!J,children:[e.jsx(Je,{className:"w-4 h-4 mr-2"})," ",s!=null&&s.id?"Gem ændringer":"Tilføj tekstboks"]})]})]})})]})}export{Gt as default};
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.