1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0516115e-5bb7-47ad-aba1-d35b7be9ab7f",e._sentryDebugIdIdentifier="sentry-dbid-0516115e-5bb7-47ad-aba1-d35b7be9ab7f")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1707,2300,8015],{1707:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"}))})},11629:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))})},17204:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))})},18787:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z"}))})},21677:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))})},24877:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var r=a(37876),n=a(15608),s=a(11629);let l=["\uD83D\uDE00","\uD83D\uDE01","\uD83D\uDE02","\uD83E\uDD23","\uD83D\uDE03","\uD83D\uDE04","\uD83D\uDE05","\uD83D\uDE06","\uD83D\uDE09","\uD83D\uDE0A","\uD83D\uDE0B","\uD83D\uDE0E","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDE17","\uD83D\uDE19","\uD83D\uDE1A","âºï¸","\uD83D\uDE42","\uD83E\uDD17","\uD83E\uDD29","\uD83E\uDD14","\uD83E\uDD28","\uD83D\uDE10","\uD83D\uDE11","\uD83D\uDE36","\uD83D\uDE44","\uD83D\uDE0F","\uD83D\uDE23","\uD83D\uDE25","\uD83D\uDE2E","\uD83E\uDD10","\uD83D\uDE2F","\uD83D\uDE2A","\uD83D\uDE2B","\uD83E\uDD71","\uD83D\uDE34","\uD83D\uDE0C","\uD83D\uDE1B","\uD83D\uDE1C","\uD83D\uDE1D","\uD83E\uDD24","\uD83D\uDE12","\uD83D\uDE13","\uD83D\uDE14","\uD83D\uDE15","\uD83D\uDE43","\uD83E\uDD11","\uD83D\uDE32","â¹ï¸","\uD83D\uDE41","\uD83D\uDE16","\uD83D\uDE1E","\uD83D\uDE1F","\uD83D\uDE24","\uD83D\uDE22","\uD83D\uDE2D","\uD83D\uDE26","\uD83D\uDE27","\uD83D\uDE28","\uD83D\uDE29","\uD83E\uDD2F","\uD83D\uDE2C","\uD83D\uDE30","\uD83D\uDE31","\uD83E\uDD75","\uD83E\uDD76","\uD83D\uDE33","\uD83E\uDD2A","\uD83D\uDE35","\uD83E\uDD74","\uD83D\uDE20","\uD83D\uDE21","\uD83E\uDD2C","\uD83D\uDE37","\uD83E\uDD12","\uD83E\uDD15","\uD83E\uDD22","\uD83E\uDD2E","\uD83E\uDD27","\uD83D\uDE07","\uD83E\uDD73","\uD83E\uDD7A","\uD83E\uDD20","\uD83E\uDD21","\uD83E\uDD25","\uD83E\uDD2B","\uD83E\uDD2D","\uD83E\uDDD0","\uD83E\uDD13","\uD83D\uDE08","\uD83D\uDC7F","\uD83D\uDC79","\uD83D\uDC7A","\uD83D\uDC80","\uD83D\uDC7B","\uD83D\uDC7D","\uD83E\uDD16","\uD83D\uDCA9"];function i({open:e,onClose:t,onSelect:a}){return(0,r.jsx)(n.A,{open:e,onClose:t,className:"flex items-center justify-center p-4",children:(0,r.jsx)("div",{className:"card-flat w-full max-w-2xl overflow-hidden rounded-[28px]",children:(0,r.jsxs)("div",{className:"card-body p-5 sm:p-6",children:[(0,r.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Emoji Se\xe7"}),(0,r.jsx)("button",{type:"button",onClick:t,className:"text-gray-500 hover:text-gray-700",children:(0,r.jsx)(s.A,{className:"h-6 w-6"})})]}),(0,r.jsx)("p",{className:"mb-4 text-sm text-gray-500",children:"G\xf6ndermek istediÄin emojiyi se\xe7."}),(0,r.jsx)("div",{className:"grid max-h-[28rem] grid-cols-6 gap-2 overflow-x-hidden overflow-y-auto pr-1 sm:grid-cols-8 lg:grid-cols-10",children:l.map((e,t)=>(0,r.jsx)("button",{type:"button",onClick:()=>a(e),className:"flex h-12 items-center justify-center rounded-2xl text-2xl transition-colors hover:bg-gray-100",title:e,children:e},t))})]})})})}},25925:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 19.5 8.25 12l7.5-7.5"}))})},27062:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var r=a(37876);a(14232);var n=a(65590),s=a.n(n);let l=({variant:e="primary",size:t="md",fullWidth:a=!1,iconOnly:n=!1,className:l="",type:i="button",onMouseEnter:o,onMouseLeave:d,onMouseDown:c,onMouseUp:m,onBlur:u,disabled:p,...g})=>{let x=[s().button,s()[e],s()[t],a?s().fullWidth:"",n?s().iconOnly:"",l].filter(
1Boolean).join(" ");return(0,r.jsx)("button",{type:i,className:x,disabled:p,onMouseEnter:o,onMouseLeave:d,onMouseDown:c,onMouseUp:m,onBlur:u,...g})}},35765:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"}),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))})},55792:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}))})},57869:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var r=a(37876),n=a(55792),s=a(85616),l=a(54254),i=a(74287),o=a(18847),d=a.n(o),c=a(14232),m=a(98477);let u=d()(()=>a.e(4457).then(a.bind(a,34457)).then(e=>e.default),{loadableGenerated:{webpack:()=>[null]},ssr:!1});function p({isOpen:e,contentType:t="standard",itemCount:a=0,successMessage:o}){let[d,p]=(0,c.useState)(0),[g,x]=(0,c.useState)(!1),[h,b]=(0,c.useState)(!1),[f,v]=(0,c.useState)({width:0,height:0}),w=(0,c.useMemo)(()=>((e="standard",t=0,a)=>{let o=[{icon:(0,r.jsx)(n.A,{className:"w-12 h-12"}),message:"İ\xe7erik kontrol ediliyor...",duration:1e3},{icon:(0,r.jsx)(s.A,{className:"w-12 h-12"}),message:"G\xf6rseller y\xfckleniyor...",duration:1200}],d={test:{icon:(0,r.jsx)(l.A,{className:"w-12 h-12"}),message:t>0?`${t} test sorusu hazırlanıyor...`:"Test soruları hazırlanıyor...",duration:1e3},quiz:{icon:(0,r.jsx)(i.A,{className:"w-12 h-12"}),message:t>0?`${t} sınav sorusu hazırlanıyor...`:"Sınav soruları hazırlanıyor...",duration:1e3},poll:{icon:(0,r.jsx)(n.A,{className:"w-12 h-12"}),message:t>0?`${t} anket sorusu hazırlanıyor...`:"Anket soruları hazırlanıyor...",duration:1e3},list:{icon:(0,r.jsx)(n.A,{className:"w-12 h-12"}),message:t>0?`${t} liste maddesi hazırlanıyor...`:"Liste maddeleri hazırlanıyor...",duration:1e3}},c={icon:(0,r.jsx)(i.A,{className:"w-12 h-12"}),message:a||"İ\xe7erik baÅarıyla oluÅturuldu!",duration:2e3};return d[e]?[...o,d[e],c]:[...o,c]})(t,a,o),[t,a,o]),y=d===w.length-1;return((0,c.useEffect)(()=>{b(!0);let e=()=>{v({width:window.innerWidth,height:window.innerHeight})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]),(0,c.useEffect)(()=>{if(!e){p(0),x(!1);return}let t=setTimeout(()=>{d<w.length-1&&(p(e=>e+1),d===w.length-2&&x(!0))},w[d]?.duration??1e3);return()=>clearTimeout(t)},[e,d,w]),e&&h)?(0,m.createPortal)((0,r.jsxs)(r.Fragment,{children:[g&&f.width>0&&(0,r.jsx)("div",{className:"pointer-events-none fixed inset-0 z-[1001]",children:(0,r.jsx)(u,{width:f.width,height:f.height,recycle:!1,numberOfPieces:350,gravity:.25})}),(0,r.jsx)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,r.jsx)("div",{className:"relative bg-white rounded-2xl shadow-xl p-8 max-w-md w-full",children:(0,r.jsxs)("div",{className:"relative z-10 flex flex-col items-center justify-center gap-6",children:[(0,r.jsxs)("div",{className:"relative",children:[!y&&(0,r.jsx)("div",{className:"absolute inset-0 bg-primary/10 rounded-full animate-ping"}),(0,r.jsx)("div",{className:`relative p-4 rounded-full text-white transition-all ${y?"bg-gradient-to-br from-green-400 to-green-600 scale-110":"bg-gradient-to-br from-primary to-secondary animate-bounce"}`,children:w[d]?.icon})]}),(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("h3",{className:`text-2xl font-bold mb-2 transition-colors ${y?"text-green-600":"text-gray-800"}`,children:y?"Tamamlandı!":"İ\xe7erik OluÅturuluyor"}),(0,r.jsx)("p",{className:`text-lg transition-colors ${y?"text-green-600 font-semibold":"text-gray-600"}`,children:w[d]?.message})]}),!y&&(0,r.jsxs)("div",{className:"w-full",children:[(0,r.jsx)("div",{className:"flex gap-2 justify-center mb-3",children:w.map((e,t)=>(0,r.jsx)("div",{className:`h-2 rounded-full transition-all duration-500 ${t===d?"w-12 bg-primary":t<d?"w-8 bg-secondary":"w-8 bg-gray-300"}`},t))}),(0,r.jsxs)("p",{className:"text-sm text-gray-500 text-center",children:["AÅama ",d+1," / ",w.length]})]}),!y&&(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("div",{className:"w-3 h-3 bg-primary rounded-full animate-bounce",style:{animationDelay:"0ms"}}),(0,r.jsx)("div",{className:"w-3 h-3 bg-secondary rounded-full animate-bounce",style:{animationDelay:"150ms"}}),(0,r.jsx)("div",{className:"w-3 h-3 bg-primary rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})]})})})]}),document.body):null}},58085:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>eG});var r=a(37876);let n=e=>{let t=String(e||"").trim();return!!t&&"i\xe7erik g\xf6rseli"!==t.toLocaleLowerCase("tr-TR")};var s=a(57869),l=a(24178),i=a(82437),o=a(93860),d=a(9799),c=a(33274),m=a(40097),u=a(74359),p=a(92963),g=a(97685),x=a(67768),h=a(88015),b=a(93237),f=a(14232);let v=f.forwardRef(function({title:e,titleId:t,...a},r){return f.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),e?f.createElement("title",{id:t},e):null,f.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))});var w=a(28022),y=a(50223),j=a(91408),k=a(15608),N=a(30225),S=a(11629),I=a(47043),E=a(83845);function z({open:e,onClose:t,onSelect:a,inline:n=!1}){let s=(0,N.A)(),{query:l,setQuery:i,items:o,isLoading:c,errorMessage:m,hasMore:u,refresh:p,loadMore:g}=function(e,t,a=24){let[r,n]=(0,f.useState)(""),[s,l]=(0,f.useState)(1),[i,o]=(0,f.useState)(0),[c,m]=(0,f.useState)([]),[u,p]=(0,f.useState)(!1),[g,x]=(0,f.useState)(""),[h,b]=(0,f.useState)(!1),v=(0,f.useRef)(0);return(0,f.useEffect)(()=>{e||(n(""),l(1),m([]),x(""),b(!1))},[e]),(0,f.useEffect)(()=>{let n=++v.current;if(!e)return void p(!1);let l=new AbortController;p(!0),x(""),1===s&&m([]);let i=setTimeout(()=>{(0,d.y1)({query:r.trim(),page:s,perPage:a,authHeader:t,signal:l.signal}).then(e=>{v.current===n&&(m(t=>[...new Map([...1===s?[]:t,...e.items].map(e=>[e.id,e])).values()]),b(e.hasMore),p(!1))}).catch(e=>{v.current!==n||l.signal.aborted||(x(e instanceof Error?e.message:"FotoÄraflar alınamadı."),p(!1))})},r.trim()&&1===s?300:0);return()=>{v.current++,clearTimeout(i),l.abort()}},[e,r,s,i,t,a]),{query:r,setQuery:e=>{n(e),l(1)},items:c,isLoading:u,errorMessage:g,hasMore:h,refresh:()=>o(e=>
1e+1),loadMore:()=>{u||g||!h||l(e=>e+1)}}}(e,s,n?12:24),x=(0,r.jsxs)("div",{className:"w-full max-w-6xl overflow-hidden rounded-[28px] border border-slate-200 bg-white shadow-xl",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between border-b border-slate-200 bg-slate-50 p-5",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-lg font-semibold text-slate-900",children:"Unsplash fotoÄrafı ekle"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"Bir fotoÄraf ara ve i\xe7eriÄine ekle."})]}),(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":"Kapat",className:"rounded-full p-2",children:(0,r.jsx)(S.A,{className:"h-5 w-5"})})]}),(0,r.jsx)("div",{className:"p-4",children:(0,r.jsxs)("label",{className:"relative block",children:[(0,r.jsx)(I.A,{className:"absolute left-3 top-3 h-5 w-5 text-slate-400"}),(0,r.jsx)("input",{"aria-label":"Unsplash'ta ara",placeholder:"Unsplash'ta ara",value:l,onChange:e=>i(e.target.value),className:"h-11 w-full rounded-xl border border-slate-200 pl-10 pr-3 text-sm"})]})}),(0,r.jsxs)("div",{className:"max-h-[60vh] overflow-y-auto px-4 pb-4",children:[(0,r.jsx)("p",{className:"mb-3 text-xs text-slate-500",children:l.trim()?"Arama sonu\xe7ları":"Pop\xfcler fotoÄraflar"}),m&&(0,r.jsxs)("div",{role:"alert",className:"mb-3 rounded-xl bg-rose-50 p-4 text-sm text-rose-700",children:[m,(0,r.jsx)("button",{type:"button",onClick:p,className:"ml-3 underline",children:"Tekrar dene"})]}),(0,r.jsxs)("div",{className:n?"grid grid-cols-2 gap-3":"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4",children:[o.map(e=>(0,r.jsxs)("div",{className:"min-w-0 overflow-hidden rounded-xl border border-slate-200 bg-slate-50",children:[(0,r.jsx)("button",{type:"button","aria-label":e.alt,onClick:()=>{(0,d._1)(e,s),a(e)},className:"block w-full",children:(0,r.jsx)("img",{src:e.previewUrl,alt:e.alt,loading:"lazy",className:"aspect-[4/3] w-full object-cover"})}),(0,r.jsx)("div",{className:"px-2",children:(0,r.jsx)(E.A,{attribution:e})})]},e.id)),c&&!o.length&&Array.from({length:8},(e,t)=>(0,r.jsx)("div",{className:"aspect-[4/3] animate-pulse rounded-xl bg-slate-200"},t))]}),!c&&!m&&!o.length&&(0,r.jsx)("p",{className:"p-8 text-center text-sm text-slate-500",children:"Sonu\xe7 bulunamadı. BaÅka bir kelime deneyin."}),u&&(0,r.jsx)("button",{type:"button",disabled:c||!!m,onClick:g,className:"mt-4 w-full rounded-xl border p-2 text-sm disabled:opacity-50",children:c?"Y\xfckleniyorâ¦":"Daha fazla"})]})]});return n?e?x:null:(0,r.jsx)(k.A,{open:e,onClose:t,className:"flex items-center justify-center p-4",children:x})}function C(e){return String(e||"").trim()||void 0}function A(...e){for(let t of e){let e=C(t);if(e)return e}}function T(e){let t=A(e.images?.fixed_height?.webp,e.images?.fixed_height?.url,e.images?.original?.webp,e.images?.original?.url,e.images?.downsized?.url,e.images?.preview_gif?.url);return t?{id:C(e.id)||`giphy-${Math.random().toString(36).slice(2,10)}`,title:C(e.title)||"GIF",imageUrl:t,previewUrl:A(e.images?.fixed_height_small?.webp,e.images?.fixed_height_small?.url,e.images?.preview_gif?.url,e.images?.fixed_width_small?.url,e.images?.fixed_height_small_still?.url,e.images?.fixed_width_small_still?.url,e.images?.original_still?.url)||t,webpUrl:A(e.images?.fixed_height?.webp,e.images?.original?.webp),mp4Url:A(e.images?.fixed_height?.mp4,e.images?.original?.mp4),analyticsClickUrl:C(e.analytics?.onclick?.url),analyticsLoadUrl:C(e.analytics?.onload?.url),analyticsSendUrl:C(e.analytics?.onsent?.url)}:null}async function q({apiKey:e,query:t,limit:a=24,offset:r=0,rating:n="pg-13",lang:s="tr"}){let l=String(e||"").trim();if(!l)throw Error("Giphy API anahtarı tanımlı deÄil.");let i=String(t||"").trim(),o=i?"search":"trending",d=new URL(`https://api.giphy.com/v1/gifs/${o}`);d.searchParams.set("api_key",l),d.searchParams.set("limit",String(a)),d.searchParams.set("offset",String(r)),d.searchParams.set("rating",n),i&&(d.searchParams.set("q",i),d.searchParams.set("lang",s));let c=await fetch(d.toString()),m=null;try{m=await c.json()}catch{m=null}if(!c.ok)throw Error(m?.meta?.msg?.trim()||"GIF sonu\xe7ları alınamadı.");return(m?.data||[]).map(T).filter(e=>!!e)}function M(e){let t=C(e);if(t){if("undefined"!=typeof document&&"undefined"!=typeof Image){let e=new Image;e.decoding="async",e.src=t;return}
1fetch(t).catch(()=>{})}}var R=a(52648);async function L({url:e,authHeader:t}){let a=await fetch((0,R.KB)("/content/social-embed/preview"),{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json",...t?{Authorization:t}:{}},body:JSON.stringify({url:e})}),r=await a.json();if(!a.ok||!r?.responseResult?.status)throw Error(r?.responseResult?.exceptionDetail?.[0]||"Embed \xf6nizlemesi alınamadı");return r.result.data}var D=a(68974);let _=f.forwardRef(function({title:e,titleId:t,...a},r){return f.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),e?f.createElement("title",{id:t},e):null,f.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),f.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))});var B=a(85616);let P=["image/png","image/jpeg","image/jpg","image/webp"],U=[...P,"image/gif","video/mp4","video/quicktime","video/webm","video/x-m4v"];function O({open:e,onSelect:t}){let[a,n]=(0,f.useState)(""),[s,l]=(0,f.useState)([]),[i,o]=(0,f.useState)(!1),[d,c]=(0,f.useState)(""),[m,u]=(0,f.useState)(0),p=(0,f.useRef)(0);if((0,f.useEffect)(()=>{if(!e){p.current+=1,n(""),l([]),o(!1),c("");return}let t=a.trim(),r=window.setTimeout(()=>{let e=++p.current;o(!0),c(""),l([]),q({apiKey:"KERuVZ8bGhaPyxrtsHUFS9qfA09rIWF7",query:t,limit:12}).then(t=>{e===p.current&&(l(t),o(!1))}).catch(t=>{e===p.current&&(l([]),o(!1),c(t instanceof Error&&t.message?t.message:"GIF sonu\xe7ları alınamadı."))})},300*!!t);return()=>window.clearTimeout(r)},[e,a,m]),!e)return null;let g=!!a.trim(),x=!i&&!s.length&&!d;return(0,r.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-3 shadow-inner",children:[(0,r.jsxs)("label",{className:"relative block",children:[(0,r.jsx)(I.A,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400"}),(0,r.jsx)("input",{value:a,onChange:e=>n(e.target.value),placeholder:"Giphy'de ara",className:"h-10 w-full rounded-xl border border-slate-200 bg-white pl-9 pr-3 text-sm text-slate-900 outline-none transition placeholder:text-slate-400 focus:border-slate-300"})]}),(0,r.jsx)("div",{className:"mt-3",children:d?(0,r.jsxs)("div",{className:"rounded-xl border border-dashed border-rose-200 bg-white p-4 text-center",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-rose-700",children:d}),(0,r.jsxs)("button",{type:"button",onClick:()=>u(e=>e+1),className:"mt-3 inline-flex items-center gap-2 rounded-full bg-slate-900 px-3 py-1.5 text-xs font-semibold text-white",children:[(0,r.jsx)(D.A,{className:"h-4 w-4"}),"Tekrar dene"]})]}):i&&!s.length?(0,r.jsx)("div",{className:"grid grid-cols-2 gap-2",children:Array.from({length:4}).map((e,t)=>(0,r.jsx)("div",{className:"aspect-[4/3] animate-pulse rounded-xl bg-slate-200"},t))}):x?(0,r.jsx)("div",{className:"rounded-xl border border-dashed border-slate-200 bg-white p-4 text-center text-sm text-slate-500",children:g?"Sonu\xe7 bulunamadı.":"GIF sonu\xe7ları hazırlanıyor."}):(0,r.jsx)("div",{className:"grid max-h-72 grid-cols-2 gap-2 overflow-y-auto pr-1",children:s.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>t(e),className:"group overflow-hidden rounded-xl border border-slate-200 bg-white text-left transition hover:border-slate-300 hover:shadow-sm",children:(0,r.jsx)("img",{src:e.previewUrl,alt:e.title,loading:"lazy",onLoad:()=>{M(e.analyticsLoadUrl)},className:"aspect-[4/3] w-full object-cover transition group-hover:scale-[1.03]"})},e.id))})}),(0,r.jsxs)("div",{className:"mt-3 flex items-center justify-between text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400",children:[(0,r.jsx)("span",{children:"Powered by GIPHY"}),(0,r.jsx)("span",{children:g?"Arama":"Trend"})]})]})}function $({value:e,label:t,emptyText:a="Hen\xfcz medya eklenmedi.",aspect:n=1,previewClassName:s="relative h-44 w-full overflow-hidden rounded-xl bg-slate-100",allowVideo:l=!1,allowGiphy:o=!1,allowSocialEmbed:d=!1,embed:c=null,onUploadMedia:m,onChange:u,onEmbedChange:p}){let x=(0,f.useId)(),v=(0,N.A)(),w=(0,f.useRef)(null),[y,j]=(0,f.useState)(!1),[k,I]=(0,f.useState)(""),[C,A]=(0,f.useState)(!1),[T,q]=(0,f.useState)(!1),[R,D]=(0,f.useState)(!1),[$,H]=(0,f.useState)(!1),[F,G]=(0,f.useState)(""),[V,Y]=(0,f.useState)(""),[W,K]=(0,f.useState)(!1),Z="video"===(0,b._T)(e),J=!!c?.url,X=l?U:P,Q=async e=>{let a=e.target.files?.[0];if(!a)return;let r=a.type?.toLowerCase()||"",n=r.startsWith("video/"),s="image/gif"===r;if(!X.includes(r)){g.Ay.error(l?"PNG, JPG, WEBP, GIF veya video dosyası se\xe7ebilirsiniz":"PNG, JPG, JPEG veya WEBP formatı se\xe7ebilirsiniz"),e.target.value="";return}if(n&&a.size>0x6400000){g.Ay.error("Video boyutu en fazla 100MB olabilir"),e.target.value="";return}if(!n&&a.size>0xa00000){g.Ay.error("G\xf6rsel boyutu en fazla 10 MB olabilir"),e.target.value="";return}if(l&&(n||s)){if(!m){g.Ay.error("Medya y\xfcklenemedi"),e.target.value="";return}try{A(!0);let e=await m(a,t);if(!e)throw Error("Medya y\xfcklenemedi");p?.(null),u(e)}catch(e){g.Ay.error(e instanceof Error?e.message:"Medya y\xfcklenemedi")}finally{A(!1),e.target.value=""}return}let i=new FileReader;i.onloadend=()=>{let e=i.result;if(!e.startsWith("data:image/"))return void g.Ay.error("G\xf6rsel y\xfcklenirken hata oluÅtu");I(e),j(!0)},i.onerror=()=>g.Ay.error("G\xf6rsel y\xfcklenirken hata oluÅtu"),i.readAsDataURL(a)},ee=async()=>{let e=F.trim();if(!e)return void Y("X/Twitter tweet URLâi girin.");try{K(!0),Y("");let t=await L({url:e,authHeader:v});u(""),p?.(t),G(""),H(!1),q(!1)}catch(e){Y(e instanceof Error?e.message:"Embed \xf6nizlemesi alınamadı.")}finally{K(!1)}};return(0,r.jsxs)("div",{className:"flex w-full flex-col gap-3 rounded-2xl border border-slate-200 bg-white p-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-800",children:t}),e||J?(0,r.jsxs)("button",{type:"button",className:"btn btn-sm btn-danger",onClick:()=>{u(""),p?.(null),q(!1),H(!1),w.current&&(w.current.value="")},children:[(0,r.jsx)(S.A,{className:"h-4 w-4"}),l?"Medyayı kaldır":"G\xf6rseli kaldır"]}):null]}),J?(0,r.jsx)("div",{className:"overflow-hidden rounded-xl bg-slate-50",children:(0,r.jsx)(h.default,{embed:c,compact:!0})}):e?(0,r.jsx)("div",{className:s,children:Z?(0,r.jsx)("video",{className:"h-full w-full bg-black object-contain",src:e,controls:!0,playsInl
1ine:!0,preload:"metadata"}):(0,r.jsx)("img",{src:e,alt:t,className:"h-full w-full object-cover"})}):(0,r.jsxs)("div",{className:"flex min-h-28 flex-col items-center justify-center gap-2 rounded-xl border border-dashed border-slate-300 bg-slate-50 p-4 text-center",children:[l?(0,r.jsx)(_,{className:"h-8 w-8 text-slate-400"}):(0,r.jsx)(B.A,{className:"h-8 w-8 text-slate-400"}),(0,r.jsx)("span",{className:"text-sm text-slate-500",children:a})]}),(0,r.jsx)("input",{ref:w,id:x,type:"file",accept:l?"image/png,image/jpeg,image/jpg,image/webp,image/gif,video/mp4,video/quicktime,video/webm,video/x-m4v":"image/png,image/jpeg,image/jpg,image/webp",className:"hidden",onChange:Q}),(0,r.jsx)("label",{htmlFor:x,className:`btn btn-dark cursor-pointer justify-center ${C?"pointer-events-none opacity-70":""}`,children:C?"Y\xfckleniyor...":e||J?l?"Medyayı deÄiÅtir":"G\xf6rseli deÄiÅtir":l?"Medya se\xe7":"G\xf6rsel se\xe7"}),e&&(0,r.jsx)(E.A,{src:e}),o&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",className:"btn justify-center border border-slate-200 bg-slate-50 text-slate-700 hover:bg-slate-100",onClick:()=>{q(!1),D(e=>!e)},children:"Unsplashâtan fotoÄraf se\xe7"}),(0,r.jsx)(z,{inline:!0,open:R,onClose:()=>D(!1),onSelect:e=>{p?.(null),u(e.imageUrl),D(!1)}})]}),o?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",className:`btn justify-center border border-slate-200 bg-slate-50 text-slate-700 hover:bg-slate-100 ${T?"ring-2 ring-slate-200":""}`,onClick:()=>q(e=>!e),children:"Giphy'den GIF se\xe7"}),(0,r.jsx)(O,{open:T,onSelect:e=>{M(e.analyticsClickUrl),p?.(null),u(e.imageUrl),q(!1)}})]}):null,d?(0,r.jsxs)("div",{className:"grid gap-2",children:[(0,r.jsx)("button",{type:"button",className:`btn justify-center border border-slate-200 bg-slate-50 text-slate-700 hover:bg-slate-100 ${$?"ring-2 ring-slate-200":""}`,onClick:()=>{H(e=>!e),Y("")},children:"X/Twitter URL ekle"}),$?(0,r.jsxs)("div",{className:"grid gap-2 rounded-2xl border border-slate-200 bg-slate-50 p-3",children:[(0,r.jsx)("input",{value:F,onChange:e=>{G(e.target.value),Y("")},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),ee())},className:"h-10 rounded-xl border border-slate-200 bg-white px-3 text-sm text-slate-900 outline-none transition placeholder:text-slate-400 focus:border-slate-300",placeholder:"Tweet URLâi"}),V?(0,r.jsx)("p",{className:"text-xs font-semibold text-rose-600",children:V}):null,(0,r.jsx)("button",{type:"button",disabled:W,className:"btn btn-dark justify-center disabled:cursor-not-allowed disabled:opacity-60",onClick:()=>void ee(),children:W?"\xd6nizleme alınıyor...":"Embed kullan"})]}):null]}):null,(0,r.jsx)(i.A,{isOpen:y,imageSrc:k,title:`${t} kırp`,aspect:n,onClose:()=>{j(!1),I(""),w.current&&(w.current.value="")},onApply:e=>{p?.(null),u(e),j(!1),I(""),w.current&&(w.current.value="")}})]})}let H=(e="")=>e.replace(/<[^>]*>/g," ").replace(/ /gi," ").replace(/\s+/g," ").trim(),F=e=>("socialEmbed"===e.mediaKind||e.embedUrl)&&e.embedUrl?{provider:"instagram"===e.embedProvider?"instagram":"x",url:e.embedUrl,html:e.embedHtml||"",title:e.embedTitle||"",authorName:e.embedAuthorName||"",thumbnailUrl:e.embedThumbnailUrl||""}:null;function G({listItems:e,setListItems:t,setFieldValue:a,setListErrors:n,onUploadMedia:s}){let l=j.Ik({title:j.Yj().min(10,"BaÅlık minimum 10 karakter olmalıdır").max(300,"BaÅlık en fazla 300 karakter olmalıdır").required("BaÅlık giriniz").notOneOf(e.map(e=>e.title),"Aynı baÅlıkla birden fazla madde ekleyemezsiniz"),description:j.Yj().required("Madde i\xe7eriÄi giriniz").test("list-description-length","Madde i\xe7eriÄi 50-2000 karakter olmalıdır",e=>{let t=H(e||"").length;return t>=50&&t<=2e3}),image:j.Yj().optional()});return(0,r.jsxs)("div",{className:"grid gap-5",children:[(0,r.jsx)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4",children:(0,r.jsxs)("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-extrabold text-slate-900",children:"Liste maddeleri"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-slate-500",children:"En az 3, en fazla 20 madde ekleyebilirsin."})]}),(0,r.jsxs)("span",{className:"rounded-full bg-white px-3 py-1 text-xs font-bold text-slate-600",children:[e.length,"/20"]})]})}),0===e.length?(0,r.jsxs)("div",{className:"rounded-2xl border border-dashed border-slate-300 bg-white p-8 text-center",children:[(0,r.jsx)(v,{className:"mx-auto h-10 w-10 text-slate-400"}),(0,r.jsx)("p",{className:"mt-3 text-sm font-semibold text-slate-500",children:"Hen\xfcz madde eklenmedi."})]}):(0,r.jsx)("div",{className:"grid gap-3",children:e.map((n,s)=>{let l=F(n);
1return(0,r.jsxs)("article",{className:"grid gap-4 rounded-2xl border border-slate-200 bg-white p-4 md:grid-cols-[minmax(0,1fr)_auto]",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"inline-flex h-7 w-7 items-center justify-center rounded-full bg-slate-900 text-xs font-bold text-white",children:s+1}),(0,r.jsx)("h3",{className:"line-clamp-2 text-base font-extrabold text-slate-950",children:n.title})]}),l?(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(h.default,{embed:l,compact:!0})}):n.image?(0,r.jsx)("div",{className:"mt-3 overflow-hidden rounded-xl bg-slate-100",children:"video"===(0,b._T)(n.image)?(0,r.jsx)("video",{src:n.image,className:"aspect-video w-full bg-black object-contain",controls:!0,playsInline:!0,preload:"metadata"}):(0,r.jsx)("img",{src:n.image,className:"h-auto w-full object-cover",alt:n.title})}):null,(0,r.jsx)("p",{className:"mt-3 line-clamp-4 whitespace-pre-wrap text-sm leading-6 text-slate-600",children:((e="")=>e.replace(/<br\s*\/?>/gi,"\n").replace(/<[^>]*>/g,"").replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/'/gi,"'"))(n.description)})]}),(0,r.jsxs)("button",{type:"button",className:"btn btn-sm btn-danger self-start",onClick:()=>(r=>{let n=e.filter((e,t)=>t!==r);t(n),a("listItems",n)})(s),children:[(0,r.jsx)(w.A,{className:"h-4 w-4"}),"Kaldır"]})]},`${n.title}-${s}`)})}),(0,r.jsx)(y.l1,{initialValues:{title:"",description:"",image:"",mediaKind:"media",embedProvider:"",embedUrl:"",embedHtml:"",embedTitle:"",embedAuthorName:"",embedThumbnailUrl:""},validationSchema:l,onSubmit:(r,{resetForm:s})=>{if(e.length>=20)return;let l=[...e,{...r,description:((e="")=>((e="")=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"))(e).replace(/\r?\n/g,"<br />"))(r.description||""),image:"socialEmbed"===r.mediaKind?"":r.image||""}];t(l),a("listItems",l),n({}),s()},enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,children:({values:e,setFieldValue:t,submitForm:a,errors:l})=>(0,r.jsxs)(y.lV,{className:"rounded-2xl border border-slate-200 bg-white p-4 md:p-5",children:[(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("h3",{className:"text-base font-extrabold text-slate-950",children:"Yeni madde"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"BaÅlık, a\xe7ıklama ve istersen madde medyası ekle."})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-[220px_minmax(0,1fr)] lg:grid-cols-[260px_minmax(0,1fr)]",children:[(0,r.jsx)($,{value:e.image,embed:F(e),label:"Madde medyası",emptyText:"Medya eklenmedi.",aspect:1,allowVideo:!0,allowGiphy:!0,allowSocialEmbed:!0,onUploadMedia:s,previewClassName:"relative aspect-square w-full overflow-hidden rounded-xl bg-slate-100",onChange:e=>{t("image",e),t("mediaKind","media"),t("embedProvider",""),t("embedUrl",""),t("embedHtml",""),t("embedTitle",""),t("embedAuthorName",""),t("embedThumbnailUrl","")},onEmbedChange:e=>{t("mediaKind",e?"socialEmbed":"media"),t("image",""),t("embedProvider",e?.provider||""),t("embedUrl",e?.url||""),t("embedHtml",e?.html||""),t("embedTitle",e?.title||""),t("embedAuthorName",e?.authorName||""),t("embedThumbnailUrl",e?.thumbnailUrl||"")}}),(0,r.jsxs)("div",{className:"grid gap-4",children:[(0,r.jsxs)("label",{className:"grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"Madde baÅlıÄı"}),(0,r.jsx)(y.D0,{name:"title",className:"input w-full",type:"text",placeholder:"\xd6rn. İlk dikkat edilmesi gereken nokta"}),l.title&&(0,r.jsx)("span",{className:"text-sm font-semibold text-rose-600",children:l.title})]}),(0,r.jsxs)("label",{className:"grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"Madde i\xe7eriÄi"}),(0,r.jsx)(y.D0,{as:"textarea",name:"description",className:"input min-h-[180px] w-full",placeholder:"Maddeyi a\xe7ıklayan metni yaz"}),(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,r.jsxs)("span",{className:"text-xs font-semibold text-slate-400",children:[H(e.description||"").length,"/2000"]}),l.description&&(0,r.jsx)("span",{className:"text-sm font-semibold text-rose-600",children:l.description})]})]}),(0,r.jsx)("button",{type:"button",className:"btn btn-dark justify-center md:w-fit",onClick:async e=>{e.preventDefault(),await a(),Object.keys(l).length>0&&n(l)},children:"Madde ekle"})]})]})]})})]})}var V=a(18787),Y=a(74550),W=a(54587),K=a.n(W);let Z={max:20};function J({pollItems:e,setPollItems:t,setFieldValue:a,onUploadMedia:n}){let s=async(r,{resetForm:n})=>{if(e.length>=Z.max)return;let s=[...e,r];t(s),a("pollItems",s),n()},l=j.Ik({question:j.Yj().min(20,"Soru minimum 20 karakter olmalıdır").max(100,"Soru en fazla 100 karakter olmalıdır").required("Soru giriniz"),questionImage:j.Yj().optional(),answers:j.YO().of(j.Ik({answerText:j.Yj().min(10,"Cevap minimum 10 karakter olmalıdır").max(200,"Cevap en fazla 200 karakter olmalıdır").required("Cevap giriniz"),answerImage:j.Yj().optional()})).min(2,"En az 2 cevap ekleyin").max(10,"En fazla 10 cevap ekleyin").test("unique-answers","Aynı cevap birden fazla kez eklenemez",function(e){if(!e)return!0;let t=e.map(e=>e.answerText?.toLowerCase().trim());return t.length===new Set(t).size})});return(0,r.jsxs)("div",{className:"grid gap-5",children:[(0,r.jsx)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4",children:(0,r.jsxs)("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-extrabold text-slate-900",children:"Anket soruları"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-slate-500",children:"En az 1 soru, her soruda 2-10 cevap gerekir."})]}),(0,r.jsxs)("span",{className:"rounded-full bg-white px-3 py-1 text-xs font-bold text-slate-600",children:[e.length,"/20"]})]})}),0===e.length?(0,r.jsxs)("div",{className:"rounded-2xl border border-dashed border-slate-300 bg-white p-8 text-center",children:[(0,r.jsx)(V.A,{className:"mx-auto h-10 w-10 text-slate-400"}),(0,r.jsx)("p",{className:"mt-3 text-sm font-semibold text-slate-500",children:"Hen\xfcz anket sorusu eklenmedi."})]}):(0,r.jsx)("div",{className:"grid gap-3",children:e.map((n,s)=>(0,r.jsx)("article",{className:"rounded-2xl border border-slate-200 bg-white p-4",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row",children:[n.questionImage&&(0,r.jsx)("div",{className:"relative aspect-video overflow-hidden rounded-xl bg-slate-100 md:w-56 md:flex-shrink-0",children:"video"===(0,b._T)(n.questionImage)?(0,r.jsx)("video",{src:n.questionImage,controls:!0,muted:!0,loop:!0,playsInl
1ine:!0,preload:"metadata",className:"h-full w-full bg-black object-contain"}):(0,r.jsx)(K(),{src:n.questionImage,alt:n.question,fill:!0,sizes:"(max-width: 767px) calc(100vw - 3rem), 720px",className:"object-cover"})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("h3",{className:"text-base font-extrabold text-slate-950",children:[s+1,". ",n.question]}),(0,r.jsxs)("button",{type:"button",className:"btn btn-sm btn-danger flex-shrink-0",onClick:()=>(r=>{let n=e.filter((e,t)=>t!==r);t(n),a("pollItems",n)})(s),children:[(0,r.jsx)(w.A,{className:"h-4 w-4"}),"Kaldır"]})]}),(0,r.jsx)("div",{className:"mt-4 grid gap-2 sm:grid-cols-2",children:n.answers.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-3 rounded-xl bg-slate-50 p-3",children:[e.answerImage&&("video"===(0,b._T)(e.answerImage)?(0,r.jsx)("video",{src:e.answerImage,controls:!0,muted:!0,loop:!0,playsInline:!0,preload:"metadata",className:"aspect-video w-24 shrink-0 rounded-lg bg-black object-contain"}):(0,r.jsx)(K(),{src:e.answerImage,alt:e.answerText,width:44,height:44,className:"h-11 w-11 rounded-lg object-cover"})),(0,r.jsxs)("span",{className:"text-sm font-semibold text-slate-700",children:[t+1,". ",e.answerText]})]},`${e.answerText}-${t}`))})]})]})},`${n.question}-${s}`))}),(0,r.jsx)(y.l1,{initialValues:{question:"",questionImage:"",answers:[{answerText:"",answerImage:""},{answerText:"",answerImage:""}]},validationSchema:l,onSubmit:s,enableReinitialize:!0,validateOnChange:!1,validateOnBlur:!1,children:({values:e,setFieldValue:t,submitForm:a,errors:s})=>(0,r.jsxs)(y.lV,{className:"rounded-2xl border border-slate-200 bg-white p-4 md:p-5",children:[(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("h3",{className:"text-base font-extrabold text-slate-950",children:"Yeni anket sorusu"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"Soruyu yaz, cevapları ekle ve istersen her alana g\xf6rsel baÄla."})]}),(0,r.jsxs)("div",{className:"grid gap-4",children:[(0,r.jsxs)("label",{className:"grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"Soru"}),(0,r.jsx)("input",{type:"text",id:"question",name:"question",placeholder:"Anket sorusunu yaz",value:e.question,onChange:e=>t("question",e.target.value),className:`input ${s.question?"border-rose-400":""}`}),(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("span",{className:"text-xs font-semibold text-slate-400",children:[e.question.length,"/100"]}),s.question&&(0,r.jsx)("span",{className:"text-sm font-semibold text-rose-600",children:s.question})]})]}),(0,r.jsx)($,{value:e.questionImage,label:"Soru medyası",aspect:16/9,allowVideo:!0,allowGiphy:!0,onUploadMedia:n,previewClassName:"relative aspect-video w-full overflow-hidden rounded-xl bg-slate-100",onChange:e=>t("questionImage",e)}),(0,r.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4",children:[(0,r.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,r.jsx)("p",{className:"text-sm font-extrabold text-slate-900",children:"Cevaplar"}),(0,r.jsxs)("span",{className:"text-xs font-bold text-slate-500",children:[e.answers.length,"/10"]})]}),(0,r.jsx)("div",{className:"grid gap-3",children:e.answers.map((a,l)=>(0,r.jsxs)("div",{className:"grid min-w-0 gap-3 rounded-2xl border border-slate-200 bg-white p-3 xl:grid-cols-[minmax(0,1fr)_220px_auto]",children:[(0,r.jsxs)("label",{className:"grid gap-2",children:[(0,r.jsxs)("span",{className:"text-xs font-bold text-slate-500",children:["Cevap ",l+1]}),(0,r.jsx)("input",{type:"text",id:`answers.${l}.answerText`,name:`answers.${l}.answerText`,placeholder:"Cevabı yaz",value:a.answerText,onChange:e=>t(`answers.${l}.answerText`,e.target.value),className:`input w-full ${s.answers&&Array.isArray(s.answers)&&s.answers[l]&&s.answers[l]?.answerText?"border-rose-400":""}`}),s.answers&&Array.isArray(s.answers)&&s.answers[l]&&s.answers[l]?.answerText&&(0,r.jsx)("span",{className:"text-sm font-semibold text-rose-600",children:s.answers[l].answerText})]}),(0,r.jsx)($,{value:a.answerImage,label:"Cevap medyası",aspect:16/9,allowVideo:!0,allowGiphy:!0,onUploadMedia:n,previewClassName:"relative aspect-video w-full overflow-hidden rounded-xl bg-slate-100",onChange:e=>t(`answers.${l}.answerImage`,e)}),(0,r.jsx)("button",{type:"button",className:"btn btn-sm btn-danger self-start justify-center xl:w-auto",onClick:()=>t("answers",e.answers.filter((e,t)=>
1t!==l)),disabled:e.answers.length<=2,children:(0,r.jsx)(w.A,{className:"h-4 w-4"})})]},l))}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsxs)("button",{type:"button",className:"btn btn-light",onClick:()=>{e.answers.length>=10||t("answers",[...e.answers,{answerText:"",answerImage:""}])},children:[(0,r.jsx)(Y.A,{className:"h-4 w-4"}),"Cevap ekle"]}),"string"==typeof s.answers&&(0,r.jsx)("span",{className:"self-center text-sm font-semibold text-rose-600",children:s.answers})]})]}),(0,r.jsx)("button",{type:"button",className:"btn btn-dark justify-center md:w-fit",onClick:async e=>{e.preventDefault(),await a()},children:"Anket sorusunu ekle"})]})]})})]})}var X=a(25925),Q=a(21677),ee=a(17204);let et={max:20},ea={max:6},er=()=>({answerText:"",isCorrect:!1,answerImage:""}),en=()=>[er(),er()];function es({examItems:e,setExamItems:t,setFieldValue:a,onUploadMedia:n}){let[s,l]=(0,f.useState)(null),[i,o]=(0,f.useState)(1),[d,c]=(0,f.useState)(null),m=(0,f.useRef)(null),u=e=>{c(null),e("question",""),e("questionImage",""),e("answers",en())};return(0,r.jsx)("div",{className:"py-5",children:(0,r.jsxs)("div",{className:"flex flex-col gap-6",children:[s&&(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 z-50 flex items-center justify-center p-4",onClick:()=>l(null),children:(0,r.jsxs)("div",{className:"bg-white rounded-lg shadow-lg w-11/12 max-w-2xl max-h-[85vh] flex flex-col overflow-hidden",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-gray-200 flex-shrink-0",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold text-dark truncate",children:s.title}),(0,r.jsx)("button",{onClick:()=>l(null),className:"p-1 hover:bg-gray-100 rounded-lg transition-colors flex-shrink-0 ml-4",children:(0,r.jsx)(S.A,{className:"w-6 h-6 text-gray-500"})})]}),(0,r.jsx)("div",{className:"flex-1 overflow-auto flex items-center justify-center p-6 bg-gray-50",children:(0,r.jsx)("div",{className:"w-full max-h-[calc(85vh-80px)] flex items-center justify-center",children:(0,r.jsx)("img",{src:s.src,alt:s.title,className:"max-h-[calc(85vh-120px)] w-auto object-contain rounded-lg shadow-sm"})})})]})}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("h2",{className:"text-2xl font-bold text-dark",children:["Eklenen Sorular (",e.length,"/",et.max,")"]}),e.length>0&&Math.ceil(e.length/3)>1&&(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("button",{type:"button",disabled:1===i,onClick:()=>o(Math.max(1,i-1)),className:"p-2 rounded-lg border border-gray-300 hover:bg-gray-50 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",title:"\xd6nceki sayfa",children:(0,r.jsx)(X.A,{className:"w-5 h-5 text-dark"})}),(0,r.jsxs)("span",{className:"text-sm font-medium text-gray-600 px-3 py-2 bg-gray-50 rounded-lg",children:[i," /"," ",Math.ceil(e.length/3)]}),(0,r.jsx)("button",{type:"button",disabled:i===Math.ceil(e.length/3),onClick:()=>o(Math.min(Math.ceil(e.length/3),i+1)),className:"p-2 rounded-lg border border-gray-300 hover:bg-gray-50 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",title:"Sonraki sayfa",children:(0,r.jsx)(Q.A,{className:"w-5 h-5 text-dark"})})]})]}),0===e.length?(0,r.jsx)("div",{className:"bg-soft rounded-lg p-8 text-center border-2 border-dashed border-gray-300",children:(0,r.jsx)("p",{className:"text-gray-500 text-sm",children:"Hen\xfcz bir soru eklenmemiÅ."})}):(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex flex-col gap-3",children:e.slice((i-1)*3,3*i).map((n,s)=>{let d=(i-1)*3+s;return(0,r.jsxs)("div",{className:"relative",children:[s<2&&(i-1)*3+s<e.length-1&&(0,r.jsx)("div",{className:"absolute left-3 top-8 bottom-0 w-0.5 bg-gray-200"}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"relative flex-shrink-0",children:(0,r.jsx)("div",{className:"flex items-center justify-center w-7 h-7 bg-success rounded-full border-4 border-white shadow-sm",children:(0,r.jsx)("span",{className:"text-xs font-bold text-white",children:d+1})})}),(0,r.jsx)("div",{className:"flex-1 pb-6",children:(0,r.jsxs)("div",{className:"bg-white rounded-lg p-5 border border-gray-200 shadow-sm hover:shadow-md transition-shadow",children:[(0,r.jsx)("p",{className:"text-dark font-semibold text-base mb-4 leading-snug",children:n.question}),n.questionImage&&((0,b.cn)(n.questionImage)?(0,r.jsx)("video",{src:n.questionImage,className:"mb-4 aspect-video w-full rounded-lg bg-black object-contain",controls:!0,playsInl
1ine:!0,preload:"metadata"}):(0,r.jsx)(K(),{src:n.questionImage,alt:n.question,width:800,height:450,unoptimized:(0,b.xz)(n.questionImage),className:"mb-4 h-auto w-full rounded-lg object-cover"})),(0,r.jsx)("div",{className:"flex flex-col gap-2 mb-4",children:n.answers.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-start gap-3 p-3 bg-soft rounded-md border border-gray-200",children:[e.isCorrect?(0,r.jsx)("div",{className:"flex-shrink-0 w-5 h-5 mt-0.5 flex items-center justify-center bg-success rounded-full",children:(0,r.jsx)(ee.A,{className:"w-3 h-3 text-white"})}):(0,r.jsx)("div",{className:"flex-shrink-0 w-5 h-5 mt-0.5 border-2 border-gray-300 rounded-full"}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)("p",{className:"text-sm text-gray-700",children:e.answerText})}),(e.answerImage||e.image)&&(0,r.jsx)("button",{type:"button",onClick:()=>l({src:e.answerImage||e.image,title:`${n.question} - Cevap ${t+1}`}),className:"p-1 hover:bg-gray-100 rounded transition-colors flex-shrink-0",children:(0,r.jsx)(B.A,{className:"w-4 h-4 text-gray-400 hover:text-gray-600"})})]},t))}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{type:"button",className:"btn btn-sm btn-secondary flex-1",onClick:()=>{let t=e[d];c(d),m.current?.setFieldValue("question",t.question),m.current?.setFieldValue("questionImage",t.questionImage||""),m.current?.setFieldValue("answers",t.answers),setTimeout(()=>{let e=document.querySelector("[data-quiz-form]");e?.scrollIntoView({behavior:"smooth",block:"start"})},100)},children:"D\xfczenle"}),(0,r.jsxs)("button",{type:"button",className:"btn btn-sm btn-danger flex-1",onClick:()=>(r=>{let n=e.filter((e,t)=>t!==r);t(n),a("examItems",n);let s=Math.ceil(n.length/3);i>s&&s>0&&o(s)})(d),children:[(0,r.jsx)(w.A,{className:"w-4 h-4"}),"Sil"]})]})]})})]})]},d)})})})]}),(0,r.jsxs)("div",{className:"border-t-4 border-success pt-6 mt-8",children:[(0,r.jsx)("h2",{className:"text-2xl font-bold text-dark mb-6",children:"Yeni Soru Ekle"}),(0,r.jsx)(y.l1,{innerRef:m,initialValues:{question:"",questionImage:"",answers:en()},validationSchema:j.Ik({question:j.Yj().min(10,"Soru minimum 10 karakter olmalıdır").max(200,"Soru en fazla 200 karakter olmalıdır").required("Soru giriniz"),questionImage:j.Yj().optional(),answers:j.YO().of(j.Ik({answerText:j.Yj().min(10,"Cevap minimum 10 karakter olmalıdır").max(200,"Cevap en fazla 200 karakter olmalıdır").required("Cevap giriniz"),isCorrect:j.zM().optional(),answerImage:j.Yj().nullable().optional()})).min(2,"En az 2 cevap ekleyin").max(6,"En fazla 6 cevap ekleyin")}),onSubmit:(r,{setFieldValue:n})=>{if(1!==r.answers.filter(e=>e.isCorrect).length)return void g.oR.error("L\xfctfen bu soru i\xe7in tam olarak 1 doÄru cevap se\xe7iniz");let s=r.answers.map(e=>e.answerText.toLowerCase().trim());if(new Set(s).size!==s.length)return void g.oR.error("Aynı cevabı birden fazla yazamazsınız");let l=r.question.toLowerCase().trim();if(e.some(e=>e&&e.question&&e.question.toLowerCase().trim()===l)&&null===d)return void g.oR.error("Aynı soruyu birden fazla ekleyemezsiniz");let i=r.answers.map(e=>{let t=String(e.answerImage||e.image||"").trim();return{...e,answerImage:t,image:t||null}}),o={...r,answers:i};if(null!==d){let r=[...e];r[d]=o,t(r),a("examItems",r),g.oR.success("Soru g\xfcncellendi"),c(null),n("question",""),n("questionImage",""),n("answers",en())}else{if(e.length>=et.max)return void g.oR.error(`En fazla ${et.max} soru ekleyebilirsiniz`);let r=[...e,o];t(r),a("examItems",r),g.oR.success("Soru eklendi"),n("question",""),n("questionImage",""),n("answers",en())}},enableReinitialize:!0,children:({values:e,errors:t,setFieldValue:a,submitForm:s})=>(0,r.jsxs)(y.lV,{"data-quiz-form":!0,className:"flex flex-col gap-6 bg-gradient-to-br from-white to-soft rounded-xl border border-gray-200 p-8 shadow-md",children:[null!==d&&(0,r.jsxs)("div",{className:"flex items-center justify-between bg-yellow-50 border border-yellow-200 rounded-lg p-3",children:[(0,r.jsxs)("span",{className:"text-sm font-semibold text-yellow-800",children:["D\xfczenleme Modu (Soru #",d+1,")"]}),(0,r.jsx)("button",{type:"button",onClick:()=>u(a),className:"text-sm text-yellow-700 hover:text-yellow-900 font-medium",children:"İptal Et"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)("label",{className:"text-lg font-semibold text-dark",children:"Soru"}),(0,r.jsx)("input",{type:"text",id:"question",name:"question",placeholder:"Sorunuzu yazınız (min 10, max 200 karakter)",value:e.question,onChange:e=>a("question",e.target.value),maxLength:200,className:`input ${t.question?"border-2 border-error focus:border-error focus:ring-error/10":""}`}),(0,r.jsxs)("div",{className:"flex justify-between items-center",children:[(0,r.jsxs)("span",{className:"text-xs text-gray-500",children:[e.question.length,"/200"]}),t.question&&(0,r.jsx)("span",{className:"text-xs text-error font-medium",children:t.question})]}),(0,r.jsx)($,{value:e.questionImage,label:"Soru medyası",allowVideo:!0,allowGiphy:!0,aspect:16/9,previewClassName:"relative h-56 w-full overflow-hidden rounded-lg bg-soft",onUploadMedia:n,onChange:e=>a("questionImage",e)})]}),(0,r.jsx)("div",{className:"border-t border-gray-200"}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("label",{className:"text-lg font-semibold text-dark",children:"Cevaplar"}),(0,r.jsxs)("span",{className:"text-sm text-gray-500",children:[e.answers.length,"/",ea.max]})]}),0===e.answers.length&&(0,r.jsx)("div",{className:"bg-soft rounded-lg p-4 text-center border border-gray-300",children:(0,r.jsx)("span",{className:"text-gray-500 text-sm",children:"Hen\xfcz bir cevap eklenmemiÅ."})}),(0,r.jsx)("div",{className:"flex flex-col gap-4",children:e.answers.map((n,s)=>(0,r.jsxs)("div",{className:"bg-white rounded-lg p-5 border-2 border-dashed border-gray-300",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("span",{className:"text-sm font-semibold text-dark",children:["Cevap ",s+1]}),(0,r.jsx)("button",{type:"button",className:"btn btn-sm btn-danger",onClick:()=>a("answers",e.answers.filter((e,t)=>
1t!==s)),children:(0,r.jsx)(w.A,{className:"w-5 h-5"})})]}),(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)($,{value:n.answerImage||n.image||"",label:"Cevap g\xf6rseli",allowGiphy:!0,aspect:1,previewClassName:"relative aspect-square w-full overflow-hidden rounded-lg bg-soft",onChange:t=>{let r=[...e.answers];r[s]={...r[s],answerImage:t,image:t||null},a("answers",r)}})}),(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("input",{type:"text",id:`answers.${s}.answerText`,name:`answers.${s}.answerText`,placeholder:"Cevap yazınız (min 10, max 200 karakter)",value:n.answerText,onChange:e=>a(`answers.${s}.answerText`,e.target.value),maxLength:200,className:`input w-full ${Array.isArray(t.answers)&&"object"==typeof t.answers[s]&&t.answers[s]&&"answerText"in t.answers[s]?"border-2 border-error focus:border-error focus:ring-error/10":""}`}),(0,r.jsxs)("div",{className:"flex justify-between items-center mt-2",children:[(0,r.jsxs)("span",{className:"text-xs text-gray-500",children:[n.answerText.length,"/200"]}),Array.isArray(t.answers)&&"object"==typeof t.answers[s]&&t.answers[s]&&"answerText"in t.answers[s]&&(0,r.jsx)("span",{className:"text-xs text-error font-medium",children:t.answers[s].answerText})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between bg-gray-50 rounded-lg p-4 border border-gray-200",children:[(0,r.jsxs)("label",{htmlFor:`answer-correct-${s}`,className:"flex items-center gap-2 cursor-pointer",children:[(0,r.jsx)(ee.A,{className:"w-5 h-5 text-dark"}),(0,r.jsx)("span",{className:"text-sm font-semibold text-dark",children:"DoÄru cevap olarak iÅaretle"})]}),(0,r.jsx)("button",{type:"button",onClick:()=>{a("answers",e.answers.map((e,t)=>({...e,isCorrect:t===s})))},className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${n.isCorrect?"bg-success":"bg-gray-300"}`,children:(0,r.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${n.isCorrect?"translate-x-6":"translate-x-1"}`})})]})]},s))}),(0,r.jsx)("button",{type:"button",className:"btn mt-2",onClick:()=>{if(e.answers.length>=ea.max)return void g.oR.error(`En fazla ${ea.max} cevap ekleyebilirsiniz`);a("answers",[...e.answers,er()])},children:"+ Cevap Ekle"}),t.answers&&"string"==typeof t.answers&&(0,r.jsx)("div",{className:"text-error text-sm mt-2 bg-error/10 p-3 rounded-lg",children:t.answers})]}),(0,r.jsx)("div",{className:"border-t border-gray-200"}),(0,r.jsxs)("div",{className:"flex gap-3 justify-end pt-2",children:[null!==d&&(0,r.jsx)("button",{type:"button",className:"btn btn-secondary",onClick:()=>u(a),children:"İptal Et"}),(0,r.jsx)("button",{type:"button",className:"btn btn-primary",onClick:async e=>{e.preventDefault(),await s()},children:null!==d?"G\xfcncelle":"Soru ekle"})]})]})})]})]})})}var el=a(7021),ei=a(1707);let eo={resultText:"",resultDescription:"",resultImage:""},ed={question:"",questionImage:"",answers:[]},ec={answerText:"",answerDescription:"",answerImage:"",relatedResult:""};function em({values:e,setFieldValue:t}){let[a,n]=(0,f.useState)(eo),[s,l]=(0,f.useState)(ed),[i,o]=(0,f.useState)(ec);return(0,r.jsxs)("div",{className:"grid gap-6",children:[(0,r.jsxs)("div",{className:"grid gap-4 rounded-2xl border border-slate-200 bg-slate-50 p-4 md:grid-cols-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-extrabold text-slate-900",children:"Sonu\xe7 kartları"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-slate-500",children:"Kullanıcının test sonunda g\xf6receÄi sonu\xe7ları oluÅtur."})]}),(0,r.jsxs)("div",{className:"flex gap-2 md:justify-end",children:[(0,r.jsxs)("span",{className:"rounded-full bg-white px-3 py-1 text-xs font-bold text-slate-600",children:[e.resultItems?.length||0,"/12 sonu\xe7"]}),(0,r.jsxs)("span",{className:"rounded-full bg-white px-3 py-1 text-xs font-bold text-slate-600",children:[e.quizItems?.length||0,"/24 soru"]})]})]}),e.resultItems?.length===0?(0,r.jsxs)("div",{className:"rounded-2xl border border-dashed border-slate-300 bg-white p-8 text-center",children:[(0,r.jsx)(el.A,{className:"mx-auto h-10 w-10 text-slate-400"}),(0,r.jsx)("p",{className:"mt-3 text-sm font-semibold text-slate-500",children:"\xd6nce en az iki sonu\xe7 kartı ekle."})]}):(0,r.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:e.resultItems.map((a,n)=>(0,r.jsxs)("article",{className:"overflow-hidden rounded-2xl border border-slate-200 bg-white",children:[(0,r.jsx)("div",{className:"relative aspect-[16/9] bg-slate-100",children:a.resultImage?(0,r.jsx)(K(),{src:a.resultImage,alt:a.resultText,fill:!0,sizes:"(max-width: 767px) calc(100vw - 3rem), 720px",unoptimized:(0,b.xz)(a.resultImage),className:"object-cover"}):(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-xs font-semibold text-slate-400",children:"Sonu\xe7 g\xf6rseli yok"})}),(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("h3",{className:"text-base font-extrabold text-slate-950",children:[n+1,". ",a.resultText]}),(0,r.jsx)("button",{type:"button",className:"btn btn-sm btn-danger",onClick:()=>(a=>{let r=e.resultItems.filter((e,t)=>
1t!==a),n=e.quizItems.map(e=>({...e,answers:e.answers.filter(e=>e.relatedResult!==a)}));t("resultItems",r),t("quizItems",n)})(n),children:(0,r.jsx)(w.A,{className:"h-4 w-4"})})]}),(0,r.jsx)("p",{className:"mt-2 line-clamp-3 text-sm leading-6 text-slate-600",children:a.resultDescription})]})]},`${a.resultText}-${n}`))}),(0,r.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-4 md:p-5",children:[(0,r.jsx)("h3",{className:"text-base font-extrabold text-slate-950",children:"Yeni sonu\xe7 kartı"}),(0,r.jsxs)("div",{className:"mt-4 grid gap-4 md:grid-cols-[220px_minmax(0,1fr)] lg:grid-cols-[260px_minmax(0,1fr)]",children:[(0,r.jsx)($,{value:a.resultImage,allowGiphy:!0,label:"Sonu\xe7 g\xf6rseli",aspect:1,previewClassName:"relative aspect-square w-full overflow-hidden rounded-xl bg-slate-100",onChange:e=>n({...a,resultImage:e})}),(0,r.jsxs)("div",{className:"grid gap-3",children:[(0,r.jsx)("input",{placeholder:"Sonu\xe7 baÅlıÄı",className:"input",value:a.resultText,onChange:e=>n({...a,resultText:e.target.value})}),(0,r.jsx)("textarea",{placeholder:"Sonu\xe7 a\xe7ıklaması",className:"input min-h-[130px]",value:a.resultDescription,onChange:e=>n({...a,resultDescription:e.target.value})}),(0,r.jsxs)("button",{type:"button",className:"btn btn-dark justify-center md:w-fit",onClick:()=>{if(e.resultItems?.length>=12)return void g.Ay.error("En fazla 12 test sonucu ekleyebilirsiniz");(!a.resultText||a.resultText.trim().length<5?(g.Ay.error("Sonu\xe7 minimum 5 karakter olmalıdır"),1):a.resultText.trim().length>200?(g.Ay.error("Sonu\xe7 en fazla 200 karakter olmalıdır"),1):!a.resultDescription||a.resultDescription.trim().length<10?(g.Ay.error("Sonu\xe7 a\xe7ıklaması minimum 10 karakter olmalıdır"),1):a.resultDescription.trim().length>500&&(g.Ay.error("Sonu\xe7 a\xe7ıklaması en fazla 500 karakter olmalıdır"),1))||(t("resultItems",[...e.resultItems,a]),n(eo))},children:[(0,r.jsx)(Y.A,{className:"h-4 w-4"}),"Sonu\xe7 ekle"]})]})]})]}),(0,r.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4",children:[(0,r.jsx)("p",{className:"text-sm font-extrabold text-slate-900",children:"Test soruları"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-slate-500",children:"Her cevap bir sonu\xe7 kartına baÄlanır. Bu baÄ test sonucunu belirler."})]}),e.quizItems?.length>0&&(0,r.jsx)("div",{className:"grid gap-3",children:e.quizItems.map((a,n)=>(0,r.jsxs)("article",{className:"rounded-2xl border border-slate-200 bg-white p-4",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("h3",{className:"text-base font-extrabold text-slate-950",children:[n+1,". ",a.question]}),(0,r.jsxs)("button",{type:"button",className:"btn btn-sm btn-danger flex-shrink-0",onClick:()=>{t("quizItems",e.quizItems.filter((e,t)=>t!==n))},children:[(0,r.jsx)(w.A,{className:"h-4 w-4"}),"Sil"]})]}),a.questionImage&&(0,r.jsx)("div",{className:"relative mt-4 aspect-video overflow-hidden rounded-xl bg-slate-100",children:(0,r.jsx)(K(),{src:a.questionImage,alt:a.question,fill:!0,sizes:"(max-width: 767px) calc(100vw - 3rem), 720px",unoptimized:(0,b.xz)(a.questionImage),className:"object-cover"})}),(0,r.jsx)("div",{className:"mt-4 grid gap-2 md:grid-cols-2",children:a.answers.map((t,a)=>(0,r.jsxs)("div",{className:"rounded-xl bg-slate-50 p-3",children:[(0,r.jsx)("p",{className:"text-sm font-bold text-slate-800",children:t.answerText}),(0,r.jsx)("p",{className:"mt-1 text-xs leading-5 text-slate-500",children:t.answerDescription}),(0,r.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-xs font-bold text-teal-700",children:[(0,r.jsx)(ei.A,{className:"h-4 w-4"}),e.resultItems[t.relatedResult]?.resultText||"Sonu\xe7 bulunamadı"]})]},`${t.answerText}-${a}`))})]},`${a.question}-${n}`))}),e.resultItems?.length>0?(0,r.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-4 md:p-5",children:[(0,r.jsx)("h3",{className:"text-base font-extrabold text-slate-950",children:"Yeni test sorusu"}),(0,r.jsxs)("div",{className:"mt-4 grid gap-4",children:[(0,r.jsx)("input",{placeholder:"Soru",className:"input",value:s.question,onChange:e=>l({...s,question:e.target.value})}),(0,r.jsx)($,{value:s.questionImage,allowGiphy:!0,label:"Soru g\xf6rseli",aspect:16/9,previewClassName:"relative aspect-video w-full overflow-hidden rounded-xl bg-slate-100",onChange:e=>l({...s,questionImage:e})}),s.answers.length>0&&(0,r.jsx)("div",{className:"grid gap-2 md:grid-cols-2",children:s.answers.map((t,a)=>(0,r.jsx)("div",{className:"rounded-xl bg-slate-50 p-3",children:(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-bold text-slate-800",children:t.answerText}),(0,r.jsx)("p",{className:"mt-1 text-xs text-slate-500",children:e.resultItems[t.relatedResult]?.resultText})]}),(0,r.jsx)("button",{type:"button",className:"btn btn-sm btn-danger",onClick:()=>{l({...s,answers:s.answers.filter((e,t)=>
1t!==a)})},children:(0,r.jsx)(w.A,{className:"h-4 w-4"})})]})},a))}),(0,r.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4",children:[(0,r.jsx)("p",{className:"mb-4 text-sm font-extrabold text-slate-900",children:"Cevap ekle"}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-[200px_minmax(0,1fr)] lg:grid-cols-[220px_minmax(0,1fr)]",children:[(0,r.jsx)($,{value:i.answerImage,allowGiphy:!0,label:"Cevap g\xf6rseli",aspect:1,previewClassName:"relative aspect-square w-full overflow-hidden rounded-xl bg-slate-100",onChange:e=>o({...i,answerImage:e})}),(0,r.jsxs)("div",{className:"grid gap-3",children:[(0,r.jsx)("input",{placeholder:"Cevap metni",className:"input",value:i.answerText,onChange:e=>o({...i,answerText:e.target.value})}),(0,r.jsx)("textarea",{placeholder:"Cevap a\xe7ıklaması",className:"input min-h-[100px]",value:i.answerDescription,onChange:e=>o({...i,answerDescription:e.target.value})}),(0,r.jsxs)("select",{className:"input",value:i.relatedResult,onChange:e=>o({...i,relatedResult:""===e.target.value?"":Number(e.target.value)}),children:[(0,r.jsx)("option",{value:"",children:"Sonu\xe7 se\xe7"}),e.resultItems.map((e,t)=>(0,r.jsx)("option",{value:t,children:e.resultText},`${e.resultText}-${t}`))]}),(0,r.jsxs)("button",{type:"button",className:"btn btn-light justify-center md:w-fit",onClick:()=>{(!i.answerText||i.answerText.trim().length<10?(g.Ay.error("Cevap minimum 10 karakter olmalıdır"),1):i.answerText.trim().length>200?(g.Ay.error("Cevap en fazla 200 karakter olmalıdır"),1):!i.answerDescription||i.answerDescription.trim().length<10?(g.Ay.error("Cevap a\xe7ıklaması minimum 10 karakter olmalıdır"),1):i.answerDescription.trim().length>200?(g.Ay.error("Cevap a\xe7ıklaması en fazla 200 karakter olmalıdır"),1):""===i.relatedResult&&(g.Ay.error("Cevabın baÄlanacaÄı sonucu se\xe7iniz"),1))||(l({...s,answers:[...s.answers,i]}),o(ec))},children:[(0,r.jsx)(Y.A,{className:"h-4 w-4"}),"Cevabı ekle"]})]})]})]}),(0,r.jsx)("button",{type:"button",className:"btn btn-dark justify-center md:w-fit",onClick:()=>{if(e.quizItems?.length>=24)return void g.Ay.error("En fazla 24 test sorusu ekleyebilirsiniz");(!s.question||s.question.trim().length<10?(g.Ay.error("Soru minimum 10 karakter olmalıdır"),1):s.question.trim().length>200?(g.Ay.error("Soru en fazla 200 karakter olmalıdır"),1):(!s.answers||s.answers.length<2)&&(g.Ay.error("Her test sorusunda en az 2 cevap olmalıdır"),1))||(t("quizItems",[...e.quizItems,s]),l(ed),o(ec))},children:"Test sorusunu ekle"})]})]}):(0,r.jsx)("div",{className:"rounded-2xl border border-dashed border-slate-300 bg-white p-6 text-center text-sm font-semibold text-slate-500",children:"Soru eklemek i\xe7in \xf6nce sonu\xe7 kartı oluÅtur."})]})}var eu=a(6978);function ep({src:e,initialAlt:t="",editing:a,onClose:s,onConfirm:l}){let[i,o]=(0,f.useState)(n(t)?t:""),[d,c]=(0,f.useState)(""),[m,u]=(0,f.useState)(!1),p=(0,f.useRef)(!1),g=(0,f.useRef)(null),x=(0,f.useId)(),[h,b]=(0,f.useState)();(0,f.useEffect)(()=>{let e=window.visualViewport,t=()=>b({height:e?.height||window.innerHeight,top:e?.offsetTop||0});return t(),e?.addEventListener("resize",t),e?.addEventListener("scroll",t),()=>{e?.removeEventListener("resize",t),e?.removeEventListener("scroll",t)}},[]);let v=async()=>{if(!p.current){if(!n(i)){c("G\xf6rselde ne olduÄunu anlatan kısa bir a\xe7ıklama yazın."),g.current?.focus();return}p.current=!0,u(!0),c("");try{await l(i.trim())}catch(e){c(e instanceof Error?e.message:"G\xf6rsel kaydedilemedi. Tekrar deneyin.")}finally{p.current=!1,u(!1)}}};return(0,r.jsxs)(eu.lG,{open:!0,onClose:()=>{p.current||s()},initialFocus:g,className:"fixed inset-0 z-[1500]",children:[(0,r.jsx)("div",{className:"fixed inset-0 bg-slate-950/45 backdrop-blur-sm","aria-hidden":"true"}),(0,r.jsx)("div",{className:"fixed inset-x-0 flex items-end justify-center md:items-center md:p-6",style:{to
1p:h?.top||0,height:h?.height||"100dvh"},children:(0,r.jsxs)(eu.lG.Panel,{className:"flex max-h-full w-full max-w-lg flex-col overflow-hidden rounded-t-3xl bg-white text-slate-900 shadow-2xl md:rounded-3xl","aria-busy":m,children:[(0,r.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-slate-100 px-5 py-3",children:[(0,r.jsx)(eu.lG.Title,{className:"text-lg font-bold",children:"G\xf6rsel a\xe7ıklaması"}),(0,r.jsx)("button",{type:"button",onClick:s,disabled:m,"aria-label":"Kapat",className:"flex h-11 w-11 items-center justify-center rounded-full hover:bg-slate-100 disabled:opacity-40",children:(0,r.jsx)(S.A,{className:"h-5 w-5"})})]}),(0,r.jsxs)("div",{className:"min-h-0 overflow-y-auto overscroll-contain px-5 py-4",children:[(0,r.jsx)("img",{src:e,alt:"Se\xe7ilen g\xf6rselin \xf6nizlemesi",className:"mx-auto mb-4 max-h-[20dvh] max-w-full rounded-xl bg-slate-50 object-contain"}),(0,r.jsx)("label",{htmlFor:x,className:"mb-2 block text-sm font-semibold",children:"G\xf6rselde ne var?"}),(0,r.jsx)(eu.lG.Description,{id:`${x}-help`,className:"mb-3 text-sm leading-6 text-slate-500",children:"G\xf6rseli bir veya iki c\xfcmleyle anlatın. Bu a\xe7ıklama, g\xf6rseli g\xf6remeyen kiÅilere ve arama motorlarına yardımcı olur."}),(0,r.jsx)("textarea",{ref:g,id:x,value:i,rows:3,disabled:m,onChange:e=>{o(e.target.value),c("")},"aria-describedby":`${x}-help${d?` ${x}-error`:""}`,"aria-invalid":!!d,placeholder:"\xd6rneÄin: Parkta kırmızı bir topun peÅinden koÅan k\xf6pek",className:"block w-full resize-none rounded-xl border border-slate-300 bg-white p-3 text-base leading-6 outline-none focus:border-slate-600 focus:ring-2 focus:ring-slate-200 disabled:opacity-60"}),d&&(0,r.jsx)("p",{id:`${x}-error`,role:"alert",className:"mt-2 text-sm text-rose-600",children:d})]}),(0,r.jsxs)("div",{className:"flex shrink-0 gap-3 border-t border-slate-100 px-5 pt-3",style:{paddingBottom:"max(16px, env(safe-area-inset-bottom))"},children:[(0,r.jsx)("button",{type:"button",disabled:m,onClick:s,className:"min-h-11 flex-1 rounded-xl border border-slate-200 px-4 py-2 font-semibold disabled:opacity-40",children:"Vazge\xe7"}),(0,r.jsx)("button",{type:"button",disabled:m,onClick:()=>void v(),className:"min-h-11 flex-1 rounded-xl bg-slate-900 px-4 py-2 font-semibold text-white disabled:opacity-60",children:m?"Kaydediliyorâ¦":a?"A\xe7ıklamayı kaydet":"G\xf6rseli ekle"})]})]})})]})}var eg=a(24877);function ex({open:e,onClose:t,onSelect:a}){let[n,s]=(0,f.useState)(""),[l,i]=(0,f.useState)([]),[o,d]=(0,f.useState)(!1),[c,m]=(0,f.useState)(""),[u,p]=(0,f.useState)(0),g=(0,f.useRef)(0);(0,f.useEffect)(()=>{if(!e){g.current+=1,i([]),d(!1),m("");return}s("")},[e]),(0,f.useEffect)(()=>{if(!e)return;let t=n.trim(),a=window.setTimeout(()=>{let e=++g.current;d(!0),m(""),i([]),q({apiKey:"KERuVZ8bGhaPyxrtsHUFS9qfA09rIWF7",query:t,limit:24}).then(t=>{e===g.current&&(i(t),d(!1))}).catch(t=>{e===g.current&&(i([]),d(!1),m(t instanceof Error&&t.message?t.message:"GIF sonu\xe7ları alınamadı."))})},300*!!t);return()=>window.clearTimeout(a)},[e,n,u]);let x=!o&&!l.length&&!c,h=!!n.trim();return(0,r.jsx)(k.A,{open:e,onClose:t,className:"flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"w-full max-w-6xl overflow-hidden rounded-[28px] border border-slate-200 bg-white shadow-[0_30px_90px_rgba(15,23,42,0.2)]",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-slate-200 bg-[linear-gradient(180deg,rgba(248,250,252,0.98),rgba(255,255,255,0.96))] px-5 py-5 sm:px-6",children:[(0,r.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold tracking-tight text-slate-900",children:"GIF ekle"}),(0,r.jsx)("p",{className:"text-sm leading-6 text-slate-500",children:"AradıÄın GIFâi bul, tek dokunuÅla imlecin bulunduÄu yere ekle."})]}),(0,r.jsx)("button",{type:"button",onClick:t,className:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 transition hover:border-slate-300 hover:text-slate-900",children:(0,r.jsx)(S.A,{className:"h-5 w-5"})})]}),(0,r.jsx)("div",{className:"border-b border-slate-200 px-5 py-4 sm:px-6",children:(0,r.jsxs)("label",{className:"relative block",children:[(0,r.jsx)(I.A,{className:"pointer-events-none absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-slate-400"}),(0,r.jsx)("input",{autoFocus:!0,value:n,onChange:e=>s(e.target.value),placeholder:"GIF ara",className:"h-12 w-full rounded-2xl border border-slate-200 bg-slate-50 pl-11 pr-4 text-sm text-slate-900 outline-none transition placeholder:text-slate-400 focus:border-slate-300 focus:bg-white"})]})}),(0,r.jsx)("div",{className:"max-h-[72vh] overflow-y-auto px-3 py-3 sm:px-4",children:c?(0,r.jsxs)("div",{className:"flex min-h-[20rem] flex-col items-center justify-center gap-3 rounded-[24px] border border-dashed border-slate-200 bg-slate-50 px-6 py-10 text-center",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-slate-900",children:"GIFâler y\xfcklenemedi"}),(0,r.jsx)("p",{className:"max-w-md text-sm leading-6 text-slate-500",children:c}),(0,r.jsxs)("button",{type:"button",onClick:()=>p(e=>e+1),className:"inline-flex items-center gap-2 rounded-full bg-slate-900 px-4 py-2 text-xs font-semibold text-white transition hover:bg-slate-800",children:[(0,r.jsx)(D.A,{className:"h-4 w-4"}),"Tekrar dene"]})]}
1):o&&!l.length?(0,r.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4",children:Array.from({length:8}).map((e,t)=>(0,r.jsx)("div",{className:"aspect-[4/5] animate-pulse rounded-[20px] bg-slate-100"},t))}):x?(0,r.jsxs)("div",{className:"flex min-h-[20rem] flex-col items-center justify-center rounded-[24px] border border-dashed border-slate-200 bg-slate-50 px-6 py-10 text-center",children:[(0,r.jsx)("p",{className:"text-sm font-semibold text-slate-900",children:h?"Sonu\xe7 bulunamadı":"GIFâler hazırlanıyor"}),(0,r.jsx)("p",{className:"mt-2 max-w-md text-sm leading-6 text-slate-500",children:h?"BaÅka bir kelime deneyin veya aramayı temizleyin.":"Pop\xfcler GIFâler getiriliyor."})]}):(0,r.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4",children:l.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>a(e),className:"group relative overflow-hidden rounded-[20px] border border-slate-200 bg-slate-100 text-left shadow-[0_10px_30px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-slate-300 hover:shadow-[0_16px_40px_rgba(15,23,42,0.12)]",children:(0,r.jsxs)("div",{className:"relative aspect-[4/5] w-full overflow-hidden bg-slate-100",children:[(0,r.jsx)("img",{src:e.previewUrl,alt:e.title,loading:"lazy",decoding:"async",onLoad:()=>{M(e.analyticsLoadUrl)},className:"h-full w-full object-cover transition duration-300 group-hover:scale-[1.03]"}),(0,r.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 bg-gradient-to-t from-slate-950/60 via-slate-950/15 to-transparent px-3 py-2",children:(0,r.jsx)("p",{className:"line-clamp-2 text-[11px] font-medium leading-4 text-white/90",children:e.title})})]})},e.id))})}),(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 border-t border-slate-200 bg-slate-50 px-5 py-3 text-[11px] font-medium uppercase tracking-[0.16em] text-slate-500 sm:px-6",children:[(0,r.jsx)("span",{children:"Powered by GIPHY"}),(0,r.jsx)("span",{children:h?"Arama sonucu":"Pop\xfcler GIFâler"})]})]})})}let eh=(e="")=>JSON.stringify(e).replace(/<\/script/gi,"<\\/script");var eb=a(57734),ef=a(87498),ev=a(78616);let ew=["image/png","image/jpeg","image/jpg","image/webp","image/gif","image/heic","image/heif"];function ey({initialHtml:e,placeholder:t,height:a,onChange:n,onRequestImage:s,onRequestDescription:l,descriptionRequest:i,onRequestVideo:o,onRequestEmoji:d,onRequestGif:c,onRequestUnsplash:m,onRequestSocialEmbed:u,isUploadingVideo:p=!1,mentionApiBaseUrl:g,mentionAuthHeader:x}){let h=(0,f.useRef)(null),b=(0,f.useRef)(e||"<p></p>"),v=(0,f.useRef)(""),w=(0,f.useRef)(null),y=(0,f.useRef)(!1),[j,k]=(0,f.useState)(e||"<p></p>"),N=(0,f.useMemo)(()=>(function({initialHtml:e,placeholder:t,mentionApiBaseUrl:a="",mentionAuthHeader:r=""}){return`<!doctype html> 2<html lang="tr"> 3 <head> 4 <meta charset="utf-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> 6 <style> 7 :root { 8 color-scheme: light; 9 --bg: #f8fafc; 10 --surface: rgba(255, 255, 255, 0.92); 11 --surface-soft: #eff6ff; 12 --border: rgba(15, 23, 42, 0.1); 13 --border-strong: rgba(15, 23, 42, 0.16); 14 --text: #0f172a; 15 --muted: #64748b; 16 --accent: #0f172a; 17 --accent-soft: #dbeafe; 18 --toolbar-height: 76px; 19 } 20 * { box-sizing: border-box; } 21 html, body { 22 width: 100%; 23 height: 100%; 24 margin: 0; 25 overflow: hidden; 26 background: 27 radial-gradient(circle at top, rgba(191, 219, 254, 0.26), transparent 38%), 28 linear-gradient(180deg, #f8fafc 0%, #fefefe 100%); 29 font-family: "Manrope", system-ui, sans-serif; 30 -webkit-font-smoothing: antialiased; 31 -moz-osx-font-smoothing: grayscale; 32 color: var(--text); 33 } 34 body { position: relative; } 35 .toolbar { 36 position: fixed; 37 top: 0; 38 left: 0; 39 right: 0; 40 z-index: 20; 41 display: flex; 42 flex-wrap: nowrap; 43 gap: 8px; 44 align-items: center; 45 min-height: var(--toolbar-height); 46 padding: 14px 16px; 47 border-bottom: 1px solid var(--border); 48 background: rgba(248, 250, 252, 0.82); 49 backdrop-filter: blur(18px); 50 -webkit-backdrop-filter: blur(18px); 51 overflow-x: auto; 52 overflow-y: hidden; 53 overscroll-behavior-x: contain; 54 -webkit-overflow-scrolling: touch; 55 scrollbar-width: none; 56 } 57 .toolbar::-webkit-scrollbar { display: none; } 58 .toolbar button { 59 border: 1px solid var(--border); 60 background: var(--surface); 61 color: var(--text); 62 border-radius: 999px; 63 flex: 0 0 auto; 64 min-height: 40px; 65 padding: 9px 14px; 66 font-size: 12px; 67 font-weight: 600; 68 letter-spacing: 0.01em; 69 box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); 70 transition: background 140ms ease, border-color 140ms ease, transform 140ms ease; 71 } 72 .toolbar button:hover { background: #ffffff; border-color: var(--border-strong); } 73 .toolbar button:active { transform: scale(0.98); } 74 .toolbar select { 75 border: 1px solid var(--border); 76 background: var(--surface); 77 color: var(--text); 78 border-radius: 999px; 79 flex: 0 0 auto; 80 min-height: 40px;
81 padding: 9px 30px 9px 14px; 82 font-size: 12px; 83 font-weight: 600; 84 letter-spacing: 0.01em; 85 box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); 86 } 87 .toolbar select:focus { outline: 2px solid rgba(37, 99, 235, 0.24); outline-offset: 2px; } 88 #editor-shell { 89 height: 100%; 90 overflow-y: auto; 91 overflow-x: hidden; 92 overscroll-behavior: contain; 93 -webkit-overflow-scrolling: touch; 94 padding-top: calc(var(--toolbar-height) + 8px); 95 } 96 #editor { 97 min-height: calc(100% - var(--toolbar-height) - 8px); 98 padding: 22px 18px 56px; 99 outline: none; 100 font-size: 16px; 101 line-height: 1.75; 102 color: var(--text); 103 } 104 #editor:empty:before { 105 content: attr(data-placeholder); 106 color: var(--muted); 107 } 108 #editor h1, #editor h2, #editor h3, #editor h4, #editor h5, #editor h6 { 109 line-height: 1.18; 110 margin: 1.15rem 0 0.8rem; 111 font-weight: 600; 112 letter-spacing: -0.03em; 113 } 114 #editor h1 { font-size: 2rem; } 115 #editor h2 { font-size: 1.6rem; } 116 #editor h3 { font-size: 1.3rem; } 117 #editor h4 { font-size: 1.15rem; } 118 #editor h5 { font-size: 1.05rem; } 119 #editor h6 { font-size: 0.95rem; } 120 #editor p, #editor blockquote, #editor ul, #editor ol { margin: 0 0 1rem; } 121 #editor blockquote { 122 border-left: 4px solid #cbd5e1; 123 margin-left: 0; 124 padding-left: 14px; 125 color: #334155; 126 background: #f8fafc; 127 padding-top: 10px; 128 padding-bottom: 10px; 129 border-radius: 0 16px 16px 0; 130 } 131 #editor ul, #editor ol { padding-left: 22px; } 132 #editor img { 133 display: block; 134 width: 100%; 135 max-width: 100%; 136 height: auto; 137 border-radius: 18px; 138 margin: 16px 0; 139 } 140 [data-block="image"] { margin: 16px 0; } 141 [data-block="socialEmbed"] { margin: 16px 0; } 142 .social-embed-card { 143 display: grid; 144 gap: 8px; 145 border: 1px solid rgba(15, 23, 42, 0.12); 146 border-radius: 18px; 147 background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); 148 padding: 14px; 149 box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08); 150 } 151 .social-embed-kicker { 152 color: #0f766e; 153 font-size: 11px; 154 font-weight: 900; 155 text-transform: uppercase; 156 } 157 .social-embed-title { 158 overflow: hidden; 159 color: #0f172a; 160 font-size: 15px; 161 font-weight: 900; 162 text-overflow: ellipsis; 163 white-space: nowrap; 164 } 165 .social-embed-url { 166 overflow: hidden; 167 color: #64748b; 168 font-size: 12px; 169 font-weight: 700; 170 text-overflow: ellipsis; 171 white-space: nowrap; 172 } 173 a { color: #2563eb; } 174 .mention-popover { 175 position: fixed; 176 left: 14px; 177 right: 14px; 178 bottom: 16px; 179 z-index: 30; 180 display: none; 181 overflow: hidden; 182 border: 1px solid rgba(15, 23, 42, 0.12); 183 border-radius: 18px; 184 background: rgba(255, 255, 255, 0.98); 185 box-shadow: 0 18px 55px rgba(15, 23, 42, 0.18); 186 } 187 .mention-tabs { 188 display: grid; 189 grid-template-columns: repeat(3, minmax(0, 1fr)); 190 gap: 6px; 191 padding: 6px; 192 border-bottom: 1px solid rgba(15, 23, 42, 0.08); 193 background: #f8fafc; 194 } 195 .mention-tab { 196 min-height: 34px; 197 border: 0; 198 border-radius: 12px; 199 background: transparent; 200 color: #64748b; 201 font-size: 12px; 202 font-weight: 800; 203 } 204 .mention-tab.active { 205 background: #ffffff; 206 color: #0f766e; 207 box-shadow: 0 1px 5px rgba(15, 23, 42, 0.08); 208 } 209 .mention-results { 210 max-height: 240px; 211 max-height: min(260px, calc(100vh - var(--toolbar-height) - 110px)); 212 max-height: min(260px, calc(100dvh - var(--toolbar-height) - 110px)); 213 overflow-y: auto; 214 overscroll-behavior-y: contain; 215 -webkit-overflow-scrolling: touch; 216 padding: 6px; 217 scrollbar-gutter: stable; 218 touch-action: pan-y; 219 } 220 .mention-item { 221 display: flex; 222 width: 100%; 223 align-items: center; 224 gap: 10px; 225 border: 0; 226 border-radius: 13px; 227 background: transparent; 228 padding: 9px 10px; 229 color: #0f172a; 230 scroll-margin: 6px; 231 text-align: left; 232 } 233 .mention-item.active, 234 .mention-item:hover { 235 background: #ecfdf5; 236 color: #134e4a; 237 } 238 .mention-avatar { 239 display: flex; 240 height: 34px; 241 width: 34px; 242 flex: 0 0 auto; 243 align-items: center; 244 justify-content: center; 245 overflow: hidden; 246 border-radius: 999px; 247 background: #f1f5f9; 248 color: #64748b; 249 font-size: 12px; 250 font-weight: 900; 251 } 252 .mention-avatar img { 253 height: 100%; 254 width: 100%; 255 margin: 0; 256 border-radius: 999px; 257 object-fit: cover; 258 } 259 .mention-copy { 260 min-width: 0; 261 flex: 1; 262 } 263 .mention-title, 264 .mention-subtitle { 265 display: block; 266 overflow: hidden; 267 text-overflow: ellipsis; 268 white-space: nowrap; 269 } 270 .mention-title { 271 font-size: 13px; 272 font-weight: 900; 273 } 274 .mention-subtitle { 275 margin-top: 2px; 276 color: #64748b; 277 font-size: 11px; 278 font-weight: 700; 279 } 280 .mention-empty { 281 padding: 14px; 282 color: #64748b; 283 font-size: 13px; 284 font-weight: 700; 285 } 286 </style> 287 </head> 288 <body> 289 <div class="toolbar"> 290 <select data-block-format title="BaÅlık" aria-label="BaÅlık"> 291 <option value="p">Paragraf</option> 292 <option value="h1">H1</option> 293 <option value="h2">H2</option> 294 <option value="h3">H3</option> 295 <option value="h4">H4</option> 296 <option value="h5">H5</option> 297 <option value="h6">H6</option> 298 </select> 299 <button data-command="bold" type="button" title="Kalın"><strong>B</strong></button> 300 <button data-command="italic" type="button" title="İtalik"><em>I</em></button> 301 <button data-command="underline" type="button" title="Altı \xc7izili"><u>U</u></button> 302 <button data-command="video" type="button" title="Video">Video</button> 303 <button data-command="emoji" type="button" title="Emoji">ð</button> 304 <button data-command="gif" type="button" title="GIF">GIF</button> 305 <button data-command="unsplash" type="button" title="Unsplash fotoÄrafı">Unsplash</button> 306 <button data-command="image" type="button" title="G\xf6rsel">ð¼</button> 307 <button data-command="image-description" type="button">A\xe7ıklamayı d\xfczenle</button> 308 <button data-command="social-embed" type="button" title="X/Twitter">Embed</button> 309 </div> 310 <div id="editor-shell"> 311 <div id="editor" contenteditable="true" data-placeholder=${eh(t)}></div> 312 </div> 313 <div id="mention-popover" class="mention-popover" aria-live="polite"></div> 314 <script> 315 const MARKER = ${eh("wuubi-rich-text-editor")}; 316 const editor = document.getElementById('editor'); 317 const editorShell = document.getElementById('editor-shell'); 318 const mentionPopover = document.getElementById('mention-popover'); 319 const initialHtml = ${eh(e||"<p></p>")}; 320 const mentionApiBaseUrl = ${eh(a||"")}; 321 const mentionAuthHeader = ${eh(r||"")}; 322 let savedRange = null; 323 let selectedImage = null; 324 let descriptionImage = null; 325 326 function bodyImages() { 327 return Array.from(editor.querySelectorAll('img[src]')).filter(image => !image.closest('[data-block="socialEmbed"]')); 328 } 329 330 function describeImage(image) { 331 if (!image || !editor.contains(image)) return; 332 descriptionImage = image; 333 selectedImage = image; 334 captureSelection(); 335 image.scrollIntoView({ block: 'center' }); 336 post({ type: 'request-image-description', src: image.getAttribute('src'), alt: image.getAttribute('alt') || '' }); 337 } 338 339 function updateImageDescription(alt) { 340 if (!descriptionImage || !editor.contains(descriptionImage)) return false;
341 const replacement = descriptionImage.cloneNode(true); 342 replacement.setAttribute('alt', alt); 343 const range = document.createRange(); 344 range.selectNode(descriptionImage); 345 editor.focus(); 346 const selection = window.getSelection(); 347 selection.removeAllRanges(); 348 selection.addRange(range); 349 // Keep the edit in the browser's undo history and preserve all media attributes. 350 const updated = document.execCommand('insertHTML', false, replacement.outerHTML); 351 if (!updated) return false; 352 descriptionImage = null; 353 selectedImage = null; 354 captureSelection(); 355 emitChange(); 356 return true; 357 } 358 let isRestoringSelection = false; 359 let mentionState = null; 360 let mentionItems = []; 361 let mentionType = 'user'; 362 let mentionHighlightIndex = 0; 363 let mentionTimer = null; 364 let isMentionPopoverInteracting = false; 365 const mentionTabs = [ 366 { type: 'user', label: 'Kullanıcı' }, 367 { type: 'group', label: 'Grup' }, 368 { type: 'content', label: 'İ\xe7erik' }, 369 ]; 370 371 function post(payload) { 372 const message = { source: MARKER, ...payload }; 373 if (window.ReactNativeWebView && window.ReactNativeWebView.postMessage) { 374 window.ReactNativeWebView.postMessage(JSON.stringify(message)); 375 } 376 if (window.parent && window.parent !== window) { 377 window.parent.postMessage(message, '*'); 378 } 379 } 380 381 function nodeBelongsToEditor(node) { 382 const element = 383 node && node.nodeType === Node.TEXT_NODE ? node.parentNode : node; 384 return Boolean(element && editor.contains(element)); 385 } 386 387 function rangeBelongsToEditor(range) { 388 return Boolean( 389 range && 390 nodeBelongsToEditor(range.startContainer) && 391 nodeBelongsToEditor(range.endContainer) 392 ); 393 } 394 395 function selectionBelongsToEditor(selection) { 396 if (!selection || !selection.rangeCount) return false; 397 return rangeBelongsToEditor(selection.getRangeAt(0)); 398 } 399 400 function captureSelection() { 401 if (isRestoringSelection) return; 402 const selection = window.getSelection(); 403 if (!selectionBelongsToEditor(selection)) return; 404 savedRange = selection.getRangeAt(0).cloneRange(); 405 } 406 407 function focusEditorWithoutCapturingSelection() { 408 isRestoringSelection = true; 409 try { 410 editor.focus({ preventScroll: true }); 411 } catch (_error) { 412 editor.focus(); 413 } 414 } 415 416 function unlockSelectionCaptureSoon() { 417 window.setTimeout(() => { 418 isRestoringSelection = false; 419 }, 0); 420 } 421 422 function restoreSelection() { 423 if (!savedRange) return false; 424 if (!rangeBelongsToEditor(savedRange)) { 425 savedRange = null; 426 return false; 427 } 428 const selection = window.getSelection(); 429 if (!selection) return false; 430 try { 431 focusEditorWithoutCapturingSelection(); 432 selection.removeAllRanges(); 433 selection.addRange(savedRange); 434 return true; 435 } catch (_error) { 436 savedRange = null; 437 return false; 438 } finally { 439 unlockSelectionCaptureSoon(); 440 } 441 } 442 443 function getTopLevelEditorChild(node) { 444 let current = 445 node && node.nodeType === Node.TEXT_NODE ? node.parentNode : node; 446 while (current && current.parentNode && current.parentNode !== editor) { 447 current = current.parentNode; 448 } 449 return current && current.parentNode === editor ? current : null; 450 } 451 452 function isSplittableBlock(node) { 453 if (!node || node.nodeType !== Node.ELEMENT_NODE) return false; 454 const tag = node.tagName.toLowerCase(); 455 return tag === 'p' || tag === 'div' || tag === 'blockquote' || /^h[1-6]$/.test(tag); 456 } 457 458 function fragmentHasMeaningfulContent(fragment) { 459 return Array.from(fragment.childNodes).some((child) => { 460 if (child.nodeType === Node.TEXT_NODE) { 461 return String(child.textContent || '').length > 0; 462 } 463 if (child.nodeType !== Node.ELEMENT_NODE) return false;
464 return child.tagName.toLowerCase() !== 'br'; 465 }); 466 } 467 468 function createEmptyParagraph() { 469 const paragraph = document.createElement('p'); 470 paragraph.innerHTML = '<br />'; 471 return paragraph; 472 } 473 474 function cloneBlockShell(block) { 475 const clone = block.cloneNode(false); 476 if (clone.nodeType === Node.ELEMENT_NODE) { 477 clone.removeAttribute('id'); 478 } 479 return clone; 480 } 481 482 function replaceNodeWithNodes(node, nodes) { 483 const parent = node && node.parentNode; 484 if (!parent) return; 485 nodes.forEach((child) => { 486 parent.insertBefore(child, node); 487 }); 488 parent.removeChild(node); 489 } 490 491 function setSelectionAtStart(node) { 492 if (!node) return; 493 const selection = window.getSelection(); 494 if (!selection) return; 495 const nextRange = document.createRange(); 496 nextRange.setStart(node, 0); 497 nextRange.collapse(true); 498 selection.removeAllRanges(); 499 selection.addRange(nextRange); 500 } 501 502 function revealNode(node) { 503 if (!node || typeof node.scrollIntoView !== 'function') return; 504 try { 505 node.scrollIntoView({ block: 'center', behavior: 'smooth' }); 506 } catch (_error) { 507 node.scrollIntoView(); 508 } 509 } 510 511 function insertMediaBlock(mediaNode) { 512 if (!mediaNode) return; 513 514 const fallbackParagraph = createEmptyParagraph(); 515 516 restoreSelection(); 517 518 const selection = window.getSelection(); 519 if (!selectionBelongsToEditor(selection)) { 520 editor.appendChild(mediaNode); 521 editor.appendChild(fallbackParagraph); 522 setSelectionAtStart(fallbackParagraph); 523 revealNode(mediaNode); 524 captureSelection(); 525 return; 526 } 527 528 const range = selection.getRangeAt(0); 529 if (!range.collapsed) { 530 range.deleteContents(); 531 range.collapse(true); 532 } 533 534 const block = getTopLevelEditorChild(range.startContainer); 535 if (!block || !isSplittableBlock(block)) { 536 const insertionTarget = block && block.parentNode === editor ? block : null; 537 if (insertionTarget) { 538 editor.insertBefore(mediaNode, insertionTarget.nextSibling); 539 editor.insertBefore(fallbackParagraph, mediaNode.nextSibling); 540 } else { 541 editor.appendChild(mediaNode); 542 editor.appendChild(fallbackParagraph); 543 } 544 setSelectionAtStart(fallbackParagraph); 545 revealNode(mediaNode); 546 captureSelection(); 547 return; 548 } 549 550 const beforeRange = document.createRange(); 551 beforeRange.setStart(block, 0); 552 beforeRange.setEnd(range.startContainer, range.startOffset); 553 554 const afterRange = document.createRange(); 555 afterRange.setStart(range.startContainer, range.startOffset); 556 afterRange.setEnd(block, block.childNodes.length); 557 558 const beforeFragment = beforeRange.cloneContents(); 559 const afterFragment = afterRange.cloneContents(); 560 const beforeHasContent = fragmentHasMeaningfulContent(beforeFragment); 561 const afterHasContent = fragmentHasMeaningfulContent(afterFragment); 562 563 const nodes = []; 564 if (beforeHasContent) { 565 const beforeBlock = cloneBlockShell(block); 566 beforeBlock.appendChild(beforeFragment); 567 nodes.push(beforeBlock); 568 } 569 nodes.push(mediaNode); 570 571 const afterBlock = cloneBlockShell(block); 572 if (afterHasContent) { 573 afterBlock.appendChild(afterFragment); 574 } else { 575 afterBlock.innerHTML = '<br />'; 576 } 577 nodes.push(afterBlock); 578 579 replaceNodeWithNodes(block, nodes); 580 setSelectionAtStart(afterBlock); 581 revealNode(mediaNode); 582 captureSelection(); 583 } 584 585 function normalizeSegments(segments) { 586 const next = []; 587 segments.forEach((segment) => { 588 const text = String(segment.text || ''); 589 const prev = next[next.length - 1]; 590 if ( 591 prev && 592 prev.bold === Boolean(segment.bold) && 593 prev.italic === Boolean(segment.italic) && 594 (prev.link || null) === (segment.link || null) 595 ) { 596 prev.text += text; 597 return; 598 } 599 next.push({ 600 text, 601 ...(segment.bold ? { bold: true } : {}), 602 ...(segment.italic ? { italic: true } : {}), 603 ...(segment.link ? { link: segment.link } : {}), 604 }); 605 }); 606 return next.length ? next : [{ text: '' }]; 607 } 608 609 function walkInline(node, marks = {}) { 610 if (node.nodeType === Node.TEXT_NODE) { 611 return [{ text: node.nodeValue || '', ...marks }]; 612 } 613 if (node.nodeType !== Node.ELEMENT_NODE) { 614 return []; 615 } 616 617 const tag = node.tagName.toLowerCase(); 618 const nextMarks = { ...marks }; 619
620 if (tag === 'strong' || tag === 'b') nextMarks.bold = true; 621 if (tag === 'em' || tag === 'i') nextMarks.italic = true; 622 if (tag === 'a') nextMarks.link = node.getAttribute('href') || null; 623 if (tag === 'br') return [{ text: '\\n', ...nextMarks }]; 624 if (tag === 'img') return []; 625 if (tag === 'video' || tag === 'source') return []; 626 627 return Array.from(node.childNodes).flatMap((child) => 628 walkInline(child, nextMarks) 629 ); 630 } 631 632 function createParagraphBlock(node, type, extra) { 633 return { 634 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 635 type, 636 ...extra, 637 segments: normalizeSegments(walkInline(node)), 638 }; 639 } 640 641 function readMediaSource(element) { 642 if (!element || element.nodeType !== Node.ELEMENT_NODE) return ''; 643 644 const directSource = element.getAttribute('src'); 645 if (directSource) return directSource; 646 647 const sourceElement = 648 element.querySelector(':scope > source[src]') || element.querySelector('source[src]'); 649 if (sourceElement) { 650 return sourceElement.getAttribute('src') || ''; 651 } 652 653 return ''; 654 } 655 656 function decodeEmbedHtml(value) { 657 try { 658 return decodeURIComponent(String(value || '')); 659 } catch (_error) { 660 return ''; 661 } 662 } 663 664 function createImageBlock(image) { 665 return { 666 id: 'image-' + Date.now() + '-' + Math.random().toString(36).slice(2, 8), 667 type: 'image', src: image.getAttribute('src'), alt: image.getAttribute('alt') || '', 668 ...(image.getAttribute('width') ? { width: Number(image.getAttribute('width')) } : {}), 669 ...(image.getAttribute('height') ? { height: Number(image.getAttribute('height')) } : {}), 670 ...(image.getAttribute('data-asset-id') ? { assetId: image.getAttribute('data-asset-id') } : {}), 671 ...(image.getAttribute('srcset') ? { srcSet: image.getAttribute('srcset') } : {}), 672 ...(image.getAttribute('sizes') ? { sizes: image.getAttribute('sizes') } : {}), 673 }; 674 } 675 676 function buildDocument() { 677 const blocks = []; 678 679 const appendNode = (node) => { 680 if (node.nodeType === Node.TEXT_NODE) { 681 const text = String(node.textContent || '').trim(); 682 if (text) { 683 blocks.push({ 684 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 685 type: 'paragraph', 686 segments: [{ text }], 687 }); 688 } 689 return; 690 } 691 692 if (node.nodeType !== Node.ELEMENT_NODE) return; 693 const element = node; 694 const tag = element.tagName.toLowerCase(); 695 696 if (element.getAttribute('data-block') === 'image') { 697 const image = element.querySelector('img'); 698 if (image && image.getAttribute('src')) { 699 blocks.push(createImageBlock(image)); 700 } 701 return; 702 } 703 704 if (element.getAttribute('data-block') === 'video') { 705 const video = element.querySelector('video'); 706 const src = readMediaSource(video || element); 707 if (src) { 708 blocks.push({ 709 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 710 type: 'video', 711 src, 712 }); 713 } 714 return; 715 } 716 717 if (element.getAttribute('data-block') === 'socialEmbed') { 718 const url = element.getAttribute('data-url') || ''; 719 if (url) { 720 const provider = (element.getAttribute('data-provider') || 'x').toLowerCase(); 721 if (provider !== 'x') { 722 blocks.push({ 723 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 724 type: 'paragraph', 725 segments: [{ text: url, link: url }], 726 }); 727 return; 728 } 729 blocks.push({ 730 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 731 type: 'socialEmbed', 732 provider, 733 url, 734 html: decodeEmbedHtml(element.getAttribute('data-html') || ''), 735 title: element.getAttribute('data-title') || '', 736 authorName: element.getAttribute('data-author-name') || '', 737 thumbnailUrl: element.getAttribute('data-thumbnail-url') || '', 738 }); 739 } 740 return; 741 } 742 743 if (tag === 'img' && element.getAttribute('src')) { 744 blocks.push(createImageBlock(element)); 745 return; 746 } 747 748 if (tag === 'video') { 749 const src = readMediaSource(element); 750 if (src) { 751 blocks.push({ 752 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 753 type: 'video', 754 src, 755 }); 756 } 757 return; 758 } 759 760 // Quill HTML can put several images and text in the same paragraph. 761 // Preserve their order when producing the document used by SSR. 762 const nestedImages = Array.from(element.querySelectorAll('img[src]')); 763 if (nestedImages.length && !element.querySelector('[data-block="socialEmbed"], video')) { 764 let previousImage = null; 765 const appendTextRange = (endImage) => { 766 const range = document.createRange(); 767 if (previousImage) range.setStartAfter(previousImage); 768 else range.setStart(element, 0); 769 if (endImage) range.setEndBefore(endImage); 770 else range.setEnd(element, element.childNodes.length); 771 const fragment = range.cloneContents(); 772 if (String(fragment.textContent || '').trim()) { 773 const shell = element.cloneNode(false); 774 shell.appendChild(fragment); 775 appendNode(shell); 776 } 777 };
778 nestedImages.forEach(image => { 779 appendTextRange(image); 780 appendNode(image); 781 previousImage = image; 782 }); 783 appendTextRange(null); 784 return; 785 } 786 787 if (tag === 'ul' || tag === 'ol') { 788 const items = Array.from(element.querySelectorAll(':scope > li')).map((item) => 789 normalizeSegments(walkInline(item)) 790 ); 791 if (items.length) { 792 blocks.push({ 793 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 794 type: 'list', 795 ordered: tag === 'ol', 796 items, 797 }); 798 } 799 return; 800 } 801 802 if (/^h[1-6]$/.test(tag)) { 803 blocks.push(createParagraphBlock(element, 'heading', { level: Number(tag.slice(1)) })); 804 return; 805 } 806 807 if (tag === 'blockquote') { 808 blocks.push(createParagraphBlock(element, 'blockquote', {})); 809 return; 810 } 811 812 if (tag === 'p' || tag === 'div') { 813 const directImage = element.querySelector(':scope > img'); 814 const directVideo = element.querySelector(':scope > video'); 815 const textContent = String(element.textContent || '').trim(); 816 if (directImage && !textContent) { 817 blocks.push(createImageBlock(directImage)); 818 return; 819 } 820 if (directVideo && !textContent) { 821 const src = readMediaSource(directVideo); 822 if (src) { 823 blocks.push({ 824 id: \`block-\${Date.now()}-\${Math.random().toString(36).slice(2, 8)}\`, 825 type: 'video', 826 src, 827 }); 828 return; 829 } 830 } 831 } 832 833 blocks.push(createParagraphBlock(element, 'paragraph', {})); 834 }; 835 Array.from(editor.childNodes).forEach(appendNode); 836 837 return { 838 version: 1, 839 blocks: blocks.length 840 ? blocks 841 : [{ id: 'block-1', type: 'paragraph', segments: [{ text: '' }] }], 842 }; 843 } 844 845 function getPlainText(documentValue) { 846 return (documentValue.blocks || []) 847 .map((block) => { 848 if (block.type === 'image') return ''; 849 if (block.type === 'video') return ''; 850 if (block.type === 'socialEmbed') return ''; 851 if (block.type === 'list') { 852 return (block.items || []) 853 .map((item) => (item || []).map((segment) => segment.text || '').join('')) 854 .join('\\n'); 855 } 856 return (block.segments || []).map((segment) => segment.text || '').join(''); 857 }) 858 .filter(Boolean) 859 .join('\\n\\n') 860 .trim(); 861 } 862 863 function emitChange() {
864 bodyImages().forEach(image => { image.tabIndex = 0; }); 865 const documentValue = buildDocument(); 866 post({ 867 type: 'change', 868 html: editor.innerHTML, 869 bodyDocument: JSON.stringify(documentValue), 870 plainText: getPlainText(documentValue), 871 }); 872 } 873 874 function escapeHtml(value) { 875 return String(value || '') 876 .replace(/&/g, '&') 877 .replace(/</g, '<') 878 .replace(/>/g, '>') 879 .replace(/"/g, '"') 880 .replace(/'/g, '''); 881 } 882 883 function findMentionQuery(text) { 884 const atIndex = text.lastIndexOf('@'); 885 if (atIndex < 0) return null; 886 const before = atIndex > 0 ? text[atIndex - 1] : ''; 887 if (before && !/[\\s(]/.test(before)) return null; 888 const fragment = text.slice(atIndex); 889 if (/\\s/.test(fragment)) return null; 890 891 const prefixed = fragment.match(/^@(u|g|c)\\/([A-Za-z0-9._-]{0,80})$/); 892 const shorthand = fragment.match(/^@(u|g|c)$/); 893 const typed = fragment.match(/^@([A-Za-z0-9._-]{0,80})$/); 894 if (!prefixed && !shorthand && !typed) return null; 895 896 const typeByPrefix = { u: 'user', g: 'group', c: 'content' }; 897 return { 898 from: atIndex, 899 query: prefixed ? prefixed[2] : typed ? typed[1] : '', 900 type: prefixed 901 ? typeByPrefix[prefixed[1]] 902 : shorthand 903 ? typeByPrefix[shorthand[1]] 904 : null, 905 }; 906 } 907 908 function getCaretCharacterOffset() { 909 const selection = window.getSelection(); 910 if (!selectionBelongsToEditor(selection) || !selection.isCollapsed) { 911 return null; 912 } 913 const range = selection.getRangeAt(0); 914 const preRange = document.createRange(); 915 preRange.selectNodeContents(editor); 916 preRange.setEnd(range.endContainer, range.endOffset); 917 return preRange.toString().length; 918 } 919 920 function getTextPositionAtOffset(offset) { 921 const walker = document.createTreeWalker(editor, NodeFilter.SHOW_TEXT); 922 let currentOffset = 0; 923 let node = walker.nextNode(); 924 while (node) { 925 const length = node.nodeValue.length; 926 if (currentOffset + length >= offset) { 927 return { node, offset: Math.max(0, offset - currentOffset) }; 928 } 929 currentOffset += length; 930 node = walker.nextNode(); 931 } 932 return null; 933 } 934 935 function hideMentionPopover() { 936 mentionState = null; 937 mentionItems = []; 938 mentionHighlightIndex = 0; 939 isMentionPopoverInteracting = false; 940 if (mentionPopover) { 941 mentionPopover.style.display = 'none'; 942 mentionPopover.innerHTML = ''; 943 } 944 } 945 946 function scrollHighlightedMentionIntoView() { 947 if (!mentionPopover || !mentionItems.length) return; 948 const activeItem = mentionPopover.querySelector('.mention-item.active'); 949 if (!activeItem) return; 950 try { 951 activeItem.scrollIntoView({ block: 'nearest' }); 952 } catch (_error) { 953 activeItem.scrollIntoView(false); 954 } 955 } 956 957 function renderMentionPopover(status) { 958 if (!mentionPopover || !mentionState) return; 959 mentionPopover.style.display = 'block'; 960 const tabsHtml = mentionTabs 961 .map( 962 (tab) => 963 '<button type="button" class="mention-tab ' + 964 (tab.type === mentionType ? 'active' : '') + 965 '" data-mention-tab="' + 966 tab.type + 967 '">' + 968 tab.label + 969 '</button>' 970 ) 971 .join(''); 972 973 let body = ''; 974 if (status === 'loading') { 975 body = '<div class="mention-empty">Aranıyor...</div>'; 976 } else if (!mentionItems.length) { 977 body = '<div class="mention-empty">Sonu\xe7 bulunamadı.</div>'; 978 } else { 979 body = mentionItems 980 .map((item, index) => { 981 const image = item.avatarUrl || item.thumbnailUrl || ''; 982 const avatar = image 983 ? '<span class="mention-avatar"><img src="' + 984 escapeHtml(image) + 985 '" alt="" /></span>' 986 : '<span class="mention-avatar">' + 987 escapeHtml(String(item.label || '@').slice(0, 1).toUpperCase()) + 988 '</span>'; 989 return ( 990 '<button type="button" class="mention-item ' + 991 (index === mentionHighlightIndex ? 'active' : '') + 992 '" data-mention-index="' + 993 index + 994 '">' + 995 avatar + 996 '<span class="mention-copy"><span class="mention-title">' + 997 escapeHtml(item.label || item.token || '') + 998 '</span><span class="mention-subtitle">' + 999 escapeHtml(item.subtitle || item.token || '') + 1000 '</span></span></button>' 1001 ); 1002 }) 1003 .join(''); 1004 } 1005 1006 mentionPopover.innerHTML = 1007 '<div class="mention-tabs">' + 1008 tabsHtml + 1009 '</div><div class="mention-results">' + 1010 body + 1011 '</div>'; 1012 requestAnimationFrame(scrollHighlightedMentionIntoView); 1013 } 1014 1015 async function fetchMentionItems() { 1016 if (!mentionState) { 1017 renderMentionPopover(); 1018 return; 1019 } 1020 1021 const params = new URLSearchParams({ 1022 q: mentionState.query || '', 1023 types: mentionType, 1024 limit: '12', 1025 }); 1026 1027 renderMentionPopover('loading'); 1028 1029 try { 1030 const response = await fetch( 1031 mentionApiBaseUrl + '/mentions/search?' + params.toString(), 1032 { 1033 headers: { 1034 Accept: 'application/json', 1035 ...(mentionAuthHeader ? { Authorization: mentionAuthHeader } : {}), 1036 }, 1037 credentials: 'include', 1038 } 1039 ); 1040 const payload = await response.json(); 1041 mentionItems = payload?.result?.data?.items?.[mentionType] || []; 1042 mentionHighlightIndex = 0; 1043 renderMentionPopover(); 1044 } catch (_error) { 1045 mentionItems = []; 1046 renderMentionPopover(); 1047 } 1048 } 1049 1050 function scheduleMentionSearch() { 1051 clearTimeout(mentionTimer); 1052 mentionTimer = setTimeout(fetchMentionItems, 140); 1053 } 1054 1055 function refreshMentionState() { 1056 const caretOffset = getCaretCharacterOffset(); 1057 if (caretOffset === null) { 1058 hideMentionPopover(); 1059 return; 1060 } 1061 const beforeCaret = editor.innerText.slice(0, caretOffset); 1062 const query = findMentionQuery(beforeCaret); 1063 if (!query) { 1064 hideMentionPopover(); 1065 return; 1066 } 1067 mentionState = { 1068 from: query.from, 1069 to: caretOffset, 1070 query: query.query, 1071 }; 1072 if (query.type) mentionType = query.type; 1073 scheduleMentionSearch(); 1074 } 1075 1076 function insertMention(item) { 1077 if (!mentionState || !item?.token) return; 1078 const start = getTextPositionAtOffset(mentionState.from); 1079 const end = getTextPositionAtOffset(mentionState.to); 1080 if (!start || !end) return; 1081 1082 const range = document.createRange(); 1083 range.setStart(start.node, start.offset); 1084 range.setEnd(end.node, end.offset); 1085 const selection = window.getSelection(); 1086 selection.removeAllRanges(); 1087 selection.addRange(range); 1088 document.execCommand('insertText', false, item.token + ' '); 1089 hideMentionPopover(); 1090 captureSelection(); 1091 emitChange(); 1092 } 1093 1094 function preserveSelectionBeforeToolbarAction(event) { 1095 event.preventDefault(); 1096 captureSelection(); 1097 } 1098 1099 function syncBlockFormatSelect() { 1100 const select = document.querySelector('[data-block-format]'); 1101 const selection = window.getSelection(); 1102 if (!select || !selectionBelongsToEditor(selection) || !selection.rangeCount) return; 1103 const block = getTopLevelEditorChild(selection.getRangeAt(0).startContainer); 1104 const tag = block && block.nodeType === Node.ELEMENT_NODE ? block.tagName.toLowerCase() : 'p'; 1105 select.value = tag === 'p' || /^h[1-6]$/.test(tag) ? tag : 'p'; 1106 } 1107 1108 function insertImage(src, alt) { 1109 if (!src) return; 1110 const wrapper = document.createElement('div'); 1111 wrapper.setAttribute('data-block', 'image'); 1112 const img = document.createElement('img'); 1113 img.src = src; 1114 img.alt = alt || ''; 1115 wrapper.appendChild(img); 1116 insertMediaBlock(wrapper); 1117 } 1118 1119 function insertGif(src, alt) { 1120 insertImage(src, alt); 1121 } 1122 1123 function insertVideo(src) { 1124 if (!src) return; 1125 const wrapper = document.createElement('div'); 1126 wrapper.setAttribute('data-block', 'video'); 1127 const video = document.createElement('video'); 1128 video.controls = true; 1129 video.setAttribute('playsinline', ''); 1130 video.setAttribute('preload', 'metadata'); 1131 video.src = src; 1132 wrapper.appendChild(video); 1133 insertMediaBlock(wrapper); 1134 } 1135 1136 function providerLabel(provider) { 1137 return provider === 'instagram' ? 'Instagram' : 'X'; 1138 } 1139 1140 function encodeEmbedHtml(value) { 1141 try { 1142 return encodeURIComponent(String(value || '')); 1143 } catch (_error) { 1144 return ''; 1145 } 1146 } 1147 1148 function createSocialEmbedNode(embed) { 1149 const provider = 'x'; 1150 const url = String(embed && embed.url ? embed.url : '').trim(); 1151 if (!url) return null; 1152 1153 const title = 1154 String(embed && embed.title ? embed.title : '').trim() || 1155 providerLabel(provider) + ' g\xf6nderisi'; 1156 const wrapper = document.createElement('div'); 1157 wrapper.setAttribute('data-block', 'socialEmbed'); 1158 wrapper.setAttribute('data-provider', provider); 1159 wrapper.setAttribute('data-url', url); 1160 wrapper.setAttribute('data-title', title); 1161 wrapper.setAttribute('data-html', encodeEmbedHtml(embed && embed.html ? embed.html : ''));
1162 wrapper.setAttribute('data-author-name', String(embed && embed.authorName ? embed.authorName : '')); 1163 wrapper.setAttribute('data-thumbnail-url', String(embed && embed.thumbnailUrl ? embed.thumbnailUrl : '')); 1164 wrapper.setAttribute('contenteditable', 'false'); 1165 1166 const card = document.createElement('div'); 1167 card.className = 'social-embed-card'; 1168 card.innerHTML = 1169 '<span class="social-embed-kicker">' + 1170 escapeHtml(providerLabel(provider)) + 1171 '</span><span class="social-embed-title">' + 1172 escapeHtml(title) + 1173 '</span><span class="social-embed-url">' + 1174 escapeHtml(url) + 1175 '</span>'; 1176 wrapper.appendChild(card); 1177 return wrapper; 1178 } 1179 1180 function insertSocialEmbed(embed) { 1181 const wrapper = createSocialEmbedNode(embed || {}); 1182 if (!wrapper) return; 1183 insertMediaBlock(wrapper); 1184 } 1185 1186 function insertLink(url) { 1187 const normalizedUrl = String(url || '').trim(); 1188 if (!normalizedUrl) return; 1189 1190 if (!restoreSelection()) { 1191 editor.focus(); 1192 } 1193 1194 const selection = window.getSelection(); 1195 if (!selectionBelongsToEditor(selection)) { 1196 document.execCommand( 1197 'insertHTML', 1198 false, 1199 '<a href="' + 1200 normalizedUrl.replace(/"/g, '"') + 1201 '" target="_blank" rel="ugc nofollow noopener noreferrer">' + 1202 normalizedUrl.replace(/</g, '<').replace(/>/g, '>') + 1203 '</a>' 1204 ); 1205 captureSelection(); 1206 return; 1207 } 1208 1209 if (selection.isCollapsed) { 1210 document.execCommand( 1211 'insertHTML', 1212 false, 1213 '<a href="' + 1214 normalizedUrl.replace(/"/g, '"') + 1215 '" target="_blank" rel="ugc nofollow noopener noreferrer">' + 1216 normalizedUrl.replace(/</g, '<').replace(/>/g, '>') + 1217 '</a>' 1218 ); 1219 } else { 1220 document.execCommand('createLink', false, normalizedUrl); 1221 } 1222 1223 captureSelection(); 1224 } 1225 1226 window.__WUUBI_RICH_TEXT__ = { 1227 updateImageDescription, 1228 setContent(html) { 1229 editor.innerHTML = html || '<p></p>'; 1230 savedRange = null; 1231 emitChange(); 1232 }, 1233 blurEditor() { 1234 captureSelection(); 1235 try { 1236 const selection = window.getSelection(); 1237 if (selection) { 1238 selection.removeAllRanges(); 1239 } 1240 } catch (_error) {} 1241 editor.blur(); 1242 }, 1243 insertImage(src, alt) { 1244 insertImage(src, alt || ''); 1245 emitChange(); 1246 }, 1247 insertGif(src, alt) { 1248 insertGif(src, alt || ''); 1249 emitChange(); 1250 }, 1251 insertVideo(src) { 1252 insertVideo(src); 1253 emitChange(); 1254 }, 1255 insertSocialEmbed(embed) { 1256 insertSocialEmbed(embed || {}); 1257 emitChange(); 1258 }, 1259 insertLink(url) { 1260 insertLink(url || ''); 1261 emitChange(); 1262 }, 1263 insertEmoji(emoji) { 1264 const value = String(emoji || '').trim(); 1265 if (!value) return; 1266 if (!restoreSelection()) { 1267 editor.focus(); 1268 } 1269 document.execCommand('insertText', false, value); 1270 captureSelection(); 1271 emitChange(); 1272 }, 1273 }; 1274 1275 function runCommand(command) { 1276 if (command === 'emoji') { 1277 captureSelection(); 1278 post({ type: 'request-emoji' }); 1279 return; 1280 } 1281 if (command === 'unsplash') { captureSelection(); post({type:'request-unsplash'}); return; } 1282 if (command === 'gif') { 1283 captureSelection(); 1284 post({ type: 'request-gif' }); 1285 return; 1286 } 1287 if (command === 'image-description') { 1288 describeImage(selectedImage && editor.contains(selectedImage) ? selectedImage : bodyImages()[0]); 1289 return; 1290 } 1291 if (command === 'image') { 1292 captureSelection(); 1293 post({ type: 'request-image' }); 1294 return; 1295 } 1296 if (command === 'video') { 1297 captureSelection(); 1298 post({ type: 'request-video' }); 1299 return; 1300 } 1301 if (command === 'social-embed') { 1302 captureSelection(); 1303 post({ type: 'request-social-embed' }); 1304 return; 1305 } 1306 1307 if (!restoreSelection()) { 1308 editor.focus(); 1309 } 1310 if (command === 'heading') command = 'h2'; 1311 if (command === 'paragraph') command = 'p'; 1312 if (command === 'p' || /^h[1-6]$/.test(command)) { 1313 return document.execCommand('formatBlock', false, command); 1314 } 1315 if (command === 'bold') return document.execCommand('bold'); 1316 if (command === 'italic') return document.execCommand('italic'); 1317 if (command === 'underline') return document.execCommand('underline'); 1318 } 1319 1320 document.querySelectorAll('[data-command]').forEach((button) => { 1321 button.addEventListener('mousedown', preserveSelectionBeforeToolbarAction); 1322 button.addEventListener('click', () => { 1323 runCommand(button.getAttribute('data-command')); 1324 setTimeout(emitChange, 0); 1325 }); 1326 }); 1327 1328 const blockFormatSelect = document.querySelector('[data-block-format]'); 1329 if (blockFormatSelect) { 1330 blockFormatSelect.addEventListener('mousedown', () => captureSelection()); 1331 blockFormatSelect.addEventListener('change', () => { 1332 runCommand(blockFormatSelect.value); 1333 setTimeout(() => { 1334 syncBlockFormatSelect(); 1335 emitChange(); 1336 }, 0); 1337 }); 1338 } 1339 1340 if (mentionPopover) { 1341 const startMentionPopoverInteraction = () => { 1342 isMentionPopoverInteracting = true; 1343 }; 1344 const endMentionPopoverInteractionSoon = () => { 1345 window.setTimeout(() => { 1346 isMentionPopoverInteracting = false;
1347 }, 180); 1348 }; 1349 mentionPopover.addEventListener('mousedown', (event) => { 1350 startMentionPopoverInteraction(); 1351 const target = 1352 event.target && event.target.nodeType === Node.ELEMENT_NODE 1353 ? event.target 1354 : event.target && event.target.parentElement; 1355 const control = 1356 target && target.closest('[data-mention-tab], [data-mention-index]'); 1357 if (control) { 1358 event.preventDefault(); 1359 } 1360 }); 1361 mentionPopover.addEventListener('touchstart', startMentionPopoverInteraction, { 1362 passive: true, 1363 }); 1364 window.addEventListener('mouseup', endMentionPopoverInteractionSoon); 1365 window.addEventListener('touchend', endMentionPopoverInteractionSoon, { 1366 passive: true, 1367 }); 1368 window.addEventListener('touchcancel', endMentionPopoverInteractionSoon, { 1369 passive: true, 1370 }); 1371 mentionPopover.addEventListener('click', (event) => { 1372 const tabButton = event.target.closest('[data-mention-tab]'); 1373 if (tabButton) { 1374 mentionType = tabButton.getAttribute('data-mention-tab') || mentionType; 1375 mentionHighlightIndex = 0; 1376 scheduleMentionSearch(); 1377 renderMentionPopover('loading'); 1378 return; 1379 } 1380 1381 const itemButton = event.target.closest('[data-mention-index]'); 1382 if (!itemButton) return; 1383 const index = Number(itemButton.getAttribute('data-mention-index') || '0'); 1384 insertMention(mentionItems[index]); 1385 }); 1386 } 1387 1388 editor.addEventListener('keydown', (event) => { 1389 if (!mentionState || !mentionPopover || mentionPopover.style.display === 'none') { 1390 return; 1391 } 1392 1393 if (event.key === 'Escape') { 1394 event.preventDefault(); 1395 hideMentionPopover(); 1396 return; 1397 } 1398 1399 if (event.key === 'ArrowDown') { 1400 event.preventDefault(); 1401 mentionHighlightIndex = mentionItems.length 1402 ? (mentionHighlightIndex + 1) % mentionItems.length 1403 : 0; 1404 renderMentionPopover(); 1405 return; 1406 } 1407 1408 if (event.key === 'ArrowUp') { 1409 event.preventDefault(); 1410 mentionHighlightIndex = mentionItems.length 1411 ? (mentionHighlightIndex - 1 + mentionItems.length) % mentionItems.length 1412 : 0; 1413 renderMentionPopover(); 1414 return; 1415 } 1416 1417 if ((event.key === 'Enter' || event.key === 'Tab') && mentionItems[mentionHighlightIndex]) { 1418 event.preventDefault(); 1419 insertMention(mentionItems[mentionHighlightIndex]); 1420 } 1421 }); 1422 1423 editor.addEventListener('input', () => { 1424 emitChange(); 1425 refreshMentionState(); 1426 }); 1427 editor.addEventListener('blur', () => { 1428 emitChange(); 1429 setTimeout(() => { 1430 if ( 1431 !mentionPopover || 1432 (!isMentionPopoverInteracting && !mentionPopover.matches(':hover')) 1433 ) { 1434 hideMentionPopover(); 1435 } 1436 }, 120); 1437 }); 1438 editor.addEventListener('paste', (event) => { 1439 event.preventDefault(); 1440 const text = event.clipboardData ? event.clipboardData.getData('text/plain') : ''; 1441 document.execCommand('insertText', false, text); 1442 }); 1443 function resolveEditableImage(target) { 1444 const element = target && target.nodeType === Node.ELEMENT_NODE ? target : null; 1445 const image = element && element.tagName === 'IMG' 1446 ? element 1447 : selectedImage && editor.contains(selectedImage) 1448 ? selectedImage 1449 : null; 1450 if (!image || image.closest('[data-block="socialEmbed"]')) return null; 1451 return image; 1452 } 1453 editor.addEventListener('click', (event) => { 1454 const image = resolveEditableImage(event.target); 1455 if (image) selectedImage = image; 1456 }); 1457 editor.addEventListener('focusin', (event) => { 1458 const image = resolveEditableImage(event.target); 1459 if (image) selectedImage = image; 1460 }); 1461 editor.addEventListener('dblclick', (event) => { 1462 const image = resolveEditableImage(event.target); 1463 if (image) describeImage(image); 1464 }); 1465 editor.addEventListener('keydown', (event) => { 1466 const image = resolveEditableImage(event.target); 1467 if (image && (event.key === 'Enter' || event.key === ' ')) { 1468 event.preventDefault(); 1469 describeImage(image); 1470 } 1471 }); 1472 editor.addEventListener('keyup', () => { 1473 captureSelection(); 1474 refreshMentionState(); 1475 }); 1476 editor.addEventListener('mouseup', () => { 1477 captureSelection(); 1478 refreshMentionState(); 1479 }); 1480 editor.addEventListener('focus', () => { 1481 captureSelection(); 1482 refreshMentionState(); 1483 }); 1484 document.addEventListener('selectionchange', () => { 1485 captureSelection(); 1486 refreshMentionState(); 1487 syncBlockFormatSelect(); 1488 }); 1489 1490 window.addEventListener('message', (event) => { 1491 if (event.source !== window.parent) return; 1492 const data = event.data || {};
1493 if (data.type === 'describe-image') describeImage(bodyImages()[data.index]); 1494 if (data.type === 'focus-editor') { 1495 editor.focus(); 1496 restoreSelection(); 1497 } 1498 if (data.type === 'set-content') { 1499 editor.innerHTML = data.html || '<p></p>'; 1500 savedRange = null; 1501 hideMentionPopover(); 1502 editorShell.scrollTo({ top: 0 }); 1503 emitChange(); 1504 } 1505 if (data.type === 'insert-image') { 1506 insertImage(data.src, data.alt || ''); 1507 emitChange(); 1508 } 1509 if (data.type === 'insert-gif') { 1510 insertGif(data.src, data.alt || ''); 1511 emitChange(); 1512 } 1513 if (data.type === 'insert-video') { 1514 insertVideo(data.src); 1515 emitChange(); 1516 } 1517 if (data.type === 'insert-social-embed') { 1518 insertSocialEmbed(data.embed || data); 1519 emitChange(); 1520 } 1521 if (data.type === 'insert-link') { 1522 insertLink(data.url || ''); 1523 emitChange(); 1524 } 1525 if (data.type === 'insert-emoji') { 1526 const emoji = String(data.emoji || '').trim(); 1527 if (!emoji) return; 1528 editor.focus(); 1529 restoreSelection(); 1530 document.execCommand('insertText', false, emoji); 1531 captureSelection(); 1532 emitChange(); 1533 } 1534 }); 1535 1536 editor.innerHTML = initialHtml || '<p></p>'; 1537 editorShell.scrollTo({ top: 0 }); 1538 captureSelection(); 1539 emitChange(); 1540 post({ type: 'ready' }); 1541 </script> 1542 </body> 1543</html>`})({initialHtml:j,placeholder:t,mentionApiBaseUrl:g,mentionAuthHeader:x}),[j,g,x,t]),S=e=>{if(!h.current?.contentWindow)return;let t=e||"<p></p>",a=h.current.contentWindow.__WUUBI_RICH_TEXT__;a?.setContent?a.setContent(t):h.current.contentWindow.postMessage({type:"set-content",html:t},"*"),w.current=t};return(0,f.useEffect)(()=>{b.current=e||"<p></p>"},[e]),(0,f.useEffect)(()=>{let e=e=>{if(e.source!==h.current?.contentWindow)return;let t=e.data;if(t&&"wuubi-rich-text-editor"===t.source){if("ready"===t.type){y.current=!0,S(b.current);return}"change"===t.type&&(v.current=t.html||"<p></p>",n({html:t.html||"",bodyDocument:t.bodyDocument||"",plainText:t.plainText||(0,eb.Oq)(t.html||"")})),"request-image"===t.type&&s(h.current),"request-image-description"===t.type&&l(h.current,t),"request-video"===t.type&&o(h.current),"request-emoji"===t.type&&d(h.current),"request-unsplash"===t.type&&m(h.current),"request-gif"===t.type&&c(h.current),"request-social-embed"===t.type&&u(h.current)}};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[n,d,c,m,s,l,u,o]),(0,f.useEffect)(()=>{let t=e||"<p></p>";y.current&&t!==v.current&&t!==w.current&&(k(t),S(t))},[e]),(0,f.useEffect)(()=>{i&&h.current?.contentWindow&&(h.current.scrollIntoView({block:"center",behavior:"smooth"}),h.current.contentWindow.postMessage({type:"describe-image",index:i.index},"*"))},[i]),(0,r.jsxs)("div",{className:"relative w-full",style:{height:a},children:[(0,r.jsx)("iframe",{ref:h,srcDoc:N,title:"Rich text editor",className:`block h-full w-full rounded-[22px] border border-slate-200 bg-white transition ${p?"pointer-events-none select-none":""}`}),p&&(0,r.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-[22px] bg-slate-950/35 p-4 backdrop-blur-[2px]",children:(0,r.jsxs)("div",{className:"flex w-full max-w-sm items-center gap-4 roun
1543ded-2xl border border-white/15 bg-slate-950/80 px-4 py-4 text-white shadow-[0_20px_60px_rgba(15,23,42,0.25)]",children:[(0,r.jsx)("div",{className:"flex h-11 w-11 items-center justify-center rounded-full border border-white/10 bg-white/10",children:(0,r.jsx)("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-white/30 border-t-white"})}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"text-sm font-semibold tracking-tight",children:"Video hazırlanıyor"}),(0,r.jsx)("p",{className:"mt-0.5 text-xs leading-5 text-white/70",children:"L\xfctfen bekleyin, medya iÅleniyor ve video alanına ekleniyor."})]})]})})]})}function ej({initialHtml:e,onChange:t,placeholder:a="İ\xe7eriÄinizi yazın...",mountKey:n="default",descriptionRequest:s,onUploadImage:l,onUploadVideo:i,onVideoUploaded:o}){let[d,c]=(0,f.useState)(null),m=(0,f.useRef)(null),u=(0,f.useRef)(null),[p,x]=(0,f.useState)(!1),[h,b]=(0,f.useState)(!1),[v,w]=(0,f.useState)(!1),[y,j]=(0,f.useState)(!1),[k,I]=(0,f.useState)(!1),[E,C]=(0,f.useState)(""),[A,T]=(0,f.useState)(""),[q,D]=(0,f.useState)(!1),[_,B]=(0,f.useState)(!1),P=(0,N.A)(),U=(0,R.GM)(),O=P||"",$=(0,f.useRef)(null),H=(0,f.useRef)(null),F=(0,f.useRef)(null),G=(0,f.useRef)(0),V=(e,t)=>{e?.contentWindow?.postMessage(t,"*")},Y=e=>e?.contentWindow?.__WUUBI_RICH_TEXT__,W=e=>{Y(e)?.blurEditor?.()},K=e=>{F.current=e,W(e),$.current?.click()},Z=e=>{F.current=e,W(e),H.current?.click()},J=e=>{F.current=e,b(!0)},X=e=>{F.current=e,W(e),j(!0)},Q=e=>{F.current=e,W(e),w(!0)},ee=e=>{F.current=e,W(e),C(""),T(""),I(!0)},et=(e,t)=>{F.current=e,W(e),c({src:t.src,alt:t.alt,editing:!0})};(0,f.useEffect)(()=>(m.current=d,()=>{d?.file&&URL.revokeObjectURL(d.src)}),[d]),(0,f.useEffect)(()=>{if(d||!u.current)return;let e=u.current;u.current=null;let t=requestAnimationFrame(()=>V(e,{type:"focus-editor"}));return()=>cancelAnimationFrame(t)},[d]);let ea=()=>{u.current=F.current,c(null),F.current=null},er=async e=>{let t=m.current,a=F.current;if(!t||!a?.isConnected||!a.contentWindow)throw Error("Edit\xf6r hazır deÄil. G\xf6rseli tekrar se\xe7in.");let r=t.uploadedUrl||t.src;if(t.file&&!t.uploadedUrl){if(!(r=l?await l(t.file,e):await new Promise((e,a)=>{let r=new FileReader;r.onload=()=>e(String(r.result||"")),r.onerror=()=>a(Error("G\xf6rsel okunamadı. Tekrar deneyin.")),r.readAsDataURL(t.file)})))throw Error("G\xf6rsel y\xfcklenemedi. Tekrar deneyin.");t.uploadedUrl=r}if(m.current!==t||!a.isConnected)return;let n=Y(a);if(t.editing){if(!n?.updateImageDescription?.(e))throw Error("G\xf6rsel artık edit\xf6rde bulunmuyor. Tekrar se\xe7in.")}else{if(!n?.insertImage)throw Error("Edit\xf6r hazır deÄil. Tekrar deneyin.");n.insertImage(r,e),t.gif&&M(t.gif.analyticsClickUrl)}ea()},en=()=>{I(!1),C(""),T(""),D(!1),F.current=null},es=async()=>{let e=E.trim();if(!e)return void T("X/Twitter tweet URLâi girin.");try{D(!0),T("");let t=await L({url:e,authHeader:O}),a=Y(F.current);a?.insertSocialEmbed?a.insertSocialEmbed(t):V(F.current,{type:"insert-social-embed",embed:t}),en()}catch(e){T(e instanceof Error?e.message:"Embed \xf6nizlemesi alınamadı.")}finally{D(!1)}},el=async e=>{let t=e.target.files?.[0];if(t&&F.current?.contentWindow){if(!ew.includes(t.type.toLowerCase())){g.Ay.error("PNG, JPEG, WebP, GIF, HEIC veya HEIF g\xf6rsel se\xe7ebilirsiniz"),e.target.value="";return}if(t.size>5242880){g.Ay.error("G\xf6rsel boyutu en fazla 10 MB olabilir"),e.target.value="";return}c({src:URL.createObjectURL(t),alt:"",file:t}),e.target.value=""}},ei=async e=>{let t=e.target.files?.[0];if(t&&F.current?.contentWindow){if(!t.type.toLowerCase().startsWith("video/")||t.size>0x6400000){e.target.value="";return}try{B(!0);let e=i||l;if(!e)throw Error("Video y\xfckleme desteÄi yapılandırılmadı");let a=await e(t);o?o(a):V(F.current,{type:"insert-video",src:a})}catch(e){g.Ay.error(e instanceof Error?e.message:"Video y\xfcklenemedi")}B(!1),F.current=null,e.target.value=""}};return(0,f.useEffect)(()=>{p||(F.current=null)},[p]),(0,f.useEffect)(()=>{let{body:e,documentElement:t}=document;if(p){G.current=window.scrollY,e.style.overflow="hidden",t.style.overflow="hidden",
1543window.scrollTo({top:0});return}return e.style.overflow="",t.style.overflow="",G.current>0&&window.scrollTo({top:G.current}),()=>{e.style.overflow="",t.style.overflow=""}},[p]),(0,r.jsxs)(r.Fragment,{children:[d&&(0,r.jsx)(ep,{src:d.src,initialAlt:d.alt,editing:d.editing,onClose:ea,onConfirm:er}),(0,r.jsx)("input",{ref:$,type:"file",accept:"image/png,image/jpeg,image/jpg,image/webp,image/gif,image/heic,image/heif",className:"hidden",onChange:el}),(0,r.jsx)("input",{ref:H,type:"file",accept:"video/*",className:"hidden",onChange:ei}),(0,r.jsx)(eg.A,{open:h,onClose:()=>{b(!1),F.current=null},onSelect:e=>{V(F.current,{type:"insert-emoji",emoji:e}),F.current=null,b(!1)}}),(0,r.jsx)(z,{open:y,onClose:()=>{j(!1),F.current=null},onSelect:e=>{c({src:e.imageUrl,alt:e.alt}),j(!1)}}),(0,r.jsx)(ex,{open:v,onClose:()=>{w(!1),F.current=null},onSelect:e=>{c({src:e.imageUrl,alt:e.title,gif:e}),w(!1)}}),k?(0,r.jsx)("div",{className:"fixed inset-0 z-[1100] flex items-center justify-center bg-slate-950/45 p-4 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-slate-200 bg-white p-5 shadow-[0_24px_80px_rgba(15,23,42,0.22)]",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"text-base font-extrabold text-slate-950",children:"X/Twitter embed"}),(0,r.jsx)("p",{className:"mt-1 text-sm leading-5 text-slate-500",children:"Tweet URLâi yapıÅtır."})]}),(0,r.jsx)("button",{type:"button",onClick:en,className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 transition hover:bg-slate-50","aria-label":"Embed penceresini kapat",children:(0,r.jsx)(S.A,{className:"h-5 w-5"})})]}),(0,r.jsxs)("label",{className:"mt-5 grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"G\xf6nderi URLâi"}),(0,r.jsx)("input",{autoFocus:!0,value:E,onChange:e=>{C(e.target.value),T("")},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),es())},className:"input w-full",placeholder:"https://x.com/.../status/..."})]}),A?(0,r.jsx)("p",{className:"mt-3 rounded-xl border border-rose-200 bg-rose-50 px-3 py-2 text-sm font-semibold text-rose-700",children:A}):null,(0,r.jsxs)("div",{className:"mt-5 flex flex-col gap-2 sm:flex-row sm:justify-end",children:[(0,r.jsx)("button",{type:"button",onClick:en,className:"btn btn-light justify-center",children:"Vazge\xe7"}),(0,r.jsxs)("button",{type:"button",disabled:q,onClick:()=>void es(),className:"btn btn-dark justify-center disabled:cursor-not-allowed disabled:opacity-60",children:[(0,r.jsx)(ef.A,{className:"h-5 w-5"}),q?"\xd6nizleme alınıyor...":"Embed ekle"]})]})]})}):null,p?(0,r.jsx)("div",{className:"fixed inset-0 z-[1000] h-[100dvh] w-screen overflow-hidden bg-white",children:(0,r.jsxs)("div",{className:"flex h-[100dvh] w-screen min-h-0 flex-col overflow-hidden bg-white",children:[(0,r.jsxs)("div",{className:"flex h-[72px] shrink-0 items-center justify-between border-b border-slate-200 bg-white px-4 py-4",children:[(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("p",{className:"text-sm font-semibold tracking-tight text-slate-900",children:"Tam ekran edit\xf6r"}),(0,r.jsx)("p",{className:"text-xs text-slate-500",children:"Toolbar sabit kalır, yazı alanı t\xfcm ekranı kullanır."})]}),(0,r.jsx)("div",{className:"flex items-center gap-2",children:(0,r.jsxs)("button",{type:"button",onClick:()=>x(!1),className:"inline-flex items-center gap-2 rounded-full bg-slate-900 px-3.5 py-2 text-xs font-semibold text-white transition hover:bg-slate-800",children:[(0,r.jsx)(S.A,{className:"h-4 w-4"}),"Kapat"]})})]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden bg-slate-50",children:(0,r.jsx)(ey,{initialHtml:e,placeholder:a,height:"100%",onChange:t,onRequestImage:K,onRequestDescription:et,descriptionRequest:s,onRequestVideo:Z,onRequestEmoji:J,onRequestGif:Q,onRequestUnsplash:X,onRequestSocialEmbed:ee,isUploadingVideo:_,mentionApiBaseUrl:U,mentionAuthHeader:O},`${n}-fullscreen`)})]})}):(0,r.jsxs)("div",{className:"overflow-hidden rounded-[28px] border border-slate-200/80 bg-[linear-gradient(180deg,rgba(248,250,252,0.9),rgba(255,255,255,1))] shadow-[0_18px_48px_rgba(15,23,42,0.08)]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-200/80 bg-white/80 px-4 py-3 backdrop-blur-xl",children:[(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("p",{className:"text-sm font-semibold tracking-tight text-slate-900",children:"İ\xe7erik edit\xf6r\xfc"}),(0,r.jsx)("p",{className:"text-xs text-slate-500",children:"BaÅlık, kalın, italik, altı \xe7izili, emoji, GIF ve g\xf6rsel desteklenir."})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white px-3.5 py-2 text-xs font-semibold text-slate-700 shadow-[0_6px_20px_rgba(15,23,42,0.06)] transition hover:border-slate-300 hover:bg-slate-50",children:[(0,r.jsx)(ev.A,{className:"h-4 w-4"}),"Tam ekran"]})]}),(0,r.jsx)("div",{className:"bg-slate-50/60 p-3",children:(0,r.jsx)(ey,{initialHtml:e,placeholder:a,height:420,onChange:t,onRequestImage:K,onRequestDescription:et,descriptionRequest:s,onRequestVideo:Z,onRequestEmoji:J,onRequestGif:Q,onRequestUnsplash:X,onRequestSocialEmbed:ee,
1543isUploadingVideo:_,mentionApiBaseUrl:U,mentionAuthHeader:O},`${n}-inline`)})]})]})}function ek(e){let t=(0,p.A)();return(0,u.I)({queryKey:["getMyContentDetail",e],queryFn:async()=>{if(!t?.token||!e)return null;let a=await fetch(`https://api.wuubi.com/api/content/my-content/${e}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${t.token}`}}),r=await a.json();if(!r?.responseResult?.status)return g.Ay.error(r.responseResult?.exceptionDetail?.[0]||"İ\xe7erik y\xfcklenemedi"),null;let n=r?.result;return n?.data?(0,d.y5)(n.data):(0,d.y5)(n)},enabled:!!t?.token&&!!e})}var eN=a(80371),eS=a(55792),eI=a(65283),eE=a(63393),ez=a(31010),eC=a(35765),eA=a(89099),eT=a(70172);let eq=["image/png","image/jpeg","image/jpg","image/webp"],eM=(e="")=>e.replace(/<[^>]*>/g," ").replace(/ /gi," ").replace(/\s+/g," ").trim(),eR=[{value:"standard",label:"Standart",description:"Uzun metin, g\xf6rseller ve temel makale akıÅı.",icon:eS.A},{value:"list",label:"Liste",description:"Sıralı maddeler, her maddeye opsiyonel g\xf6rsel.",icon:v},{value:"quiz",label:"Bilgi YarıÅması",description:"DoÄru cevabı olan sorular ve se\xe7enekler.",icon:eI.A},{value:"test",label:"Test",description:"Sonu\xe7 kartları ve sonuca baÄlanan cevaplar.",icon:el.A},{value:"poll",label:"Anket",description:"G\xf6rselli sorular ve oy se\xe7enekleri.",icon:V.A}],eL=e=>eR.find(t=>t.value===e)?.label||"İ\xe7erik t\xfcr\xfc se\xe7ilmedi",eD=e=>e?"string"==typeof e?[e]:Array.isArray(e)?e.flatMap(eD):"object"==typeof e?Object.values(e).flatMap(eD):[]:[];function e_({values:e,setFieldValue:t}){return((0,f.useEffect)(()=>{if("quiz"!==e.type){(e.quizTimerEnabled||null!=e.quizDurationSeconds)&&(t("quizTimerEnabled",!1),t("quizDurationSeconds",null));return}e.quizTimerEnabled&&!e.quizDurationSeconds&&t("quizDurationSeconds",60)},[t,e.quizDurationSeconds,e.quizTimerEnabled,e.type]),"quiz"!==e.type)?null:(0,r.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"text-sm font-bold text-slate-800",children:"S\xfcre sınırı"}),(0,r.jsx)("p",{className:"mt-1 text-xs leading-5 text-slate-500",children:"Quiz tamamlanmadan s\xfcre dolarsa kalan sorular boÅ sayılır."})]}),(0,r.jsx)("button",{type:"button",onClick:()=>{let a=!e.quizTimerEnabled;t("quizTimerEnabled",a),t("quizDurationSeconds",a?e.quizDurationSeconds||60:null)},className:`relative h-7 w-12 flex-shrink-0 rounded-full transition ${e.quizTimerEnabled?"bg-secondary":"bg-slate-300"}`,"aria-label":"Quiz s\xfcre sınırını deÄiÅtir",children:(0,r.jsx)("span",{className:`absolute top-1 h-5 w-5 rounded-full bg-white shadow transition ${e.quizTimerEnabled?"left-6":"left-1"}`})})]}),e.quizTimerEnabled&&(0,r.jsxs)("label",{className:"mt-4 grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"S\xfcre (saniye)"}),(0,r.jsx)(y.D0,{name:"quizDurationSeconds",type:"number",min:30,max:7200,step:1,className:"input w-full",placeholder:"\xd6rn. 60",onChange:e=>{let a=e.target.value;t("quizDurationSeconds",""===a?"":Number(a))}}),(0,r.jsx)("p",{className:"text-xs leading-5 text-slate-500",children:"30 saniye ile 2 saat arasında bir deÄer se\xe7ebilirsin."})]})]})}let eB=j.Ik({title:j.Yj().min(10,"BaÅlık minimum 10 karakter olmalıdır").max(300,"BaÅlık en fazla 300 karakter olmalıdır").required("BaÅlık giriniz"),description:j.Yj().required("İ\xe7erik giriniz").test("list-description-length","Madde i\xe7eriÄi 50-2000 karakter olmalıdır",e=>{let t=eM(e||"").length;return t>=50&&t<=2e3}),image:j.Yj().optional()}),eP=j.Ik({question:j.Yj().min(20,"Soru minimum 20 karakter olmalıdır").max(100,"Soru en fazla 100 karakter olmalıdır").required("Soru giriniz"),questionImage:j.Yj().optional(),answers:j.YO().of(j.Ik({answerText:j.Yj().min(10,"Cevap minimum 10 karakter olmalıdır").max(200,"Cevap en fazla 200 karakter olmalıdır").required("Cevap giriniz"),answerImage:j.Yj().optional()})).min(2,"En az 2 cevap ekleyin").max(10,"En fazla 10 cevap ekleyin").test("unique-answers","Aynı cevap birden fazla kez eklenemez",function(e){if(!e)return!0;let t=e.map(e=>e.answerText?.toLowerCase().trim()),a=new Set(t);return t.length===a.size})}),eU=j.Ik({question:j.Yj().min(10,"Soru minimum 10 karakter olmalıdır").max(200,"Soru en fazla 200 karakter olmalıdır").required("Soru giriniz"),questionImage:j.Yj().optional(),answers:j.YO().of(j.Ik({answerText:j.Yj().min(10,"Cevap minimum 10 karakter olmalıdır").max(200,"Cevap en fazla 200 karakter olmalıdır").required("Cevap giriniz"),isCorrect:j.zM().optional(),answerImage:j.Yj().nullable().optional(),image:j.Yj().nullable().optional()})).min(2,"En az 2 cevap ekleyin").max(6,"En fazla 6 cevap ekleyin").test("one-correct-answer","Her soru i\xe7in tam olarak 1 doÄru cevap se\xe7melisiniz",function(e){return!e||1===e.filter(e=>e.isCorrect).length})}),eO=j.Ik({resultText:j.Yj().min(5,"Sonu\xe7 minimum 5 karakter olmalıdır").max(200,"Sonu\xe7 en fazla 200 karakter olmalıdır").required("Sonu\xe7 giriniz"),resultDescription:j.Yj().min(10,"Sonu\xe7 a\xe7ıklaması minimum 10 karakter olmalıdır").max(500,"Sonu\xe7 a\xe7ıklaması en fazla 500 karakter olmalıdır").required("Sonu\xe7 a\xe7ıklaması giriniz"),resultImage:j.Yj().optional()}),e$=j.Ik({answerText:j.Yj().min(10,"Cevap minimum 10 karakter olmalıdır").max(200,"Cevap en fazla 200 karakter olmalıdır").required("Cevap giriniz"),answerDescription:j.Yj().min(10,"Cevap a\xe7ıklaması minimum 10 karakter olmalıdır").max(200,"Cevap a\xe7ıklaması en fazla 200 karakter olmalıdır").required("Cevap a\xe7ıklaması giriniz"),answerImage:j.Yj().optional(),relatedResult:j.ai().typeError("Sonu\xe7 se\xe7iniz").required("Sonu\xe7 se\xe7iniz")}),eH=j.Ik({question:j.Yj().min(10,"Soru minimum 10 karakter olmalıdır").max(200,"Soru en fazla 200 karakter olmalıdır").required("Soru giriniz"),questionImage:j.Yj().optional(),answers:j.YO().of(e$).min(1,"En az 1 cevap ekleyin")}),eF=()=>{let e,[t,a]=(0,f.useState)([]),[l,h]=(0,f.useState)([]),[b,v]=(0,f.useState)([]),[N,S]=(0,f.useState)(!1),[I,E]=(0,f.useState)(!1),[z,C]=(0,f.useState)({}),[A,T]=(0,f.useState)(!1),[q,M]=(0,f.useState)(""),R=(0,f.useRef)(null),L=(0,f.useRef)(null),{mutateAsync:D,isPending:_}=(()=>{let e=(0,p.A)(),{openModal:t}=(0,c.A)(),a=(0,x.jE)();return(0,m.n)({mutationFn:async({values:r})=>{let n="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?`content-publish:${crypto.randomUUID()}`:`content-publish:${Date.now()}:${Math.random().toString(36).slice(2)}`;if(!e||!e.token)return!1;let s=await fetch("https://api.wuubi.com/api/content/publish",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e.token}`,"Idempotency-Key":n},body:JSON.stringify({...(0,d.JZ)(r)})}),l=await s.json();if(!l||!l.responseResult.status)return g.Ay.error(l.responseResult.exceptionDetail?.[0]),!1;if(l.responseResult.achievement&&l.responseResult.achievement.length>0){let{title:e,description:a,icon:r}=l.responseResult.achievement[0];t(e,a,r)}return a.invalidateQueries({queryKey:["contentDraft","latest"]}),a.invalidateQueries({queryKey:["getMyContent"]}),l}})})(),{mutateAsync:P}=(()=>{let e=(0,p.A)(),t=(0,x.jE)();return(0,m.n)({mutationFn:async({values:t})=>{if(!e?.token)return!1;let a=await fetch("https://api.wuubi.com/api/content/draft",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify((0,d.JZ)(t))}),r=await a.json();return!!r?.responseResult?.status&&(0,d.y5)(r?.result?.data||null)},onSuccess:()=>{t.invalidateQueries({queryKey:["contentDraft","latest"]}),t.invalidateQueries({queryKey:["getMyContent"]})}})})(),{mutateAsync:U,isPending:O}=(()=>{let e=(0,p.A)(),t=(0,x.jE)();return(0,m.n)({mutationFn:async t=>{if(!e?.token)throw Error("TaslaÄı temizlemek i\xe7in giriÅ yapmalısınız.");let a=await fetch(`https://api.wuubi.com/api/content/draft/${t}`,{method:"DELETE",headers:{Accept:"application/json",Authorization:`Bearer ${e.token}`}}),r=await a.json();if(!a.ok||!r?.responseResult?.status)throw Error(r?.responseResult?.exceptionDetail?.[0]||"Taslak temizlenemedi.");return(0,d.y5)(r?.result?.data||null)},onSuccess:async()=>{t.setQueryData(["contentDraft","latest"],null),await t.invalidateQueries({queryKey:["getMyContent"]})}})})(),{mutateAsync:$,isPending:H}=(()=>{let e=(0,p.A)(),t=(0,x.jE)();return(0,m.n)({mutationFn:async({contentId:a,values:r})=>{if(!e?.token)return!1;let n=await fetch(`https://api.wuubi.com/api/content/${a}
1543`,{method:"PATCH",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({mediaAttributions:(0,d.JZ)(r).mediaAttributions,title:r.title,description:r.description,body:r.content,bodyDocument:r.bodyDocument,videoUrl:r.videoUrl,thumbnailImage:r.thumbnailImage,isNsfw:!!r.isNsfw})}),s=await n.json();return s?.responseResult?.status?(t.invalidateQueries({queryKey:["getMyContent"]}),s):(g.Ay.error(s.responseResult?.exceptionDetail?.[0]),!1)}})})(),{data:F}=(0,o.E5)(),V=(0,eN.Ic)(F?.getAllCategories),Y=(0,eA.useRouter)(),W=(0,p.A)(),Z=Y.query.edit,X=Y.query.draft,Q=!!Z,ee=!!X,[et,ea]=(0,f.useState)(null),[er,en]=(0,f.useState)("idle"),[el,ei]=(0,f.useState)(null),[eo,ed]=(0,f.useState)(!0),[ec,eu]=(0,f.useState)(!0),ep=(0,f.useRef)(!1),eg=(0,f.useRef)(!1),ex=(0,f.useRef)(""),{data:eh,isLoading:ef}=ek(Z),{data:ev,isLoading:ew}=ek(X),{data:ey,isLoading:eS}=((e=!0)=>{let t=(0,p.A)();return(0,u.I)({queryKey:["contentDraft","latest"],queryFn:async()=>{if(!t?.token)return null;let e=await fetch("https://api.wuubi.com/api/content/draft/latest",{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${t.token}`}}),a=await e.json();return a?.responseResult?.status?(0,d.y5)(a?.result?.data||null):null},enabled:!!(t?.token&&e),staleTime:3e4})})(!Q&&!ee),e$=async(e,{kind:t="body",alt:a=""}={})=>{if(!W?.token)throw Error("Medya y\xfcklemek i\xe7in giriÅ yapmalısınız");let r=new FormData;r.append("media",e),r.append("kind",t),a.trim()&&r.append("alt",a.trim());let n=await fetch("https://api.wuubi.com/api/content/upload-inline-media",{method:"POST",headers:{Accept:"application/json",Authorization:`Bearer ${W.token}`},body:r}),s=await n.json();if(!s?.responseResult?.status||!s?.result?.data?.url)throw Error(s?.responseResult?.exceptionDetail?.[0]||"Medya y\xfcklenemedi");return s.result.data},eF=async(e,t)=>{if(e.type.toLowerCase().startsWith("image/")){let a=String(t||"").trim();if(!a)throw Error("G\xf6rsel i\xe7in alternatif metin zorunludur");return(await e$(e,{kind:"body",alt:a})).url}return(await e$(e)).url};function eG(e){return Array.isArray(e)?e.map(e=>e&&Array.isArray(e.answers)?{...e,answers:e.answers.map(e=>{let t=String(e.answerImage||e.image||"").trim();return{...e,answerImage:t,image:t||null}})}:e):[]}let eV=async e=>{e.draftId=et||void 0,e.listItems=function(e){return Array.isArray(e)?e.map(e=>"instagram"!==String(e.embedProvider||"").toLowerCase()&&!function(e){let t=String(e||"").trim();if(!t)return!1;try{let e=new URL(t).hostname.replace(/^www\./i,"").toLowerCase();return"instagram.com"===e||e.endsWith(".instagram.com")}catch{return!1}}(e.embedUrl)?e:{...e,mediaKind:"media",embedProvider:"",embedUrl:"",embedHtml:"",embedTitle:"",embedAuthorName:"",embedThumbnailUrl:""}):[]}(t),e.pollItems=l,e.examItems=eG(b),e.thumbnailImage?.file&&e.thumbnailImage.file instanceof File&&(e.thumbnailImage={...e.thumbnailImage,file:null}),E(!0);try{let[t]=await Promise.all([D({values:e}),new Promise(e=>setTimeout(e,4200))]);t&&(await new Promise(e=>setTimeout(e,500)),E(!1),g.Ay.success("İ\xe7erik baÅarıyla oluÅturuldu"),setTimeout(()=>{Y.push("/my-content")},1e3))}catch(e){E(!1),g.Ay.error("İ\xe7erik oluÅturulurken bir hata oluÅtu")}},eY=async e=>{if(Z){e.thumbnailImage?.file&&e.thumbnailImage.file instanceof File&&(e.thumbnailImage={...e.thumbnailImage,file:null}),E(!0);try{await $({contentId:Z,values:e})&&(E(!1),g.Ay.success("İ\xe7erik baÅarıyla g\xfcncellendi"),Y.push("/my-content"))}catch(e){E(!1),g.Ay.error("İ\xe7erik g\xfcncellenirken bir hata oluÅtu")}}},[eW,eK]=(0,f.useState)(),eZ=(0,f.useMemo)(()=>ec?ee?ev:eo?ey:null:null,[ec,eo,ev,ee,ey]),eJ=e=>e?.draftSnapshot||e||null,eX=(0,f.useMemo)(()=>{if(!Q&&eZ){let e=eJ(eZ);return{title:e?.title||eZ.title||"",description:e?.description||eZ.description||"",thumbnailImage:e?.thumbnailImage||{name:e?.thumbnail||eZ.thumbnail?"content-thumbnail":"",url:e?.thumbnail||eZ.thumbnail||"",file:null},category:e?.category||eZ.category||"",type:e?.type||eZ.type||"",isNsfw:!!(e?.isNsfw??eZ.isNsfw),content:e?.content||eZ.body||eZ.content||"<p></p>",bodyDocument:e?.bodyDocument||eZ.bodyDocument||"",videoUrl:e?.videoUrl||eZ.videoUrl||"",listItems:e?.listItems||eZ.listItems||[],pollItems:e?.pollItems||eZ.pollItems||[],testItems:[],resultItems:e?.resultItems||eZ.resultItems||[],quizItems:e?.quizItems||eZ.quizItems||[],examItems:e?.examItems||eZ.examItems||[],quizTimerEnabled:!!(e?.quizTimerEnabled??eZ.quizTimerEnabled),quizDurationSeconds:Number.isFinite(Number(e?.quizDurationSeconds))?Number(e?.quizDurationSeconds):Number.isFinite(Number(eZ.quizDurationSeconds))?Number(eZ.quizDurationSeconds):60}}return Q&&eh?{title:eh.title||"",description:eh.description||"",thumbnailImage:{name:eh.thumbnail?"content-thumbnail":"",url:eh.thumbnail||"",file:null},category:"__edit__",type:eh.type||"",isNsfw:!!eh.isNsfw,content:eh.body||"<p></p>",bodyDocument:eh.bodyDocument||"",videoUrl:eh.videoUrl||"",listItems:[],pollItems:[],testItems:[],resultItems:[],quizItems:[],examItems:[],quizTimerEnabled:!!eh.quizTimerEnabled,quizDurationSeconds:Number.isFinite(Number(eh.quizDurationSeconds))?Number(eh.quizDurationSeconds):60}:{title:"",description:"",thumbnailImage:{name:"",url:"",file:null},category:"",type:"",isNsfw:!1,content:"",bodyDocument:"",videoUrl:"",listItems:[],pollItems:[],testItems:[],resultItems:[],quizItems:[],examItems:[],quizTimerEnabled:!1,quizDurationSeconds:60}},[Q,eh,eZ]),eQ=(0,f.useMemo)(()=>j.Ik({title:j.Yj().min(20,"BaÅlık minimum 20 karakter olmalıdır").max(100,"BaÅlık en fazla 100 karakter olmalıdır").required("BaÅlık giriniz"),description:j.Yj().min(20,"\xd6zet minimum 20 karakter olmalıdır").max(200,"\xd6zet en fazla 200 karakter olmalıdır").required("\xd6zet giriniz"),thumbnailImage:j.Ik({name:j.Yj().required("İ\xe7erik kapak g\xf6rseli zorunludur"),url:j.Yj().required("İ\xe7erik kapak g\xf6rseli zorunludur"),file:j.gl().nullable().test("fileType","Yalnızca png, jpg veya jpeg y\xfckleyin",e=>!e||eq.includes(e.type?.toLowerCase())).test("fileSize","G\xf6rsel boyutu en fazla 10 MB olmalıdır",e=>!e||e.size<=0xa00000)}).required("İ\xe7erik kapak g\xf6rseli zorunludur"),category:Q?j.Yj().optional():j.Yj().required("Kategori se\xe7iniz"),type:j.Yj().oneOf(["standard","test","list","quiz","poll"],"Ge\xe7erli i\xe7erik t\xfcr\xfc se\xe7iniz").required("İ\xe7erik t\xfcr\xfc se\xe7iniz"),content:j.Yj().required("İ\xe7erik giriniz").test("content-length","İ\xe7erik 300-10000 karakter arasında olmalıdır",e=>{let t=eM(e||"").length;return t>=300&&t<=1e4}),videoUrl:j.Yj().nullable().optional(),listItems:Q?j.YO().optional():j.YO().of(eB).when("type",{is:"list",then:e=>e.min(3,"En az 3 madde ekleyin").max(20,"En fazla 20 madde ekleyin"),otherwise:e=>e.optional()}),pollItems:Q?j.YO().optional():j.YO().of(eP).when("type",{is:"poll",then:e=>e.min(1,"En az 1 anket sorusu ekleyin").max(20,"En fazla 20 anket sorusu ekleyin"),otherwise:e=>e.optional()}),examItems:Q?j.YO().optional():j.YO().of(eU).when("type",{is:"quiz",then:e=>e.min(1,"En az 1 soru ekleyin").max(20,"En fazla 20 soru ekleyin"),otherwise:e=>e.optional()}),resultItems:Q?j.YO().optional():j.YO().of(eO).when("type",{is:"test",then:e=>e.min(2,"En az 2 test sonucu ekleyin").max(12,"En fazla 12 test sonucu ekleyin"),otherwise:e=>e.optional()}),quizItems:Q?j.YO().optional():j.YO().of(eH).when("type",{is:"test",then:e=>e.min(1,"En az 1 test sorusu ekleyin").max(24,"En fazla 24 test sorusu ekleyin").test("questions-at-least-results","Soru sayısı sonu\xe7 sayısından az olamaz",function(e){let t=(this.parent?.resultItems||[]).length;return(e?.length||0)>=t}),otherwise:e=>e.optional()}),quizTimerEnabled:j.zM().optional(),quizDurationSeconds:j.ai().nullable().when(["type","quizTimerEnabled"],{is:(e,t)=>"quiz"===e&&t,then:e=>e.typeError("S\xfcre sayısal bir deÄer olmalıdır").required("S\xfcre giriniz").min(30,"S\xfcre en az 30 saniye olmalıdır").max(7200,"S\xfcre en fazla 7200 saniye olmalıdır"),otherwise:e=>e.nullable().optional()})}),[Q]);(0,f.useEffect)(()=>
1543{if(Q||!eZ||ep.current)return;let e=eJ(eZ);e&&(eg.current=!0,ep.current=!0,ea(eZ._id||null),a(e.listItems||eZ.listItems||[]),h(e.pollItems||eZ.pollItems||[]),v(e.examItems||eZ.examItems||[]),en("saved"),ei(eZ.updatedAt||null),setTimeout(()=>{eg.current=!1,ex.current=JSON.stringify({...eX,draftId:eZ._id||null})},0))},[eZ,eX,Q]);let e0=e=>!!(e.title?.trim()||e.description?.trim()||eM(e.content||"")||e.bodyDocument?.trim()||e.videoUrl?.trim()||e.thumbnailImage?.url||e.category||t.length||l.length||b.length||e.resultItems?.length||e.quizItems?.length);function e1({values:e,setFieldValue:t,currentDraftId:a,isPublishingContent:r,listItems:n,pollItems:s,examItems:l}){return(0,f.useEffect)(()=>{if(Q||eg.current||r)return;!a&&!ee&&e0(e)&&ed(!1);let i={...e,draftId:a||void 0,listItems:n,pollItems:s,examItems:eG(l)};if(!e0(e)||JSON.stringify(i)===ex.current)return;let o=setTimeout(async()=>{if(!eg.current)try{en("saving");let a=await P({values:i});a?._id&&(ea(a._id),ei(a.updatedAt||new Date().toISOString()),en("saved"),a.thumbnailImage?.url&&a.thumbnailImage.url!==e.thumbnailImage?.url&&t("thumbnailImage",a.thumbnailImage),ex.current=JSON.stringify({...i,draftId:a._id,thumbnailImage:a.thumbnailImage||i.thumbnailImage}))}catch{en("error")}},1500);return()=>clearTimeout(o)},[e,n,s,l,a,r,t]),null}let e2="saving"===er?"Taslak kaydediliyor...":"saved"===er?`Taslak kaydedildi${el?` \xb7 ${new Date(el).toLocaleString("tr-TR",{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"})}`:""}`:"error"===er?"Taslak kaydedilemedi. BaÄlantınızı kontrol edip tekrar deneyin.":eS||ew?"Son taslak kontrol ediliyor...":et?"Son taslaÄınız y\xfcklendi.":null;return(0,r.jsx)("div",{className:"w-full pb-24 pt-6 md:pb-10 md:pt-10",children:(0,r.jsxs)("div",{className:"mx-auto flex w-full max-w-7xl flex-col gap-6 px-3 md:px-6",children:[(0,r.jsx)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm md:p-7",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row md:items-start md:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs font-bold uppercase tracking-[0.18em] text-slate-400",children:"Content Studio"}),(0,r.jsx)("h1",{className:"mt-2 text-2xl font-extrabold text-slate-950 md:text-3xl",children:Q?"İ\xe7eriÄi d\xfczenle":et?"TaslaÄa devam et":"Yeni i\xe7erik yayınla"}),(0,r.jsx)("p",{className:"mt-2 max-w-3xl text-sm leading-6 text-slate-600",children:Q?"DeÄiÅiklikler kaydedildiÄinde i\xe7erik tekrar inceleme s\xfcrecine alınır.":"İ\xe7eriÄini tamamla, g\xf6rselleri se\xe7 ve yayın akıÅına g\xf6ndermeden \xf6nce \xf6zetini kontrol et."})]}),e2&&(0,r.jsxs)("div",{className:`inline-flex items-center gap-2 rounded-full border px-4 py-2 text-sm font-semibold ${"error"===er?"border-rose-200 bg-rose-50 text-rose-700":"border-emerald-200 bg-emerald-50 text-emerald-700"}`,children:[(0,r.jsx)("span",{className:`h-2 w-2 rounded-full ${"error"===er?"bg-rose-500":"bg-emerald-500"}`}),e2]})]})}),Q&&ef&&(0,r.jsx)("div",{className:"rounded-2xl border border-slate-200 bg-white py-16 text-center",children:(0,r.jsx)("p",{className:"text-sm font-semibold text-slate-500",children:"İ\xe7erik y\xfckleniyor..."})}),Q&&!ef&&eh&&"published"===eh.status&&(0,r.jsx)("div",{className:"rounded-2xl border border-amber-200 bg-amber-50 p-4 text-sm font-semibold text-amber-800",children:"Yayındaki i\xe7erik d\xfczenleniyor. KaydettiÄinizde i\xe7erik taslak durumuna alınır ve tekrar incelemeye g\xf6nderilir."}),(!Q||!ef&&eh)&&(!ee||!ew&&ev)&&(0,r.jsx)(y.l1,{enableReinitialize:Q||!!eZ,initialValues:eX,validationSchema:eQ,onSubmit:(e=Q?eY:eV,async(t,a)=>{t.examItems=eG(t.examItems);let{validateForm:r}=a;if(Object.keys(await r()).length>0)return void window.scrollTo({top:0,behavior:"smooth"});let s=(e=>Array.from(new DOMParser().parseFromString(e||"","text/html").querySelectorAll("img[src]")).filter(e=>!e.closest('[data-block="socialEmbed"]')).map((e,t)=>({index:t,src:e.getAttribute("src")||"",alt:e.alt})).filter(e=>!n(e.alt)))(t.content||(0,eb.un)("",t.bodyDocument));if(s.length){g.Ay.error(s.length+" g\xf6rselin a\xe7ıklamasını tamamlayın."),eK({index:s[0].index,key:Date.now()});return}await e(t)}),validateOnChange:!1,validateOnBlur:!1,children:({values:e,errors:n,resetForm:o,setFieldValue:d})=>{let c,m,u=Array.from(new Set([...Object.values(n||{}).flatMap(eD),...Object.values(z||{}).flatMap(eD)])),p=eM(e.content||"").length,x="test"===e.type?e?.quizItems?.length||0:"quiz"===e.type?b.length:"poll"===e.type?l.length:"list"===e.type?t.length:0,f=I||_||H,j=Q?f?"Kaydediliyor...":"D\xfczenlemeleri kaydet":f?"OluÅturuluyor...":"İ\xe7eriÄi oluÅtur",E=async()=>
1543{if(et&&!O&&window.confirm("Bu taslak ve i\xe7indeki t\xfcm bilgiler kalıcı olarak temizlenecek. Devam etmek istiyor musunuz?")){eg.current=!0,eu(!1);try{await U(et);let e={title:"",description:"",thumbnailImage:{name:"",url:"",file:null},category:"",type:"",isNsfw:!1,content:"<p></p>",bodyDocument:"",listItems:[],pollItems:[],testItems:[],resultItems:[],quizItems:[],examItems:[],quizTimerEnabled:!1,quizDurationSeconds:60};ea(null),en("idle"),ei(null),a([]),h([]),v([]),C({}),S(!1),R.current&&(R.current.value=""),ex.current=JSON.stringify(e),o({values:e}),await Y.replace("/publish-post",void 0,{shallow:!0}),g.Ay.success("Taslak temizlendi.")}catch(e){eu(!0),g.Ay.error(e instanceof Error?e.message:"Taslak temizlenemedi.")}finally{window.setTimeout(()=>{eg.current=!1},0)}}};return(0,r.jsxs)(y.lV,{className:"mx-auto flex w-full max-w-5xl flex-col gap-6",children:[(0,r.jsx)(e1,{values:e,setFieldValue:d,currentDraftId:et,isPublishingContent:_,listItems:t,pollItems:l,examItems:b}),et&&!Q?(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsxs)("button",{type:"button",disabled:O,onClick:()=>void E(),className:"inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-xs font-bold text-rose-600 transition hover:bg-rose-50 hover:text-rose-700 disabled:cursor-not-allowed disabled:opacity-50",children:[(0,r.jsx)(w.A,{className:"h-4 w-4"}),O?"Temizleniyor...":"TaslaÄı temizle"]})}):null,(0,r.jsx)(s.A,{isOpen:I,contentType:e.type,itemCount:x}),(0,r.jsx)(k.A,{open:N,onClose:()=>S(!1),className:"flex items-center justify-center",children:(0,r.jsx)("div",{className:"mx-4 w-full max-w-2xl overflow-hidden rounded-2xl bg-white p-4 shadow-2xl",children:e.thumbnailImage?.url&&(0,r.jsx)(K(),{src:e.thumbnailImage.url,alt:e.thumbnailImage.name||"Kapak g\xf6rseli",className:"h-auto w-full rounded-xl",width:900,height:900})})}),(0,r.jsxs)("div",{className:"flex min-w-0 flex-col gap-5",children:[u.length>0&&(0,r.jsx)("div",{ref:L,className:"rounded-2xl border border-amber-200 bg-amber-50 p-4",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)(eE.A,{className:"mt-0.5 h-5 w-5 flex-shrink-0 text-amber-600"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-bold text-amber-900",children:"Yayınlamadan \xf6nce kontrol et"}),(0,r.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:u.map(e=>(0,r.jsx)("span",{className:"rounded-full bg-white px-3 py-1 text-xs font-semibold text-amber-800",children:e},e))})]})]})}),(0,r.jsxs)("section",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm md:p-6",children:[(0,r.jsx)("div",{className:"mb-5 flex items-start justify-between gap-4",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-lg font-extrabold text-slate-950",children:"Temel bilgiler"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"İ\xe7eriÄin listelerde ve detay sayfasında g\xf6r\xfcnen ana bilgileri."})]})}),(0,r.jsxs)("div",{className:"grid gap-4",children:[(0,r.jsxs)("label",{className:"grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"BaÅlık"}),(0,r.jsx)(y.D0,{name:"title",className:"input w-full",type:"text",placeholder:"Okuru i\xe7eriÄe \xe7eken net bir baÅlık yaz"})]}),(0,r.jsxs)("label",{className:"grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"\xd6zet"}),(0,r.jsx)(y.D0,{name:"description",className:"input min-h-[110px] w-full",as:"textarea",placeholder:"İ\xe7eriÄin kısa vaadini ve kapsamını anlat"})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsxs)("label",{className:"grid gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-bold text-slate-700",children:"Kategori"}),Q?(0,r.jsx)("input",{className:"input cursor-not-allowed bg-slate-100 text-slate-500",value:"Kategori deÄiÅtirilemez",disabled:!0,readOnly:!0}):(0,r.jsxs)(y.D0,{name:"category",as:"select",className:"input",defaultValue:"",onChange:e=>d("category",e.target.value),children:[(0,r.jsx)("option",{value:"",disabled:!0,children:"Kategori se\xe7"}),V?.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,r.jsx)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)(ez.A,{className:"h-5 w-5 text-slate-500"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-bold text-slate-800",children:"Hassas i\xe7erik"}),(0,r.jsx)("p",{className:"mt-1 text-xs leading-5 text-slate-500",children:"Gerekliyse iÅaretle; kullanıcıdan g\xf6r\xfcnt\xfcleme onayı istenir."})]})]}),(0,r.jsx)("button",{type:"button",onClick:()=>d("isNsfw",!e.isNsfw),className:`relative h-7 w-12 rounded-full transition ${e.isNsfw?"bg-amber-500":"bg-slate-300"}`,"aria-label":"Hassas i\xe7erik durumunu deÄiÅtir",children:(0,r.jsx)("span",{className:`absolute top-1 h-5 w-5 rounded-full bg-white shadow transition ${e.isNsfw?"left-6":"left-1"}`})})]})})]})]})]}),(0,r.jsxs)("section",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm md:p-6",children:[(0,r.jsxs)("div",{className:"mb-5",children:[(0,r.jsx)("h2",{className:"text-lg font-extrabold text-slate-950",children:"Kapak ve t\xfcr"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"G\xf6rsel ve i\xe7erik tipini aynı yerden y\xf6net."})]}),(0,r.jsxs)("div",{className:"grid gap-5 lg:grid-cols-[280px_minmax(0,1fr)] xl:grid-cols-[320px_minmax(0,1fr)]",children:[(0,r.jsxs)("div",{className:"overflow-hidden rounded-2xl border border-slate-200 bg-slate-50",children:[(0,r.jsx)("div",{className:"relative aspect-square w-full bg-white",children:e.thumbnailImage?.url?(0,r.jsx)(K(),{src:e.thumbnailImage.url,alt:e.thumbnailImage.name||"Kapak g\xf6rseli",fill:!0,sizes:"(max-width: 767px) calc(100vw - 3rem), 720px",className:"object-cover"}):(0,r.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3 p-6 text-center",children:[(0,r.jsx)(B.A,{className:"h-10 w-10 text-slate-400"}),(0,r.jsx)("p",{className:"text-sm font-semibold text-slate-500",children:"Kapak g\xf6rseli se\xe7ilmedi"})]})}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2 p-3",children:[(0,r.jsx)("input",{type:"file",ref:R,className:"hidden",id:"thumbnailImageUpload",accept:"image/png,image/jpeg,image/jpg,image/webp",onChange:async e=>{if(!e.target.files)return;let t=e.target.files?.[0];if(!t)return;let a=eq.includes(t.type?.toLowerCase()),r=t.size<=0xa00000;if(!a)return void g.Ay.error("Yalnızca png, jpg veya jpeg y\xfckleyin");if(!r)return void g.Ay.error("G\xf6rsel boyutu en fazla 10 MB olmalıdır");let n=new FileReader;n.onloadend=()=>{let e=n.result,t=new window.Image;t.onload=()=>
1543{if(t.naturalWidth<1200||t.naturalHeight<630)return void g.Ay.error("Kapak g\xf6rseli en az 1200\xd7630 piksel olmalıdır");M(e),T(!0)},t.src=e},n.readAsDataURL(t)}}),(0,r.jsxs)("label",{className:"btn btn-dark flex-1 cursor-pointer justify-center",htmlFor:"thumbnailImageUpload",children:[(0,r.jsx)(B.A,{className:"h-5 w-5"}),e.thumbnailImage?.url?"G\xf6rseli deÄiÅtir":"G\xf6rsel se\xe7"]}),e.thumbnailImage?.url&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{className:"btn btn-light",type:"button",onClick:e=>{e.preventDefault(),S(!0)},"aria-label":"Kapak g\xf6rselini \xf6nizle",children:(0,r.jsx)(eC.A,{className:"h-5 w-5"})}),(0,r.jsx)("button",{className:"btn btn-danger",type:"button",onClick:e=>{e.preventDefault(),d("thumbnailImage",{name:"",url:"",file:null}),R.current&&(R.current.value="")},"aria-label":"Kapak g\xf6rselini kaldır",children:(0,r.jsx)(w.A,{className:"h-5 w-5"})})]})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,r.jsx)("p",{className:"text-sm font-bold text-slate-700",children:"İ\xe7erik t\xfcr\xfc"}),Q&&(0,r.jsx)("span",{className:"rounded-full bg-slate-100 px-3 py-1 text-xs font-semibold text-slate-500",children:"D\xfczenlemede deÄiÅtirilemez"})]}),(0,r.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:eR.map(t=>{let a=t.icon,n=e.type===t.value;return(0,r.jsx)("button",{type:"button",disabled:Q,onClick:()=>{!Q&&(d("type",t.value),"quiz"!==t.value?(d("quizTimerEnabled",!1),d("quizDurationSeconds",null)):e.quizDurationSeconds||d("quizDurationSeconds",60))},className:`min-w-0 rounded-2xl border p-4 text-left transition ${n?"border-secondary bg-teal-50 text-slate-950 shadow-sm":"border-slate-200 bg-white text-slate-700 hover:border-slate-300"} ${Q?"cursor-not-allowed opacity-70":""}`,children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:`rounded-xl p-2 ${n?"bg-secondary text-white":"bg-slate-100 text-slate-500"}`,children:(0,r.jsx)(a,{className:"h-5 w-5"})}),(0,r.jsxs)("span",{className:"min-w-0",children:[(0,r.jsx)("span",{className:"block text-sm font-extrabold",children:t.label}),(0,r.jsx)("span",{className:"mt-1 block text-xs leading-5 text-slate-500",children:t.description})]})]})},t.value)})})]})]})]}),(0,r.jsxs)("section",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm md:p-6",children:[(0,r.jsxs)("div",{className:"mb-5 flex items-center justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-lg font-extrabold text-slate-950",children:"İ\xe7erik g\xf6vdesi"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"Ana metni yaz, gerekiyorsa edit\xf6r i\xe7inden g\xf6rsel ekle."})]}),(0,r.jsxs)("span",{className:"rounded-full bg-slate-100 px-3 py-1 text-xs font-bold text-slate-600",children:[p,"/10000"]})]}),(0,r.jsx)(ej,{descriptionRequest:eW,mountKey:Q?`edit-${Z||"content"}`:et?`draft-${et}`:"create",initialHtml:e.content?.trim()?e.content:(0,eb.un)("",e.bodyDocument),placeholder:"OluÅturmak istediÄiniz i\xe7eriÄi buraya yazınız",onUploadImage:eF,onUploadVideo:eF,onVideoUploaded:e=>d("videoUrl",e),onChange:({html:e,bodyDocument:t})=>{d("content",e||"<p></p>"),d("bodyDocument",t||"")}}),(0,r.jsx)("div",{className:"mt-5",children:e.videoUrl?(c=e.videoUrl,m=()=>d("videoUrl",""),(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(eT.o,{src:c,onRemove:m})})):(0,r.jsx)("div",{className:"rounded-2xl border border-dashed border-slate-300 bg-slate-50 p-5",children:(0,r.jsx)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-extrabold text-slate-900",children:"Video alanı boÅ"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"Bir video se\xe7ildiÄinde burada \xf6nizleme g\xf6r\xfcn\xfcr."})]})})})})]}),!Q&&e.type&&"standard"!==e.type&&(0,r.jsxs)("section",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm md:p-6",children:[(0,r.jsxs)("div",{className:"mb-3",children:[(0,r.jsxs)("h2",{className:"text-lg font-extrabold text-slate-950",children:[eL(e.type)," yapısı"]}),(0,r.jsx)("p",{className:"mt-1 text-sm text-slate-500",children:"Se\xe7tiÄin i\xe7erik t\xfcr\xfcn\xfcn kartlarını ve se\xe7eneklerini oluÅtur."})]}),((e,n,s)=>{switch(e.type){case"standard":default:return(0,r.jsx)(r.Fragment,{});case"test":return(0,r.jsx)(em,{initialValues:eX,values:e,setFieldValue:n,validSchema:s});case"list":return(0,r.jsx)(G,{listItems:t,setListItems:a,setFieldValue:n,setListErrors:C,onUploadMedia:eF});case"quiz":return(0,r.jsx)(es,{examItems:b,setExamItems:v,setFieldValue:n,onUploadMedia:eF});case"poll":return(0,r.jsx)(J,{pollItems:l,setPollItems:h,setFieldValue:n,onUploadMedia:eF})}})(e,d,eQ),"quiz"===e.type&&(0,r.jsx)("div",{className:"mt-5",children:(0,r.jsx)(e_,{values:e,setFieldValue:d})})]}),!Q&&!e.type&&(0,r.jsxs)("section",{className:"rounded-2xl border border-dashed border-slate-300 bg-white p-8 text-center",children:[(0,r.jsx)(eI.A,{className:"mx-auto h-10 w-10 text-slate-400"}),(0,r.jsx)("p",{className:"mt-3 text-sm font-semibold text-slate-600",children:"Yapı alanlarını g\xf6rme
1543k i\xe7in \xf6nce i\xe7erik t\xfcr\xfc se\xe7."})]}),Q&&e.type&&"standard"!==e.type&&(0,r.jsx)("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-4 text-sm leading-6 text-slate-600",children:"Bu i\xe7eriÄin t\xfcre \xf6zel \xf6Äeleri korunur. Bu ekranda baÅlık, \xf6zet, ana metin, hassas i\xe7erik durumu ve kapak g\xf6rseli g\xfcncellenebilir."})]}),(0,r.jsx)("div",{className:"rounded-2xl border border-slate-200 bg-white p-4 shadow-sm md:p-5",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"text-sm font-extrabold text-slate-950",children:"Yayına g\xf6nder"}),(0,r.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-xs font-bold text-slate-500",children:[(0,r.jsx)("span",{className:"rounded-full bg-slate-100 px-3 py-1",children:eL(e.type)}),(0,r.jsxs)("span",{className:"rounded-full bg-slate-100 px-3 py-1",children:[p," karakter"]}),e.type&&"standard"!==e.type&&(0,r.jsxs)("span",{className:"rounded-full bg-slate-100 px-3 py-1",children:[x," \xf6Äe"]})]})]}),(0,r.jsx)("button",{type:"submit",disabled:f,className:"btn btn-primary w-full justify-center disabled:cursor-not-allowed disabled:opacity-60 md:w-auto",children:j})]})}),(0,r.jsx)(i.A,{isOpen:A,imageSrc:q,title:"Kapak g\xf6rselini kırp (1200\xd7630)",aspect:1200/630,onClose:()=>{T(!1),M(""),R.current&&(R.current.value="")},onApply:async t=>{try{let a=await (await fetch(t)).blob(),r=new File([a],`content-cover-${Date.now()}.jpg`,{type:a.type||"image/jpeg"}),n=await e$(r,{kind:"cover",alt:e.title||"İ\xe7erik kapak g\xf6rseli"});d("thumbnailImage",{name:r.name,...n,file:null}),d("thumbnailAsset",n),T(!1),M("")}catch(e){g.Ay.error(e instanceof Error?e.message:"Kapak g\xf6rseli y\xfcklenemedi")}}})]})}})]})})},eG=eF;eF.getLayout=e=>(0,r.jsx)(l.A,{children:e})},59792:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"}))})},63393:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))})},65283:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))})},65590:e=>{e.exports={button:"Button_button__pHaIp",primary:"Button_primary__0EPvY",secondary:"Button_secondary__LtFsR",ghost:"Button_ghost__7J8Mx",danger:"Button_danger__Hfnga",sm:"Button_sm__zkEHc",md:"Button_md__clc99",lg:"Button_lg__LAWzu",fullWidth:"Button_fullWidth__7kdFL",iconOnly:"Button_iconOnly__gRDjQ"}},68974:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"}))})},74287:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))})},74550:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))})},78616:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M2
15430.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"}))})},82437:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var r=a(37876),n=a(27062);let s=async(e,t,a="image/jpeg",r=.92)=>{let n=await new Promise((t,a)=>{let r=document.createElement("img");r.addEventListener("load",()=>t(r)),r.addEventListener("error",()=>a(Error("Image could not be loaded"))),r.setAttribute("crossOrigin","anonymous"),r.src=e}),s=document.createElement("canvas"),l=s.getContext("2d");if(!l)throw Error("2D context is not available");return s.width=t.width,s.height=t.height,l.drawImage(n,t.x,t.y,t.width,t.height,0,0,t.width,t.height),new Promise((e,t)=>{s.toBlob(a=>{if(!a)return void t(Error("Could not create cropped image blob"));let r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=()=>t(Error("Could not read cropped blob")),r.readAsDataURL(a)},a,r)})};var l=a(5797),i=a(6978),o=a(14232),d=a(32615),c=a(97685);let m=({isOpen:e,imageSrc:t,title:a="G\xf6rseli kırp",aspect:m,onClose:u,onApply:p})=>{let[g,x]=(0,o.useState)({x:0,y:0}),[h,b]=(0,o.useState)(1),[f,v]=(0,o.useState)(null),[w,y]=(0,o.useState)(!1),j=(0,o.useCallback)((e,t)=>{v(t)},[]),k=async()=>{if(f&&t&&!w)try{y(!0);let e=await s(t,f);p(e),x({x:0,y:0}),b(1)}catch{c.Ay.error("G\xf6rsel kırpılırken hata oluÅtu")}finally{y(!1)}},N=()=>{w||(x({x:0,y:0}),b(1),u())};return(0,r.jsx)(l.e,{appear:!0,show:e,as:o.Fragment,children:(0,r.jsxs)(i.lG,{as:"div",className:"relative z-[2147483646]",onClose:N,children:[(0,r.jsx)(l.e.Child,{as:o.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,r.jsx)("div",{className:"fixed inset-0 bg-black/40"})}),(0,r.jsx)("div",{className:"fixed inset-0 overflow-y-auto",children:(0,r.jsx)("div",{className:"flex min-h-full items-center justify-center p-4",children:(0,r.jsx)(l.e.Child,{as:o.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 scale-95",enterTo:"opacity-100 scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 scale-100",leaveTo:"opacity-0 scale-95",children:(0,r.jsxs)(i.lG.Panel,{className:"w-full max-w-2xl transform overflow-hidden rounded-2xl bg-white p-5 shadow-2xl transition-all",children:[(0,r.jsx)(i.lG.Title,{as:"h3",className:"mb-4 text-lg font-semibold text-dark",children:a}),(0,r.jsx)("div",{className:"relative h-[420px] w-full overflow-hidden rounded-xl bg-gray-100",children:(0,r.jsx)(d.Ay,{image:t,crop:g,zoom:h,aspect:m,showGrid:!1,cropShape:"rect",onCropChange:x,onCropComplete:j,onZoomChange:b})}),(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)("label",{className:"mb-2 block text-sm text-gray-600",children:"YakınlaÅtırma"}),(0,r.jsx)("input",{type:"range",min:1,max:3,step:.1,value:h,onChange:e=>b(Number(e.target.value)),className:"w-full"})]}),(0,r.jsxs)("div",{className:"mt-5 flex items-center justify-end gap-2",children:[(0,r.jsx)(n.A,{type:"button",variant:"ghost",onClick:N,disabled:w,children:"İptal"}),(0,r.jsx)(n.A,{type:"button",variant:"secondary",onClick:k,disabled:w,children:w?"Uygulanıyor...":"Kırpmayı uygula"})]})]})})})})]})})}},85616:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))})},87498:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(14232);let n=r.forwardRef(function({title:e,titleId:t,...a},n){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},a),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244"}))})},88015:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>o});var r=a(37876),n=a(83471),s=a(59792),l=a(14232);let i=e=>"instagram"===e?"Instagram":"X";function o({embed:e,compact:t=!1}){let a=(0,l.useRef)(null);if((0,l.useEffect)(()=>{(0,n.L)(a.current)},[e?.html,e?.provider,e?.url]),!e?.url)return null;let o=String(e.provider||"x").toLowerCase(),d="instagram"===o||(e=>{try{let t=new URL(String(e||"")).hostname.replace(/^www\./i,"").toLowerCase();return"instagram.com"===t||t.endsWith(".instagram.com")}catch{return!1}})(e.url),c=d?"instagram":o;return!d&&e.html?.trim()?(0,r.jsx)("div",{ref:a,className:`wuubi-social-embed overflow-hidden rounded-xl border border-slate-200 bg-white ${t?"p-2":"p-3"}`,dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:`group block rounded-xl border border-slate-200 bg-white text-left transition hover:border-slate-300 hover:bg-slate-50 ${t?"p-3":"p-4"}`,children:[(0,r.jsx)("span",{className:"text-[11px] font-black uppercase tracking-[0.14em] text-teal-700",children:i(c)}),(0,r.jsx)("span",{className:"mt-1 block text-sm font-extrabold text-slate-950",children:e.title||`${i(c)} g\xf6nderisi`}),(0,r.jsxs)("span",{className:"mt-2 flex min-w-0 items-center gap-2 text-xs font-semibold text-slate-500",children:[(0,r.jsx)("span",{className:"truncate",children:e.url}),(0,r.jsx)(s.A,{className:"h-4 w-4 flex-shrink-0 transition group-hover:translate-x-0.5 group-hover:-translate-y-0.5"})]})]})}},89687:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/publish-post",function(){return a(58085)}])}},e=>{e.O(0,[4938,152,975,3514,6978,6096,5608,2615,4178,1599,7476,636,6593,8792],()=>e(e.s=89687)),_N_E=e.O()}]);
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.