Plugin Directory

Changeset 3747744


Ignore:
Timestamp:
10/15/2026 07:02:44 AM (11 days ago)
Author:
editnday
Message:

Editn 1.0.88

Location:
editnday
Files:
18 edited
1 copied

Legend:

Unmodified
Added
Removed
  • editnday/tags/1.0.88/CHANGELOG.md

    r3743363 r3747744  
    33> 이 파일은 `apps/site/src/content/updates/`에서 만들어진다 (`pnpm release:plugin`). 직접 고치지 않는다.
    44> 웹에서 보기: https://editn.day/updates
     5
     6## 1.0.88 (2026-10-15) — 배경 틀 썸네일: 미리보기·비율·배치·직접 고른 색
     7
     8- (무료) **AI 없이 배경 틀로 만들기**를 고쳤어요.
     9  - 고르는 대로 바로 **미리보기**가 나와요.
     10  - **비율**: 공유 1.91:1(카카오톡·페이스북 미리보기) · 가로 16:9 · 가로 4:3 · 세로 3:4 · 세로 9:16
     11  - **배치**: 가운데 · 잡지형(위에 사이트 이름, 아래쪽에 짧은 막대와 큰 제목) · 아래 띠
     12  - **색**: 기본 6가지에 더해 **직접 고른 색**(컬러 피커나 hex 코드). 글자색은 바탕에 맞춰 자동으로
     13  - 제목이 짧으면 크게, 길면 작게 맞춰요. 마지막에 고른 것을 기억해요.
     14- AI·서버를 부르지 않고 이 컴퓨터에서 바로 그려요.
    515
    616## 1.0.77 (2026-10-13) — 읽힘 세기: 떠난 뒤 더 읽으면 보정, 성과 표 제목 따옴표
  • editnday/tags/1.0.88/build/index.asset.php

    r3742866 r3747744  
    1414                'wp-plugins'
    1515        ),
    16         'version' => '22091c4fbc188e4a19f6'
     16        'version' => 'b728a36bc7a64e8c88e5'
    1717);
  • editnday/tags/1.0.88/build/index.js

    r3742866 r3747744  
    1 (()=>{"use strict";var e={786(e,t,n){var s={};n.r(s),n.d(s,{EVENT:()=>u,SLOT:()=>_,emit:()=>m,hasPro:()=>h,slot:()=>y});var d={};n.r(d),n.d(d,{Bar:()=>M,Card:()=>w,Check:()=>j,Chip:()=>S,Cta:()=>k,Elapsed:()=>E,Ghost:()=>N,Head:()=>A,Live:()=>P,Opt:()=>$,Radio:()=>O,Req:()=>I,Stepper:()=>L,Steps:()=>B,Symbol:()=>x,Tabs:()=>v,Tag:()=>C});var a={};n.r(a),n.d(a,{CONTENT_STYLE:()=>te,applyToSentence:()=>le,bodyHeadings:()=>Q,clearEmptyStart:()=>ie,contentStyleOn:()=>ne,findSentenceBlock:()=>ce,hasSection:()=>W,insertSection:()=>X,insertSectionAfter:()=>ee,plainText:()=>de,restoreBlocks:()=>oe,setTitle:()=>re,showSentence:()=>_e,withContentStyle:()=>se});var i={};n.r(i),n.d(i,{CategoryNoFit:()=>st,KoSeoCard:()=>Pt,PublishScreen:()=>Rt,TASKS:()=>ht,TEMPLATES:()=>kt,closestSentence:()=>ct,contentText:()=>tt,decode:()=>dt,ed:()=>Ze,edit:()=>Ye,hasWord:()=>lt,insertRelated:()=>It,memberOnly:()=>rt,placeVisible:()=>gt,readMeta:()=>Qe,setFineKeyword:()=>xt,strip:()=>At,tagIds:()=>yt,templateFeatured:()=>vt,titleFeatured:()=>Ct,useKoSeo:()=>Et,usePublishState:()=>ft,writeMeta:()=>et});const r=window.wp.i18n,l=window.wp.editor,o=window.wp.element,c=window.wp.hooks,_={pro:"editnday.pro",tabs:"editnday.sidebar.tabs",notice:"editnday.notice",checkItemActions:"editnday.check.itemActions",publishFieldActions:"editnday.publish.fieldActions",keywordFix:"editnday.publish.keywordFix",keywordInfo:"editnday.publish.keywordInfo",prepublishFixes:"editnday.prepublish.fixes"},u={newPost:"editnday.newPost"},h=()=>!!(0,c.applyFilters)(_.pro,null),y=(e,t={})=>{const n=(0,c.applyFilters)(e,[],t);return Array.isArray(n)?n.filter(Boolean):[]},m=(e,...t)=>(0,c.doAction)(e,...t),p=window.wp.components,g=window.wp.compose,f=window.ReactJSXRuntime,x=({size:e=16,color:t="#243235"})=>(0,f.jsx)("svg",{viewBox:"0 0 44 46.6",width:e,height:e,"aria-hidden":"true",children:(0,f.jsx)("path",{fill:t,d:"M43.22,21.083c.304-6.426-2.765-9.571-2.765-9.571-4.952-5.651-16.923-5.378-27.013-5.047-1.774,0-2.833.293-4.019.748-1.738.635-3.071,1.831-4.423,3.1-1.435,1.352-2.621,3.131-3.517,5.49C.131,19.294-.296,23.225.2,27.005c0,.003,0,.005.001.008,0,0,1.116,5.041,2.233,7.124.662,1.241,4.373,5.311,5.531,5.987,2.069,1.2,5.559,2.262,7.863,1.117-.386-.455-.814-.91-1.035-1.476-.221-.538-.221-1.228.166-1.669.11-.138.221-.262.331-.372.772.028,1.499.428,5.568.428,5.378.133,16.915,1.493,15.26-2.767-13.801-.264-20.166-.917-22.161-3.05-.475-.508-.34-1.395.13-.921,3.733,3.767,23.166,3.09,23.175,3.095,3.119.035,5.785-8.914,5.957-13.425ZM12.152,28.125c-2.019.168-3.793-2.006-2.416-3.297.971-.912,2.233-1.046,3.547.038,1.691,1.459.425,3.13-1.131,3.26Z"})}),b=()=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"#243235",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M7 17L17 7M9 7h8v8"})}),j=({color:e="#fff"})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:e,strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M5 12.5l4.5 4.5L19 7.5"})}),w=({children:e,className:t=""})=>(0,f.jsx)("div",{className:`ed-card ${t}`,children:e}),k=({children:e,onClick:t,disabled:n})=>(0,f.jsxs)("button",{type:"button",className:"ed-cta",onClick:t,disabled:n,children:[(0,f.jsx)("span",{children:e}),(0,f.jsx)("span",{className:"ed-cta__dot",children:(0,f.jsx)(b,{})})]}),N=({children:e,onClick:t,disabled:n})=>(0,f.jsx)("button",{type:"button",className:"ed-ghost",onClick:t,disabled:n,children:e}),v=({tabs:e,value:t,onChange:n})=>(0,f.jsx)("div",{className:"ed-tabs",role:"tablist",children:e.map(([e,s])=>(0,f.jsx)("button",{type:"button",role:"tab","aria-selected":t===e,className:"ed-tab"+(t===e?" is-on":""),onClick:()=>n(e),children:s},e))}),S=({children:e,on:t,lav:n,onClick:s})=>(0,f.jsx)("button",{type:"button",className:`ed-chip${t?" is-on":""}${n?" is-lav":""}`,onClick:s,"aria-pressed":!!t,children:e}),C=({children:e,tone:t})=>(0,f.jsx)("span",{className:"ed-tag"+(t?` is-${t}`:""),children:e}),I=()=>(0,f.jsx)("span",{className:"ed-req",role:"img","aria-label":(0,r.__)("필수","editnday")}),$=()=>(0,f.jsx)("span",{className:"ed-opt",children:(0,r.__)("선택","editnday")}),A=({eyebrow:e,title:t,sub:n})=>(0,f.jsxs)("div",{className:"ed-head",children:[e&&(0,f.jsx)("span",{className:"ed-eyebrow",children:e}),(0,f.jsx)("h2",{className:"ed-h",children:t}),n&&(0,f.jsx)("p",{className:"ed-sub",children:n})]}),B=({steps:e})=>(0,f.jsx)("div",{className:"ed-steps",children:e.map(e=>(0,f.jsxs)("div",{className:`ed-step is-${e.state}`,children:[(0,f.jsx)("span",{className:"ed-circ",children:"done"===e.state&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-step__label",children:e.label}),e.meta&&(0,f.jsx)("span",{className:"ed-muted ed-step__meta",children:e.meta})]},e.label))});function E({since:e}){const[t,n]=(0,o.useState)(Date.now());(0,o.useEffect)(()=>{const e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]);const s=Math.max(0,Math.round((t-e)/1e3));return(0,f.jsx)("span",{className:"ed-muted ed-elapsed",children:s>=60?(0,r.sprintf)(/* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */ /* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */(0,r.__)("%1$s분 %2$s초째","editnday"),Math.floor(s/60),s%60):(0,r.sprintf)(/* translators: %s: s */ /* translators: %s: s */(0,r.__)("%s초째","editnday"),s)})}const P=({text:e,since:t})=>(0,f.jsxs)("div",{className:"ed-live",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,f.jsx)("span",{className:"ed-live__t",children:e}),(0,f.jsx)(E,{since:t})]}),M=({ratio:e,busy:t})=>(0,f.jsxs)("div",{className:"ed-bar"+(t?" is-busy":""),role:"progressbar","aria-valuenow":Math.round(100*e),"aria-valuemin":0,"aria-valuemax":100,children:[(0,f.jsx)("div",{className:"ed-bar__fill",style:{width:`${Math.max(4,100*e)}%`}}),(0,f.jsx)("div",{className:"ed-bar__hatch"})]}),O=({checked:e,onChange:t,children:n})=>{const s=`ed-radio-${(0,g.useInstanceId)(O)}`;return(0,f.jsxs)("label",{htmlFor:s,className:"ed-radio"+(e?" is-on":""),children:[(0,f.jsx)("input",{id:s,type:"radio",checked:e,onChange:t}),(0,f.jsx)("span",{className:"ed-rdot"}),(0,f.jsx)("span",{children:n})]})},T={start:[0,-1,""],research:[0,0,(0,r.__)("에디튼이 자료를 모으는 중 · 1~2분","editnday")],plan:[1,-1,""],writing:[1,1,(0,r.__)("다 쓰면 확인할 곳을 보여 드려요 · 2~3분","editnday")],review:[2,-1,(0,r.__)("확인할 곳을 정하면 발행 준비로 넘어가요","editnday")],done:[2,-1,""]},q=[(0,r.__)("주제·메모","editnday"),(0,r.__)("구성안 고르기","editnday"),(0,r.__)("확인·발행","editnday")],F=[(0,r.__)("자료 조사","editnday"),(0,r.__)("본문 쓰기","editnday")];function L({stage:e}){const t=T[e];if(!t)return null;const[n,s,d]=t,a=s>=0?s:n-1;return(0,f.jsxs)("div",{className:"ed-stepper","aria-label":(0,r.sprintf)(/* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */ /* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */(0,r.__)("작가가 할 일 3단계 중 %1$s단계%2$s","editnday"),n+1,s>=0?(0,r.sprintf)(/* translators: %s: 진행 중인 일 */ /* translators: %s: 진행 중인 일 */
    2 (0,r.__)(", %s 중","editnday"),F[s]):""),children:[(0,f.jsx)("div",{className:"ed-stepper__flow",children:q.map((e,t)=>{const d=t<=a,i=!d&&t===n&&s<0;return[(0,f.jsxs)("div",{className:`ed-stepper__st${d?" is-done":""}${i?" is-now":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__dot",children:d?(0,f.jsx)(j,{}):t+1}),(0,f.jsx)("span",{className:"ed-stepper__lbl",children:e})]},e),t<F.length&&(0,f.jsxs)("div",{className:`ed-stepper__link${t===s?" is-run":""}${t<a||t<n&&s<0?" is-done":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__line"}),(0,f.jsxs)("em",{children:[F[t],t===s?(0,r.__)("중","editnday"):""]})]},F[t])]})}),d&&(0,f.jsx)("span",{className:"ed-stepper__note",children:d})]})}const R="editnday_pro_card_off";function K({onClose:e}){return(0,f.jsxs)(p.Modal,{title:(0,r.__)("에디튼 프로","editnday"),onRequestClose:e,className:"ed-proinfo",size:"medium",children:[(0,f.jsx)("p",{children:(0,r.__)("에디튼 프로는 지금 쓰는 에디튼에 AI를 더해요. 무료 기능은 그대로이고, 같은 사이드바에 버튼과 [새 글 쓰기] 탭이 생겨요.","editnday")}),(0,f.jsxs)("ul",{children:[(0,f.jsx)("li",{children:(0,r.__)("새 글 쓰기: 주제와 메모로 자료 조사 → 구성안 → 내 문체의 초안 → 확인할 곳까지 (글 1편 10크레딧 안팎)","editnday")}),(0,f.jsx)("li",{children:(0,r.__)("글 점검에서 찾은 문장을 AI로 고치기, 줄이기, 다시 쓰기","editnday")}),(0,f.jsx)("li",{children:(0,r.__)("발행 준비 칸 채우기: 발췌문·태그·카테고리·영문 주소·SEO 제목과 설명·요약·질문답 (한 번에)","editnday")}),(0,f.jsx)("li",{children:(0,r.__)("대표 이미지 만들기(1장 1크레딧)와 ALT, 단락 더 쓰기(1크레딧)","editnday")})]}),(0,f.jsx)("p",{className:"ed-muted",children:(0,r.__)("프로를 설치하고 라이선스를 넣으면 바로 쓸 수 있어요. 지금 이 화면의 기능은 프로 없이도 계속 무료예요.","editnday")}),(0,f.jsx)("p",{children:(0,f.jsx)("a",{className:"components-button is-primary",href:"https://editn.day/",target:"_blank",rel:"noopener noreferrer",children:(0,r.__)("에디튼 프로 알아보기","editnday")})})]})}function D({label:e}){const[t,n]=(0,o.useState)(!1);return h()?null:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("button",{type:"button",className:"ed-prohint",onClick:()=>n(!0),children:[e," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,r.__)("프로","editnday"),children:"P"})]}),t&&(0,f.jsx)(K,{onClose:()=>n(!1)})]})}const H=()=>{try{return"1"===window.localStorage.getItem(R)}catch(e){return!1}};function U(){const[e,t]=(0,o.useState)(H),[n,s]=(0,o.useState)(!1);return h()||e?null:(0,f.jsxs)(w,{className:"ed-procard",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("span",{className:"ed-lbl",children:[(0,r.__)("초안도 써 드려요","editnday")," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,r.__)("프로","editnday"),children:"P"})]}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{t(!0);try{window.localStorage.setItem(R,"1")}catch(e){}},"aria-label":(0,r.__)("이 안내 닫기","editnday"),children:(0,r.__)("닫기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("에디튼 프로는 주제와 메모만으로 자료를 찾아 내 문체의 초안을 쓰고, 여기서 찾은 문장도 AI로 고쳐요.","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!0),children:(0,r.__)("자세히 보기","editnday")}),n&&(0,f.jsx)(K,{onClose:()=>s(!1)})]})}const V=window.wp.apiFetch;var z=n.n(V);const G=window.wp.blocks,J=window.wp.data;function W(e){return(0,J.select)("core/block-editor").getBlocks().some(t=>"core/heading"===t.name&&t.attributes?.metadata?.editnday===e)}function X({id:e,heading:t,text:n}){if(e&&W(e))return!1;const s=[(0,G.createBlock)("core/heading",{level:2,content:ue(t),metadata:{editnday:e}})],d=(0,G.pasteHandler)({plainText:String(n).replace(/~/g,"\\~"),mode:"BLOCKS"});return s.push(...(Array.isArray(d)?d:[]).map(se)),(0,J.dispatch)("core/block-editor").insertBlocks(s),!0}const Z=e=>String(e.attributes?.content??"").replace(/<[^>]+>/g,"").trim(),Y=e=>"faq"===e.attributes?.metadata?.editnday;function Q(){return(0,J.select)("core/block-editor").getBlocks().filter(e=>"core/heading"===e.name&&2===(e.attributes.level??2)&&Z(e)).map(Z)}function ee({heading:e,text:t,afterHeading:n}){const s=(0,J.select)("core/block-editor").getBlocks(),d=e=>"core/heading"===e.name&&2===(e.attributes.level??2),a=s.findIndex(Y),i=a>=0?a:s.length,r=s.findIndex(e=>d(e)&&Z(e)===n);let l=i;if(r>=0&&r<i){const e=s.findIndex((e,t)=>t>r&&d(e));l=e>=0&&e<i?e:i}const o=(0,G.pasteHandler)({plainText:String(t).replace(/~/g,"\\~"),mode:"BLOCKS"}),c=[(0,G.createBlock)("core/heading",{level:2,content:ue(e),metadata:{editnday:`extra-${Date.now()}`}}),...(Array.isArray(o)?o:[]).map(se)];return(0,J.dispatch)("core/block-editor").insertBlocks(c,l),c.map(e=>e.clientId)}const te="is-style-editnday",ne=()=>"off"!==window.editndayConfig?.contentStyle;function se(e){if("core/list"!==e?.name&&"core/table"!==e?.name||!ne())return e;const t=e.attributes.className||"";return/\bis-style-/.test(t)||(e.attributes.className=`${t} ${te}`.trim()),e}const de=e=>String(e).replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),ae=e=>String(e).replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,'<a href="$2">$1</a>');function ie(){const e=(0,J.select)("core/block-editor").getBlocks();1!==e.length||"core/paragraph"!==e[0].name||e[0].attributes.content||(0,J.dispatch)("core/block-editor").removeBlocks([e[0].clientId])}function re(e){(0,J.dispatch)("core/editor").editPost({title:e})}function le(e,t){const n=(0,J.select)("core/block-editor"),s=n=>{for(const d of n){if("core/paragraph"===d.name||"core/list-item"===d.name){const n=String(d.attributes.content??""),s=[e,ae(e),de(e)].find(e=>n.includes(e)),a=s?n.indexOf(s):-1;if(a>=0){const e=(n.slice(0,a)+ae(t??"")+n.slice(a+s.length)).replace(/\s{2,}/g," ").trim();return(0,J.dispatch)("core/block-editor").updateBlockAttributes(d.clientId,{content:e}),{clientId:d.clientId,before:n}}}const n=!!d.innerBlocks?.length&&s(d.innerBlocks);if(n)return n}return!1};return s(n.getBlocks())}function oe(e){const t=(0,J.select)("core/block-editor");for(const n of[...e].reverse())t.getBlock(n.clientId)&&(0,J.dispatch)("core/block-editor").updateBlockAttributes(n.clientId,{content:n.before})}function ce(e){const t=[e,ae(e),de(e)],n=e=>{for(const s of e){const e=String(s.attributes?.content??"");if(e&&t.some(t=>e.includes(t)))return s.clientId;const d=s.innerBlocks?.length&&n(s.innerBlocks);if(d)return d}return null};return n((0,J.select)("core/block-editor").getBlocks())}function _e(e){const t=ce(e);if(!t)return!1;const n=document.querySelector('iframe[name="editor-canvas"]')?.contentDocument||document,s=n.querySelector(`[data-block="${t}"]`),d=n.defaultView,a=s&&function(e,t){const n=e.ownerDocument,s=n.createTreeWalker(e,4),d=[];let a="";for(let e=s.nextNode();e;e=s.nextNode())d.push({n:e,start:a.length}),a+=e.nodeValue;const i=e=>e.replace(/\s+/g," "),r=i(a).indexOf(i(t).trim());if(r<0)return null;const l=[];for(let e=0,t=!1;e<a.length;e++){const n=/\s/.test(a[e]);n&&t||l.push(e),t=n}const o=l[r],c=(l[r+i(t).trim().length-1]??a.length-1)+1,_=e=>{const t=d.findLastIndex(t=>t.start<=e),n=d[Math.max(0,t)];return[n.n,Math.min(e-n.start,n.n.nodeValue.length)]},u=n.createRange();return u.setStart(..._(o)),u.setEnd(..._(c)),u}(s,de(e));if(!a||!d?.CSS?.highlights||"function"!=typeof d.Highlight)return(0,J.dispatch)("core/block-editor").selectBlock(t),(0,J.dispatch)("core/block-editor").flashBlock?.(t),!0;(a.startContainer.parentElement||s).scrollIntoView({behavior:"smooth",block:"center"});let i=n.getElementById("editnday-mark-style");i||(i=n.createElement("style"),i.id="editnday-mark-style",n.head.appendChild(i)),d.CSS.highlights.set("editnday-mark",new d.Highlight(a));const r=Date.now();return clearInterval(_e.timer),_e.timer=setInterval(()=>{const e=Date.now()-r,t=e<2500?.75:Math.max(0,.75*(1-(e-2500)/1500));i.textContent=`::highlight(editnday-mark){background-color:rgba(211,183,241,${t.toFixed(3)});color:inherit}`,0===t&&(clearInterval(_e.timer),d.CSS.highlights.delete("editnday-mark"))},50),!0}const ue=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),he=(e,t,n="낱말")=>({re:new RegExp(`(?<![가-힣])${e}`,"g"),fix:t,kind:n}),ye=(e,t)=>({re:new RegExp(e,"g"),fix:t,kind:"어미"}),me=[he("몇 ?일(?!본|반|부|정|자리|손|꾼|요일|단|등|대|원|차)","며칠"),he("웬지","왠지"),he("왠만","웬만"),he("왠일","웬일"),he("왠걸","웬걸"),he("왠 (?=[가-힣])","웬 "),he("금새","금세"),he("일일히","일일이"),he("깨끗히","깨끗이"),he("틈틈히","틈틈이"),he("곰곰히","곰곰이"),he("번번히","번번이"),he("일찌기","일찍이"),he("오랫만","오랜만"),he("오랜동안","오랫동안"),he("설겆이","설거지"),he("희안","희한"),he("어의없","어이없"),he("역활","역할"),he("되물림","대물림"),he("구지(?= |[.,])","굳이"),he("어짜피","어차피"),he("어줍잖","어쭙잖"),he("널부러","널브러"),he("닥달","닦달"),he("짜집기","짜깁기"),he("설레임","설렘"),he("설레이","설레"),he("헤매이","헤매"),he("되뇌이","되뇌"),he("애시당초","애당초"),he("무릎쓰","무릅쓰"),he("뒤치닥거리","뒤치다꺼리"),he("개거품","게거품"),he("칠흙","칠흑"),he("희노애락","희로애락"),he("인권비","인건비"),he("뇌졸증","뇌졸중"),he("숫가락","숟가락"),he("육계장","육개장"),{re:/찌게(?! ?(하|해|했|되|만들))/g,fix:"찌개",kind:"낱말"},he("떡볶기","떡볶이"),he("윗층","위층"),he("윗쪽","위쪽"),he("아랫층","아래층"),he("가르키","가리키(가리킬 때)·가르치(알려 줄 때)"),he("모자르","모자라"),he("들어나(?=[다고는면서지])","드러나"),he("들어났","드러났"),he("어떡게","어떻게"),he("어떻해","어떡해"),ye("되요","돼요"),ye("되서(?![가-힣])","돼서"),ye("되야","돼야"),ye("됬","됐"),ye("떄","때"),ye("됀","된"),ye("뵈요","봬요"),ye("뵜","뵀"),ye("(?<=[가-힣])이예요","이에요"),ye("아니예요","아니에요"),ye("있슴(?![가-힣])","있음"),ye("없슴(?![가-힣])","없음"),ye("알맞는","알맞은"),ye("걸맞는","걸맞은"),ye("치뤄","치러"),ye("치뤘","치렀"),ye("잠궈","잠가"),ye("잠궜","잠갔"),ye("담궈","담가"),ye("담궜","담갔"),ye("삼가해","삼가"),ye("(?<![가-힣])할려고","하려고"),ye("(?<![가-힣])할려면","하려면"),ye("(?<![가-힣])볼려고","보려고"),ye("(?<![가-힣])먹을려고","먹으려고"),ye("(?<![가-힣])될려고","되려고"),ye("안절부절(?=하|했|한)","안절부절못"),{re:/않(?= ?(하|해|했|된|되|돼))/g,fix:"안",kind:"어미"},{re:/(?<=지 )안(?=[아았는을])/g,fix:"않",kind:"어미"},{re:/가능한 (?=빨리|많이|빠르게|일찍|자주|정확하게|짧게)/g,fix:"가능한 한 ",kind:"표현"},{re:/(?<=답을 )맞(?=추|춰|췄)/g,fix:"맞히(정답을 맞히다)",kind:"표현"},{re:/(?<=사단이 )(났|나)/g,fix:"'사달이 났다'",kind:"표현"},{re:/(?<=(?:하기|하시기|되기|되시기|가기|오기)를 )바래/g,fix:"바라",kind:"표현"},{re:/(?<=(?:하길|되길|가길|오길) )바래/g,fix:"바라",kind:"표현"},he("컨텐츠","콘텐츠","외래어"),he("메세지","메시지","외래어"),he("악세사리","액세서리","외래어"),he("악세서리","액세서리","외래어"),he("리더쉽","리더십","외래어"),he("멤버쉽","멤버십","외래어"),he("파트너쉽","파트너십","외래어"),he("스폰서쉽","스폰서십","외래어"),he("타겟","타깃","외래어"),he("비지니스","비즈니스","외래어"),he("워크샵","워크숍","외래어"),he("스케쥴","스케줄","외래어"),he("쥬스","주스","외래어"),he("초콜렛","초콜릿","외래어"),he("케익","케이크","외래어"),he("카페트","카펫","외래어"),he("부페","뷔페","외래어"),he("렌트카","렌터카","외래어"),he("프로포즈","프러포즈","외래어"),he("로보트","로봇","외래어"),he("앙케이트","앙케트","외래어"),he("엑세스","액세스","외래어"),he("어플리케이션","애플리케이션","외래어"),he("싸이트","사이트","외래어"),he("화이팅","파이팅","외래어"),he("데이타","데이터","외래어"),he("컨셉","콘셉트","외래어"),he("팜플렛","팸플릿","외래어")],pe=e=>(e.charCodeAt(0)-44032)%28,ge=e=>!!e&&e>="가"&&e<="힣";function fe(e){const t=[];for(const n of e.matchAll(/([가-힣])(께|껄)(?=요|[\s.,!?~]|$)/g))8===pe(n[1])&&t.push({wrong:n[0],fix:`${n[1]}${"께"===n[2]?"게":"걸"}`});return t}function xe(e){const t=[];for(const n of e.matchAll(/([가-힣])(율|률)/g)){if(!ge(n[1]))continue;const e=pe(n[1]),s=0===e||4===e?"율":"률";n[2]!==s&&t.push({wrong:n[0],fix:`${n[1]}${s}`})}return t}function be(e){const t=[];for(const n of je(e.text)){const s=[];for(const e of me)for(const t of n.matchAll(e.re))s.push({wrong:t[0].trim(),fix:e.fix.trim()});s.push(...fe(n),...xe(n));const d=new Set;for(const a of s)d.has(a.wrong)||(d.add(a.wrong),t.push({sectionId:e.id,rule:"common_mistake",severity:"warn",detail:`"${a.wrong}" → "${a.fix}"`,sentence:n}))}return t}function je(e){return function(e){return e.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/https?:\/\/\S+/g,"")}(e).replace(/\n+/g,"\n").split(/(?<=[.!?。])\s+|\n/).map(e=>e.replace(/^[#>\-*\s|]+/,"").trim()).filter(e=>e.length>3&&!e.startsWith("|"))}function we(e){const t=je(e).map(e=>e.length),n=t.length||1;return{chars:e.replace(/^#.*$/gm,"").trim().length,sentences:t.length,sentenceAvg:Math.round(t.reduce((e,t)=>e+t,0)/n*10)/10,long100:Math.round(t.filter(e=>e>=100).length/n*1e3)/10,short25:Math.round(t.filter(e=>e<25).length/n*1e3)/10}}const ke=[{re:/완벽한|압도적인|독보적인|특별한 경험/,label:"상투 극찬"},{re:/이상으로 .{0,10}(살펴|알아)/,label:"요약형 맺음"},{re:/(이번 글|이 글)에서(는)? .{0,30}(살펴보|알아보|따라가|다루|정리해)/,label:"메타 서술"},{re:/결론적으로|요약하자면|정리하자면|^정리하면|^요컨대|^종합하면/,label:"정리형 연결어"},{re:/(앞으로|다음에는?|이제부터).{0,40}(보게|하게|찾게|쓰게|되게) 될 것 같다/,label:"작가 행동을 지어냈을 수 있음"},{re:/(기준|대상)[이가과은는]?.{0,12}(다르|달라).{0,20}(겹쳐|합쳐|곧바로|하나로|그대로).{0,8}(읽|비교|보)/,label:"정형 문장 (기준이 달라 합쳐 읽기 어렵다)"}];function Ne(e,t=[]){const n=[];for(const s of je(e.text)){for(const t of ke)t.re.test(s)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"warn",detail:t.label,sentence:s});for(const d of t)d&&s.includes(d)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"block",detail:`금지 표현 "${d}"`,sentence:s})}return n}const ve=/[\u3040-\u30ff\u31f0-\u31ff\uff66-\uff9f]/,Se=/[\u3400-\u4dbf\u4e00-\u9fff]/g;function Ce(e,t=100){return je(e.text).filter(e=>e.length>t).map(n=>({sectionId:e.id,rule:"long_sentence",severity:"warn",detail:`${n.length}자 문장 (${t}자 넘음)`,sentence:n}))}const Ie=/^(또한|그리고|하지만|그러나|그런데|또|특히|이처럼|따라서|즉|게다가|물론|결국)[\s,]/;function $e(e){const t=je(e.text),n=t.map(e=>e.split(/[\s,]/)[0]??""),s=[];for(let d=1;d<t.length;d++){const a=n[d];if(a.length<2||a!==n[d-1])continue;const i=Ie.test(t[d])&&Ie.test(t[d-1]),r=d>=2&&n[d-2]===a;(i||r)&&s.push({sectionId:e.id,rule:"same_start",severity:"warn",detail:`"${a}"(으)로 시작하는 문장이 이어짐`,sentence:t[d]})}return s}const Ae=new RegExp(`(?:^|[\\s"'(“‘])(${["정말","정말로","진짜","진짜로","너무","너무나","아주","매우","완전","엄청","굉장히","상당히","꽤","좀","조금","약간","거의","솔직히","사실","항상","늘","자주","무척","되게","많이","훨씬","딱","전혀","결코","절대","분명","확실히","당연히","역시","그냥","막","가장","제일","특히"].join("|")})(?=[\\s,.!?)”’]|$)`,"g");function Be(e,t=1){return je(e.text).flatMap(n=>{const s=[...n.matchAll(Ae)].map(e=>e[1]??"");return s.length>t?[{sectionId:e.id,rule:"adverb_heavy",severity:"warn",detail:`부사 ${s.length}개: ${s.join("·")}`,sentence:n}]:[]})}const Ee=/(?:고|는데|ㄴ데|은데|지만|며|면서|거나|니까|므로|어서|아서|해서|라서|려고|더니|다가)(?=[,\s])/g,Pe=/(?:^|\s)(그리고|그런데|그래서|그러나|하지만|그러면서|그러니까|그러므로|그렇지만|그러다가)(?=[,\s])/g;function Me(e,t=3){return je(e.text).flatMap(n=>{const s=(n.replace(Pe," ").match(Ee)??[]).length+1;return s>t?[{sectionId:e.id,rule:"many_clauses",severity:"warn",detail:`절 ${s}개`,sentence:n}]:[]})}function Oe(e){const t=e.map(e=>e.text).join("\n");if(!/\d{1,3}(,\d{3})+/.test(t))return[];const n=[];for(const t of e)for(const e of je(t.text))for(const s of e.matchAll(/(?<![\d,.])(\d{4,})(?![\d,])/g)){const d=Number(s[1]),a=e.slice(s.index+s[1].length),i=e.slice(0,s.index);4===s[1].length&&(d>=1900&&d<=2099||/^\s*(년|~)/.test(a)||/~\s*$/.test(i))||n.push({sectionId:t.id,rule:"number_format",severity:"warn",detail:`"${s[1]}" — 다른 곳은 쉼표를 썼어요 (${Number(d).toLocaleString("en-US")})`,sentence:e})}return n}function Te(e){const t=e.evidence.join(" ");return je(e.text).filter(e=>[...e.match(new RegExp(ve.source,"g"))??[],...e.replace(/\([^()]*\)/g,"").match(Se)??[]].some(e=>!t.includes(e))).map(t=>({sectionId:e.id,rule:"foreign_script",severity:"warn",detail:"한국어가 아닌 글자(일본어·한자)가 섞였어요",sentence:t}))}const qe={da:"-다",yo:"-요",sumnida:"-습니다"};function Fe(e,t="da"){const n=je(e.text).map(e=>({sent:e,t:e.replace(/[.!?"'”’)\]\s]+$/,"")}));return"da"===t?n.filter(({sent:e})=>/([어아여해에예지네]요|죠|(?<!아)니다)[.!]?$/.test(e)).map(({sent:t})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:"평서체('-다') 글에 다른 어미",sentence:t})):n.filter(({t:e})=>/다$/.test(e)&&!/(니다|니까)$/.test(e)).map(({sent:n})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:`존댓말('${qe[t]}') 글에 평서체('-다') 문장`,sentence:n}))}function Le(e){const t=new Map;for(const n of e)for(const e of je(n.text)){const s=e.split(/\s+/);for(let d=0;d+3<=s.length;d++){const a=s.slice(d,d+3).join(" ");if(a.length<8)continue;const i=t.get(a)??{n:0,sectionId:n.id,sentence:e};i.n++,t.set(a,i)}}return[...t.entries()].filter(([,e])=>e.n>=3).map(([e,t])=>({sectionId:t.sectionId,rule:"repetition",severity:"warn",detail:`"${e}" ${t.n}회 반복`,sentence:t.sentence}))}const Re=e=>{const t=e.replace(/\s+/g,""),n=new Set;for(let e=0;e+2<=t.length;e++)n.add(t.slice(e,e+2));return n};function Ke(e,t=.4){const n=e.flatMap(e=>je(e.text).filter(e=>e.length>=20).map(t=>({id:e.id,x:t,g:Re(t)}))),s=[],d=new Set;for(let e=0;e<n.length;e++)for(let a=e+1;a<n.length;a++){const i=n[e],r=n[a];if(i.id===r.id||d.has(r.x))continue;let l=0;i.g.forEach(e=>r.g.has(e)&&l++),l/(i.g.size+r.g.size-l)<t||(d.add(r.x),s.push({sectionId:r.id,rule:"repeated_sentence",severity:"warn",detail:`앞에서 거의 같은 말을 했어요: "${i.x.length>60?`${i.x.slice(0,60)}…`:i.x}"`,sentence:r.x}))}return s}const De=["core/paragraph","core/heading","core/list-item","core/quote","core/pullquote","core/verse"],He=e=>String(e??"").replace(/<br\s*\/?>/gi,"\n").replace(/<[^>]+>/g,"").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#0?39;/g,"'").replace(/&#(\d+);/g,(e,t)=>String.fromCodePoint(Number(t))).replace(/&#x([0-9a-f]+);/gi,(e,t)=>String.fromCodePoint(parseInt(t,16))).trim(),Ue=e=>["summary","faq"].includes(e?.attributes?.metadata?.editnday)||/\beditnday-(summary|faq|related)/.test(e?.attributes?.className||"");function Ve(e){const t=[],n=e=>{for(const s of e||[])if(!Ue(s)){if("core/paragraph"===s.name){const e=He(s.attributes?.content);e.length>500&&t.push({rule:"long_paragraph",detail:(0,r.sprintf)(/* translators: %s: t.length */ /* translators: %s: t.length */(0,r.__)("%s자 단락","editnday"),e.length),sentence:`${e.slice(0,40)}…`,clientId:s.clientId})}"core/image"!==s.name||String(s.attributes?.alt??"").trim()||t.push({rule:"image_alt",detail:(0,r.__)("대체 텍스트 없음","editnday"),sentence:(0,r.sprintf)(/* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */ /* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */(0,r.__)("이미지 %s","editnday"),String(s.attributes?.url??"").split("/").pop()||"").trim(),clientId:s.clientId}),n(s.innerBlocks)}};return n(e),t}function ze(e){const t=function(e){const t=[];let n={id:"s0",heading:"",lines:[],blockIds:[]},s=0;const d=e=>{for(const a of e||[])if(!Ue(a))if("core/heading"===a.name&&(a.attributes?.level??2)<=2)(n.lines.length||n.heading)&&t.push(n),n={id:"s"+ ++s,heading:He(a.attributes?.content),lines:[],blockIds:[a.clientId]};else{if(De.includes(a.name)){const e=He(a.attributes?.content??a.attributes?.value??a.attributes?.citation);e&&(n.lines.push(e),n.blockIds.push(a.clientId))}d(a.innerBlocks)}};return d(e),(n.lines.length||n.heading)&&t.push(n),t.map(e=>({id:e.id,heading:e.heading,text:e.lines.join("\n"),evidence:[],blockIds:e.blockIds}))}(e),n=t.map(e=>e.text).join("\n"),s=function(e){const t={da:0,yo:0,sumnida:0};for(const n of je(e)){const e=n.replace(/[.!?"'”’)\]\s]+$/,"");/(니다|니까)$/.test(e)?t.sumnida++:/([어아여해에예지네]요|죠)$/.test(e)?t.yo++:/다$/.test(e)&&t.da++}return t.da+t.yo+t.sumnida<4?null:Object.entries(t).sort((e,t)=>t[1]-e[1])[0][0]}(n),d=[...t.flatMap(e=>[...Ne(e),...be(e),...s?Fe(e,s):[],...Te(e),...Ce(e),...Be(e),...Me(e),...$e(e)]),...Ke(t),...Le(t),...Oe(t),...Ve(e)];return{sections:t,ending:s,issues:d,metrics:we(n)}}const Ge=[(0,r.__)("에서부터","editnday"),(0,r.__)("이라는","editnday"),(0,r.__)("이라고","editnday"),(0,r.__)("으로는","editnday"),(0,r.__)("에서는","editnday"),(0,r.__)("에서도","editnday"),(0,r.__)("으로서","editnday"),(0,r.__)("으로써","editnday"),(0,r.__)("이에요","editnday"),(0,r.__)("입니다","editnday"),(0,r.__)("에게","editnday"),(0,r.__)("에서","editnday"),(0,r.__)("한테","editnday"),(0,r.__)("으로","editnday"),(0,r.__)("까지","editnday"),(0,r.__)("부터","editnday"),(0,r.__)("처럼","editnday"),(0,r.__)("보다","editnday"),(0,r.__)("이나","editnday"),(0,r.__)("이란","editnday"),(0,r.__)("이라","editnday"),(0,r.__)("이랑","editnday"),(0,r.__)("이다","editnday"),(0,r.__)("인데","editnday"),(0,r.__)("이고","editnday"),(0,r.__)("이며","editnday"),(0,r.__)("이죠","editnday"),(0,r.__)("이야","editnday"),(0,r.__)("로서","editnday"),(0,r.__)("로써","editnday"),(0,r.__)("로는","editnday"),(0,r.__)("에는","editnday"),(0,r.__)("에도","editnday"),(0,r.__)("와는","editnday"),(0,r.__)("과는","editnday"),(0,r.__)("라는","editnday"),(0,r.__)("라고","editnday"),(0,r.__)("마다","editnday"),(0,r.__)("조차","editnday"),(0,r.__)("밖에","editnday"),(0,r.__)("예요","editnday"),(0,r.__)("은","editnday"),(0,r.__)("는","editnday"),(0,r.__)("이","editnday"),(0,r.__)("가","editnday"),(0,r.__)("을","editnday"),(0,r.__)("를","editnday"),(0,r.__)("의","editnday"),(0,r.__)("에","editnday"),(0,r.__)("께","editnday"),(0,r.__)("로","editnday"),(0,r.__)("와","editnday"),(0,r.__)("과","editnday"),(0,r.__)("도","editnday"),(0,r.__)("만","editnday"),(0,r.__)("나","editnday"),(0,r.__)("란","editnday"),(0,r.__)("라","editnday"),(0,r.__)("랑","editnday"),(0,r.__)("다","editnday"),(0,r.__)("인","editnday"),(0,r.__)("고","editnday"),(0,r.__)("며","editnday"),(0,r.__)("죠","editnday"),(0,r.__)("야","editnday"),(0,r.__)("뿐","editnday")],Je=e=>!!e&&/[\p{L}\p{N}]/u.test(e);function We(e,t){const n=String(t||"").toLowerCase().replace(/\s+/g,""),s=String(e||"").toLowerCase();if(!n||!s)return 0;const d=[];let a="";for(let e=0;e<s.length;e++)/\s/.test(s[e])||(d.push(e),a+=s[e]);let i=0,r=0;for(;;){const e=a.indexOf(n,r);if(e<0)break;r=e+1;const t=d[e],l=d[e+n.length-1]+1;if(Je(s[t-1]))continue;const o=s.slice(l);if(!Je(o[0])){i++;continue}const c=Ge.find(e=>o.startsWith(e));c&&!Je(o[c.length])&&i++}return i}const Xe=(e,t="")=>(e.find(([e])=>e)||[null,t])[1],Ze=()=>(0,J.select)("core/editor"),Ye=e=>(0,J.dispatch)("core/editor").editPost(e),Qe=e=>{try{return JSON.parse(Ze().getEditedPostAttribute("meta")?.[e]||"{}")||{}}catch(e){return{}}},et=(e,t)=>Ye({meta:{[e]:JSON.stringify(t)}}),tt=()=>String(Ze().getEditedPostContent()).replace(/<!--[\s\S]*?-->/g,"").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();function nt({near:e=[]}){const{all:t,chosen:n}=(0,J.useSelect)(e=>({all:e("core").getEntityRecords("taxonomy","category",{per_page:100,hide_empty:!1,_fields:"id,name"})||[],chosen:e("core/editor").getEditedPostAttribute("categories")||[]}),[]);return(0,f.jsx)("span",{className:"ed-chips",children:t.filter(e=>e.id!==it()).map(t=>(0,f.jsxs)(S,{on:n.includes(t.id),lav:!n.includes(t.id)&&e.includes(dt(t.name)),onClick:()=>(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n.filter(e=>e!==it()),e];Ye({categories:t.length?t:[it()]})})(t.id),children:[dt(t.name),rt(t.id)&&(0,f.jsx)("span",{className:"ed-chip__lock",title:(0,r.sprintf)(/* translators: %s: memberOnly( c.id ).join( ', ' ) */ /* translators: %s: memberOnly( c.id ).join( ', ' ) */(0,r.__)("SureMembers 회원 전용: %s","editnday"),rt(t.id).join(", ")),children:(0,r.__)("회원 전용","editnday")})]},t.id))})}function st({panel:e,onDone:t}){const[n,s]=(0,o.useState)(null),[d,a]=(0,o.useState)(!1),[i,l]=(0,o.useState)(null);return(0,f.jsxs)("div",{className:"ed-redo",children:[(0,f.jsxs)("span",{className:"ed-small",children:[(0,r.__)("딱 맞는 카테고리가 없어요.","editnday")," ",e.near?.length?(0,r.__)("보라색이 그나마 가까운 곳이에요.","editnday"):"",(0,r.__)("골라 주세요.","editnday")]}),(0,f.jsx)(nt,{near:e.near||[]}),null===n?(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(e.suggest||""),children:(0,r.__)("+ 새 카테고리 만들기","editnday")}):(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,r.__)("새 카테고리 이름","editnday"),value:n,onChange:s}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:d||!n.trim(),onClick:async()=>{a(!0),l(null);try{const e=await z()({path:"/wp/v2/categories",method:"POST",data:{name:n.trim()}}).catch(async e=>"term_exists"===e?.code?{id:e.data?.term_id}:Promise.reject(e));e?.id&&Ye({categories:[e.id]}),t?.()}catch(e){l((0,r.__)("카테고리를 만들지 못했어요. 권한을 확인해 주세요.","editnday"))}finally{a(!1)}},children:(0,r.__)("만들기","editnday")})]}),i&&(0,f.jsx)("span",{className:"ed-small is-error",children:i})]})}const dt=e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value},at=e=>{try{return decodeURIComponent(e||"")}catch(t){return e||""}},it=()=>window.editndayConfig?.defaultCategory,rt=e=>window.editndayConfig?.memberCategories?.[e]||null,lt=(e,t)=>{const n=String(t||"").trim();if(!n)return!1;const s=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[^\\p{L}\\p{N}])${s}($|[^\\p{L}\\p{N}])`,"iu").test(String(e||""))},ot=/(에서|으로|부터|까지|에게|처럼|보다|의|은|는|이|가|을|를|와|과|로|에|도|만)$/;function ct(e){const t=e.split(/\s+/).map(e=>e.replace(ot,"").toLowerCase()).filter(Boolean);let n=null;const s=e=>{for(const d of e){if("core/paragraph"===d.name||"core/list-item"===d.name){const e=He(String(d.attributes.content??""));for(const s of e.split(/(?<=[.!?。])\s+/)){const e=s.trim();if(e.length<8)continue;const d=e.toLowerCase(),a=t.filter(e=>d.includes(e)).length;a&&(!n||a>n.score)&&(n={sentence:e,score:a})}}d.innerBlocks?.length&&s(d.innerBlocks)}};return s((0,J.select)("core/block-editor").getBlocks()),n?.sentence??null}function _t({keyword:e}){const t=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=(0,o.useMemo)(()=>ct(e),[e,t]);return n?(0,f.jsxs)("span",{className:"ed-kwplace",children:[(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
    3 (0,r.__)('이 문장에 "%s"를 그대로 넣으면 돼요:',"editnday"),e)}),(0,f.jsx)("span",{className:"ed-quote",children:n}),(0,f.jsxs)("span",{className:"ed-row ed-gap6",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>_e(n),children:(0,r.__)("본문에서 보기","editnday")}),y(_.keywordFix,{keyword:e,sentence:n})]})]}):(0,f.jsx)("span",{className:"ed-muted ed-kwplace",children:(0,r.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
    4 (0,r.__)('본문 첫 단락에 "%s"를 그대로 한 번 넣어 보세요 (바로 뒤에 조사 없이).',"editnday"),e)})}function ut({keyword:e,seo:t}){const[n,s]=(0,o.useState)(!1),d=window.editndayConfig?.seoPlugin;if(!e?.trim()||!d)return null;const a=[!lt(tt(),e)&&(0,r.__)("본문","editnday"),!lt(t.title,e)&&(0,r.__)("제목","editnday"),!lt(t.description,e)&&(0,r.__)("설명","editnday")].filter(Boolean);return a.length?(0,f.jsxs)("span",{className:"ed-small is-warn",children:[(0,r.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */ /* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */
    5 (0,r.__)("%1$s 점수로는 %2$s에서 못 찾아요","editnday"),d,a.join("·"))," ",(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!n),children:n?(0,r.__)("닫기","editnday"):(0,r.__)("왜?","editnday")}),n&&(0,f.jsx)("span",{className:"ed-muted ed-koseo__hint",children:(0,r.__)("조사가 붙거나('코스피는') 띄어쓰기가 다르면 다른 말로 봐요. 구글·네이버는 같은 말로 보니 점수만의 문제예요.","editnday")}),!lt(tt(),e)&&(0,f.jsx)(_t,{keyword:e})]}):(0,f.jsx)("span",{className:"ed-small",children:(0,r.sprintf)(/* translators: %s: SEO 플러그인 이름 */ /* translators: %s: SEO 플러그인 이름 */
    6 (0,r.__)("%s 키워드 점검 통과","editnday"),d)})}const ht=[["excerpt",(0,r.__)("발췌문","editnday")],["tags",(0,r.__)("태그","editnday"),(0,r.__)("있는 태그 우선","editnday")],["category",(0,r.__)("카테고리","editnday"),(0,r.__)("있는 것 중에서","editnday")],["slug",(0,r.__)("영문 주소","editnday")],["seo",(0,r.__)("SEO 제목·설명","editnday"),(0,r.__)("Fine Keyword 포함","editnday")],["aeo","AEO",(0,r.__)("질문·답","editnday")],["geo","GEO",(0,r.__)("AI 인용용 요약","editnday")]];async function yt(e){const t=[];for(const n of e){const e=(await z()({path:`/wp/v2/tags?search=${encodeURIComponent(n)}&per_page=20&_fields=id,name`})).find(e=>e.name===n);t.push(e?e.id:(await z()({path:"/wp/v2/tags",method:"POST",data:{name:n}})).id)}return t}const mt=e=>String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),pt=(0,r.__)("한눈에 보는 질문과 답","editnday");function gt({summary:e,faq:t},n=["summary","faq"]){const s=(0,J.select)("core/block-editor").getBlocks().filter(e=>n.includes(e.attributes?.metadata?.editnday)),d=String(s.find(e=>"faq"===e.attributes.metadata.editnday)?.innerBlocks.find(e=>"core/heading"===e.name)?.attributes.content||"").trim(),a=s.map(e=>e.clientId);a.length&&(0,J.dispatch)("core/block-editor").removeBlocks(a,!1),t=n.includes("faq")?(t||[]).filter(e=>e.question?.trim()&&e.answer?.trim()):[],e?.trim()&&n.includes("summary")&&(0,J.dispatch)("core/block-editor").insertBlocks((0,G.createBlock)("core/group",{metadata:{editnday:"summary",name:(0,r.__)("요약","editnday")},className:"editnday-box editnday-box--summary"},[(0,G.createBlock)("core/paragraph",{content:(0,r.sprintf)(/* translators: %s: asText( summary ) */ /* translators: %s: asText( summary ) */(0,r.__)("<strong>요약</strong> %s","editnday"),mt(e))})]),0),t?.length&&(0,J.dispatch)("core/block-editor").insertBlocks((0,G.createBlock)("core/group",{metadata:{editnday:"faq",name:(0,r.__)("질문과 답","editnday")},className:"editnday-box editnday-box--faq"},[(0,G.createBlock)("core/heading",{level:2,content:d&&"자주 묻는 질문"!==d?d:pt}),...t.map((e,t)=>(0,G.createBlock)("core/details",{summary:mt(e.question),showContent:0===t},[(0,G.createBlock)("core/paragraph",{content:mt(e.answer)})]))]))}function ft(){return(0,J.useSelect)(e=>{const t=e("core/editor"),n=t.getEditedPostAttribute("featured_media"),s=n?e("core").getMedia(n):null;return{postId:t.getCurrentPostId(),title:t.getEditedPostAttribute("title"),excerpt:t.getEditedPostAttribute("excerpt"),slug:t.getEditedPostAttribute("slug"),tags:t.getEditedPostAttribute("tags")||[],categories:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()),categoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),memberCategoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>rt(e)).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),featured:n||0,featuredAlt:s?.alt_text??"",featuredUrl:s?.media_details?.sizes?.medium?.source_url??s?.source_url,seo:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_seo||"{}")||{}}catch(e){return{}}})(),schema:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_schema||"{}")||{}}catch(e){return{}}})()}},[])}function xt(e){et("_editnday_seo",{...Qe("_editnday_seo"),keyword:String(e).slice(0,40)})}const bt='EditndayTitle, "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif';let jt=null;const wt=()=>{const e=window.editndayConfig?.titleFont;return jt||(jt=e&&window.FontFace?new window.FontFace("EditndayTitle",`url(${e})`,{weight:"100 900"}).load().then(e=>document.fonts.add(e)).catch(()=>null):Promise.resolve()),jt},kt=[["ink",(0,r.__)("먹색","editnday"),["#1f2a2c"],"#ffffff"],["cream",(0,r.__)("크림","editnday"),["#f4eee3"],"#243235"],["lavender",(0,r.__)("라벤더","editnday"),["#a988e0","#6c48b5"],"#ffffff"],["ocean",(0,r.__)("바다","editnday"),["#0f4c75","#3a8fc9"],"#ffffff"],["sunset",(0,r.__)("노을","editnday"),["#ff9a8b","#f0627f"],"#ffffff"],["forest",(0,r.__)("숲","editnday"),["#134e5e","#5fa77a"],"#ffffff"]];async function Nt(e,t){let n;try{n=await new Promise(t=>e.toBlob(t,"image/jpeg",.9))}catch(e){n=null}if(!n)throw new Error((0,r.__)("이 사이트의 이미지 주소 설정 때문에 그림에 글자를 넣지 못했어요.","editnday"));const s=new window.FormData;s.append("postId",Ze().getCurrentPostId()),Object.entries(t).forEach(([e,t])=>s.append(e,t)),s.append("image",n,"featured-title.jpg");const d=await z()({path:"/editnday/v1/publish/image-title",method:"POST",body:s});return Ye({featured_media:d.id}),(0,J.dispatch)("core").invalidateResolution("getMedia",[d.id]),d}async function vt(e,t="ink"){if(!e.trim())return null;await wt();const[n,,s,d]=kt.find(e=>e[0]===t)||kt[0],a=1200,i=630,r=document.createElement("canvas");r.width=a,r.height=i;const l=r.getContext("2d");if(s.length>1){const e=l.createLinearGradient(0,0,a,i);e.addColorStop(0,s[0]),e.addColorStop(1,s[1]),l.fillStyle=e}else l.fillStyle=s[0];l.fillRect(0,0,a,i),l.font=`800 72px ${bt}`,l.fillStyle=d,l.textAlign="center",l.textBaseline="alphabetic";const o=St(l,e,1e3),c=Math.round(72*1.3),_=(i-(o.length-1)*c)/2+25.2-16;o.forEach((e,t)=>l.fillText(e,600,_+t*c));const u=String(window.editndayConfig?.siteName||"").trim();return u&&(l.font=`700 26px ${bt}`,l.globalAlpha=.72,l.fillText(u.slice(0,40),600,574),l.globalAlpha=1),Nt(r,{template:n,alt:e.trim()})}function St(e,t,n){const s=[];let d="";return t.trim().split(/\s+/).forEach(t=>(t=>{const a=d?d+" "+t:t;if(e.measureText(a).width<=n)d=a;else if(d&&(s.push(d),d=""),e.measureText(t).width<=n)d=t;else for(const a of t)e.measureText(d+a).width>n&&(s.push(d),d=""),d+=a})(t)),d&&s.push(d),s.length>3&&(s.length=3,s[2]=s[2].replace(/.$/,"…")),s}async function Ct(e,t="bottom",n="title"){const s=Ze().getEditedPostAttribute("featured_media");if(!s||!e.trim())return null;await wt();const d=await z()({path:`/editnday/v1/publish/image-source?id=${s}`}),a=await new Promise((e,t)=>{const n=new window.Image;n.crossOrigin="anonymous",n.onload=()=>e(n),n.onerror=()=>t(new Error((0,r.__)("그림을 불러오지 못했어요.","editnday"))),n.src=d.url}),i=Math.min(a.naturalWidth,1600),l=Math.round(a.naturalHeight*i/a.naturalWidth),o=document.createElement("canvas");o.width=i,o.height=l;const c=o.getContext("2d");c.drawImage(a,0,0,i,l);const _="caption"===n;if("center"===t)c.fillStyle=_?"rgba(0,0,0,0.18)":"rgba(0,0,0,0.42)",c.fillRect(0,0,i,l);else{const e="top"===t,n=_?.2:.65,s=c.createLinearGradient(0,e?l*n:l*(1-n),0,e?0:l);s.addColorStop(0,"rgba(0,0,0,0)"),s.addColorStop(1,_?"rgba(0,0,0,0.45)":"rgba(0,0,0,0.74)"),c.fillStyle=s,c.fillRect(0,e?0:l*(1-n),i,l*n)}const u=_?Math.max(12,Math.round(.011*i)):Math.round(.064*i);c.font=`${_?700:800} ${u}px ${bt}`,c.fillStyle="#fff",c.textBaseline="alphabetic",c.shadowColor="rgba(0,0,0,0.45)",c.shadowBlur=.25*u;const h=Math.round(i*(_?.03:.06)),y=St(c,e,i-h*(_?4:2)),m=Math.round(1.28*u),p=(y.length-1)*m;let g=l-h-p;return"top"===t?g=h+.85*u:"center"===t&&(g=(l-p)/2+.35*u),c.textAlign="center",y.forEach((e,t)=>c.fillText(e,i/2,g+t*m)),Nt(o,{sourceId:d.id})}function It(e){const t=(0,J.select)("core/block-editor"),n=`<a href="${encodeURI(e.url)}">${String(e.title).replace(/&/g,"&amp;").replace(/</g,"&lt;")}</a>`,s=(0,G.createBlock)("core/list-item",{content:n}),d=t.getBlocks().find(e=>"core/list"===e.name&&String(e.attributes.className||"").includes("editnday-related"));d?(0,J.dispatch)("core/block-editor").insertBlock(s,d.innerBlocks.length,d.clientId):(0,J.dispatch)("core/block-editor").insertBlocks([(0,G.createBlock)("core/paragraph",{content:(0,r.__)("<strong>함께 읽으면 좋은 글</strong>","editnday"),className:"editnday-related-title"}),(0,G.createBlock)("core/list",{className:"editnday-related"},[s])],t.getBlockCount())}const $t=(e,t)=>({excerpt:!!e.excerpt,tags:e.tags.length>0,category:e.categories.length>0,slug:/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e.slug||"")&&!/^\d+$/.test(e.slug),seo:!!e.seo.description,aeo:!!e.schema.faq?.some(e=>e.question?.trim()&&e.answer?.trim()),geo:!!e.schema.summary?.trim(),featured:!!e.featured,alt:!!e.featuredAlt}[t]),At=e=>String(e??"").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim();function Bt(e){const t=[];let n="",s=0;const d=e=>{for(const a of e){const e=a.attributes?.metadata?.editnday;"core/heading"===a.name?t.push(At(a.attributes.content)):"core/paragraph"===a.name&&!n&&"summary"!==e&&At(a.attributes.content)?n=At(a.attributes.content):"core/image"===a.name&&a.attributes.url&&s++,"summary"!==e&&"faq"!==e&&a.innerBlocks?.length&&d(a.innerBlocks)}};d(e);const a=String(Ze().getEditedPostContent());return{headings:t,firstPara:n,images:s,links:(a.match(/<a\s[^>]*href=/gi)||[]).length,body:tt()}}function Et(e){const t=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=e.seo.kept||{};return function(e){const t=String(e.keyword||"").trim(),n=e=>[...String(e||"").trim()].length,s=[],d=(e,t,n,d,a)=>s.push({id:e,ok:t,label:n,hint:t?"":d,who:a});if(t){const s=e=>We(e,t)>0;d("title",s(e.title),s(e.title)?(0,r.__)("제목에 Fine Keyword","editnday"):(0,r.__)("제목에 Fine Keyword가 없어요","editnday"),(0,r.__)("검색 결과 제목 앞쪽에 넣으면 검색어와 바로 맞물려요","editnday"),(0,r.__)("구글·네이버","editnday")),d("first",s(e.firstPara),s(e.firstPara)?(0,r.__)("첫 단락에 Fine Keyword","editnday"):(0,r.__)("첫 단락에 Fine Keyword가 없어요","editnday"),(0,r.__)("무엇에 관한 글인지 첫 단락에서 밝히면 검색엔진과 AI가 주제를 잡기 쉬워요","editnday"),(0,r.__)("구글·네이버·AI","editnday"));const a=e.headings.some(s);d("heading",a,a?(0,r.__)("소제목에 Fine Keyword","editnday"):(0,r.__)("소제목에 Fine Keyword가 없어요","editnday"),(0,r.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,r.__)("소제목 %s개 중 하나에 넣으면 글의 짜임이 검색어와 이어져요","editnday"),e.headings.length),(0,r.__)("구글·네이버","editnday"));const i=We(e.body,t),l=n(e.body)?1e3*i/n(e.body):0;d("repeat",i>=1&&l<=6,Xe([[0===i,(0,r.__)("본문에 Fine Keyword가 없어요","editnday")],[l>6,(0,r.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,r.__)("본문에 Fine Keyword %s번 (많아요)","editnday"),i)]],(0,r.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,r.__)("본문에 Fine Keyword %s번","editnday"),i)),Xe([[0===i,(0,r.__)("본문에 실제로 쓰는 표기와 같은지 확인해 주세요 (예: 볼보EX60 / VolvoEX60)","editnday")]],(0,r.__)("같은 말을 너무 자주 되풀이하면 구글·네이버 모두 낮게 봐요. 대명사나 다른 표현으로 바꿔 보세요","editnday")),(0,r.__)("구글·네이버","editnday")),n(e.description)&&d("desc",s(e.description),s(e.description)?(0,r.__)("설명에 Fine Keyword","editnday"):(0,r.__)("설명에 Fine Keyword가 없어요","editnday"),(0,r.__)("순위와는 상관없지만, 검색어가 설명에 있으면 검색 결과에서 굵게 보여 눈에 띄어요","editnday"),(0,r.__)("구글·네이버","editnday"))}const a=n(e.title);d("titleLen",a>0&&a<=40,a?(0,r.sprintf)(/* translators: %s: tl */ /* translators: %s: tl */(0,r.__)("검색 결과 제목 %s자","editnday"),a):(0,r.__)("검색 결과 제목이 없어요","editnday"),Xe([[a>40,(0,r.__)("40자를 넘으면 검색 결과에서 잘려요","editnday")]],(0,r.__)("제목을 넣어 주세요","editnday")),(0,r.__)("구글·네이버","editnday"));const i=n(e.description);return d("descLen",i>=40&&i<=110,i?(0,r.sprintf)(/* translators: %s: dl */ /* translators: %s: dl */(0,r.__)("검색 결과 설명 %s자","editnday"),i):(0,r.__)("검색 결과 설명이 없어요","editnday"),Xe([[0===i,(0,r.__)("SEO 설명을 만들어 보세요. 없으면 검색엔진이 본문에서 아무 문장이나 가져가요","editnday")],[i<40,(0,r.__)("너무 짧으면 검색엔진이 본문에서 다른 문장을 가져가요","editnday")]],(0,r.__)("110자를 넘으면 잘려요","editnday")),(0,r.__)("구글·네이버","editnday")),d("headings",e.headings.length>=2,(0,r.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,r.__)("소제목 %s개","editnday"),e.headings.length),(0,r.__)("소제목으로 나누면 검색엔진이 단락별 주제를, AI가 답할 부분을 찾기 쉬워요","editnday"),(0,r.__)("구글·네이버·AI","editnday")),d("answer",!!e.summary||e.faq>0,Xe([[e.summary&&e.faq>0,(0,r.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,r.__)("요약과 질문답 %s개","editnday"),e.faq)],[e.summary,(0,r.__)("요약 있음","editnday")],[e.faq>0,(0,r.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,r.__)("질문답 %s개","editnday"),e.faq)]],(0,r.__)("요약·질문답이 없어요","editnday")),(0,r.__)("발행 준비의 AEO·GEO로 만들면 AI 답변에 인용되기 쉬워요","editnday"),"AI"),d("links",e.links>0,e.links?(0,r.sprintf)(/* translators: %s: o.links */ /* translators: %s: o.links */(0,r.__)("출처·관련 링크 %s개","editnday"),e.links):(0,r.__)("링크가 없어요","editnday"),(0,r.__)("출처가 보이면 믿을 만한 글로 보고, AI도 근거로 인용해요","editnday"),(0,r.__)("구글·네이버·AI","editnday")),d("images",e.images>0,e.images?(0,r.sprintf)(/* translators: %s: o.images */ /* translators: %s: o.images */(0,r.__)("본문 이미지 %s개","editnday"),e.images):(0,r.__)("본문 이미지가 없어요 (대표 이미지만)","editnday"),(0,r.__)("본문에 사진·도표가 있으면 이미지 검색과 네이버 노출에 도움이 돼요","editnday"),(0,r.__)("구글·네이버","editnday")),s}({keyword:e.seo.keyword,title:n.title||e.seo.title||e.title||"",description:n.description||e.seo.description||"",summary:!!e.schema.summary,faq:e.schema.faq?.length||0,...Bt(t)})}function Pt({st:e}){const[t,n]=(0,o.useState)(!1),s=Et(e),d=s.filter(e=>e.ok).length,a=s.filter(e=>!e.ok),[i,l]=(0,o.useState)("");return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(a.length?"":" is-ok"),children:(0,r.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
    7 (0,r.__)("%1$d개 중 %2$d개 통과","editnday"),s.length,d)})]}),!e.seo.keyword?.trim()&&(0,f.jsxs)("div",{className:"ed-koseo__kw",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,r.__)("예: 노벨문학상","editnday"),value:i,onChange:l,onKeyDown:e=>"Enter"===e.key&&i.trim()&&xt(i.trim())}),(0,f.jsx)(N,{disabled:!i.trim(),onClick:()=>xt(i.trim()),children:(0,r.__)("정하기","editnday")}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("정하면 제목·설명·본문에 키워드가 있는지도 봐요.","editnday")})]}),(t?s:a).map(e=>(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("span",{className:"ed-koseo__head",children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.who})]}),e.hint&&(0,f.jsx)("span",{className:"ed-koseo__hint",children:e.hint})]})]},e.id)),!a.length&&!t&&(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("모두 좋아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,r.__)("고칠 것만 보기","editnday"):(0,r.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,r.__)("통과한 것도 보기 (%s)","editnday"),d)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("조사·띄어쓰기가 달라도 같은 말로 봐요 (구글·네이버 기준)","editnday")})]})]})}function Mt({st:e}){const[t,n]=(0,o.useState)("google"),s=e.seo.kept||{},d=s.title||e.seo.title||e.title||"",a=s.description||e.seo.description||e.excerpt||"",i=window.editndayConfig?.seoPlugin,l=window.location.host,c=(e,t,n)=>e<t?(0,r.__)("짧음","editnday"):e>n?(0,r.__)("김","editnday"):(0,r.__)("적정","editnday");return(0,f.jsxs)(w,{children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색 결과 미리보기","editnday")}),(0,f.jsxs)("span",{className:"ed-chips",children:[(0,f.jsx)(S,{on:"google"===t,onClick:()=>n("google"),children:(0,r.__)("구글","editnday")}),(0,f.jsx)(S,{on:"naver"===t,onClick:()=>n("naver"),children:(0,r.__)("네이버","editnday")})]})]}),(0,f.jsxs)("div",{className:`ed-serp is-${t}`,children:[(0,f.jsxs)("span",{className:"ed-serp__u",children:[l," › ",at(e.slug)||"…"]}),(0,f.jsx)("span",{className:"ed-serp__t",children:d||(0,r.__)("제목 없음","editnday")}),(0,f.jsx)("span",{className:"ed-serp__d",children:a||(0,r.__)("설명이 없어요. SEO 설명을 만들어 보세요.","editnday")})]}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */ /* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */
    8 (0,r.__)("제목 %1$d자 (%2$s) · 설명 %3$d자 (%4$s)","editnday"),d.length,c(d.length,20,45),a.length,c(a.length,60,110))}),i&&(0,f.jsx)("span",{className:"ed-muted",children:s.title||s.description?(0,r.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */ /* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */(0,r.__)("%1$s에 직접 쓴 %2$s이 있어 그 값이 나가요. 에디튼 값을 쓰려면 %3$s에서 그 칸을 비워 주세요.","editnday"),i,[s.title&&(0,r.__)("제목","editnday"),s.description&&(0,r.__)("설명","editnday")].filter(Boolean).join("·"),i):(0,r.sprintf)(/* translators: %s: plugin */ /* translators: %s: plugin */(0,r.__)("저장하면 %s 칸에도 들어가요.","editnday"),i)})]})}function Ot(e,t){return t?(0,r.__)("닫기","editnday"):e?(0,r.__)("다시","editnday"):(0,r.__)("만들기","editnday")}function Tt(){const e=window.editndayConfig?.siteOpen;return e?.blocking?.length?(0,f.jsxs)(w,{className:"ed-ask ed-siteopen",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색에 나오지 않을 수 있어요","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.sprintf)(/* translators: %s: 안 된 워드프레스 설정 목록 */ /* translators: %s: 안 된 워드프레스 설정 목록 */
    9 (0,r.__)("워드프레스 설정에서 %s이(가) 아직 안 됐어요. 이대로 발행하면 검색엔진이 이 글을 찾지 못하거나 늦게 찾아요.","editnday"),e.blocking.join(", "))}),e.canManage&&(0,f.jsx)("a",{className:"ed-link",href:e.url,children:(0,r.__)("에디튼 → 사이트 오픈에서 확인하기","editnday")})]}):null}function qt(){const e=window.editndayConfig?.seoMode||{},t=(0,J.useSelect)(e=>"1"===e("core/editor").getEditedPostAttribute("meta")?._editnday_noindex,[]);return"with"===e.mode?(0,f.jsx)("p",{className:"ed-muted ed-seomode",children:(0,r.sprintf)(/* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */ /* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */
    10 (0,r.__)("%1$s와 함께 쓰는 중이에요. 검색엔진이 읽는 머리말(제목·설명·공유 미리보기)은 %1$s가 내고, 에디튼은 값을 채우고 점검해요.","editnday"),e.plugin)}):(0,f.jsxs)(w,{className:"ed-seomode",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색엔진·공유 머리말","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("SEO 플러그인 없이 쓰는 중이라 에디튼이 직접 내요: SEO 제목·설명, 카카오톡·페이스북 공유 미리보기, 글 구조화 데이터.","editnday")}),(0,f.jsx)(p.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("이 글은 검색 결과에 보이지 않게","editnday"),checked:t,onChange:e=>(0,J.dispatch)("core/editor").editPost({meta:{_editnday_noindex:e?"1":""}})})]})}function Ft({st:e}){const[t,n]=(0,o.useState)(!1),s=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),d=(0,J.useSelect)(e=>{const t=e("core/editor");return"auto-draft"===t.getEditedPostAttribute("status")?null:t.getEditedPostAttribute("modified")||null},[]),a=Bt(s),i=String(Ze().getEditedPostContent()),l=window.location.host;let c=0,_=0;for(const e of i.matchAll(/<a\s[^>]*href=["']([^"']+)["']/gi))try{const t=new URL(e[1],window.location.href);if(!/^https?:$/.test(t.protocol))continue;t.host===l?c++:_++}catch{}const u=window.editndayConfig?.aiReady||{},{score:h,items:y}=function(e){const t=String(e.body||""),n=t.split(/(?<=[.!?。])\s+|\n+/).filter(e=>/\d/.test(e)).length,s=[...t.replace(/\s+/g,"")].length,d=!e.modified||(e.now??Date.now())-new Date(e.modified).getTime()<31536e6,a=[],i=(e,t,n,s,d,i)=>a.push({part:e,id:t,points:n,ok:!!s,label:d,hint:s?"":i}),l=(0,r.__)("형식","editnday"),o=(0,r.__)("내용","editnday");return i(l,"lead",12,e.summaryVisible,(0,r.__)("결론 먼저 (글 앞 요약)","editnday"),(0,r.__)('GEO 요약을 "본문에 보이게"로 넣으면 AI가 첫 단락에서 답을 가져가요',"editnday")),i(l,"headings",8,e.headings>=3,(0,r.sprintf)(/* translators: %d: 소제목 수 */ /* translators: %d: 소제목 수 */(0,r.__)("소제목 %d개","editnday"),e.headings),(0,r.__)("소제목을 3개 이상으로 나누면 AI가 질문마다 답할 부분을 찾아요","editnday")),i(l,"faq",8,e.faq>=2,(0,r.sprintf)(/* translators: %d: 질문답 수 */ /* translators: %d: 질문답 수 */(0,r.__)("질문답 %d개","editnday"),e.faq),(0,r.__)("AEO 질문답을 2개 이상 넣어요","editnday")),i(l,"identity",6,e.identity,(0,r.__)("내 블로그 정체성","editnday"),(0,r.__)("사이트 오픈 4단계에서 한 줄 소개·다른 곳 주소를 넣으면 AI가 누가 쓴 글인지 알아봐요","editnday")),i(l,"internal",8,e.internal>=1,(0,r.sprintf)(/* translators: %d: 내부 링크 수 */ /* translators: %d: 내부 링크 수 */(0,r.__)("내 글 링크 %d개","editnday"),e.internal),(0,r.__)('이어지는 내 글을 하나 이상 연결해요 (발행 준비의 "이어지는 내 글")',"editnday")),i(l,"bots",8,!1!==e.bots,!1===e.bots?(0,r.__)("AI 검색 봇이 막힘","editnday"):(0,r.__)("AI 검색 봇 허용","editnday"),(0,r.__)("사이트 오픈 4단계에서 robots.txt·방화벽을 확인해요","editnday")),i(o,"numbers",12,n>=3,(0,r.sprintf)(/* translators: %d: 숫자 문장 수 */ /* translators: %d: 숫자 문장 수 */(0,r.__)("숫자가 든 문장 %d개","editnday"),n),(0,r.__)("통계·가격·날짜처럼 확인할 수 있는 숫자를 3문장 이상에 넣으면 AI가 근거로 써요","editnday")),i(o,"sources",12,e.external>=2,(0,r.sprintf)(/* translators: %d: 출처 링크 수 */ /* translators: %d: 출처 링크 수 */(0,r.__)("출처 링크 %d개","editnday"),e.external),(0,r.__)("숫자·주장의 출처를 2곳 이상 링크로 밝혀요","editnday")),i(o,"author",8,e.authorBio,(0,r.__)("저자 소개","editnday"),(0,r.__)("[사용자 → 프로필]의 자기소개를 채우면 누가 썼는지(전문성)가 보여요","editnday")),i(o,"fresh",8,d,d?(0,r.__)("1년 안에 고친 글","editnday"):(0,r.__)("1년 넘게 고치지 않은 글","editnday"),(0,r.__)("AI는 최신 정보를 인용해요. 숫자를 다시 확인하고 고쳐 주세요","editnday")),i(o,"length",10,s>=1500,(0,r.sprintf)(/* translators: %s: 글자 수 */ /* translators: %s: 글자 수 */(0,r.__)("본문 %s자","editnday"),s.toLocaleString("ko-KR")),(0,r.__)("1,500자 이상이면 AI가 인용할 근거가 충분해요","editnday")),{score:a.reduce((e,t)=>e+(t.ok?t.points:0),0),items:a}}({summaryVisible:s.some(e=>"summary"===e.attributes?.metadata?.editnday),headings:a.headings.length,faq:e.schema.faq?.length||0,identity:!!u.identity,internal:c,external:_,bots:u.bots??null,body:a.body,authorBio:!!u.authorBio,modified:d}),m=y.filter(e=>!e.ok).sort((e,t)=>t.points-e.points),p=h>=80?"is-ok":h>=60?"is-warn":"is-bad";return(0,f.jsxs)(w,{className:"ed-aicite",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("AI 인용 준비","editnday")}),(0,f.jsx)("span",{className:`ed-aicite__score ${p}`,children:(0,r.sprintf)(/* translators: %d: 점수 */ /* translators: %d: 점수 */
    11 (0,r.__)("%d / 100","editnday"),h)})]}),(0,f.jsx)("div",{className:"ed-aicite__bar","aria-hidden":"true",children:(0,f.jsx)("span",{className:p,style:{width:`${h}%`}})}),(0,f.jsx)("p",{className:"ed-muted ed-small",children:h>=80?(0,r.__)("ChatGPT·구글 AI 개요·네이버 AI 브리핑이 인용하기 좋은 글이에요.","editnday"):(0,r.__)("80점이 넘으면 AI 답변에 인용되기 좋은 글이에요. 점수가 큰 것부터 채워 보세요.","editnday")}),m.slice(0,t?m.length:3).map(e=>(0,f.jsxs)("div",{className:"ed-aicite__item",children:[(0,f.jsxs)("span",{className:"ed-aicite__pts",children:["+",e.points]}),(0,f.jsxs)("span",{children:[(0,f.jsx)("strong",{children:e.label}),(0,f.jsxs)("span",{className:"ed-muted ed-small",children:[" ",e.hint]})]})]},e.id)),m.length>3&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,r.__)("접기","editnday"):(0,r.sprintf)(/* translators: %d: 남은 항목 수 */ /* translators: %d: 남은 항목 수 */
    12 (0,r.__)("빠진 것 %d개 더 보기","editnday"),m.length-3)})]})}function Lt({st:e,onCheck:t}){const n=Et(e),s=n.filter(e=>e.ok).length;return(0,f.jsxs)(w,{className:"ed-koseo-line",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
    13 (0,r.__)("%1$d개 중 %2$d개 통과","editnday"),n.length,s)})]}),t&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:t,children:(0,r.__)("글 점검에서 자세히 보기","editnday")})]})}function Rt({onNew:e,onCheck:t}){const n=ft(),[s,d]=(0,o.useState)(null),[a,i]=(0,o.useState)(null),[l,c]=(0,o.useState)(null),[u,m]=(0,o.useState)(n.schema.mode||"visible"),[g,x]=(0,o.useState)(!1),[b,v]=(0,o.useState)(0),[C,I]=(0,o.useState)(null),[$,B]=(0,o.useState)(""),[P,M]=(0,o.useState)("bottom"),[T,q]=(0,o.useState)("title"),[F,L]=(0,o.useState)("ink"),[R,K]=(0,o.useState)(null),H=Qe("_editnday_indexed"),U=(0,J.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),V=(0,J.useSelect)(e=>e("core/editor").isSavingPost(),[]),G=(0,J.useSelect)(e=>{const t=e("core/editor");return"future"===t.getEditedPostAttribute("status")?t.getEditedPostAttribute("date"):null},[]),W=e=>!!s&&s.split(",").includes(e),X=async(e,t)=>{d(e),v(Date.now()),i(null);try{await t()}catch(e){i(e?.message&&!e.message.includes("<")?e.message:(0,r.__)("만들지 못했어요. 잠시 뒤 다시 해 주세요.","editnday"))}finally{d(null)}},Z={st:n,busy:s,isBusy:W,run:X,since:b,aeoMode:u,setCatPanel:I,setRedo:x,onImage:$,titlePos:P,titleKind:T},Y=(e,t={})=>y(_.publishFieldActions,{...Z,key:e,...t}),Q=()=>(0,f.jsxs)("span",{className:"ed-busy",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,r.__)("만드는 중","editnday")," ",(0,f.jsx)(E,{since:b})]});return(0,f.jsxs)(f.Fragment,{children:[G?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,r.__)("예약한 글","editnday"),title:(0,r.__)("예약한 글 다듬기","editnday"),sub:(0,r.__)("발행되기 전까지 대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)((0,r.sprintf)(/* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */ /* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */
    14 (0,r.__)("<b>%s</b>에 발행돼요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 저장]</b>을 눌러야 예약된 글에 들어가요. 시간은 오른쪽 위 <b>[예약됨]</b>에서 바꿔요.","editnday"),Dt(G)),{b:(0,f.jsx)("strong",{})})})]}):U?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,r.__)("발행한 글","editnday"),title:(0,r.__)("발행한 글 다듬기","editnday"),sub:(0,r.__)("대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)(/* translators: <b>…</b>는 굵게 (버튼 이름) */ /* translators: <b>…</b>는 굵게 (버튼 이름) */
    15 (0,r.__)("이미 공개된 글이에요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 사이트에 반영]</b>을 눌러야 사이트에 반영돼요.","editnday"),{b:(0,f.jsx)("strong",{})})})]}):(0,f.jsx)(A,{eyebrow:(0,r.__)("발행 준비","editnday"),title:(0,r.__)("발행 전에 다듬을 것","editnday"),sub:(0,r.__)("하나씩 하거나 한 번에 해요. 만든 값은 고칠 수 있어요.","editnday")}),a&&(0,f.jsx)("div",{className:"ed-note is-error",children:a}),(0,f.jsxs)(w,{className:"ed-tasks",children:[(0,f.jsxs)("div",{className:"ed-cardhead",children:[(0,f.jsxs)("span",{className:"ed-cardhead__t",children:[(0,r.__)("할 일","editnday")," ",(0,f.jsx)("span",{className:"ed-tag",children:(0,r.sprintf)(/* translators: 1: 된 것, 2: 전체 */ /* translators: 1: 된 것, 2: 전체 */
    16 (0,r.__)("%1$d / %2$d 됨","editnday"),ht.filter(([e])=>$t(n,e)).length+(n.featured?1:0)+(n.featuredAlt?1:0),ht.length+2)})]}),Y("all",{place:"head"})]}),Y("all",{place:"live"}),ht.map(([e,t,s])=>{const d=Y(e,{place:"row"}),a=!h()&&["seo","aeo","geo"].includes(e);return(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:`ed-circ${$t(n,e)?" is-filled":""}${W(e)?" is-busy":""}`,children:$t(n,e)&&(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-task__t",children:[t," ",s&&(0,f.jsxs)("span",{className:"ed-muted",children:["(",s,")"]})]}),W(e)&&(0,f.jsx)(Q,{}),!W(e)&&$t(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-done",onClick:()=>c(l===e?null:e),children:l===e?(0,r.__)("닫기","editnday"):(0,r.__)("보기","editnday")}),!W(e)&&!$t(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",onClick:()=>c(l===e?null:e),children:l===e?(0,r.__)("닫기","editnday"):d.length?(0,r.__)("직접","editnday"):(0,r.__)("직접 쓰기","editnday")}),!W(e)&&!$t(n,e)&&d]}),!$t(n,e)&&a&&(0,f.jsx)("div",{className:"ed-prohint-row",children:(0,f.jsx)(D,{label:(0,r.__)("AI로 만들기","editnday")})}),"category"===e&&C&&!$t(n,e)&&(0,f.jsx)(st,{panel:C,onDone:()=>I(null)}),l===e&&(0,f.jsx)(Vt,{k:e,st:n,mode:u,extra:Y(e,{place:"editor"}),below:Y(e,{place:"below"})})]},e)}),(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featured?" is-filled":""),children:!!n.featured&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,r.__)("대표 이미지","editnday")}),"featured"===s?(0,f.jsx)(Q,{}):(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>x(!g),children:Ot(n.featured,g)})]}),n.featuredUrl&&(0,f.jsx)("img",{className:"ed-thumb",src:n.featuredUrl,alt:n.featuredAlt}),n.featuredUrl&&(0,f.jsx)(Gt,{url:n.featuredUrl,title:n.seo.kept?.title||n.seo.title||n.title||"",description:n.seo.kept?.description||n.seo.description||""}),g&&(0,f.jsxs)("div",{className:"ed-redo",children:[Y("featured"),(0,f.jsx)(D,{label:(0,r.__)("AI로 그림 만들기","editnday")}),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,r.__)("그림에 넣을 제목 (선택)","editnday"),placeholder:(0,r.__)("비워 두면 글자 없는 그림","editnday"),value:$,onChange:B}),(0,f.jsxs)("div",{className:"ed-redo__title",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>B(n.title||""),children:(0,r.__)("글 제목 그대로 넣기","editnday")}),!!$.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["title",(0,r.__)("제목형","editnday")],["caption",(0,r.__)("캡션형","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:T===e,onClick:()=>q(e),children:t},e))}),!!$.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["top",(0,r.__)("위","editnday")],["center",(0,r.__)("가운데","editnday")],["bottom",(0,r.__)("아래","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:P===e,onClick:()=>M(e),children:t},e))})]}),(0,f.jsx)("div",{className:"ed-redo__actions",children:!!n.featured&&(0,f.jsx)(N,{disabled:!!s||!$.trim(),onClick:()=>X("featured",async()=>(await Ct($,P,T),x(!1))),children:(0,r.__)("지금 그림에 제목만 넣기","editnday")})})]}),(0,f.jsxs)("div",{className:"ed-tpl",children:[(0,f.jsx)("span",{className:"ed-small ed-strong",children:(0,r.__)("AI 없이 배경 틀로 만들기","editnday")}),(0,f.jsx)("span",{className:"ed-tpl__swatches",children:kt.map(([e,t,n,s])=>(0,f.jsx)("button",{type:"button",className:"ed-tpl__sw"+(F===e?" is-on":""),style:{background:n.length>1?`linear-gradient(135deg, ${n[0]}, ${n[1]})`:n[0],color:s},"aria-pressed":F===e,title:t,onClick:()=>L(e),children:(0,r.__)("가","editnday")},e))}),(0,f.jsx)(N,{disabled:!!s||!($.trim()||n.title?.trim()),onClick:()=>X("featured",async()=>(await vt($.trim()||n.title,F),x(!1))),children:(0,r.__)("배경 틀로 만들기","editnday")}),(0,f.jsxs)("span",{className:"ed-muted",children:[(0,r.__)('위 "그림에 넣을 제목"을, 비워 두면 글 제목을 1200×630 그림 가운데에 넣어요.',"editnday")," ","가운데에 넣어요."]})]}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>{const e=window.wp?.media?.({title:(0,r.__)("대표 이미지 고르기","editnday"),library:{type:"image"},multiple:!1,button:{text:(0,r.__)("대표 이미지로","editnday")}});e&&(e.on("select",()=>{const t=e.state().get("selection").first()?.toJSON();t?.id&&Ye({featured_media:t.id}),x(!1)}),e.open())},children:(0,r.__)("미디어 라이브러리에서 고르기","editnday")})]})]}),(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featuredAlt?" is-filled":""),children:n.featuredAlt&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,r.__)("대표 이미지 ALT","editnday")}),"alt"===s?(0,f.jsx)(Q,{}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",disabled:!n.featured,onClick:()=>c("alt"===l?null:"alt"),children:"alt"===l?(0,r.__)("닫기","editnday"):(0,r.__)("직접 쓰기","editnday")}),Y("alt")]})]}),n.featuredAlt&&"alt"!==l&&(0,f.jsx)("p",{className:"ed-alttext",children:n.featuredAlt}),"alt"===l&&!!n.featured&&(0,f.jsx)(Ut,{id:n.featured,alt:n.featuredAlt,onDone:()=>c(null)})]}),Y("all"),(0,f.jsx)(Mt,{st:n}),(0,f.jsx)(Tt,{}),(0,f.jsx)(qt,{}),(0,f.jsx)(Ft,{st:n}),(0,f.jsx)(Lt,{st:n,onCheck:t}),(0,f.jsxs)(w,{children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("AEO·GEO 넣는 방식","editnday")}),(0,f.jsxs)(O,{checked:"visible"===u,onChange:()=>{m("visible"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"visible"}),gt(Qe("_editnday_schema"))},children:[(0,r.__)("본문에 보이게","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("· 글 앞 요약, 글 끝 자주 묻는 질문","editnday")})]}),(0,f.jsxs)(O,{checked:"structured"===u,onChange:()=>{m("structured"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"structured"}),gt({})},children:[(0,r.__)("구조화 데이터로만","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("· 본문 내용 그대로, 검색봇·AI가 읽는 형식","editnday")})]})]}),(0,f.jsxs)(w,{className:"ed-related",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("strong",{children:(0,r.__)("이어지는 내 글","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>X("related",async()=>{const e=await z()({path:"/editnday/v1/publish/related",method:"POST",data:{postId:n.postId,title:n.title,tags:n.tags,categories:n.categories,content:Ze().getEditedPostContent()}});K(e.items||[])}),children:R?(0,r.__)("다시 찾기","editnday"):(0,r.__)("찾기","editnday")})]}),null===R&&(0,f.jsx)("div",{className:"ed-muted",children:(0,r.__)("이 글과 태그·제목이 겹치는 내 공개 글을 찾아 본문 끝에 링크로 넣을 수 있어요.","editnday")}),R&&!R.length&&(0,f.jsx)("div",{className:"ed-muted",children:(0,r.__)("이어 붙일 만한 글을 찾지 못했어요. 태그를 먼저 달면 더 잘 찾아요.","editnday")}),(R||[]).map(e=>(0,f.jsxs)("div",{className:"ed-row ed-between ed-related__item",children:[(0,f.jsxs)("span",{children:[e.title," ",(0,f.jsx)("span",{className:"ed-muted",children:e.date})]}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:e.added,onClick:()=>{It(e),K(t=>t.map(t=>t.id===e.id?{...t,added:!0}:t))},children:e.added?(0,r.__)("넣었어요","editnday"):(0,r.__)("넣기","editnday")})]},e.id))]}),U&&!G&&H.at&&(0,f.jsxs)("div",{className:"ed-muted ed-indexed",children:[(0,r.__)("검색엔진에 알림:","editnday")," ",new Date(H.at).toLocaleString("ko-KR",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}),Object.entries(H.results||{}).map(([e,t])=>` · ${"naver"===e?(0,r.__)("네이버","editnday"):(0,r.__)("Bing 등","editnday")} ${t>=200&&t<300?"✓":"✕"}`)]}),(0,f.jsx)(Kt,{}),(0,f.jsx)(Ht,{live:U,scheduled:!!G}),(0,f.jsxs)("div",{className:"ed-foot",children:[G?(0,f.jsx)(k,{disabled:!!V,onClick:async()=>{await(0,J.dispatch)("core/editor").savePost(),(0,J.dispatch)("core/notices").createSuccessNotice((0,r.__)("저장했어요. 예약한 시간에 이 내용으로 발행돼요.","editnday"),{type:"snackbar"})},children:V?(0,r.__)("저장하는 중…","editnday"):(0,r.__)("바뀐 내용 저장","editnday")}):U?(0,f.jsx)(k,{disabled:!!V,onClick:async()=>{await(0,J.dispatch)("core/editor").savePost(),(0,J.dispatch)("core/notices").createSuccessNotice((0,r.__)("바뀐 내용을 사이트에 반영했어요.","editnday"),{type:"snackbar"})},children:V?(0,r.__)("반영하는 중…","editnday"):(0,r.__)("바뀐 내용 사이트에 반영","editnday")}):(0,f.jsx)(k,{onClick:()=>(0,J.dispatch)("core/editor").openPublishSidebar?.(),children:(0,r.__)("공개 전 점검하고 발행","editnday")}),(0,f.jsx)(N,{onClick:e,children:(0,r.__)("새 글 시작","editnday")})]})]})}function Kt(){const e=window.editndayConfig?.indexnow,[t,n]=(0,o.useState)(e?.state),[s,d]=(0,o.useState)(!1);if("unset"!==t||!e?.canManage||e?.blocked)return null;const a=async t=>{d(!0);try{const s=await z()({path:"/editnday/v1/indexnow",method:"POST",data:{on:t}});e.state=s.state,window.editndayConfig.autoSend&&(window.editndayConfig.autoSend.indexnow=!!s.available),n(s.state),(0,J.dispatch)("core/notices").createSuccessNotice(t?(0,r.__)("검색엔진에 알리기를 켰어요. 에디튼 → 설정에서 언제든 끌 수 있어요.","editnday"):(0,r.__)("켜지 않았어요. 에디튼 → 설정에서 언제든 켤 수 있어요.","editnday"),{type:"snackbar"})}catch(e){(0,J.dispatch)("core/notices").createErrorNotice(e?.message||(0,r.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{d(!1)}};return(0,f.jsxs)(w,{className:"ed-ask",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("발행하면 검색엔진에 알릴까요?","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("글을 발행하거나 고치면 그 글의 주소를 네이버·Bing 등에 바로 알려서, 새 글을 더 빨리 찾게 해요 (IndexNow). 글 주소만 보내고, 비공개 글은 보내지 않아요. 구글은 이 방식을 받지 않아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(N,{disabled:s,onClick:()=>a(!0),children:(0,r.__)("켜기","editnday")}),(0,f.jsx)(N,{disabled:s,onClick:()=>a(!1),children:(0,r.__)("지금은 안 함","editnday")})]})]})}function Dt(e){const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("ko-KR",{month:"long",day:"numeric",weekday:"short",hour:"numeric",minute:"2-digit"})}function Ht({live:e,scheduled:t}){const n=window.editndayConfig?.autoSend||{},s=!e||t,d=[s&&n.published&&(0,r.__)("고친 내용을 에디튼에 보내 초안과 비교해요","editnday"),n.indexnow&&(s?(0,r.__)("글 주소를 Bing·네이버에 바로 알려요","editnday"):(0,r.__)("반영하면 글 주소를 검색엔진에 다시 알려요","editnday"))].filter(Boolean);if(!d.length)return null;let a="";return t?a=(0,r.__)("예약 시간에 발행되면 자동으로:","editnday"):e||(a=(0,r.__)("발행하면 자동으로:","editnday")),(0,f.jsxs)("p",{className:"ed-muted ed-autosend",children:[a,d.join(" · "),"."," ",(0,f.jsx)("a",{href:window.editndayConfig?.settingsUrl,target:"_blank",rel:"noreferrer",children:(0,r.__)("설정에서 끄기","editnday")})]})}function Ut({id:e,alt:t,onDone:n}){const[s,d]=(0,o.useState)(t||""),[a,i]=(0,o.useState)(!1);return(0,f.jsxs)("div",{className:"ed-taskedit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,r.__)("대표 이미지 ALT","editnday"),help:(0,r.__)("그림에 무엇이 보이는지 한 문장으로. 검색엔진과 화면 읽기 프로그램이 읽어요.","editnday"),value:s,onChange:d}),(0,f.jsx)(N,{disabled:a||!s.trim(),onClick:async()=>{i(!0);try{await(0,J.dispatch)("core").saveEntityRecord("postType","attachment",{id:e,alt_text:s.trim()}),n()}catch(e){(0,J.dispatch)("core/notices").createErrorNotice(e?.message||(0,r.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{i(!1)}},children:a?(0,r.__)("저장 중…","editnday"):(0,r.__)("저장","editnday")})]})}function Vt({k:e,st:t,mode:n,extra:s=[],below:d=[]}){const a=(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(zt,{k:e,st:t,mode:n,extra:s}),d]});return["geo","aeo"].includes(e)||!s.length?a:(0,f.jsxs)(f.Fragment,{children:[a,(0,f.jsx)("div",{className:"ed-row",children:s})]})}function zt({k:e,st:t,mode:n,extra:s}){if("excerpt"===e)return(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,rows:3,value:t.excerpt,onChange:e=>Ye({excerpt:e})});if("slug"===e)return(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,value:at(t.slug),onChange:e=>Ye({slug:e})});if("seo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:"Fine Keyword",help:(0,r.__)("저장하면 SEO 플러그인 키워드 칸으로 옮겨요","editnday"),value:t.seo.keyword||"",onChange:e=>et("_editnday_seo",{...t.seo,keyword:e})}),y(_.keywordInfo,{keyword:t.seo.keyword||"",setKeyword:e=>et("_editnday_seo",{...t.seo,keyword:e})}),(0,f.jsx)(ut,{keyword:t.seo.keyword,seo:t.seo}),(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("SEO 제목","editnday"),value:t.seo.title||"",onChange:e=>et("_editnday_seo",{...t.seo,title:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("SEO 설명","editnday"),rows:3,value:t.seo.description||"",onChange:e=>et("_editnday_seo",{...t.seo,description:e})})]});const d="visible"===n,a=e=>et("_editnday_schema",{...t.schema,...e,mode:n}),i=e=>{gt(Qe("_editnday_schema"),[e]),(0,J.dispatch)("core/notices").createSuccessNotice("faq"===e?(0,r.__)("본문 끝 질문과 답을 바꿨어요.","editnday"):(0,r.__)("본문 앞 요약을 바꿨어요.","editnday"),{type:"snackbar"})},l=(0,f.jsx)("span",{className:"ed-muted",children:d?(0,r.__)("본문 박스를 바로 고쳐도 돼요. 여기서 고쳤다면 [본문에 반영]을 눌러야 본문이 바뀌어요.","editnday"):(0,r.__)("본문에는 안 보여요. 본문에 있는 내용만 남겨 주세요.","editnday")});if("geo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:d?(0,r.__)("글 앞 요약","editnday"):(0,r.__)("검색봇·AI가 읽는 요약","editnday"),help:(0,r.__)("글 전체를 두세 문장으로. 검색 결과와 AI 답변에 인용되기 좋아요.","editnday"),rows:4,value:t.schema.summary||"",onChange:e=>a({summary:e})}),!d&&window.editndayConfig?.seoPlugin?(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: %s: window.editndayConfig.seoPlugin */ /* translators: %s: window.editndayConfig.seoPlugin */(0,r.__)('%s가 글 정보를 이미 내고 있어, 같은 글이 두 번 잡히지 않게 요약은 구조화 데이터에 넣지 않아요. AI 인용에 쓰이게 하려면 "본문에 보이게"를 고르세요.',"editnday"),window.editndayConfig.seoPlugin)}):l,(0,f.jsxs)("div",{className:"ed-row",children:[d&&(0,f.jsx)(N,{disabled:!t.schema.summary?.trim(),onClick:()=>i("summary"),children:(0,r.__)("본문에 반영","editnday")}),s]})]});if("aeo"===e){const e=t.schema.faq?.length?t.schema.faq:[{question:"",answer:""}],n=(t,n)=>a({faq:e.map((e,s)=>s===t?{...e,...n}:e)});return(0,f.jsxs)("div",{className:"ed-faq",children:[e.map((t,s)=>(0,f.jsxs)("div",{className:"ed-faq__item is-edit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,r.sprintf)(/* translators: %s: i + 1 */ /* translators: %s: i + 1 */(0,r.__)("질문 %s","editnday"),s+1),placeholder:(0,r.__)("독자가 검색창에 칠 만한 질문","editnday"),value:t.question,onChange:e=>n(s,{question:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("답","editnday"),rows:3,value:t.answer,onChange:e=>n(s,{answer:e})}),e.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>a({faq:e.filter((e,t)=>t!==s)}),children:(0,r.__)("이 질문 빼기","editnday")})]},s)),l,(0,f.jsxs)("div",{className:"ed-row",children:[e.length<6&&(0,f.jsx)(N,{onClick:()=>a({faq:[...e,{question:"",answer:""}]}),children:(0,r.__)("질문 더하기","editnday")}),d&&(0,f.jsx)(N,{disabled:!e.some(e=>e.question?.trim()&&e.answer?.trim()),onClick:()=>i("faq"),children:(0,r.__)("본문에 반영","editnday")}),s]})]})}return"category"===e?(0,f.jsx)(nt,{}):"tags"===e?(0,f.jsx)("span",{className:"ed-muted",children:t.tags.length?(0,r.__)("워드프레스 태그 칸에 넣었어요. 오른쪽 ‘글’ 설정에서 고칠 수 있어요.","editnday"):(0,r.__)("태그는 오른쪽 ‘글’ 설정의 태그 칸에서 넣어요. 이 글을 찾을 만한 낱말 3~5개면 충분해요.","editnday")}):null}function Gt({url:e,title:t,description:n}){const[s,d]=(0,o.useState)(!1);let a="";try{a=new URL(window.location.href).hostname.replace(/^www\./,"")}catch(e){}return s?(0,f.jsxs)("div",{className:"ed-share",children:[(0,f.jsxs)("div",{className:"ed-share__card",children:[(0,f.jsx)("div",{className:"ed-share__img",style:{backgroundImage:`url("${e}")`},role:"img","aria-label":(0,r.__)("1.91:1로 잘린 대표 이미지","editnday")}),(0,f.jsxs)("div",{className:"ed-share__text",children:[(0,f.jsx)("span",{className:"ed-muted",children:a}),(0,f.jsx)("strong",{children:t||(0,r.__)("(제목 없음)","editnday")}),n&&(0,f.jsx)("span",{className:"ed-share__desc",children:n})]})]}),(0,f.jsxs)("p",{className:"ed-muted",children:[(0,r.__)("카카오톡·페이스북·X 링크는 보통 가운데를 1.91:1(1200×630)로 잘라 보여요. 가장자리의 글자·얼굴이 잘리면 그림을 다시 고르거나 만들어 보세요.","editnday")," ",(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>d(!1),children:(0,r.__)("닫기","editnday")})]})]}):(0,f.jsx)("button",{type:"button",className:"ed-mini",style:{margin:"6px 0 2px"},onClick:()=>d(!0),children:(0,r.__)("공유될 때 모습 보기","editnday")})}function Jt(){const e=ft(),t=(0,c.applyFilters)(_.prepublishFixes,null),n=Et(e),s=n.filter(e=>!e.ok),[d,a]=(0,o.useState)(!1),[i,l]=(0,o.useState)(null),u=(()=>{try{const t=JSON.parse(e&&window.wp?.data?.select("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null");return t?t.reviewed?"done":"pending":"none"}catch(e){return"none"}})(),h=["none"!==u&&{ok:"done"===u,label:"done"===u?(0,r.__)("확인할 곳 처리함","editnday"):(0,r.__)("확인할 곳이 남아 있어요 (에디튼 사이드바)","editnday")},{ok:e.categories.length>0,label:e.categories.length?(0,r.sprintf)(/* translators: %s: st.categoryNames.join( ', ' ) */ /* translators: %s: st.categoryNames.join( ', ' ) */(0,r.__)("카테고리: %s","editnday"),e.categoryNames.join(", ")):(0,r.__)("카테고리를 아직 고르지 않았어요 (기본 카테고리만)","editnday"),fix:t&&(async()=>{const e=await t.text(["category"]);l(e.categories?.length?null:{near:e.nearCategories||[],suggest:e.newCategory||""})}),key:"category"},e.memberCategoryNames?.length>0&&{ok:!1,label:(0,r.sprintf)(/* translators: %s: st.memberCategoryNames.join( ', ' ) */ /* translators: %s: st.memberCategoryNames.join( ', ' ) */(0,r.__)("회원 전용 카테고리: %s — 공개해도 회원만 볼 수 있어요 (SureMembers)","editnday"),e.memberCategoryNames.join(", "))},{ok:!s.length,label:s.length?(0,r.sprintf)(/* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */ /* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */(0,r.__)("검색·AI 점검 %1$s/%2$s: %3$s%4$s (에디튼 사이드바 → 발행 준비)","editnday"),n.length-s.length,n.length,s.slice(0,2).map(e=>e.label).join(", "),s.length>2?(0,r.__)(" 등","editnday"):""):(0,r.sprintf)(/* translators: %1$s: ko.length, %2$s: ko.length */ /* translators: %1$s: ko.length, %2$s: ko.length */(0,r.__)("검색·AI 점검 %1$s/%2$s","editnday"),n.length,n.length)},{ok:!!e.excerpt,label:e.excerpt?(0,r.__)("발췌문 있음","editnday"):(0,r.__)("발췌문 없음","editnday"),fix:t&&(()=>t.text(["excerpt"]))},{ok:!!e.seo.description,label:e.seo.description?(0,r.__)("SEO 설명 있음","editnday"):(0,r.__)("SEO 설명 없음","editnday"),fix:t&&(()=>t.text(["seo"]))},{ok:!!e.featured,label:e.featured?(0,r.__)("대표 이미지 있음","editnday"):(0,r.__)("대표 이미지 없음","editnday"),fix:t?.featured},(e.schema.faq?.length||e.schema.summary)&&{ok:!0,label:(0,r.sprintf)(/* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */ /* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */(0,r.__)("검색봇·AI용 데이터: %1$s%2$s","editnday"),[e.schema.summary&&(0,r.__)("요약","editnday"),e.schema.faq?.length&&(0,r.sprintf)(/* translators: %d: 질문 수 */ /* translators: %d: 질문 수 */
    17 (0,r.__)("질문 %d개","editnday"),e.schema.faq.length)].filter(Boolean).join(" · "),"structured"===e.schema.mode?(0,r.__)(" (본문에 안 보임, 에디튼 사이드바에서 고침)","editnday"):"")},(window.editndayConfig?.autoSend?.published||window.editndayConfig?.autoSend?.indexnow)&&{ok:!0,label:(0,r.sprintf)(/* translators: %s: 발행 때 자동으로 하는 일 목록 */ /* translators: %s: 발행 때 자동으로 하는 일 목록 */(0,r.__)("발행되면(예약이면 그 시간에) 자동으로: %s (관리자 메뉴 에디튼에서 끌 수 있어요)","editnday"),[window.editndayConfig.autoSend.published&&(0,r.__)("고친 내용을 에디튼에 보내요","editnday"),window.editndayConfig.autoSend.indexnow&&(0,r.__)("글 주소를 검색엔진에 알려요","editnday")].filter(Boolean).join(" · "))},e.featured&&{ok:!!e.featuredAlt,label:e.featuredAlt?(0,r.__)("대표 이미지 ALT 있음","editnday"):(0,r.__)("대표 이미지 ALT 없음","editnday"),fix:t?.alt}].filter(Boolean),y=h.filter(e=>!e.ok&&e.fix);return(0,f.jsxs)("div",{className:"editnday ed-prepublish",children:[h.map(e=>(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsx)("span",{className:"ed-task__t",children:e.label}),!e.ok&&e.fix&&(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:d,onClick:async()=>{a(!0);try{await e.fix()}finally{a(!1)}},children:"category"===e.key?(0,r.__)("고르기","editnday"):(0,r.__)("AI로 만들기","editnday")})]}),"category"===e.key&&i&&!e.ok&&(0,f.jsx)(st,{panel:i,onDone:()=>l(null)})]},e.label)),y.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-ghost",disabled:d,onClick:async()=>{a(!0);try{const n=[!e.categories.length&&"category",!e.excerpt&&"excerpt",!e.seo.description&&"seo"].filter(Boolean);if(n.length){const e=await t.text(n);n.includes("category")&&!e.categories?.length&&l({near:e.nearCategories||[],suggest:e.newCategory||""})}e.featured||await t.featured(),await t.alt().catch(()=>{})}finally{a(!1)}},children:d?(0,r.__)("만드는 중…","editnday"):(0,r.__)("남은 것 모두 하기","editnday")})]})}const Wt=window.wp.plugins,Xt=window.wp.domReady;var Zt=n.n(Xt);const Yt=()=>"undefined"!=typeof window&&window.speechSynthesis?window.speechSynthesis:null;function Qt({result:e}){const[t,n]=(0,o.useState)(!1),[s,d]=(0,o.useState)(null);if((0,o.useEffect)(()=>()=>Yt()?.cancel(),[]),!t)return(0,f.jsx)("button",{type:"button",className:"ed-link ed-sentences__toggle",onClick:()=>n(!0),children:(0,r.__)("문장별로 보기","editnday")});const a=new Set(e.issues.filter(e=>["long_sentence","many_clauses","adverb_heavy"].includes(e.rule)).map(e=>e.sentence));return(0,f.jsxs)("div",{className:"ed-sentences",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("문장별로 보기","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{Yt()?.cancel(),d(null),n(!1)},children:(0,r.__)("접기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("한 줄에 한 문장이에요. 한 호흡(60자)을 넘으면 노랑, 100자를 넘으면 빨강. 소리 내어 읽어 어색하면 나눠요.","editnday")}),e.sections.map(e=>{const t=je(e.text);return t.length?(0,f.jsxs)("div",{className:"ed-sentences__sec",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("strong",{className:"ed-sentences__h",children:[e.heading||(0,r.__)("도입","editnday"),(0,f.jsxs)("span",{className:"ed-muted",children:[" · ",(0,r.sprintf)(/* translators: %d: 문장 수 */ /* translators: %d: 문장 수 */
    18 (0,r.__)("%d문장","editnday"),t.length)]})]}),Yt()&&(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>(e=>{const t=Yt();if(!t)return;if(s===e.id)return t.cancel(),void d(null);t.cancel();const n=new window.SpeechSynthesisUtterance((e.heading?e.heading+". ":"")+je(e.text).join(" "));n.lang="ko-KR",n.rate=1,n.onend=()=>d(null),n.onerror=()=>d(null),d(e.id),t.speak(n)})(e),"aria-pressed":s===e.id,children:s===e.id?(0,r.__)("멈추기","editnday"):(0,r.__)("읽어 주기","editnday")})]}),t.map((e,t)=>{let n="";return e.length>100?n=" is-long":e.length>60&&(n=" is-breath"),(0,f.jsxs)("button",{type:"button",className:`ed-sentences__s${n}${a.has(e)?" is-flag":""}`,onClick:()=>_e(e),title:(0,r.__)("본문에서 보기","editnday"),children:[(0,f.jsx)("span",{className:"ed-sentences__n",children:e.length}),(0,f.jsx)("span",{children:e})]},t)})]},e.id):null})]})}const en={da:(0,r.__)("-다","editnday"),yo:(0,r.__)("-요","editnday"),sumnida:(0,r.__)("-습니다","editnday")},tn=[{id:"ai",rules:["banned_phrase"],label:(0,r.__)("AI가 쓴 티가 나는 표현","editnday"),hint:(0,r.__)('상투적인 칭찬, 글을 소개하는 문장, "결론적으로" 같은 정리 말은 빼거나 내 말로 바꿔요.',"editnday")},{id:"spell",rules:["common_mistake"],label:(0,r.__)("자주 틀리는 표현","editnday"),hint:(0,r.__)("몇일 → 며칠, 되요 → 돼요, 컨텐츠 → 콘텐츠처럼 자주 틀리는 표현을 표준 표기로 고쳐요. 맞춤법 전체를 보지는 않아요.","editnday")},{id:"ending",rules:["ending_mixed"],label:(0,r.__)("어미 섞임","editnday"),hint:e=>e.ending?(0,r.sprintf)(/* translators: %s: ENDING_LABEL[ r.ending ] */ /* translators: %s: ENDING_LABEL[ r.ending ] */(0,r.__)("이 글은 대부분 '%s'로 끝나요. 다른 어미로 끝난 문장을 맞춰요.","editnday"),en[e.ending]):(0,r.__)("문장이 더 쌓이면 어미를 봐요.","editnday")},{id:"similar",rules:["repeated_sentence"],label:(0,r.__)("닮은 문장","editnday"),hint:(0,r.__)("앞에서 한 말을 다시 하고 있어요. 한 곳만 남기거나 다르게 써요.","editnday")},{id:"repeat",rules:["repetition"],label:(0,r.__)("같은 표현 되풀이","editnday"),hint:(0,r.__)("같은 말이 세 번 넘게 나와요. 몇 곳은 다른 말로 바꿔요.","editnday")},{id:"start",rules:["same_start"],label:(0,r.__)("같은 말로 시작하는 문장","editnday"),hint:(0,r.__)('"또한 … 또한 …"처럼 이어지면 단조로워요. 접속어를 빼거나 순서를 바꿔요.',"editnday")},{id:"long",rules:["long_sentence"],label:(0,r.__)("긴 문장","editnday"),hint:(0,r.__)("100자가 넘는 문장은 모바일에서 읽기 힘들어요. 둘로 나눠요.","editnday")},{id:"adverb",rules:["adverb_heavy"],label:(0,r.__)("부사 몰림","editnday"),hint:(0,r.__)("한 문장에 정말·너무·아주 같은 부사가 둘 넘게 있어요. 빼도 뜻이 바뀌지 않으면 빼요. 부사가 빠질수록 담백해져요.","editnday")},{id:"clauses",rules:["many_clauses"],label:(0,r.__)("이어 붙인 문장","editnday"),hint:(0,r.__)("'-고, -는데, -지만'으로 절이 네 개 넘게 이어졌어요. 정보 하나에 문장 하나로 나누면 읽는 사람이 놓치지 않아요.","editnday")},{id:"para",rules:["long_paragraph"],label:(0,r.__)("긴 단락","editnday"),hint:(0,r.__)("한 단락이 500자를 넘으면 화면이 글자로 가득해요. 나눠요.","editnday")},{id:"number",rules:["number_format"],label:(0,r.__)("숫자 표기","editnday"),hint:(0,r.__)("큰 수를 쉼표 있게도 없게도 썼어요. 한 가지로 맞춰요.","editnday")},{id:"foreign",rules:["foreign_script"],label:(0,r.__)("일본어·한자 섞임","editnday"),hint:(0,r.__)("한국어 글에 일본어나 한자가 섞였어요.","editnday")},{id:"alt",rules:["image_alt"],label:(0,r.__)("대체 텍스트 없는 이미지","editnday"),hint:(0,r.__)("검색엔진과 화면 읽기 프로그램이 그림을 이해하게 대체 텍스트(ALT)를 적어요.","editnday")}],nn="editnday_textcheck_off",sn=()=>{try{return JSON.parse(window.localStorage.getItem(nn)||"[]")}catch(e){return[]}},dn=e=>{try{window.localStorage.setItem(nn,JSON.stringify(e))}catch(e){}};function an(){const e=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),[t,n]=(0,o.useState)(()=>ze(e));(0,o.useEffect)(()=>{const t=setTimeout(()=>n(ze(e)),800);return()=>clearTimeout(t)},[e]);const[s,d]=(0,o.useState)(sn),[a,i]=(0,o.useState)(!1),[l,c]=(0,o.useState)(null);if(t.metrics.chars<50)return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("본문을 쓰면 여기서 바로 점검해요.","editnday")})]});const u=tn.filter(e=>!s.includes(e.id)).map(e=>({...e,issues:t.issues.filter(t=>e.rules.includes(t.rule))})),h=u.filter(e=>!e.issues.length).length,m=u.filter(e=>e.issues.length),p=a?u:m;return(0,f.jsxs)(w,{className:"ed-koseo ed-textcheck",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(m.length?"":" is-ok"),children:(0,r.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
    19 (0,r.__)("%1$d개 중 %2$d개 통과","editnday"),u.length,h)})]}),p.map(e=>{const n=l===e.id,a="function"==typeof e.hint?e.hint(t):e.hint;return(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.issues.length?" is-warn":" is-filled"),children:e.issues.length?"!":(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("button",{type:"button",className:"ed-koseo__head ed-textcheck__head","aria-expanded":n,disabled:!e.issues.length,onClick:()=>c(n?null:e.id),children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.issues.length?(0,r.sprintf)(/* translators: %s: it.issues.length */ /* translators: %s: it.issues.length */(0,r.__)("%s곳","editnday"),e.issues.length):(0,r.__)("없음","editnday")})]}),n&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"ed-koseo__hint",children:a}),e.issues.slice(0,5).map((e,t)=>(0,f.jsxs)("button",{type:"button",className:"ed-textcheck__sent",onClick:()=>{var t;(t=e).clientId?(0,J.dispatch)("core/block-editor").selectBlock(t.clientId):_e(t.sentence)||(0,J.dispatch)("core/notices").createWarningNotice((0,r.__)("본문에서 문장을 찾지 못했어요","editnday"),{type:"snackbar"})},title:(0,r.__)("본문에서 보기","editnday"),children:[["common_mistake","adverb_heavy","many_clauses"].includes(e.rule)&&(0,f.jsxs)("strong",{children:[e.detail," · "]}),e.sentence.length>70?`${e.sentence.slice(0,70)}…`:e.sentence]},t)),e.issues.length>5&&(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: %d: 더 있는 곳 수 */ /* translators: %d: 더 있는 곳 수 */
    20 (0,r.__)("그 밖에 %d곳","editnday"),e.issues.length-5)}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>(e=>{const t=s.includes(e)?s.filter(t=>t!==e):[...s,e];d(t),dn(t)})(e.id),children:(0,r.__)("이 항목 점검 끄기","editnday")}),y(_.checkItemActions,{item:e.id,issues:e.issues}),"number"!==e.id&&(0,f.jsx)(D,{label:(0,r.__)("AI로 고치기","editnday")})]})]})]},e.id)}),!m.length&&!a&&(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("모두 좋아요.","editnday")}),(0,f.jsx)(Qt,{result:t}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>i(!a),children:a?(0,r.__)("고칠 것만 보기","editnday"):(0,r.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,r.__)("통과한 것도 보기 (%s)","editnday"),h)}),s.length>0&&(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{d([]),dn([])},children:(0,r.sprintf)(/* translators: %d: 꺼 둔 항목 수 */ /* translators: %d: 꺼 둔 항목 수 */
    21 (0,r.__)("꺼 둔 항목 %d개 다시 켜기","editnday"),s.length)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("문장을 누르면 본문에서 보여 줘요. 맞춤법 전체가 아니라 자주 틀리는 표현만 봐요.","editnday")})]})]})}function rn(){const e=ft();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,r.__)("글 점검","editnday"),title:(0,r.__)("이 글을 점검해요","editnday"),sub:(0,r.__)("쓰는 동안 문장과 검색을 함께 봐요. 글을 고치면 잠깐 뒤 다시 점검해요.","editnday")}),(0,f.jsx)(an,{}),(0,f.jsx)(Pt,{st:e}),(0,f.jsx)(U,{})]})}function ln(){const e=(0,J.useSelect)(e=>!e("core/editor").isEditedPostEmpty(),[]),t=(0,J.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),[n,s]=(0,o.useState)(null),d=[{id:"check",label:(0,r.__)("글 점검","editnday"),render:e=>(0,f.jsx)(rn,{api:e})},{id:"publish",label:(0,r.__)("발행 준비","editnday"),render:e=>(0,f.jsx)(Rt,{onNew:()=>h()?m(u.newPost):window.location.href="post-new.php",onCheck:()=>e.goTab("check")})}],a=y(_.tabs,{free:d}),i=a.length?a:d,l=(0,o.useRef)(!1),c=e=>{l.current||(l.current=!0,s(e))},p=i.some(e=>e.decides);(0,o.useEffect)(()=>{p||c(t&&e&&!(()=>{try{return!!JSON.parse((0,J.select)("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null")?.id}catch(e){return!1}})()?"publish":"check")},[p,t,e]);const g=n??i[0].id,x=y(_.notice,{tab:g});return(0,f.jsxs)("div",{className:"editnday ed-body",children:[x,(0,f.jsx)(v,{tabs:i.map(e=>[e.id,e.label]),value:g,onChange:s}),i.map(e=>{const t=e.id===g;return t||e.keepMounted?(0,f.jsx)(o.Fragment,{children:e.render({active:t,goTab:s,onDecide:c})},e.id):null})]})}window.editnday=Object.freeze({...a,...i,...s,...d});const on=()=>(0,f.jsx)(x,{size:18}),cn=()=>(0,f.jsxs)("div",{className:"editnday-header",children:[(0,f.jsx)("img",{src:window.editndayConfig?.wordmark,alt:(0,r.__)("에디튼","editnday"),height:"18"}),(0,f.jsxs)("span",{className:"editnday-header__ver",children:["v",window.editndayConfig?.version]}),h()&&(0,f.jsxs)("span",{className:"editnday-header__pro",title:(0,r.__)("에디튼 프로","editnday"),children:["P",window.editndayConfig?.proVersion&&(0,f.jsx)("span",{className:"editnday-header__prover",children:window.editndayConfig.proVersion})]})]});Zt()(()=>(0,Wt.registerPlugin)("editnday",{render:()=>(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(l.PluginSidebarMoreMenuItem,{target:"editnday-sidebar",icon:(0,f.jsx)(on,{}),children:(0,r.__)("에디튼","editnday")}),(0,f.jsx)(l.PluginSidebar,{name:"editnday-sidebar",title:(0,r.__)("에디튼","editnday"),icon:(0,f.jsx)(on,{}),header:(0,f.jsx)(cn,{}),children:(0,f.jsx)(ln,{})}),(0,f.jsx)(l.PluginPrePublishPanel,{title:(0,r.__)("에디튼 발행 점검","editnday"),initialOpen:!0,icon:(0,f.jsx)(on,{}),children:(0,f.jsx)(Jt,{})})]})}))}};const t={};function n(s){const d=t[s];if(void 0!==d)return d.exports;const a=t[s]={exports:{}};return e[s](a,a.exports,n),a.exports}n.m=e,(()=>{const e=[];n.O=(t,s,d)=>{if(!s){for(var a=0;a<e.length;a++){let[s,d]=e[a],r=!0;for(var i=0;i<s.length;i++)n.O.j(s[i])?s.splice(i--,1):r=!1;if(r){e.splice(a--,1);const n=d();void 0!==n&&(t=n)}}return t}e.push([s,d])}})(),n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.hasOwn(e,t),n.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{const e={57:0,350:0};n.O.j=t=>0===e[t];const t=(t,s)=>{let[d,a,i]=s;var r,l,o=0;if(d.some(t=>0!==e[t])){for(r in a)n.o(a,r)&&(n.m[r]=a[r]);if(i)var c=i(n)}for(t&&t(s);o<d.length;o++)l=d[o],n.o(e,l)&&e[l]&&e[l][0](),e[l]=0;return n.O(c)},s=globalThis.webpackChunk_editnday_plugin||=[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})();let s=n.O(void 0,[350],()=>n(786));s=n.O(s)})();
     1(()=>{"use strict";var e={786(e,t,n){var s={};n.r(s),n.d(s,{EVENT:()=>u,SLOT:()=>_,emit:()=>m,hasPro:()=>h,slot:()=>y});var a={};n.r(a),n.d(a,{Bar:()=>M,Card:()=>w,Check:()=>j,Chip:()=>S,Cta:()=>k,Elapsed:()=>B,Ghost:()=>N,Head:()=>A,Live:()=>P,Opt:()=>I,Radio:()=>T,Req:()=>$,Stepper:()=>L,Steps:()=>E,Symbol:()=>x,Tabs:()=>v,Tag:()=>C});var d={};n.r(d),n.d(d,{CONTENT_STYLE:()=>te,applyToSentence:()=>re,bodyHeadings:()=>Q,clearEmptyStart:()=>ie,contentStyleOn:()=>ne,findSentenceBlock:()=>ce,hasSection:()=>W,insertSection:()=>X,insertSectionAfter:()=>ee,plainText:()=>ae,restoreBlocks:()=>oe,setTitle:()=>le,showSentence:()=>_e,withContentStyle:()=>se});var i={};n.r(i),n.d(i,{CategoryNoFit:()=>st,KoSeoCard:()=>Lt,PublishScreen:()=>Jt,TASKS:()=>ht,TEMPLATES:()=>kt,TPL_ASPECTS:()=>vt,TPL_LAYOUTS:()=>St,closestSentence:()=>ct,contentText:()=>tt,decode:()=>at,drawTemplate:()=>It,ed:()=>Ye,edit:()=>Ze,hasWord:()=>rt,insertRelated:()=>Mt,memberOnly:()=>lt,placeVisible:()=>gt,readMeta:()=>Qe,setFineKeyword:()=>xt,strip:()=>Ot,tagIds:()=>yt,templateFeatured:()=>At,templatePreview:()=>Et,titleFeatured:()=>Pt,useKoSeo:()=>qt,usePublishState:()=>ft,writeMeta:()=>et});const l=window.wp.i18n,r=window.wp.editor,o=window.wp.element,c=window.wp.hooks,_={pro:"editnday.pro",tabs:"editnday.sidebar.tabs",notice:"editnday.notice",checkItemActions:"editnday.check.itemActions",publishFieldActions:"editnday.publish.fieldActions",keywordFix:"editnday.publish.keywordFix",keywordInfo:"editnday.publish.keywordInfo",prepublishFixes:"editnday.prepublish.fixes"},u={newPost:"editnday.newPost"},h=()=>!!(0,c.applyFilters)(_.pro,null),y=(e,t={})=>{const n=(0,c.applyFilters)(e,[],t);return Array.isArray(n)?n.filter(Boolean):[]},m=(e,...t)=>(0,c.doAction)(e,...t),p=window.wp.components,g=window.wp.compose,f=window.ReactJSXRuntime,x=({size:e=16,color:t="#243235"})=>(0,f.jsx)("svg",{viewBox:"0 0 44 46.6",width:e,height:e,"aria-hidden":"true",children:(0,f.jsx)("path",{fill:t,d:"M43.22,21.083c.304-6.426-2.765-9.571-2.765-9.571-4.952-5.651-16.923-5.378-27.013-5.047-1.774,0-2.833.293-4.019.748-1.738.635-3.071,1.831-4.423,3.1-1.435,1.352-2.621,3.131-3.517,5.49C.131,19.294-.296,23.225.2,27.005c0,.003,0,.005.001.008,0,0,1.116,5.041,2.233,7.124.662,1.241,4.373,5.311,5.531,5.987,2.069,1.2,5.559,2.262,7.863,1.117-.386-.455-.814-.91-1.035-1.476-.221-.538-.221-1.228.166-1.669.11-.138.221-.262.331-.372.772.028,1.499.428,5.568.428,5.378.133,16.915,1.493,15.26-2.767-13.801-.264-20.166-.917-22.161-3.05-.475-.508-.34-1.395.13-.921,3.733,3.767,23.166,3.09,23.175,3.095,3.119.035,5.785-8.914,5.957-13.425ZM12.152,28.125c-2.019.168-3.793-2.006-2.416-3.297.971-.912,2.233-1.046,3.547.038,1.691,1.459.425,3.13-1.131,3.26Z"})}),b=()=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"#243235",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M7 17L17 7M9 7h8v8"})}),j=({color:e="#fff"})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:e,strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M5 12.5l4.5 4.5L19 7.5"})}),w=({children:e,className:t=""})=>(0,f.jsx)("div",{className:`ed-card ${t}`,children:e}),k=({children:e,onClick:t,disabled:n})=>(0,f.jsxs)("button",{type:"button",className:"ed-cta",onClick:t,disabled:n,children:[(0,f.jsx)("span",{children:e}),(0,f.jsx)("span",{className:"ed-cta__dot",children:(0,f.jsx)(b,{})})]}),N=({children:e,onClick:t,disabled:n})=>(0,f.jsx)("button",{type:"button",className:"ed-ghost",onClick:t,disabled:n,children:e}),v=({tabs:e,value:t,onChange:n})=>(0,f.jsx)("div",{className:"ed-tabs",role:"tablist",children:e.map(([e,s])=>(0,f.jsx)("button",{type:"button",role:"tab","aria-selected":t===e,className:"ed-tab"+(t===e?" is-on":""),onClick:()=>n(e),children:s},e))}),S=({children:e,on:t,lav:n,onClick:s})=>(0,f.jsx)("button",{type:"button",className:`ed-chip${t?" is-on":""}${n?" is-lav":""}`,onClick:s,"aria-pressed":!!t,children:e}),C=({children:e,tone:t})=>(0,f.jsx)("span",{className:"ed-tag"+(t?` is-${t}`:""),children:e}),$=()=>(0,f.jsx)("span",{className:"ed-req",role:"img","aria-label":(0,l.__)("필수","editnday")}),I=()=>(0,f.jsx)("span",{className:"ed-opt",children:(0,l.__)("선택","editnday")}),A=({eyebrow:e,title:t,sub:n})=>(0,f.jsxs)("div",{className:"ed-head",children:[e&&(0,f.jsx)("span",{className:"ed-eyebrow",children:e}),(0,f.jsx)("h2",{className:"ed-h",children:t}),n&&(0,f.jsx)("p",{className:"ed-sub",children:n})]}),E=({steps:e})=>(0,f.jsx)("div",{className:"ed-steps",children:e.map(e=>(0,f.jsxs)("div",{className:`ed-step is-${e.state}`,children:[(0,f.jsx)("span",{className:"ed-circ",children:"done"===e.state&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-step__label",children:e.label}),e.meta&&(0,f.jsx)("span",{className:"ed-muted ed-step__meta",children:e.meta})]},e.label))});function B({since:e}){const[t,n]=(0,o.useState)(Date.now());(0,o.useEffect)(()=>{const e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]);const s=Math.max(0,Math.round((t-e)/1e3));return(0,f.jsx)("span",{className:"ed-muted ed-elapsed",children:s>=60?(0,l.sprintf)(/* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */ /* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */(0,l.__)("%1$s분 %2$s초째","editnday"),Math.floor(s/60),s%60):(0,l.sprintf)(/* translators: %s: s */ /* translators: %s: s */(0,l.__)("%s초째","editnday"),s)})}const P=({text:e,since:t})=>(0,f.jsxs)("div",{className:"ed-live",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,f.jsx)("span",{className:"ed-live__t",children:e}),(0,f.jsx)(B,{since:t})]}),M=({ratio:e,busy:t})=>(0,f.jsxs)("div",{className:"ed-bar"+(t?" is-busy":""),role:"progressbar","aria-valuenow":Math.round(100*e),"aria-valuemin":0,"aria-valuemax":100,children:[(0,f.jsx)("div",{className:"ed-bar__fill",style:{width:`${Math.max(4,100*e)}%`}}),(0,f.jsx)("div",{className:"ed-bar__hatch"})]}),T=({checked:e,onChange:t,children:n})=>{const s=`ed-radio-${(0,g.useInstanceId)(T)}`;return(0,f.jsxs)("label",{htmlFor:s,className:"ed-radio"+(e?" is-on":""),children:[(0,f.jsx)("input",{id:s,type:"radio",checked:e,onChange:t}),(0,f.jsx)("span",{className:"ed-rdot"}),(0,f.jsx)("span",{children:n})]})},O={start:[0,-1,""],research:[0,0,(0,l.__)("에디튼이 자료를 모으는 중 · 1~2분","editnday")],plan:[1,-1,""],writing:[1,1,(0,l.__)("다 쓰면 확인할 곳을 보여 드려요 · 2~3분","editnday")],review:[2,-1,(0,l.__)("확인할 곳을 정하면 발행 준비로 넘어가요","editnday")],done:[2,-1,""]},F=[(0,l.__)("주제·메모","editnday"),(0,l.__)("구성안 고르기","editnday"),(0,l.__)("확인·발행","editnday")],q=[(0,l.__)("자료 조사","editnday"),(0,l.__)("본문 쓰기","editnday")];function L({stage:e}){const t=O[e];if(!t)return null;const[n,s,a]=t,d=s>=0?s:n-1;return(0,f.jsxs)("div",{className:"ed-stepper","aria-label":(0,l.sprintf)(/* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */ /* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */(0,l.__)("작가가 할 일 3단계 중 %1$s단계%2$s","editnday"),n+1,s>=0?(0,l.sprintf)(/* translators: %s: 진행 중인 일 */ /* translators: %s: 진행 중인 일 */
     2(0,l.__)(", %s 중","editnday"),q[s]):""),children:[(0,f.jsx)("div",{className:"ed-stepper__flow",children:F.map((e,t)=>{const a=t<=d,i=!a&&t===n&&s<0;return[(0,f.jsxs)("div",{className:`ed-stepper__st${a?" is-done":""}${i?" is-now":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__dot",children:a?(0,f.jsx)(j,{}):t+1}),(0,f.jsx)("span",{className:"ed-stepper__lbl",children:e})]},e),t<q.length&&(0,f.jsxs)("div",{className:`ed-stepper__link${t===s?" is-run":""}${t<d||t<n&&s<0?" is-done":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__line"}),(0,f.jsxs)("em",{children:[q[t],t===s?(0,l.__)("중","editnday"):""]})]},q[t])]})}),a&&(0,f.jsx)("span",{className:"ed-stepper__note",children:a})]})}const R="editnday_pro_card_off";function D({onClose:e}){return(0,f.jsxs)(p.Modal,{title:(0,l.__)("에디튼 프로","editnday"),onRequestClose:e,className:"ed-proinfo",size:"medium",children:[(0,f.jsx)("p",{children:(0,l.__)("에디튼 프로는 지금 쓰는 에디튼에 AI를 더해요. 무료 기능은 그대로이고, 같은 사이드바에 버튼과 [새 글 쓰기] 탭이 생겨요.","editnday")}),(0,f.jsxs)("ul",{children:[(0,f.jsx)("li",{children:(0,l.__)("새 글 쓰기: 주제와 메모로 자료 조사 → 구성안 → 내 문체의 초안 → 확인할 곳까지 (글 1편 10크레딧 안팎)","editnday")}),(0,f.jsx)("li",{children:(0,l.__)("글 점검에서 찾은 문장을 AI로 고치기, 줄이기, 다시 쓰기","editnday")}),(0,f.jsx)("li",{children:(0,l.__)("발행 준비 칸 채우기: 발췌문·태그·카테고리·영문 주소·SEO 제목과 설명·요약·질문답 (한 번에)","editnday")}),(0,f.jsx)("li",{children:(0,l.__)("대표 이미지 만들기(1장 1크레딧)와 ALT, 단락 더 쓰기(1크레딧)","editnday")})]}),(0,f.jsx)("p",{className:"ed-muted",children:(0,l.__)("프로를 설치하고 라이선스를 넣으면 바로 쓸 수 있어요. 지금 이 화면의 기능은 프로 없이도 계속 무료예요.","editnday")}),(0,f.jsx)("p",{children:(0,f.jsx)("a",{className:"components-button is-primary",href:"https://editn.day/",target:"_blank",rel:"noopener noreferrer",children:(0,l.__)("에디튼 프로 알아보기","editnday")})})]})}function K({label:e}){const[t,n]=(0,o.useState)(!1);return h()?null:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("button",{type:"button",className:"ed-prohint",onClick:()=>n(!0),children:[e," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,l.__)("프로","editnday"),children:"P"})]}),t&&(0,f.jsx)(D,{onClose:()=>n(!1)})]})}const H=()=>{try{return"1"===window.localStorage.getItem(R)}catch(e){return!1}};function z(){const[e,t]=(0,o.useState)(H),[n,s]=(0,o.useState)(!1);return h()||e?null:(0,f.jsxs)(w,{className:"ed-procard",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("span",{className:"ed-lbl",children:[(0,l.__)("초안도 써 드려요","editnday")," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,l.__)("프로","editnday"),children:"P"})]}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{t(!0);try{window.localStorage.setItem(R,"1")}catch(e){}},"aria-label":(0,l.__)("이 안내 닫기","editnday"),children:(0,l.__)("닫기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("에디튼 프로는 주제와 메모만으로 자료를 찾아 내 문체의 초안을 쓰고, 여기서 찾은 문장도 AI로 고쳐요.","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!0),children:(0,l.__)("자세히 보기","editnday")}),n&&(0,f.jsx)(D,{onClose:()=>s(!1)})]})}const U=window.wp.apiFetch;var J=n.n(U);const V=window.wp.blocks,G=window.wp.data;function W(e){return(0,G.select)("core/block-editor").getBlocks().some(t=>"core/heading"===t.name&&t.attributes?.metadata?.editnday===e)}function X({id:e,heading:t,text:n}){if(e&&W(e))return!1;const s=[(0,V.createBlock)("core/heading",{level:2,content:ue(t),metadata:{editnday:e}})],a=(0,V.pasteHandler)({plainText:String(n).replace(/~/g,"\\~"),mode:"BLOCKS"});return s.push(...(Array.isArray(a)?a:[]).map(se)),(0,G.dispatch)("core/block-editor").insertBlocks(s),!0}const Y=e=>String(e.attributes?.content??"").replace(/<[^>]+>/g,"").trim(),Z=e=>"faq"===e.attributes?.metadata?.editnday;function Q(){return(0,G.select)("core/block-editor").getBlocks().filter(e=>"core/heading"===e.name&&2===(e.attributes.level??2)&&Y(e)).map(Y)}function ee({heading:e,text:t,afterHeading:n}){const s=(0,G.select)("core/block-editor").getBlocks(),a=e=>"core/heading"===e.name&&2===(e.attributes.level??2),d=s.findIndex(Z),i=d>=0?d:s.length,l=s.findIndex(e=>a(e)&&Y(e)===n);let r=i;if(l>=0&&l<i){const e=s.findIndex((e,t)=>t>l&&a(e));r=e>=0&&e<i?e:i}const o=(0,V.pasteHandler)({plainText:String(t).replace(/~/g,"\\~"),mode:"BLOCKS"}),c=[(0,V.createBlock)("core/heading",{level:2,content:ue(e),metadata:{editnday:`extra-${Date.now()}`}}),...(Array.isArray(o)?o:[]).map(se)];return(0,G.dispatch)("core/block-editor").insertBlocks(c,r),c.map(e=>e.clientId)}const te="is-style-editnday",ne=()=>"off"!==window.editndayConfig?.contentStyle;function se(e){if("core/list"!==e?.name&&"core/table"!==e?.name||!ne())return e;const t=e.attributes.className||"";return/\bis-style-/.test(t)||(e.attributes.className=`${t} ${te}`.trim()),e}const ae=e=>String(e).replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),de=e=>String(e).replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,'<a href="$2">$1</a>');function ie(){const e=(0,G.select)("core/block-editor").getBlocks();1!==e.length||"core/paragraph"!==e[0].name||e[0].attributes.content||(0,G.dispatch)("core/block-editor").removeBlocks([e[0].clientId])}function le(e){(0,G.dispatch)("core/editor").editPost({title:e})}function re(e,t){const n=(0,G.select)("core/block-editor"),s=n=>{for(const a of n){if("core/paragraph"===a.name||"core/list-item"===a.name){const n=String(a.attributes.content??""),s=[e,de(e),ae(e)].find(e=>n.includes(e)),d=s?n.indexOf(s):-1;if(d>=0){const e=(n.slice(0,d)+de(t??"")+n.slice(d+s.length)).replace(/\s{2,}/g," ").trim();return(0,G.dispatch)("core/block-editor").updateBlockAttributes(a.clientId,{content:e}),{clientId:a.clientId,before:n}}}const n=!!a.innerBlocks?.length&&s(a.innerBlocks);if(n)return n}return!1};return s(n.getBlocks())}function oe(e){const t=(0,G.select)("core/block-editor");for(const n of[...e].reverse())t.getBlock(n.clientId)&&(0,G.dispatch)("core/block-editor").updateBlockAttributes(n.clientId,{content:n.before})}function ce(e){const t=[e,de(e),ae(e)],n=e=>{for(const s of e){const e=String(s.attributes?.content??"");if(e&&t.some(t=>e.includes(t)))return s.clientId;const a=s.innerBlocks?.length&&n(s.innerBlocks);if(a)return a}return null};return n((0,G.select)("core/block-editor").getBlocks())}function _e(e){const t=ce(e);if(!t)return!1;const n=document.querySelector('iframe[name="editor-canvas"]')?.contentDocument||document,s=n.querySelector(`[data-block="${t}"]`),a=n.defaultView,d=s&&function(e,t){const n=e.ownerDocument,s=n.createTreeWalker(e,4),a=[];let d="";for(let e=s.nextNode();e;e=s.nextNode())a.push({n:e,start:d.length}),d+=e.nodeValue;const i=e=>e.replace(/\s+/g," "),l=i(d).indexOf(i(t).trim());if(l<0)return null;const r=[];for(let e=0,t=!1;e<d.length;e++){const n=/\s/.test(d[e]);n&&t||r.push(e),t=n}const o=r[l],c=(r[l+i(t).trim().length-1]??d.length-1)+1,_=e=>{const t=a.findLastIndex(t=>t.start<=e),n=a[Math.max(0,t)];return[n.n,Math.min(e-n.start,n.n.nodeValue.length)]},u=n.createRange();return u.setStart(..._(o)),u.setEnd(..._(c)),u}(s,ae(e));if(!d||!a?.CSS?.highlights||"function"!=typeof a.Highlight)return(0,G.dispatch)("core/block-editor").selectBlock(t),(0,G.dispatch)("core/block-editor").flashBlock?.(t),!0;(d.startContainer.parentElement||s).scrollIntoView({behavior:"smooth",block:"center"});let i=n.getElementById("editnday-mark-style");i||(i=n.createElement("style"),i.id="editnday-mark-style",n.head.appendChild(i)),a.CSS.highlights.set("editnday-mark",new a.Highlight(d));const l=Date.now();return clearInterval(_e.timer),_e.timer=setInterval(()=>{const e=Date.now()-l,t=e<2500?.75:Math.max(0,.75*(1-(e-2500)/1500));i.textContent=`::highlight(editnday-mark){background-color:rgba(211,183,241,${t.toFixed(3)});color:inherit}`,0===t&&(clearInterval(_e.timer),a.CSS.highlights.delete("editnday-mark"))},50),!0}const ue=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),he=(e,t,n="낱말")=>({re:new RegExp(`(?<![가-힣])${e}`,"g"),fix:t,kind:n}),ye=(e,t)=>({re:new RegExp(e,"g"),fix:t,kind:"어미"}),me=[he("몇 ?일(?!본|반|부|정|자리|손|꾼|요일|단|등|대|원|차)","며칠"),he("웬지","왠지"),he("왠만","웬만"),he("왠일","웬일"),he("왠걸","웬걸"),he("왠 (?=[가-힣])","웬 "),he("금새","금세"),he("일일히","일일이"),he("깨끗히","깨끗이"),he("틈틈히","틈틈이"),he("곰곰히","곰곰이"),he("번번히","번번이"),he("일찌기","일찍이"),he("오랫만","오랜만"),he("오랜동안","오랫동안"),he("설겆이","설거지"),he("희안","희한"),he("어의없","어이없"),he("역활","역할"),he("되물림","대물림"),he("구지(?= |[.,])","굳이"),he("어짜피","어차피"),he("어줍잖","어쭙잖"),he("널부러","널브러"),he("닥달","닦달"),he("짜집기","짜깁기"),he("설레임","설렘"),he("설레이","설레"),he("헤매이","헤매"),he("되뇌이","되뇌"),he("애시당초","애당초"),he("무릎쓰","무릅쓰"),he("뒤치닥거리","뒤치다꺼리"),he("개거품","게거품"),he("칠흙","칠흑"),he("희노애락","희로애락"),he("인권비","인건비"),he("뇌졸증","뇌졸중"),he("숫가락","숟가락"),he("육계장","육개장"),{re:/찌게(?! ?(하|해|했|되|만들))/g,fix:"찌개",kind:"낱말"},he("떡볶기","떡볶이"),he("윗층","위층"),he("윗쪽","위쪽"),he("아랫층","아래층"),he("가르키","가리키(가리킬 때)·가르치(알려 줄 때)"),he("모자르","모자라"),he("들어나(?=[다고는면서지])","드러나"),he("들어났","드러났"),he("어떡게","어떻게"),he("어떻해","어떡해"),ye("되요","돼요"),ye("되서(?![가-힣])","돼서"),ye("되야","돼야"),ye("됬","됐"),ye("떄","때"),ye("됀","된"),ye("뵈요","봬요"),ye("뵜","뵀"),ye("(?<=[가-힣])이예요","이에요"),ye("아니예요","아니에요"),ye("있슴(?![가-힣])","있음"),ye("없슴(?![가-힣])","없음"),ye("알맞는","알맞은"),ye("걸맞는","걸맞은"),ye("치뤄","치러"),ye("치뤘","치렀"),ye("잠궈","잠가"),ye("잠궜","잠갔"),ye("담궈","담가"),ye("담궜","담갔"),ye("삼가해","삼가"),ye("(?<![가-힣])할려고","하려고"),ye("(?<![가-힣])할려면","하려면"),ye("(?<![가-힣])볼려고","보려고"),ye("(?<![가-힣])먹을려고","먹으려고"),ye("(?<![가-힣])될려고","되려고"),ye("안절부절(?=하|했|한)","안절부절못"),{re:/않(?= ?(하|해|했|된|되|돼))/g,fix:"안",kind:"어미"},{re:/(?<=지 )안(?=[아았는을])/g,fix:"않",kind:"어미"},{re:/가능한 (?=빨리|많이|빠르게|일찍|자주|정확하게|짧게)/g,fix:"가능한 한 ",kind:"표현"},{re:/(?<=답을 )맞(?=추|춰|췄)/g,fix:"맞히(정답을 맞히다)",kind:"표현"},{re:/(?<=사단이 )(났|나)/g,fix:"'사달이 났다'",kind:"표현"},{re:/(?<=(?:하기|하시기|되기|되시기|가기|오기)를 )바래/g,fix:"바라",kind:"표현"},{re:/(?<=(?:하길|되길|가길|오길) )바래/g,fix:"바라",kind:"표현"},he("컨텐츠","콘텐츠","외래어"),he("메세지","메시지","외래어"),he("악세사리","액세서리","외래어"),he("악세서리","액세서리","외래어"),he("리더쉽","리더십","외래어"),he("멤버쉽","멤버십","외래어"),he("파트너쉽","파트너십","외래어"),he("스폰서쉽","스폰서십","외래어"),he("타겟","타깃","외래어"),he("비지니스","비즈니스","외래어"),he("워크샵","워크숍","외래어"),he("스케쥴","스케줄","외래어"),he("쥬스","주스","외래어"),he("초콜렛","초콜릿","외래어"),he("케익","케이크","외래어"),he("카페트","카펫","외래어"),he("부페","뷔페","외래어"),he("렌트카","렌터카","외래어"),he("프로포즈","프러포즈","외래어"),he("로보트","로봇","외래어"),he("앙케이트","앙케트","외래어"),he("엑세스","액세스","외래어"),he("어플리케이션","애플리케이션","외래어"),he("싸이트","사이트","외래어"),he("화이팅","파이팅","외래어"),he("데이타","데이터","외래어"),he("컨셉","콘셉트","외래어"),he("팜플렛","팸플릿","외래어")],pe=e=>(e.charCodeAt(0)-44032)%28,ge=e=>!!e&&e>="가"&&e<="힣";function fe(e){const t=[];for(const n of e.matchAll(/([가-힣])(께|껄)(?=요|[\s.,!?~]|$)/g))8===pe(n[1])&&t.push({wrong:n[0],fix:`${n[1]}${"께"===n[2]?"게":"걸"}`});return t}function xe(e){const t=[];for(const n of e.matchAll(/([가-힣])(율|률)/g)){if(!ge(n[1]))continue;const e=pe(n[1]),s=0===e||4===e?"율":"률";n[2]!==s&&t.push({wrong:n[0],fix:`${n[1]}${s}`})}return t}function be(e){const t=[];for(const n of je(e.text)){const s=[];for(const e of me)for(const t of n.matchAll(e.re))s.push({wrong:t[0].trim(),fix:e.fix.trim()});s.push(...fe(n),...xe(n));const a=new Set;for(const d of s)a.has(d.wrong)||(a.add(d.wrong),t.push({sectionId:e.id,rule:"common_mistake",severity:"warn",detail:`"${d.wrong}" → "${d.fix}"`,sentence:n}))}return t}function je(e){return function(e){return e.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/https?:\/\/\S+/g,"")}(e).replace(/\n+/g,"\n").split(/(?<=[.!?。])\s+|\n/).map(e=>e.replace(/^[#>\-*\s|]+/,"").trim()).filter(e=>e.length>3&&!e.startsWith("|"))}function we(e){const t=je(e).map(e=>e.length),n=t.length||1;return{chars:e.replace(/^#.*$/gm,"").trim().length,sentences:t.length,sentenceAvg:Math.round(t.reduce((e,t)=>e+t,0)/n*10)/10,long100:Math.round(t.filter(e=>e>=100).length/n*1e3)/10,short25:Math.round(t.filter(e=>e<25).length/n*1e3)/10}}const ke=[{re:/완벽한|압도적인|독보적인|특별한 경험/,label:"상투 극찬"},{re:/이상으로 .{0,10}(살펴|알아)/,label:"요약형 맺음"},{re:/(이번 글|이 글)에서(는)? .{0,30}(살펴보|알아보|따라가|다루|정리해)/,label:"메타 서술"},{re:/결론적으로|요약하자면|정리하자면|^정리하면|^요컨대|^종합하면/,label:"정리형 연결어"},{re:/(앞으로|다음에는?|이제부터).{0,40}(보게|하게|찾게|쓰게|되게) 될 것 같다/,label:"작가 행동을 지어냈을 수 있음"},{re:/(기준|대상)[이가과은는]?.{0,12}(다르|달라).{0,20}(겹쳐|합쳐|곧바로|하나로|그대로).{0,8}(읽|비교|보)/,label:"정형 문장 (기준이 달라 합쳐 읽기 어렵다)"}];function Ne(e,t=[]){const n=[];for(const s of je(e.text)){for(const t of ke)t.re.test(s)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"warn",detail:t.label,sentence:s});for(const a of t)a&&s.includes(a)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"block",detail:`금지 표현 "${a}"`,sentence:s})}return n}const ve=/[\u3040-\u30ff\u31f0-\u31ff\uff66-\uff9f]/,Se=/[\u3400-\u4dbf\u4e00-\u9fff]/g;function Ce(e,t=100){return je(e.text).filter(e=>e.length>t).map(n=>({sectionId:e.id,rule:"long_sentence",severity:"warn",detail:`${n.length}자 문장 (${t}자 넘음)`,sentence:n}))}const $e=/^(또한|그리고|하지만|그러나|그런데|또|특히|이처럼|따라서|즉|게다가|물론|결국)[\s,]/;function Ie(e){const t=je(e.text),n=t.map(e=>e.split(/[\s,]/)[0]??""),s=[];for(let a=1;a<t.length;a++){const d=n[a];if(d.length<2||d!==n[a-1])continue;const i=$e.test(t[a])&&$e.test(t[a-1]),l=a>=2&&n[a-2]===d;(i||l)&&s.push({sectionId:e.id,rule:"same_start",severity:"warn",detail:`"${d}"(으)로 시작하는 문장이 이어짐`,sentence:t[a]})}return s}const Ae=new RegExp(`(?:^|[\\s"'(“‘])(${["정말","정말로","진짜","진짜로","너무","너무나","아주","매우","완전","엄청","굉장히","상당히","꽤","좀","조금","약간","거의","솔직히","사실","항상","늘","자주","무척","되게","많이","훨씬","딱","전혀","결코","절대","분명","확실히","당연히","역시","그냥","막","가장","제일","특히"].join("|")})(?=[\\s,.!?)”’]|$)`,"g");function Ee(e,t=1){return je(e.text).flatMap(n=>{const s=[...n.matchAll(Ae)].map(e=>e[1]??"");return s.length>t?[{sectionId:e.id,rule:"adverb_heavy",severity:"warn",detail:`부사 ${s.length}개: ${s.join("·")}`,sentence:n}]:[]})}const Be=/(?:고|는데|ㄴ데|은데|지만|며|면서|거나|니까|므로|어서|아서|해서|라서|려고|더니|다가)(?=[,\s])/g,Pe=/(?:^|\s)(그리고|그런데|그래서|그러나|하지만|그러면서|그러니까|그러므로|그렇지만|그러다가)(?=[,\s])/g;function Me(e,t=3){return je(e.text).flatMap(n=>{const s=(n.replace(Pe," ").match(Be)??[]).length+1;return s>t?[{sectionId:e.id,rule:"many_clauses",severity:"warn",detail:`절 ${s}개`,sentence:n}]:[]})}function Te(e){const t=e.map(e=>e.text).join("\n");if(!/\d{1,3}(,\d{3})+/.test(t))return[];const n=[];for(const t of e)for(const e of je(t.text))for(const s of e.matchAll(/(?<![\d,.])(\d{4,})(?![\d,])/g)){const a=Number(s[1]),d=e.slice(s.index+s[1].length),i=e.slice(0,s.index);4===s[1].length&&(a>=1900&&a<=2099||/^\s*(년|~)/.test(d)||/~\s*$/.test(i))||n.push({sectionId:t.id,rule:"number_format",severity:"warn",detail:`"${s[1]}" — 다른 곳은 쉼표를 썼어요 (${Number(a).toLocaleString("en-US")})`,sentence:e})}return n}function Oe(e){const t=e.evidence.join(" ");return je(e.text).filter(e=>[...e.match(new RegExp(ve.source,"g"))??[],...e.replace(/\([^()]*\)/g,"").match(Se)??[]].some(e=>!t.includes(e))).map(t=>({sectionId:e.id,rule:"foreign_script",severity:"warn",detail:"한국어가 아닌 글자(일본어·한자)가 섞였어요",sentence:t}))}const Fe={da:"-다",yo:"-요",sumnida:"-습니다"};function qe(e,t="da"){const n=je(e.text).map(e=>({sent:e,t:e.replace(/[.!?"'”’)\]\s]+$/,"")}));return"da"===t?n.filter(({sent:e})=>/([어아여해에예지네]요|죠|(?<!아)니다)[.!]?$/.test(e)).map(({sent:t})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:"평서체('-다') 글에 다른 어미",sentence:t})):n.filter(({t:e})=>/다$/.test(e)&&!/(니다|니까)$/.test(e)).map(({sent:n})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:`존댓말('${Fe[t]}') 글에 평서체('-다') 문장`,sentence:n}))}function Le(e){const t=new Map;for(const n of e)for(const e of je(n.text)){const s=e.split(/\s+/);for(let a=0;a+3<=s.length;a++){const d=s.slice(a,a+3).join(" ");if(d.length<8)continue;const i=t.get(d)??{n:0,sectionId:n.id,sentence:e};i.n++,t.set(d,i)}}return[...t.entries()].filter(([,e])=>e.n>=3).map(([e,t])=>({sectionId:t.sectionId,rule:"repetition",severity:"warn",detail:`"${e}" ${t.n}회 반복`,sentence:t.sentence}))}const Re=e=>{const t=e.replace(/\s+/g,""),n=new Set;for(let e=0;e+2<=t.length;e++)n.add(t.slice(e,e+2));return n};function De(e,t=.4){const n=e.flatMap(e=>je(e.text).filter(e=>e.length>=20).map(t=>({id:e.id,x:t,g:Re(t)}))),s=[],a=new Set;for(let e=0;e<n.length;e++)for(let d=e+1;d<n.length;d++){const i=n[e],l=n[d];if(i.id===l.id||a.has(l.x))continue;let r=0;i.g.forEach(e=>l.g.has(e)&&r++),r/(i.g.size+l.g.size-r)<t||(a.add(l.x),s.push({sectionId:l.id,rule:"repeated_sentence",severity:"warn",detail:`앞에서 거의 같은 말을 했어요: "${i.x.length>60?`${i.x.slice(0,60)}…`:i.x}"`,sentence:l.x}))}return s}const Ke=["core/paragraph","core/heading","core/list-item","core/quote","core/pullquote","core/verse"],He=e=>String(e??"").replace(/<br\s*\/?>/gi,"\n").replace(/<[^>]+>/g,"").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#0?39;/g,"'").replace(/&#(\d+);/g,(e,t)=>String.fromCodePoint(Number(t))).replace(/&#x([0-9a-f]+);/gi,(e,t)=>String.fromCodePoint(parseInt(t,16))).trim(),ze=e=>["summary","faq"].includes(e?.attributes?.metadata?.editnday)||/\beditnday-(summary|faq|related)/.test(e?.attributes?.className||"");function Ue(e){const t=[],n=e=>{for(const s of e||[])if(!ze(s)){if("core/paragraph"===s.name){const e=He(s.attributes?.content);e.length>500&&t.push({rule:"long_paragraph",detail:(0,l.sprintf)(/* translators: %s: t.length */ /* translators: %s: t.length */(0,l.__)("%s자 단락","editnday"),e.length),sentence:`${e.slice(0,40)}…`,clientId:s.clientId})}"core/image"!==s.name||String(s.attributes?.alt??"").trim()||t.push({rule:"image_alt",detail:(0,l.__)("대체 텍스트 없음","editnday"),sentence:(0,l.sprintf)(/* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */ /* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */(0,l.__)("이미지 %s","editnday"),String(s.attributes?.url??"").split("/").pop()||"").trim(),clientId:s.clientId}),n(s.innerBlocks)}};return n(e),t}function Je(e){const t=function(e){const t=[];let n={id:"s0",heading:"",lines:[],blockIds:[]},s=0;const a=e=>{for(const d of e||[])if(!ze(d))if("core/heading"===d.name&&(d.attributes?.level??2)<=2)(n.lines.length||n.heading)&&t.push(n),n={id:"s"+ ++s,heading:He(d.attributes?.content),lines:[],blockIds:[d.clientId]};else{if(Ke.includes(d.name)){const e=He(d.attributes?.content??d.attributes?.value??d.attributes?.citation);e&&(n.lines.push(e),n.blockIds.push(d.clientId))}a(d.innerBlocks)}};return a(e),(n.lines.length||n.heading)&&t.push(n),t.map(e=>({id:e.id,heading:e.heading,text:e.lines.join("\n"),evidence:[],blockIds:e.blockIds}))}(e),n=t.map(e=>e.text).join("\n"),s=function(e){const t={da:0,yo:0,sumnida:0};for(const n of je(e)){const e=n.replace(/[.!?"'”’)\]\s]+$/,"");/(니다|니까)$/.test(e)?t.sumnida++:/([어아여해에예지네]요|죠)$/.test(e)?t.yo++:/다$/.test(e)&&t.da++}return t.da+t.yo+t.sumnida<4?null:Object.entries(t).sort((e,t)=>t[1]-e[1])[0][0]}(n),a=[...t.flatMap(e=>[...Ne(e),...be(e),...s?qe(e,s):[],...Oe(e),...Ce(e),...Ee(e),...Me(e),...Ie(e)]),...De(t),...Le(t),...Te(t),...Ue(e)];return{sections:t,ending:s,issues:a,metrics:we(n)}}const Ve=[(0,l.__)("에서부터","editnday"),(0,l.__)("이라는","editnday"),(0,l.__)("이라고","editnday"),(0,l.__)("으로는","editnday"),(0,l.__)("에서는","editnday"),(0,l.__)("에서도","editnday"),(0,l.__)("으로서","editnday"),(0,l.__)("으로써","editnday"),(0,l.__)("이에요","editnday"),(0,l.__)("입니다","editnday"),(0,l.__)("에게","editnday"),(0,l.__)("에서","editnday"),(0,l.__)("한테","editnday"),(0,l.__)("으로","editnday"),(0,l.__)("까지","editnday"),(0,l.__)("부터","editnday"),(0,l.__)("처럼","editnday"),(0,l.__)("보다","editnday"),(0,l.__)("이나","editnday"),(0,l.__)("이란","editnday"),(0,l.__)("이라","editnday"),(0,l.__)("이랑","editnday"),(0,l.__)("이다","editnday"),(0,l.__)("인데","editnday"),(0,l.__)("이고","editnday"),(0,l.__)("이며","editnday"),(0,l.__)("이죠","editnday"),(0,l.__)("이야","editnday"),(0,l.__)("로서","editnday"),(0,l.__)("로써","editnday"),(0,l.__)("로는","editnday"),(0,l.__)("에는","editnday"),(0,l.__)("에도","editnday"),(0,l.__)("와는","editnday"),(0,l.__)("과는","editnday"),(0,l.__)("라는","editnday"),(0,l.__)("라고","editnday"),(0,l.__)("마다","editnday"),(0,l.__)("조차","editnday"),(0,l.__)("밖에","editnday"),(0,l.__)("예요","editnday"),(0,l.__)("은","editnday"),(0,l.__)("는","editnday"),(0,l.__)("이","editnday"),(0,l.__)("가","editnday"),(0,l.__)("을","editnday"),(0,l.__)("를","editnday"),(0,l.__)("의","editnday"),(0,l.__)("에","editnday"),(0,l.__)("께","editnday"),(0,l.__)("로","editnday"),(0,l.__)("와","editnday"),(0,l.__)("과","editnday"),(0,l.__)("도","editnday"),(0,l.__)("만","editnday"),(0,l.__)("나","editnday"),(0,l.__)("란","editnday"),(0,l.__)("라","editnday"),(0,l.__)("랑","editnday"),(0,l.__)("다","editnday"),(0,l.__)("인","editnday"),(0,l.__)("고","editnday"),(0,l.__)("며","editnday"),(0,l.__)("죠","editnday"),(0,l.__)("야","editnday"),(0,l.__)("뿐","editnday")],Ge=e=>!!e&&/[\p{L}\p{N}]/u.test(e);function We(e,t){const n=String(t||"").toLowerCase().replace(/\s+/g,""),s=String(e||"").toLowerCase();if(!n||!s)return 0;const a=[];let d="";for(let e=0;e<s.length;e++)/\s/.test(s[e])||(a.push(e),d+=s[e]);let i=0,l=0;for(;;){const e=d.indexOf(n,l);if(e<0)break;l=e+1;const t=a[e],r=a[e+n.length-1]+1;if(Ge(s[t-1]))continue;const o=s.slice(r);if(!Ge(o[0])){i++;continue}const c=Ve.find(e=>o.startsWith(e));c&&!Ge(o[c.length])&&i++}return i}const Xe=(e,t="")=>(e.find(([e])=>e)||[null,t])[1],Ye=()=>(0,G.select)("core/editor"),Ze=e=>(0,G.dispatch)("core/editor").editPost(e),Qe=e=>{try{return JSON.parse(Ye().getEditedPostAttribute("meta")?.[e]||"{}")||{}}catch(e){return{}}},et=(e,t)=>Ze({meta:{[e]:JSON.stringify(t)}}),tt=()=>String(Ye().getEditedPostContent()).replace(/<!--[\s\S]*?-->/g,"").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();function nt({near:e=[]}){const{all:t,chosen:n}=(0,G.useSelect)(e=>({all:e("core").getEntityRecords("taxonomy","category",{per_page:100,hide_empty:!1,_fields:"id,name"})||[],chosen:e("core/editor").getEditedPostAttribute("categories")||[]}),[]);return(0,f.jsx)("span",{className:"ed-chips",children:t.filter(e=>e.id!==it()).map(t=>(0,f.jsxs)(S,{on:n.includes(t.id),lav:!n.includes(t.id)&&e.includes(at(t.name)),onClick:()=>(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n.filter(e=>e!==it()),e];Ze({categories:t.length?t:[it()]})})(t.id),children:[at(t.name),lt(t.id)&&(0,f.jsx)("span",{className:"ed-chip__lock",title:(0,l.sprintf)(/* translators: %s: memberOnly( c.id ).join( ', ' ) */ /* translators: %s: memberOnly( c.id ).join( ', ' ) */(0,l.__)("SureMembers 회원 전용: %s","editnday"),lt(t.id).join(", ")),children:(0,l.__)("회원 전용","editnday")})]},t.id))})}function st({panel:e,onDone:t}){const[n,s]=(0,o.useState)(null),[a,d]=(0,o.useState)(!1),[i,r]=(0,o.useState)(null);return(0,f.jsxs)("div",{className:"ed-redo",children:[(0,f.jsxs)("span",{className:"ed-small",children:[(0,l.__)("딱 맞는 카테고리가 없어요.","editnday")," ",e.near?.length?(0,l.__)("보라색이 그나마 가까운 곳이에요.","editnday"):"",(0,l.__)("골라 주세요.","editnday")]}),(0,f.jsx)(nt,{near:e.near||[]}),null===n?(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(e.suggest||""),children:(0,l.__)("+ 새 카테고리 만들기","editnday")}):(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,l.__)("새 카테고리 이름","editnday"),value:n,onChange:s}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:a||!n.trim(),onClick:async()=>{d(!0),r(null);try{const e=await J()({path:"/wp/v2/categories",method:"POST",data:{name:n.trim()}}).catch(async e=>"term_exists"===e?.code?{id:e.data?.term_id}:Promise.reject(e));e?.id&&Ze({categories:[e.id]}),t?.()}catch(e){r((0,l.__)("카테고리를 만들지 못했어요. 권한을 확인해 주세요.","editnday"))}finally{d(!1)}},children:(0,l.__)("만들기","editnday")})]}),i&&(0,f.jsx)("span",{className:"ed-small is-error",children:i})]})}const at=e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value},dt=e=>{try{return decodeURIComponent(e||"")}catch(t){return e||""}},it=()=>window.editndayConfig?.defaultCategory,lt=e=>window.editndayConfig?.memberCategories?.[e]||null,rt=(e,t)=>{const n=String(t||"").trim();if(!n)return!1;const s=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[^\\p{L}\\p{N}])${s}($|[^\\p{L}\\p{N}])`,"iu").test(String(e||""))},ot=/(에서|으로|부터|까지|에게|처럼|보다|의|은|는|이|가|을|를|와|과|로|에|도|만)$/;function ct(e){const t=e.split(/\s+/).map(e=>e.replace(ot,"").toLowerCase()).filter(Boolean);let n=null;const s=e=>{for(const a of e){if("core/paragraph"===a.name||"core/list-item"===a.name){const e=He(String(a.attributes.content??""));for(const s of e.split(/(?<=[.!?。])\s+/)){const e=s.trim();if(e.length<8)continue;const a=e.toLowerCase(),d=t.filter(e=>a.includes(e)).length;d&&(!n||d>n.score)&&(n={sentence:e,score:d})}}a.innerBlocks?.length&&s(a.innerBlocks)}};return s((0,G.select)("core/block-editor").getBlocks()),n?.sentence??null}function _t({keyword:e}){const t=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=(0,o.useMemo)(()=>ct(e),[e,t]);return n?(0,f.jsxs)("span",{className:"ed-kwplace",children:[(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
     3(0,l.__)('이 문장에 "%s"를 그대로 넣으면 돼요:',"editnday"),e)}),(0,f.jsx)("span",{className:"ed-quote",children:n}),(0,f.jsxs)("span",{className:"ed-row ed-gap6",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>_e(n),children:(0,l.__)("본문에서 보기","editnday")}),y(_.keywordFix,{keyword:e,sentence:n})]})]}):(0,f.jsx)("span",{className:"ed-muted ed-kwplace",children:(0,l.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
     4(0,l.__)('본문 첫 단락에 "%s"를 그대로 한 번 넣어 보세요 (바로 뒤에 조사 없이).',"editnday"),e)})}function ut({keyword:e,seo:t}){const[n,s]=(0,o.useState)(!1),a=window.editndayConfig?.seoPlugin;if(!e?.trim()||!a)return null;const d=[!rt(tt(),e)&&(0,l.__)("본문","editnday"),!rt(t.title,e)&&(0,l.__)("제목","editnday"),!rt(t.description,e)&&(0,l.__)("설명","editnday")].filter(Boolean);return d.length?(0,f.jsxs)("span",{className:"ed-small is-warn",children:[(0,l.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */ /* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */
     5(0,l.__)("%1$s 점수로는 %2$s에서 못 찾아요","editnday"),a,d.join("·"))," ",(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!n),children:n?(0,l.__)("닫기","editnday"):(0,l.__)("왜?","editnday")}),n&&(0,f.jsx)("span",{className:"ed-muted ed-koseo__hint",children:(0,l.__)("조사가 붙거나('코스피는') 띄어쓰기가 다르면 다른 말로 봐요. 구글·네이버는 같은 말로 보니 점수만의 문제예요.","editnday")}),!rt(tt(),e)&&(0,f.jsx)(_t,{keyword:e})]}):(0,f.jsx)("span",{className:"ed-small",children:(0,l.sprintf)(/* translators: %s: SEO 플러그인 이름 */ /* translators: %s: SEO 플러그인 이름 */
     6(0,l.__)("%s 키워드 점검 통과","editnday"),a)})}const ht=[["excerpt",(0,l.__)("발췌문","editnday")],["tags",(0,l.__)("태그","editnday"),(0,l.__)("있는 태그 우선","editnday")],["category",(0,l.__)("카테고리","editnday"),(0,l.__)("있는 것 중에서","editnday")],["slug",(0,l.__)("영문 주소","editnday")],["seo",(0,l.__)("SEO 제목·설명","editnday"),(0,l.__)("Fine Keyword 포함","editnday")],["aeo","AEO",(0,l.__)("질문·답","editnday")],["geo","GEO",(0,l.__)("AI 인용용 요약","editnday")]];async function yt(e){const t=[];for(const n of e){const e=(await J()({path:`/wp/v2/tags?search=${encodeURIComponent(n)}&per_page=20&_fields=id,name`})).find(e=>e.name===n);t.push(e?e.id:(await J()({path:"/wp/v2/tags",method:"POST",data:{name:n}})).id)}return t}const mt=e=>String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),pt=(0,l.__)("한눈에 보는 질문과 답","editnday");function gt({summary:e,faq:t},n=["summary","faq"]){const s=(0,G.select)("core/block-editor").getBlocks().filter(e=>n.includes(e.attributes?.metadata?.editnday)),a=String(s.find(e=>"faq"===e.attributes.metadata.editnday)?.innerBlocks.find(e=>"core/heading"===e.name)?.attributes.content||"").trim(),d=s.map(e=>e.clientId);d.length&&(0,G.dispatch)("core/block-editor").removeBlocks(d,!1),t=n.includes("faq")?(t||[]).filter(e=>e.question?.trim()&&e.answer?.trim()):[],e?.trim()&&n.includes("summary")&&(0,G.dispatch)("core/block-editor").insertBlocks((0,V.createBlock)("core/group",{metadata:{editnday:"summary",name:(0,l.__)("요약","editnday")},className:"editnday-box editnday-box--summary"},[(0,V.createBlock)("core/paragraph",{content:(0,l.sprintf)(/* translators: %s: asText( summary ) */ /* translators: %s: asText( summary ) */(0,l.__)("<strong>요약</strong> %s","editnday"),mt(e))})]),0),t?.length&&(0,G.dispatch)("core/block-editor").insertBlocks((0,V.createBlock)("core/group",{metadata:{editnday:"faq",name:(0,l.__)("질문과 답","editnday")},className:"editnday-box editnday-box--faq"},[(0,V.createBlock)("core/heading",{level:2,content:a&&"자주 묻는 질문"!==a?a:pt}),...t.map((e,t)=>(0,V.createBlock)("core/details",{summary:mt(e.question),showContent:0===t},[(0,V.createBlock)("core/paragraph",{content:mt(e.answer)})]))]))}function ft(){return(0,G.useSelect)(e=>{const t=e("core/editor"),n=t.getEditedPostAttribute("featured_media"),s=n?e("core").getMedia(n):null;return{postId:t.getCurrentPostId(),title:t.getEditedPostAttribute("title"),excerpt:t.getEditedPostAttribute("excerpt"),slug:t.getEditedPostAttribute("slug"),tags:t.getEditedPostAttribute("tags")||[],categories:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()),categoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),memberCategoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>lt(e)).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),featured:n||0,featuredAlt:s?.alt_text??"",featuredUrl:s?.media_details?.sizes?.medium?.source_url??s?.source_url,seo:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_seo||"{}")||{}}catch(e){return{}}})(),schema:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_schema||"{}")||{}}catch(e){return{}}})()}},[])}function xt(e){et("_editnday_seo",{...Qe("_editnday_seo"),keyword:String(e).slice(0,40)})}const bt='EditndayTitle, "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif';let jt=null;const wt=()=>{const e=window.editndayConfig?.titleFont;return jt||(jt=e&&window.FontFace?new window.FontFace("EditndayTitle",`url(${e})`,{weight:"100 900"}).load().then(e=>document.fonts.add(e)).catch(()=>null):Promise.resolve()),jt},kt=[["ink",(0,l.__)("먹색","editnday"),["#1f2a2c"],"#ffffff"],["cream",(0,l.__)("크림","editnday"),["#f4eee3"],"#243235"],["lavender",(0,l.__)("라벤더","editnday"),["#a988e0","#6c48b5"],"#ffffff"],["ocean",(0,l.__)("바다","editnday"),["#0f4c75","#3a8fc9"],"#ffffff"],["sunset",(0,l.__)("노을","editnday"),["#ff9a8b","#f0627f"],"#ffffff"],["forest",(0,l.__)("숲","editnday"),["#134e5e","#5fa77a"],"#ffffff"]];async function Nt(e,t){let n;try{n=await new Promise(t=>e.toBlob(t,"image/jpeg",.9))}catch(e){n=null}if(!n)throw new Error((0,l.__)("이 사이트의 이미지 주소 설정 때문에 그림에 글자를 넣지 못했어요.","editnday"));const s=new window.FormData;s.append("postId",Ye().getCurrentPostId()),Object.entries(t).forEach(([e,t])=>s.append(e,t)),s.append("image",n,"featured-title.jpg");const a=await J()({path:"/editnday/v1/publish/image-title",method:"POST",body:s});return Ze({featured_media:a.id}),(0,G.dispatch)("core").invalidateResolution("getMedia",[a.id]),a}const vt=[["og",(0,l.__)("공유 1.91:1","editnday"),1200,630],["16:9",(0,l.__)("가로 16:9","editnday"),1600,900],["4:3",(0,l.__)("가로 4:3","editnday"),1440,1080],["3:4",(0,l.__)("세로 3:4","editnday"),1080,1440],["9:16",(0,l.__)("세로 9:16","editnday"),1080,1920]],St=[["center",(0,l.__)("가운데","editnday")],["magazine",(0,l.__)("잡지형","editnday")],["band",(0,l.__)("아래 띠","editnday")]];function Ct(e){const t=/^#?([0-9a-f]{6})$/i.exec(e||"");if(!t)return"#ffffff";const[n,s,a]=[0,2,4].map(e=>parseInt(t[1].slice(e,e+2),16)/255),d=e=>e<=.03928?e/12.92:((e+.055)/1.055)**2.4;return.2126*d(n)+.7152*d(s)+.0722*d(a)>.45?"#1f2a2c":"#ffffff"}function $t(e,t,n,s,a,d=3){for(let i=s;i>a;i-=4)if(e.font=`800 ${i}px ${bt}`,Bt(e,t,n,1/0).length<=d)return{size:i,lines:Bt(e,t,n,d)};return e.font=`800 ${a}px ${bt}`,{size:a,lines:Bt(e,t,n,d)}}function It({text:e,template:t="ink",color:n="",layout:s="center",aspect:a="og",scale:d=1}){const i="custom"===t&&/^#[0-9a-f]{6}$/i.test(n),[,,l,r]=i?["custom","",[n],Ct(n)]:kt.find(e=>e[0]===t)||kt[0],[,,o,c]=vt.find(e=>e[0]===a)||vt[0],_=Math.round(o*d),u=Math.round(c*d),h=document.createElement("canvas");h.width=_,h.height=u;const y=h.getContext("2d");y.fillStyle=(()=>{if(l.length>1){const e=y.createLinearGradient(0,0,_,u);return e.addColorStop(0,l[0]),e.addColorStop(1,l[1]),e}return l[0]})(),y.fillRect(0,0,_,u);const m=Math.min(_,u),p=Math.round(.1*m),g=String(window.editndayConfig?.siteName||"").trim().slice(0,40),f=Math.round(.042*m);if(y.textBaseline="alphabetic","band"===s){const t=Math.round(u*(u>_?.34:.4));y.fillStyle=r,y.fillRect(0,u-t,_,t);const{size:n,lines:s}=$t(y,e,_-2*p,Math.round(.12*m),Math.round(.06*m),2);y.font=`800 ${n}px ${bt}`,y.fillStyle=(l.length,l[0]),y.textAlign="left";const a=Math.round(1.25*n),d=n+(s.length-1)*a,i=u-t+(t-d)/2+.85*n;return s.forEach((e,t)=>y.fillText(e,p,i+t*a)),g&&(y.font=`700 ${f}px ${bt}`,y.fillStyle=r,y.globalAlpha=.75,y.fillText(g,p,p+f),y.globalAlpha=1),h}if("magazine"===s){y.fillStyle=r,y.textAlign="left",g&&(y.font=`700 ${f}px ${bt}`,y.globalAlpha=.8,y.fillText(g,p,p+f),y.globalAlpha=1);const{size:t,lines:n}=$t(y,e,_-2*p,Math.round(.14*m),Math.round(.07*m),u>_?4:3);y.font=`800 ${t}px ${bt}`;const s=Math.round(1.22*t),a=u-p-(n.length-1)*s;return y.fillRect(p,a-t-Math.round(.05*m),Math.round(.09*m),Math.max(3,Math.round(.012*m))),n.forEach((e,t)=>y.fillText(e,p,a+t*s)),h}const{size:x,lines:b}=$t(y,e,_-2*p,Math.round(.14*m),Math.round(.07*m),u>_?4:3);y.font=`800 ${x}px ${bt}`,y.fillStyle=r,y.textAlign="center";const j=Math.round(1.28*x),w=(b.length-1)*j,k=(u-w)/2+.35*x-.4*f;return b.forEach((e,t)=>y.fillText(e,_/2,k+t*j)),g&&(y.font=`700 ${f}px ${bt}`,y.globalAlpha=.72,y.fillText(g,_/2,u-.9*p),y.globalAlpha=1),h}async function At(e,t="ink",n={}){return e.trim()?(await wt(),Nt(It({text:e,template:t,...n}),{template:"custom"===t?`custom-${String(n.color||"").replace("#","")}`:t,alt:e.trim()})):null}async function Et(e){return e.text?.trim()?(await wt(),It({...e,scale:.3}).toDataURL("image/jpeg",.8)):""}function Bt(e,t,n,s=3){const a=[];let d="";return t.trim().split(/\s+/).forEach(t=>(t=>{const s=d?d+" "+t:t;if(e.measureText(s).width<=n)d=s;else if(d&&(a.push(d),d=""),e.measureText(t).width<=n)d=t;else for(const s of t)e.measureText(d+s).width>n&&(a.push(d),d=""),d+=s})(t)),d&&a.push(d),a.length>s&&(a.length=s,a[s-1]=a[s-1].replace(/.$/,"…")),a}async function Pt(e,t="bottom",n="title"){const s=Ye().getEditedPostAttribute("featured_media");if(!s||!e.trim())return null;await wt();const a=await J()({path:`/editnday/v1/publish/image-source?id=${s}`}),d=await new Promise((e,t)=>{const n=new window.Image;n.crossOrigin="anonymous",n.onload=()=>e(n),n.onerror=()=>t(new Error((0,l.__)("그림을 불러오지 못했어요.","editnday"))),n.src=a.url}),i=Math.min(d.naturalWidth,1600),r=Math.round(d.naturalHeight*i/d.naturalWidth),o=document.createElement("canvas");o.width=i,o.height=r;const c=o.getContext("2d");c.drawImage(d,0,0,i,r);const _="caption"===n;if("center"===t)c.fillStyle=_?"rgba(0,0,0,0.18)":"rgba(0,0,0,0.42)",c.fillRect(0,0,i,r);else{const e="top"===t,n=_?.2:.65,s=c.createLinearGradient(0,e?r*n:r*(1-n),0,e?0:r);s.addColorStop(0,"rgba(0,0,0,0)"),s.addColorStop(1,_?"rgba(0,0,0,0.45)":"rgba(0,0,0,0.74)"),c.fillStyle=s,c.fillRect(0,e?0:r*(1-n),i,r*n)}const u=_?Math.max(12,Math.round(.011*i)):Math.round(.064*i);c.font=`${_?700:800} ${u}px ${bt}`,c.fillStyle="#fff",c.textBaseline="alphabetic",c.shadowColor="rgba(0,0,0,0.45)",c.shadowBlur=.25*u;const h=Math.round(i*(_?.03:.06)),y=Bt(c,e,i-h*(_?4:2)),m=Math.round(1.28*u),p=(y.length-1)*m;let g=r-h-p;return"top"===t?g=h+.85*u:"center"===t&&(g=(r-p)/2+.35*u),c.textAlign="center",y.forEach((e,t)=>c.fillText(e,i/2,g+t*m)),Nt(o,{sourceId:a.id})}function Mt(e){const t=(0,G.select)("core/block-editor"),n=`<a href="${encodeURI(e.url)}">${String(e.title).replace(/&/g,"&amp;").replace(/</g,"&lt;")}</a>`,s=(0,V.createBlock)("core/list-item",{content:n}),a=t.getBlocks().find(e=>"core/list"===e.name&&String(e.attributes.className||"").includes("editnday-related"));a?(0,G.dispatch)("core/block-editor").insertBlock(s,a.innerBlocks.length,a.clientId):(0,G.dispatch)("core/block-editor").insertBlocks([(0,V.createBlock)("core/paragraph",{content:(0,l.__)("<strong>함께 읽으면 좋은 글</strong>","editnday"),className:"editnday-related-title"}),(0,V.createBlock)("core/list",{className:"editnday-related"},[s])],t.getBlockCount())}const Tt=(e,t)=>({excerpt:!!e.excerpt,tags:e.tags.length>0,category:e.categories.length>0,slug:/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e.slug||"")&&!/^\d+$/.test(e.slug),seo:!!e.seo.description,aeo:!!e.schema.faq?.some(e=>e.question?.trim()&&e.answer?.trim()),geo:!!e.schema.summary?.trim(),featured:!!e.featured,alt:!!e.featuredAlt}[t]),Ot=e=>String(e??"").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim();function Ft(e){const t=[];let n="",s=0;const a=e=>{for(const d of e){const e=d.attributes?.metadata?.editnday;"core/heading"===d.name?t.push(Ot(d.attributes.content)):"core/paragraph"===d.name&&!n&&"summary"!==e&&Ot(d.attributes.content)?n=Ot(d.attributes.content):"core/image"===d.name&&d.attributes.url&&s++,"summary"!==e&&"faq"!==e&&d.innerBlocks?.length&&a(d.innerBlocks)}};a(e);const d=String(Ye().getEditedPostContent());return{headings:t,firstPara:n,images:s,links:(d.match(/<a\s[^>]*href=/gi)||[]).length,body:tt()}}function qt(e){const t=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=e.seo.kept||{};return function(e){const t=String(e.keyword||"").trim(),n=e=>[...String(e||"").trim()].length,s=[],a=(e,t,n,a,d)=>s.push({id:e,ok:t,label:n,hint:t?"":a,who:d});if(t){const s=e=>We(e,t)>0;a("title",s(e.title),s(e.title)?(0,l.__)("제목에 Fine Keyword","editnday"):(0,l.__)("제목에 Fine Keyword가 없어요","editnday"),(0,l.__)("검색 결과 제목 앞쪽에 넣으면 검색어와 바로 맞물려요","editnday"),(0,l.__)("구글·네이버","editnday")),a("first",s(e.firstPara),s(e.firstPara)?(0,l.__)("첫 단락에 Fine Keyword","editnday"):(0,l.__)("첫 단락에 Fine Keyword가 없어요","editnday"),(0,l.__)("무엇에 관한 글인지 첫 단락에서 밝히면 검색엔진과 AI가 주제를 잡기 쉬워요","editnday"),(0,l.__)("구글·네이버·AI","editnday"));const d=e.headings.some(s);a("heading",d,d?(0,l.__)("소제목에 Fine Keyword","editnday"):(0,l.__)("소제목에 Fine Keyword가 없어요","editnday"),(0,l.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,l.__)("소제목 %s개 중 하나에 넣으면 글의 짜임이 검색어와 이어져요","editnday"),e.headings.length),(0,l.__)("구글·네이버","editnday"));const i=We(e.body,t),r=n(e.body)?1e3*i/n(e.body):0;a("repeat",i>=1&&r<=6,Xe([[0===i,(0,l.__)("본문에 Fine Keyword가 없어요","editnday")],[r>6,(0,l.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,l.__)("본문에 Fine Keyword %s번 (많아요)","editnday"),i)]],(0,l.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,l.__)("본문에 Fine Keyword %s번","editnday"),i)),Xe([[0===i,(0,l.__)("본문에 실제로 쓰는 표기와 같은지 확인해 주세요 (예: 볼보EX60 / VolvoEX60)","editnday")]],(0,l.__)("같은 말을 너무 자주 되풀이하면 구글·네이버 모두 낮게 봐요. 대명사나 다른 표현으로 바꿔 보세요","editnday")),(0,l.__)("구글·네이버","editnday")),n(e.description)&&a("desc",s(e.description),s(e.description)?(0,l.__)("설명에 Fine Keyword","editnday"):(0,l.__)("설명에 Fine Keyword가 없어요","editnday"),(0,l.__)("순위와는 상관없지만, 검색어가 설명에 있으면 검색 결과에서 굵게 보여 눈에 띄어요","editnday"),(0,l.__)("구글·네이버","editnday"))}const d=n(e.title);a("titleLen",d>0&&d<=40,d?(0,l.sprintf)(/* translators: %s: tl */ /* translators: %s: tl */(0,l.__)("검색 결과 제목 %s자","editnday"),d):(0,l.__)("검색 결과 제목이 없어요","editnday"),Xe([[d>40,(0,l.__)("40자를 넘으면 검색 결과에서 잘려요","editnday")]],(0,l.__)("제목을 넣어 주세요","editnday")),(0,l.__)("구글·네이버","editnday"));const i=n(e.description);return a("descLen",i>=40&&i<=110,i?(0,l.sprintf)(/* translators: %s: dl */ /* translators: %s: dl */(0,l.__)("검색 결과 설명 %s자","editnday"),i):(0,l.__)("검색 결과 설명이 없어요","editnday"),Xe([[0===i,(0,l.__)("SEO 설명을 만들어 보세요. 없으면 검색엔진이 본문에서 아무 문장이나 가져가요","editnday")],[i<40,(0,l.__)("너무 짧으면 검색엔진이 본문에서 다른 문장을 가져가요","editnday")]],(0,l.__)("110자를 넘으면 잘려요","editnday")),(0,l.__)("구글·네이버","editnday")),a("headings",e.headings.length>=2,(0,l.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,l.__)("소제목 %s개","editnday"),e.headings.length),(0,l.__)("소제목으로 나누면 검색엔진이 단락별 주제를, AI가 답할 부분을 찾기 쉬워요","editnday"),(0,l.__)("구글·네이버·AI","editnday")),a("answer",!!e.summary||e.faq>0,Xe([[e.summary&&e.faq>0,(0,l.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,l.__)("요약과 질문답 %s개","editnday"),e.faq)],[e.summary,(0,l.__)("요약 있음","editnday")],[e.faq>0,(0,l.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,l.__)("질문답 %s개","editnday"),e.faq)]],(0,l.__)("요약·질문답이 없어요","editnday")),(0,l.__)("발행 준비의 AEO·GEO로 만들면 AI 답변에 인용되기 쉬워요","editnday"),"AI"),a("links",e.links>0,e.links?(0,l.sprintf)(/* translators: %s: o.links */ /* translators: %s: o.links */(0,l.__)("출처·관련 링크 %s개","editnday"),e.links):(0,l.__)("링크가 없어요","editnday"),(0,l.__)("출처가 보이면 믿을 만한 글로 보고, AI도 근거로 인용해요","editnday"),(0,l.__)("구글·네이버·AI","editnday")),a("images",e.images>0,e.images?(0,l.sprintf)(/* translators: %s: o.images */ /* translators: %s: o.images */(0,l.__)("본문 이미지 %s개","editnday"),e.images):(0,l.__)("본문 이미지가 없어요 (대표 이미지만)","editnday"),(0,l.__)("본문에 사진·도표가 있으면 이미지 검색과 네이버 노출에 도움이 돼요","editnday"),(0,l.__)("구글·네이버","editnday")),s}({keyword:e.seo.keyword,title:n.title||e.seo.title||e.title||"",description:n.description||e.seo.description||"",summary:!!e.schema.summary,faq:e.schema.faq?.length||0,...Ft(t)})}function Lt({st:e}){const[t,n]=(0,o.useState)(!1),s=qt(e),a=s.filter(e=>e.ok).length,d=s.filter(e=>!e.ok),[i,r]=(0,o.useState)("");return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(d.length?"":" is-ok"),children:(0,l.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
     7(0,l.__)("%1$d개 중 %2$d개 통과","editnday"),s.length,a)})]}),!e.seo.keyword?.trim()&&(0,f.jsxs)("div",{className:"ed-koseo__kw",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,l.__)("예: 노벨문학상","editnday"),value:i,onChange:r,onKeyDown:e=>"Enter"===e.key&&i.trim()&&xt(i.trim())}),(0,f.jsx)(N,{disabled:!i.trim(),onClick:()=>xt(i.trim()),children:(0,l.__)("정하기","editnday")}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("정하면 제목·설명·본문에 키워드가 있는지도 봐요.","editnday")})]}),(t?s:d).map(e=>(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("span",{className:"ed-koseo__head",children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.who})]}),e.hint&&(0,f.jsx)("span",{className:"ed-koseo__hint",children:e.hint})]})]},e.id)),!d.length&&!t&&(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("모두 좋아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,l.__)("고칠 것만 보기","editnday"):(0,l.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,l.__)("통과한 것도 보기 (%s)","editnday"),a)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("조사·띄어쓰기가 달라도 같은 말로 봐요 (구글·네이버 기준)","editnday")})]})]})}function Rt({st:e}){const[t,n]=(0,o.useState)("google"),s=e.seo.kept||{},a=s.title||e.seo.title||e.title||"",d=s.description||e.seo.description||e.excerpt||"",i=window.editndayConfig?.seoPlugin,r=window.location.host,c=(e,t,n)=>e<t?(0,l.__)("짧음","editnday"):e>n?(0,l.__)("김","editnday"):(0,l.__)("적정","editnday");return(0,f.jsxs)(w,{children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색 결과 미리보기","editnday")}),(0,f.jsxs)("span",{className:"ed-chips",children:[(0,f.jsx)(S,{on:"google"===t,onClick:()=>n("google"),children:(0,l.__)("구글","editnday")}),(0,f.jsx)(S,{on:"naver"===t,onClick:()=>n("naver"),children:(0,l.__)("네이버","editnday")})]})]}),(0,f.jsxs)("div",{className:`ed-serp is-${t}`,children:[(0,f.jsxs)("span",{className:"ed-serp__u",children:[r," › ",dt(e.slug)||"…"]}),(0,f.jsx)("span",{className:"ed-serp__t",children:a||(0,l.__)("제목 없음","editnday")}),(0,f.jsx)("span",{className:"ed-serp__d",children:d||(0,l.__)("설명이 없어요. SEO 설명을 만들어 보세요.","editnday")})]}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */ /* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */
     8(0,l.__)("제목 %1$d자 (%2$s) · 설명 %3$d자 (%4$s)","editnday"),a.length,c(a.length,20,45),d.length,c(d.length,60,110))}),i&&(0,f.jsx)("span",{className:"ed-muted",children:s.title||s.description?(0,l.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */ /* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */(0,l.__)("%1$s에 직접 쓴 %2$s이 있어 그 값이 나가요. 에디튼 값을 쓰려면 %3$s에서 그 칸을 비워 주세요.","editnday"),i,[s.title&&(0,l.__)("제목","editnday"),s.description&&(0,l.__)("설명","editnday")].filter(Boolean).join("·"),i):(0,l.sprintf)(/* translators: %s: plugin */ /* translators: %s: plugin */(0,l.__)("저장하면 %s 칸에도 들어가요.","editnday"),i)})]})}function Dt(e,t){return t?(0,l.__)("닫기","editnday"):e?(0,l.__)("다시","editnday"):(0,l.__)("만들기","editnday")}function Kt(){const e=window.editndayConfig?.siteOpen;return e?.blocking?.length?(0,f.jsxs)(w,{className:"ed-ask ed-siteopen",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색에 나오지 않을 수 있어요","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.sprintf)(/* translators: %s: 안 된 워드프레스 설정 목록 */ /* translators: %s: 안 된 워드프레스 설정 목록 */
     9(0,l.__)("워드프레스 설정에서 %s이(가) 아직 안 됐어요. 이대로 발행하면 검색엔진이 이 글을 찾지 못하거나 늦게 찾아요.","editnday"),e.blocking.join(", "))}),e.canManage&&(0,f.jsx)("a",{className:"ed-link",href:e.url,children:(0,l.__)("에디튼 → 사이트 오픈에서 확인하기","editnday")})]}):null}function Ht(){const e=window.editndayConfig?.seoMode||{},t=(0,G.useSelect)(e=>"1"===e("core/editor").getEditedPostAttribute("meta")?._editnday_noindex,[]);return"with"===e.mode?(0,f.jsx)("p",{className:"ed-muted ed-seomode",children:(0,l.sprintf)(/* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */ /* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */
     10(0,l.__)("%1$s와 함께 쓰는 중이에요. 검색엔진이 읽는 머리말(제목·설명·공유 미리보기)은 %1$s가 내고, 에디튼은 값을 채우고 점검해요.","editnday"),e.plugin)}):(0,f.jsxs)(w,{className:"ed-seomode",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색엔진·공유 머리말","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("SEO 플러그인 없이 쓰는 중이라 에디튼이 직접 내요: SEO 제목·설명, 카카오톡·페이스북 공유 미리보기, 글 구조화 데이터.","editnday")}),(0,f.jsx)(p.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("이 글은 검색 결과에 보이지 않게","editnday"),checked:t,onChange:e=>(0,G.dispatch)("core/editor").editPost({meta:{_editnday_noindex:e?"1":""}})})]})}function zt({st:e}){const[t,n]=(0,o.useState)(!1),s=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),a=(0,G.useSelect)(e=>{const t=e("core/editor");return"auto-draft"===t.getEditedPostAttribute("status")?null:t.getEditedPostAttribute("modified")||null},[]),d=Ft(s),i=String(Ye().getEditedPostContent()),r=window.location.host;let c=0,_=0;for(const e of i.matchAll(/<a\s[^>]*href=["']([^"']+)["']/gi))try{const t=new URL(e[1],window.location.href);if(!/^https?:$/.test(t.protocol))continue;t.host===r?c++:_++}catch{}const u=window.editndayConfig?.aiReady||{},{score:h,items:y}=function(e){const t=String(e.body||""),n=t.split(/(?<=[.!?。])\s+|\n+/).filter(e=>/\d/.test(e)).length,s=[...t.replace(/\s+/g,"")].length,a=!e.modified||(e.now??Date.now())-new Date(e.modified).getTime()<31536e6,d=[],i=(e,t,n,s,a,i)=>d.push({part:e,id:t,points:n,ok:!!s,label:a,hint:s?"":i}),r=(0,l.__)("형식","editnday"),o=(0,l.__)("내용","editnday");return i(r,"lead",12,e.summaryVisible,(0,l.__)("결론 먼저 (글 앞 요약)","editnday"),(0,l.__)('GEO 요약을 "본문에 보이게"로 넣으면 AI가 첫 단락에서 답을 가져가요',"editnday")),i(r,"headings",8,e.headings>=3,(0,l.sprintf)(/* translators: %d: 소제목 수 */ /* translators: %d: 소제목 수 */(0,l.__)("소제목 %d개","editnday"),e.headings),(0,l.__)("소제목을 3개 이상으로 나누면 AI가 질문마다 답할 부분을 찾아요","editnday")),i(r,"faq",8,e.faq>=2,(0,l.sprintf)(/* translators: %d: 질문답 수 */ /* translators: %d: 질문답 수 */(0,l.__)("질문답 %d개","editnday"),e.faq),(0,l.__)("AEO 질문답을 2개 이상 넣어요","editnday")),i(r,"identity",6,e.identity,(0,l.__)("내 블로그 정체성","editnday"),(0,l.__)("사이트 오픈 4단계에서 한 줄 소개·다른 곳 주소를 넣으면 AI가 누가 쓴 글인지 알아봐요","editnday")),i(r,"internal",8,e.internal>=1,(0,l.sprintf)(/* translators: %d: 내부 링크 수 */ /* translators: %d: 내부 링크 수 */(0,l.__)("내 글 링크 %d개","editnday"),e.internal),(0,l.__)('이어지는 내 글을 하나 이상 연결해요 (발행 준비의 "이어지는 내 글")',"editnday")),i(r,"bots",8,!1!==e.bots,!1===e.bots?(0,l.__)("AI 검색 봇이 막힘","editnday"):(0,l.__)("AI 검색 봇 허용","editnday"),(0,l.__)("사이트 오픈 4단계에서 robots.txt·방화벽을 확인해요","editnday")),i(o,"numbers",12,n>=3,(0,l.sprintf)(/* translators: %d: 숫자 문장 수 */ /* translators: %d: 숫자 문장 수 */(0,l.__)("숫자가 든 문장 %d개","editnday"),n),(0,l.__)("통계·가격·날짜처럼 확인할 수 있는 숫자를 3문장 이상에 넣으면 AI가 근거로 써요","editnday")),i(o,"sources",12,e.external>=2,(0,l.sprintf)(/* translators: %d: 출처 링크 수 */ /* translators: %d: 출처 링크 수 */(0,l.__)("출처 링크 %d개","editnday"),e.external),(0,l.__)("숫자·주장의 출처를 2곳 이상 링크로 밝혀요","editnday")),i(o,"author",8,e.authorBio,(0,l.__)("저자 소개","editnday"),(0,l.__)("[사용자 → 프로필]의 자기소개를 채우면 누가 썼는지(전문성)가 보여요","editnday")),i(o,"fresh",8,a,a?(0,l.__)("1년 안에 고친 글","editnday"):(0,l.__)("1년 넘게 고치지 않은 글","editnday"),(0,l.__)("AI는 최신 정보를 인용해요. 숫자를 다시 확인하고 고쳐 주세요","editnday")),i(o,"length",10,s>=1500,(0,l.sprintf)(/* translators: %s: 글자 수 */ /* translators: %s: 글자 수 */(0,l.__)("본문 %s자","editnday"),s.toLocaleString("ko-KR")),(0,l.__)("1,500자 이상이면 AI가 인용할 근거가 충분해요","editnday")),{score:d.reduce((e,t)=>e+(t.ok?t.points:0),0),items:d}}({summaryVisible:s.some(e=>"summary"===e.attributes?.metadata?.editnday),headings:d.headings.length,faq:e.schema.faq?.length||0,identity:!!u.identity,internal:c,external:_,bots:u.bots??null,body:d.body,authorBio:!!u.authorBio,modified:a}),m=y.filter(e=>!e.ok).sort((e,t)=>t.points-e.points),p=h>=80?"is-ok":h>=60?"is-warn":"is-bad";return(0,f.jsxs)(w,{className:"ed-aicite",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("AI 인용 준비","editnday")}),(0,f.jsx)("span",{className:`ed-aicite__score ${p}`,children:(0,l.sprintf)(/* translators: %d: 점수 */ /* translators: %d: 점수 */
     11(0,l.__)("%d / 100","editnday"),h)})]}),(0,f.jsx)("div",{className:"ed-aicite__bar","aria-hidden":"true",children:(0,f.jsx)("span",{className:p,style:{width:`${h}%`}})}),(0,f.jsx)("p",{className:"ed-muted ed-small",children:h>=80?(0,l.__)("ChatGPT·구글 AI 개요·네이버 AI 브리핑이 인용하기 좋은 글이에요.","editnday"):(0,l.__)("80점이 넘으면 AI 답변에 인용되기 좋은 글이에요. 점수가 큰 것부터 채워 보세요.","editnday")}),m.slice(0,t?m.length:3).map(e=>(0,f.jsxs)("div",{className:"ed-aicite__item",children:[(0,f.jsxs)("span",{className:"ed-aicite__pts",children:["+",e.points]}),(0,f.jsxs)("span",{children:[(0,f.jsx)("strong",{children:e.label}),(0,f.jsxs)("span",{className:"ed-muted ed-small",children:[" ",e.hint]})]})]},e.id)),m.length>3&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,l.__)("접기","editnday"):(0,l.sprintf)(/* translators: %d: 남은 항목 수 */ /* translators: %d: 남은 항목 수 */
     12(0,l.__)("빠진 것 %d개 더 보기","editnday"),m.length-3)})]})}function Ut({st:e,onCheck:t}){const n=qt(e),s=n.filter(e=>e.ok).length;return(0,f.jsxs)(w,{className:"ed-koseo-line",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
     13(0,l.__)("%1$d개 중 %2$d개 통과","editnday"),n.length,s)})]}),t&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:t,children:(0,l.__)("글 점검에서 자세히 보기","editnday")})]})}function Jt({onNew:e,onCheck:t}){const n=ft(),[s,a]=(0,o.useState)(null),[d,i]=(0,o.useState)(null),[r,c]=(0,o.useState)(null),[u,m]=(0,o.useState)(n.schema.mode||"visible"),[g,x]=(0,o.useState)(!1),[b,v]=(0,o.useState)(0),[C,$]=(0,o.useState)(null),[I,E]=(0,o.useState)(""),[P,M]=(0,o.useState)("bottom"),[O,F]=(0,o.useState)("title"),[q,L]=(0,o.useState)(()=>{try{return{tpl:"ink",layout:"center",aspect:"og",color:"#2F5D50",...JSON.parse(window.localStorage.getItem("editndayTpl")||"{}")}}catch{return{tpl:"ink",layout:"center",aspect:"og",color:"#2F5D50"}}}),R=e=>L(t=>{const n={...t,...e};try{window.localStorage.setItem("editndayTpl",JSON.stringify(n))}catch{}return n}),D=q.tpl,[H,z]=(0,o.useState)(""),U=I.trim()||n.title?.trim()||"";(0,o.useEffect)(()=>{let e=!1;const t=setTimeout(()=>{Et({text:U,template:q.tpl,color:q.color,layout:q.layout,aspect:q.aspect}).then(t=>!e&&z(t)).catch(()=>!e&&z(""))},150);return()=>{e=!0,clearTimeout(t)}},[U,q]);const[V,W]=(0,o.useState)(null),X=Qe("_editnday_indexed"),Y=(0,G.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),Z=(0,G.useSelect)(e=>e("core/editor").isSavingPost(),[]),Q=(0,G.useSelect)(e=>{const t=e("core/editor");return"future"===t.getEditedPostAttribute("status")?t.getEditedPostAttribute("date"):null},[]),ee=e=>!!s&&s.split(",").includes(e),te=async(e,t)=>{a(e),v(Date.now()),i(null);try{await t()}catch(e){i(e?.message&&!e.message.includes("<")?e.message:(0,l.__)("만들지 못했어요. 잠시 뒤 다시 해 주세요.","editnday"))}finally{a(null)}},ne={st:n,busy:s,isBusy:ee,run:te,since:b,aeoMode:u,setCatPanel:$,setRedo:x,onImage:I,titlePos:P,titleKind:O},se=(e,t={})=>y(_.publishFieldActions,{...ne,key:e,...t}),ae=()=>(0,f.jsxs)("span",{className:"ed-busy",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,l.__)("만드는 중","editnday")," ",(0,f.jsx)(B,{since:b})]});return(0,f.jsxs)(f.Fragment,{children:[Q?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,l.__)("예약한 글","editnday"),title:(0,l.__)("예약한 글 다듬기","editnday"),sub:(0,l.__)("발행되기 전까지 대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)((0,l.sprintf)(/* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */ /* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */
     14(0,l.__)("<b>%s</b>에 발행돼요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 저장]</b>을 눌러야 예약된 글에 들어가요. 시간은 오른쪽 위 <b>[예약됨]</b>에서 바꿔요.","editnday"),Gt(Q)),{b:(0,f.jsx)("strong",{})})})]}):Y?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,l.__)("발행한 글","editnday"),title:(0,l.__)("발행한 글 다듬기","editnday"),sub:(0,l.__)("대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)(/* translators: <b>…</b>는 굵게 (버튼 이름) */ /* translators: <b>…</b>는 굵게 (버튼 이름) */
     15(0,l.__)("이미 공개된 글이에요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 사이트에 반영]</b>을 눌러야 사이트에 반영돼요.","editnday"),{b:(0,f.jsx)("strong",{})})})]}):(0,f.jsx)(A,{eyebrow:(0,l.__)("발행 준비","editnday"),title:(0,l.__)("발행 전에 다듬을 것","editnday"),sub:(0,l.__)("하나씩 하거나 한 번에 해요. 만든 값은 고칠 수 있어요.","editnday")}),d&&(0,f.jsx)("div",{className:"ed-note is-error",children:d}),(0,f.jsxs)(w,{className:"ed-tasks",children:[(0,f.jsxs)("div",{className:"ed-cardhead",children:[(0,f.jsxs)("span",{className:"ed-cardhead__t",children:[(0,l.__)("할 일","editnday")," ",(0,f.jsx)("span",{className:"ed-tag",children:(0,l.sprintf)(/* translators: 1: 된 것, 2: 전체 */ /* translators: 1: 된 것, 2: 전체 */
     16(0,l.__)("%1$d / %2$d 됨","editnday"),ht.filter(([e])=>Tt(n,e)).length+(n.featured?1:0)+(n.featuredAlt?1:0),ht.length+2)})]}),se("all",{place:"head"})]}),se("all",{place:"live"}),ht.map(([e,t,s])=>{const a=se(e,{place:"row"}),d=!h()&&["seo","aeo","geo"].includes(e);return(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:`ed-circ${Tt(n,e)?" is-filled":""}${ee(e)?" is-busy":""}`,children:Tt(n,e)&&(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-task__t",children:[t," ",s&&(0,f.jsxs)("span",{className:"ed-muted",children:["(",s,")"]})]}),ee(e)&&(0,f.jsx)(ae,{}),!ee(e)&&Tt(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-done",onClick:()=>c(r===e?null:e),children:r===e?(0,l.__)("닫기","editnday"):(0,l.__)("보기","editnday")}),!ee(e)&&!Tt(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",onClick:()=>c(r===e?null:e),children:r===e?(0,l.__)("닫기","editnday"):a.length?(0,l.__)("직접","editnday"):(0,l.__)("직접 쓰기","editnday")}),!ee(e)&&!Tt(n,e)&&a]}),!Tt(n,e)&&d&&(0,f.jsx)("div",{className:"ed-prohint-row",children:(0,f.jsx)(K,{label:(0,l.__)("AI로 만들기","editnday")})}),"category"===e&&C&&!Tt(n,e)&&(0,f.jsx)(st,{panel:C,onDone:()=>$(null)}),r===e&&(0,f.jsx)(Yt,{k:e,st:n,mode:u,extra:se(e,{place:"editor"}),below:se(e,{place:"below"})})]},e)}),(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featured?" is-filled":""),children:!!n.featured&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,l.__)("대표 이미지","editnday")}),"featured"===s?(0,f.jsx)(ae,{}):(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>x(!g),children:Dt(n.featured,g)})]}),n.featuredUrl&&(0,f.jsx)("img",{className:"ed-thumb",src:n.featuredUrl,alt:n.featuredAlt}),n.featuredUrl&&(0,f.jsx)(Qt,{url:n.featuredUrl,title:n.seo.kept?.title||n.seo.title||n.title||"",description:n.seo.kept?.description||n.seo.description||""}),g&&(0,f.jsxs)("div",{className:"ed-redo",children:[se("featured"),(0,f.jsx)(K,{label:(0,l.__)("AI로 그림 만들기","editnday")}),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,l.__)("그림에 넣을 제목 (선택)","editnday"),placeholder:(0,l.__)("비워 두면 글자 없는 그림","editnday"),value:I,onChange:E}),(0,f.jsxs)("div",{className:"ed-redo__title",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>E(n.title||""),children:(0,l.__)("글 제목 그대로 넣기","editnday")}),!!I.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["title",(0,l.__)("제목형","editnday")],["caption",(0,l.__)("캡션형","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:O===e,onClick:()=>F(e),children:t},e))}),!!I.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["top",(0,l.__)("위","editnday")],["center",(0,l.__)("가운데","editnday")],["bottom",(0,l.__)("아래","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:P===e,onClick:()=>M(e),children:t},e))})]}),(0,f.jsx)("div",{className:"ed-redo__actions",children:!!n.featured&&(0,f.jsx)(N,{disabled:!!s||!I.trim(),onClick:()=>te("featured",async()=>(await Pt(I,P,O),x(!1))),children:(0,l.__)("지금 그림에 제목만 넣기","editnday")})})]}),(0,f.jsxs)("div",{className:"ed-tpl",children:[(0,f.jsx)("span",{className:"ed-small ed-strong",children:(0,l.__)("AI 없이 배경 틀로 만들기","editnday")}),(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label",children:(0,l.__)("색","editnday")}),(0,f.jsxs)("span",{className:"ed-tpl__swatches",children:[kt.map(([e,t,n,s])=>(0,f.jsx)("button",{type:"button",className:"ed-tpl__sw"+(D===e?" is-on":""),style:{background:n.length>1?`linear-gradient(135deg, ${n[0]}, ${n[1]})`:n[0],color:s},"aria-pressed":D===e,title:t,onClick:()=>R({tpl:e}),children:(0,l.__)("가","editnday")},e)),(0,f.jsx)("button",{type:"button",className:"ed-tpl__sw ed-tpl__sw--custom"+("custom"===D?" is-on":""),style:"custom"===D?{background:q.color}:void 0,"aria-pressed":"custom"===D,title:(0,l.__)("직접 고른 색","editnday"),onClick:()=>R({tpl:"custom"}),children:"custom"===D?"":"+"})]})]}),"custom"===D&&(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label"}),(0,f.jsxs)("span",{className:"ed-tpl__color",children:[(0,f.jsx)("input",{type:"color","aria-label":(0,l.__)("바탕색 고르기","editnday"),value:/^#[0-9a-f]{6}$/i.test(q.color)?q.color:"#2F5D50",onChange:e=>R({color:e.target.value})}),(0,f.jsx)("input",{type:"text","aria-label":(0,l.__)("바탕색 hex","editnday"),value:q.color,maxLength:7,spellCheck:!1,onChange:e=>{const t=e.target.value.trim();R({color:t.startsWith("#")?t:"#"+t})}})]})]}),(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label",children:(0,l.__)("배치","editnday")}),(0,f.jsx)("span",{className:"ed-chips",children:St.map(([e,t])=>(0,f.jsx)(S,{on:q.layout===e,onClick:()=>R({layout:e}),children:t},e))})]}),(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label",children:(0,l.__)("비율","editnday")}),(0,f.jsx)("span",{className:"ed-chips",children:vt.map(([e,t])=>(0,f.jsx)(S,{on:q.aspect===e,onClick:()=>R({aspect:e}),children:t},e))})]}),H?(0,f.jsx)("img",{className:"ed-tpl__preview",src:H,alt:(0,l.__)("배경 틀 미리보기","editnday")}):(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("제목을 쓰면 여기에 미리보기가 나와요.","editnday")}),(0,f.jsx)(N,{disabled:!!s||!U||"custom"===D&&!/^#[0-9a-f]{6}$/i.test(q.color),onClick:()=>te("featured",async()=>(await At(U,D,{color:q.color,layout:q.layout,aspect:q.aspect}),x(!1))),children:(0,l.__)("배경 틀로 만들기","editnday")}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)('위 "그림에 넣을 제목"을, 비워 두면 글 제목을 넣어요. AI·서버 없이 이 컴퓨터에서 바로 그려요.',"editnday")})]}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>{const e=window.wp?.media?.({title:(0,l.__)("대표 이미지 고르기","editnday"),library:{type:"image"},multiple:!1,button:{text:(0,l.__)("대표 이미지로","editnday")}});e&&(e.on("select",()=>{const t=e.state().get("selection").first()?.toJSON();t?.id&&Ze({featured_media:t.id}),x(!1)}),e.open())},children:(0,l.__)("미디어 라이브러리에서 고르기","editnday")})]})]}),(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featuredAlt?" is-filled":""),children:n.featuredAlt&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,l.__)("대표 이미지 ALT","editnday")}),"alt"===s?(0,f.jsx)(ae,{}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",disabled:!n.featured,onClick:()=>c("alt"===r?null:"alt"),children:"alt"===r?(0,l.__)("닫기","editnday"):(0,l.__)("직접 쓰기","editnday")}),se("alt")]})]}),n.featuredAlt&&"alt"!==r&&(0,f.jsx)("p",{className:"ed-alttext",children:n.featuredAlt}),"alt"===r&&!!n.featured&&(0,f.jsx)(Xt,{id:n.featured,alt:n.featuredAlt,onDone:()=>c(null)})]}),se("all"),(0,f.jsx)(Rt,{st:n}),(0,f.jsx)(Kt,{}),(0,f.jsx)(Ht,{}),(0,f.jsx)(zt,{st:n}),(0,f.jsx)(Ut,{st:n,onCheck:t}),(0,f.jsxs)(w,{children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("AEO·GEO 넣는 방식","editnday")}),(0,f.jsxs)(T,{checked:"visible"===u,onChange:()=>{m("visible"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"visible"}),gt(Qe("_editnday_schema"))},children:[(0,l.__)("본문에 보이게","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("· 글 앞 요약, 글 끝 자주 묻는 질문","editnday")})]}),(0,f.jsxs)(T,{checked:"structured"===u,onChange:()=>{m("structured"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"structured"}),gt({})},children:[(0,l.__)("구조화 데이터로만","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("· 본문 내용 그대로, 검색봇·AI가 읽는 형식","editnday")})]})]}),(0,f.jsxs)(w,{className:"ed-related",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("strong",{children:(0,l.__)("이어지는 내 글","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>te("related",async()=>{const e=await J()({path:"/editnday/v1/publish/related",method:"POST",data:{postId:n.postId,title:n.title,tags:n.tags,categories:n.categories,content:Ye().getEditedPostContent()}});W(e.items||[])}),children:V?(0,l.__)("다시 찾기","editnday"):(0,l.__)("찾기","editnday")})]}),null===V&&(0,f.jsx)("div",{className:"ed-muted",children:(0,l.__)("이 글과 태그·제목이 겹치는 내 공개 글을 찾아 본문 끝에 링크로 넣을 수 있어요.","editnday")}),V&&!V.length&&(0,f.jsx)("div",{className:"ed-muted",children:(0,l.__)("이어 붙일 만한 글을 찾지 못했어요. 태그를 먼저 달면 더 잘 찾아요.","editnday")}),(V||[]).map(e=>(0,f.jsxs)("div",{className:"ed-row ed-between ed-related__item",children:[(0,f.jsxs)("span",{children:[e.title," ",(0,f.jsx)("span",{className:"ed-muted",children:e.date})]}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:e.added,onClick:()=>{Mt(e),W(t=>t.map(t=>t.id===e.id?{...t,added:!0}:t))},children:e.added?(0,l.__)("넣었어요","editnday"):(0,l.__)("넣기","editnday")})]},e.id))]}),Y&&!Q&&X.at&&(0,f.jsxs)("div",{className:"ed-muted ed-indexed",children:[(0,l.__)("검색엔진에 알림:","editnday")," ",new Date(X.at).toLocaleString("ko-KR",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}),Object.entries(X.results||{}).map(([e,t])=>` · ${"naver"===e?(0,l.__)("네이버","editnday"):(0,l.__)("Bing 등","editnday")} ${t>=200&&t<300?"✓":"✕"}`)]}),(0,f.jsx)(Vt,{}),(0,f.jsx)(Wt,{live:Y,scheduled:!!Q}),(0,f.jsxs)("div",{className:"ed-foot",children:[Q?(0,f.jsx)(k,{disabled:!!Z,onClick:async()=>{await(0,G.dispatch)("core/editor").savePost(),(0,G.dispatch)("core/notices").createSuccessNotice((0,l.__)("저장했어요. 예약한 시간에 이 내용으로 발행돼요.","editnday"),{type:"snackbar"})},children:Z?(0,l.__)("저장하는 중…","editnday"):(0,l.__)("바뀐 내용 저장","editnday")}):Y?(0,f.jsx)(k,{disabled:!!Z,onClick:async()=>{await(0,G.dispatch)("core/editor").savePost(),(0,G.dispatch)("core/notices").createSuccessNotice((0,l.__)("바뀐 내용을 사이트에 반영했어요.","editnday"),{type:"snackbar"})},children:Z?(0,l.__)("반영하는 중…","editnday"):(0,l.__)("바뀐 내용 사이트에 반영","editnday")}):(0,f.jsx)(k,{onClick:()=>(0,G.dispatch)("core/editor").openPublishSidebar?.(),children:(0,l.__)("공개 전 점검하고 발행","editnday")}),(0,f.jsx)(N,{onClick:e,children:(0,l.__)("새 글 시작","editnday")})]})]})}function Vt(){const e=window.editndayConfig?.indexnow,[t,n]=(0,o.useState)(e?.state),[s,a]=(0,o.useState)(!1);if("unset"!==t||!e?.canManage||e?.blocked)return null;const d=async t=>{a(!0);try{const s=await J()({path:"/editnday/v1/indexnow",method:"POST",data:{on:t}});e.state=s.state,window.editndayConfig.autoSend&&(window.editndayConfig.autoSend.indexnow=!!s.available),n(s.state),(0,G.dispatch)("core/notices").createSuccessNotice(t?(0,l.__)("검색엔진에 알리기를 켰어요. 에디튼 → 설정에서 언제든 끌 수 있어요.","editnday"):(0,l.__)("켜지 않았어요. 에디튼 → 설정에서 언제든 켤 수 있어요.","editnday"),{type:"snackbar"})}catch(e){(0,G.dispatch)("core/notices").createErrorNotice(e?.message||(0,l.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{a(!1)}};return(0,f.jsxs)(w,{className:"ed-ask",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("발행하면 검색엔진에 알릴까요?","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("글을 발행하거나 고치면 그 글의 주소를 네이버·Bing 등에 바로 알려서, 새 글을 더 빨리 찾게 해요 (IndexNow). 글 주소만 보내고, 비공개 글은 보내지 않아요. 구글은 이 방식을 받지 않아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(N,{disabled:s,onClick:()=>d(!0),children:(0,l.__)("켜기","editnday")}),(0,f.jsx)(N,{disabled:s,onClick:()=>d(!1),children:(0,l.__)("지금은 안 함","editnday")})]})]})}function Gt(e){const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("ko-KR",{month:"long",day:"numeric",weekday:"short",hour:"numeric",minute:"2-digit"})}function Wt({live:e,scheduled:t}){const n=window.editndayConfig?.autoSend||{},s=!e||t,a=[s&&n.published&&(0,l.__)("고친 내용을 에디튼에 보내 초안과 비교해요","editnday"),n.indexnow&&(s?(0,l.__)("글 주소를 Bing·네이버에 바로 알려요","editnday"):(0,l.__)("반영하면 글 주소를 검색엔진에 다시 알려요","editnday"))].filter(Boolean);if(!a.length)return null;let d="";return t?d=(0,l.__)("예약 시간에 발행되면 자동으로:","editnday"):e||(d=(0,l.__)("발행하면 자동으로:","editnday")),(0,f.jsxs)("p",{className:"ed-muted ed-autosend",children:[d,a.join(" · "),"."," ",(0,f.jsx)("a",{href:window.editndayConfig?.settingsUrl,target:"_blank",rel:"noreferrer",children:(0,l.__)("설정에서 끄기","editnday")})]})}function Xt({id:e,alt:t,onDone:n}){const[s,a]=(0,o.useState)(t||""),[d,i]=(0,o.useState)(!1);return(0,f.jsxs)("div",{className:"ed-taskedit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,l.__)("대표 이미지 ALT","editnday"),help:(0,l.__)("그림에 무엇이 보이는지 한 문장으로. 검색엔진과 화면 읽기 프로그램이 읽어요.","editnday"),value:s,onChange:a}),(0,f.jsx)(N,{disabled:d||!s.trim(),onClick:async()=>{i(!0);try{await(0,G.dispatch)("core").saveEntityRecord("postType","attachment",{id:e,alt_text:s.trim()}),n()}catch(e){(0,G.dispatch)("core/notices").createErrorNotice(e?.message||(0,l.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{i(!1)}},children:d?(0,l.__)("저장 중…","editnday"):(0,l.__)("저장","editnday")})]})}function Yt({k:e,st:t,mode:n,extra:s=[],below:a=[]}){const d=(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(Zt,{k:e,st:t,mode:n,extra:s}),a]});return["geo","aeo"].includes(e)||!s.length?d:(0,f.jsxs)(f.Fragment,{children:[d,(0,f.jsx)("div",{className:"ed-row",children:s})]})}function Zt({k:e,st:t,mode:n,extra:s}){if("excerpt"===e)return(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,rows:3,value:t.excerpt,onChange:e=>Ze({excerpt:e})});if("slug"===e)return(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,value:dt(t.slug),onChange:e=>Ze({slug:e})});if("seo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:"Fine Keyword",help:(0,l.__)("저장하면 SEO 플러그인 키워드 칸으로 옮겨요","editnday"),value:t.seo.keyword||"",onChange:e=>et("_editnday_seo",{...t.seo,keyword:e})}),y(_.keywordInfo,{keyword:t.seo.keyword||"",setKeyword:e=>et("_editnday_seo",{...t.seo,keyword:e})}),(0,f.jsx)(ut,{keyword:t.seo.keyword,seo:t.seo}),(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("SEO 제목","editnday"),value:t.seo.title||"",onChange:e=>et("_editnday_seo",{...t.seo,title:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("SEO 설명","editnday"),rows:3,value:t.seo.description||"",onChange:e=>et("_editnday_seo",{...t.seo,description:e})})]});const a="visible"===n,d=e=>et("_editnday_schema",{...t.schema,...e,mode:n}),i=e=>{gt(Qe("_editnday_schema"),[e]),(0,G.dispatch)("core/notices").createSuccessNotice("faq"===e?(0,l.__)("본문 끝 질문과 답을 바꿨어요.","editnday"):(0,l.__)("본문 앞 요약을 바꿨어요.","editnday"),{type:"snackbar"})},r=(0,f.jsx)("span",{className:"ed-muted",children:a?(0,l.__)("본문 박스를 바로 고쳐도 돼요. 여기서 고쳤다면 [본문에 반영]을 눌러야 본문이 바뀌어요.","editnday"):(0,l.__)("본문에는 안 보여요. 본문에 있는 내용만 남겨 주세요.","editnday")});if("geo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:a?(0,l.__)("글 앞 요약","editnday"):(0,l.__)("검색봇·AI가 읽는 요약","editnday"),help:(0,l.__)("글 전체를 두세 문장으로. 검색 결과와 AI 답변에 인용되기 좋아요.","editnday"),rows:4,value:t.schema.summary||"",onChange:e=>d({summary:e})}),!a&&window.editndayConfig?.seoPlugin?(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: %s: window.editndayConfig.seoPlugin */ /* translators: %s: window.editndayConfig.seoPlugin */(0,l.__)('%s가 글 정보를 이미 내고 있어, 같은 글이 두 번 잡히지 않게 요약은 구조화 데이터에 넣지 않아요. AI 인용에 쓰이게 하려면 "본문에 보이게"를 고르세요.',"editnday"),window.editndayConfig.seoPlugin)}):r,(0,f.jsxs)("div",{className:"ed-row",children:[a&&(0,f.jsx)(N,{disabled:!t.schema.summary?.trim(),onClick:()=>i("summary"),children:(0,l.__)("본문에 반영","editnday")}),s]})]});if("aeo"===e){const e=t.schema.faq?.length?t.schema.faq:[{question:"",answer:""}],n=(t,n)=>d({faq:e.map((e,s)=>s===t?{...e,...n}:e)});return(0,f.jsxs)("div",{className:"ed-faq",children:[e.map((t,s)=>(0,f.jsxs)("div",{className:"ed-faq__item is-edit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,l.sprintf)(/* translators: %s: i + 1 */ /* translators: %s: i + 1 */(0,l.__)("질문 %s","editnday"),s+1),placeholder:(0,l.__)("독자가 검색창에 칠 만한 질문","editnday"),value:t.question,onChange:e=>n(s,{question:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("답","editnday"),rows:3,value:t.answer,onChange:e=>n(s,{answer:e})}),e.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>d({faq:e.filter((e,t)=>t!==s)}),children:(0,l.__)("이 질문 빼기","editnday")})]},s)),r,(0,f.jsxs)("div",{className:"ed-row",children:[e.length<6&&(0,f.jsx)(N,{onClick:()=>d({faq:[...e,{question:"",answer:""}]}),children:(0,l.__)("질문 더하기","editnday")}),a&&(0,f.jsx)(N,{disabled:!e.some(e=>e.question?.trim()&&e.answer?.trim()),onClick:()=>i("faq"),children:(0,l.__)("본문에 반영","editnday")}),s]})]})}return"category"===e?(0,f.jsx)(nt,{}):"tags"===e?(0,f.jsx)("span",{className:"ed-muted",children:t.tags.length?(0,l.__)("워드프레스 태그 칸에 넣었어요. 오른쪽 ‘글’ 설정에서 고칠 수 있어요.","editnday"):(0,l.__)("태그는 오른쪽 ‘글’ 설정의 태그 칸에서 넣어요. 이 글을 찾을 만한 낱말 3~5개면 충분해요.","editnday")}):null}function Qt({url:e,title:t,description:n}){const[s,a]=(0,o.useState)(!1);let d="";try{d=new URL(window.location.href).hostname.replace(/^www\./,"")}catch(e){}return s?(0,f.jsxs)("div",{className:"ed-share",children:[(0,f.jsxs)("div",{className:"ed-share__card",children:[(0,f.jsx)("div",{className:"ed-share__img",style:{backgroundImage:`url("${e}")`},role:"img","aria-label":(0,l.__)("1.91:1로 잘린 대표 이미지","editnday")}),(0,f.jsxs)("div",{className:"ed-share__text",children:[(0,f.jsx)("span",{className:"ed-muted",children:d}),(0,f.jsx)("strong",{children:t||(0,l.__)("(제목 없음)","editnday")}),n&&(0,f.jsx)("span",{className:"ed-share__desc",children:n})]})]}),(0,f.jsxs)("p",{className:"ed-muted",children:[(0,l.__)("카카오톡·페이스북·X 링크는 보통 가운데를 1.91:1(1200×630)로 잘라 보여요. 가장자리의 글자·얼굴이 잘리면 그림을 다시 고르거나 만들어 보세요.","editnday")," ",(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>a(!1),children:(0,l.__)("닫기","editnday")})]})]}):(0,f.jsx)("button",{type:"button",className:"ed-mini",style:{margin:"6px 0 2px"},onClick:()=>a(!0),children:(0,l.__)("공유될 때 모습 보기","editnday")})}function en(){const e=ft(),t=(0,c.applyFilters)(_.prepublishFixes,null),n=qt(e),s=n.filter(e=>!e.ok),[a,d]=(0,o.useState)(!1),[i,r]=(0,o.useState)(null),u=(()=>{try{const t=JSON.parse(e&&window.wp?.data?.select("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null");return t?t.reviewed?"done":"pending":"none"}catch(e){return"none"}})(),h=["none"!==u&&{ok:"done"===u,label:"done"===u?(0,l.__)("확인할 곳 처리함","editnday"):(0,l.__)("확인할 곳이 남아 있어요 (에디튼 사이드바)","editnday")},{ok:e.categories.length>0,label:e.categories.length?(0,l.sprintf)(/* translators: %s: st.categoryNames.join( ', ' ) */ /* translators: %s: st.categoryNames.join( ', ' ) */(0,l.__)("카테고리: %s","editnday"),e.categoryNames.join(", ")):(0,l.__)("카테고리를 아직 고르지 않았어요 (기본 카테고리만)","editnday"),fix:t&&(async()=>{const e=await t.text(["category"]);r(e.categories?.length?null:{near:e.nearCategories||[],suggest:e.newCategory||""})}),key:"category"},e.memberCategoryNames?.length>0&&{ok:!1,label:(0,l.sprintf)(/* translators: %s: st.memberCategoryNames.join( ', ' ) */ /* translators: %s: st.memberCategoryNames.join( ', ' ) */(0,l.__)("회원 전용 카테고리: %s — 공개해도 회원만 볼 수 있어요 (SureMembers)","editnday"),e.memberCategoryNames.join(", "))},{ok:!s.length,label:s.length?(0,l.sprintf)(/* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */ /* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */(0,l.__)("검색·AI 점검 %1$s/%2$s: %3$s%4$s (에디튼 사이드바 → 발행 준비)","editnday"),n.length-s.length,n.length,s.slice(0,2).map(e=>e.label).join(", "),s.length>2?(0,l.__)(" 등","editnday"):""):(0,l.sprintf)(/* translators: %1$s: ko.length, %2$s: ko.length */ /* translators: %1$s: ko.length, %2$s: ko.length */(0,l.__)("검색·AI 점검 %1$s/%2$s","editnday"),n.length,n.length)},{ok:!!e.excerpt,label:e.excerpt?(0,l.__)("발췌문 있음","editnday"):(0,l.__)("발췌문 없음","editnday"),fix:t&&(()=>t.text(["excerpt"]))},{ok:!!e.seo.description,label:e.seo.description?(0,l.__)("SEO 설명 있음","editnday"):(0,l.__)("SEO 설명 없음","editnday"),fix:t&&(()=>t.text(["seo"]))},{ok:!!e.featured,label:e.featured?(0,l.__)("대표 이미지 있음","editnday"):(0,l.__)("대표 이미지 없음","editnday"),fix:t?.featured},(e.schema.faq?.length||e.schema.summary)&&{ok:!0,label:(0,l.sprintf)(/* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */ /* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */(0,l.__)("검색봇·AI용 데이터: %1$s%2$s","editnday"),[e.schema.summary&&(0,l.__)("요약","editnday"),e.schema.faq?.length&&(0,l.sprintf)(/* translators: %d: 질문 수 */ /* translators: %d: 질문 수 */
     17(0,l.__)("질문 %d개","editnday"),e.schema.faq.length)].filter(Boolean).join(" · "),"structured"===e.schema.mode?(0,l.__)(" (본문에 안 보임, 에디튼 사이드바에서 고침)","editnday"):"")},(window.editndayConfig?.autoSend?.published||window.editndayConfig?.autoSend?.indexnow)&&{ok:!0,label:(0,l.sprintf)(/* translators: %s: 발행 때 자동으로 하는 일 목록 */ /* translators: %s: 발행 때 자동으로 하는 일 목록 */(0,l.__)("발행되면(예약이면 그 시간에) 자동으로: %s (관리자 메뉴 에디튼에서 끌 수 있어요)","editnday"),[window.editndayConfig.autoSend.published&&(0,l.__)("고친 내용을 에디튼에 보내요","editnday"),window.editndayConfig.autoSend.indexnow&&(0,l.__)("글 주소를 검색엔진에 알려요","editnday")].filter(Boolean).join(" · "))},e.featured&&{ok:!!e.featuredAlt,label:e.featuredAlt?(0,l.__)("대표 이미지 ALT 있음","editnday"):(0,l.__)("대표 이미지 ALT 없음","editnday"),fix:t?.alt}].filter(Boolean),y=h.filter(e=>!e.ok&&e.fix);return(0,f.jsxs)("div",{className:"editnday ed-prepublish",children:[h.map(e=>(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsx)("span",{className:"ed-task__t",children:e.label}),!e.ok&&e.fix&&(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:a,onClick:async()=>{d(!0);try{await e.fix()}finally{d(!1)}},children:"category"===e.key?(0,l.__)("고르기","editnday"):(0,l.__)("AI로 만들기","editnday")})]}),"category"===e.key&&i&&!e.ok&&(0,f.jsx)(st,{panel:i,onDone:()=>r(null)})]},e.label)),y.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-ghost",disabled:a,onClick:async()=>{d(!0);try{const n=[!e.categories.length&&"category",!e.excerpt&&"excerpt",!e.seo.description&&"seo"].filter(Boolean);if(n.length){const e=await t.text(n);n.includes("category")&&!e.categories?.length&&r({near:e.nearCategories||[],suggest:e.newCategory||""})}e.featured||await t.featured(),await t.alt().catch(()=>{})}finally{d(!1)}},children:a?(0,l.__)("만드는 중…","editnday"):(0,l.__)("남은 것 모두 하기","editnday")})]})}const tn=window.wp.plugins,nn=window.wp.domReady;var sn=n.n(nn);const an=()=>"undefined"!=typeof window&&window.speechSynthesis?window.speechSynthesis:null;function dn({result:e}){const[t,n]=(0,o.useState)(!1),[s,a]=(0,o.useState)(null);if((0,o.useEffect)(()=>()=>an()?.cancel(),[]),!t)return(0,f.jsx)("button",{type:"button",className:"ed-link ed-sentences__toggle",onClick:()=>n(!0),children:(0,l.__)("문장별로 보기","editnday")});const d=new Set(e.issues.filter(e=>["long_sentence","many_clauses","adverb_heavy"].includes(e.rule)).map(e=>e.sentence));return(0,f.jsxs)("div",{className:"ed-sentences",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("문장별로 보기","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{an()?.cancel(),a(null),n(!1)},children:(0,l.__)("접기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("한 줄에 한 문장이에요. 한 호흡(60자)을 넘으면 노랑, 100자를 넘으면 빨강. 소리 내어 읽어 어색하면 나눠요.","editnday")}),e.sections.map(e=>{const t=je(e.text);return t.length?(0,f.jsxs)("div",{className:"ed-sentences__sec",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("strong",{className:"ed-sentences__h",children:[e.heading||(0,l.__)("도입","editnday"),(0,f.jsxs)("span",{className:"ed-muted",children:[" · ",(0,l.sprintf)(/* translators: %d: 문장 수 */ /* translators: %d: 문장 수 */
     18(0,l.__)("%d문장","editnday"),t.length)]})]}),an()&&(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>(e=>{const t=an();if(!t)return;if(s===e.id)return t.cancel(),void a(null);t.cancel();const n=new window.SpeechSynthesisUtterance((e.heading?e.heading+". ":"")+je(e.text).join(" "));n.lang="ko-KR",n.rate=1,n.onend=()=>a(null),n.onerror=()=>a(null),a(e.id),t.speak(n)})(e),"aria-pressed":s===e.id,children:s===e.id?(0,l.__)("멈추기","editnday"):(0,l.__)("읽어 주기","editnday")})]}),t.map((e,t)=>{let n="";return e.length>100?n=" is-long":e.length>60&&(n=" is-breath"),(0,f.jsxs)("button",{type:"button",className:`ed-sentences__s${n}${d.has(e)?" is-flag":""}`,onClick:()=>_e(e),title:(0,l.__)("본문에서 보기","editnday"),children:[(0,f.jsx)("span",{className:"ed-sentences__n",children:e.length}),(0,f.jsx)("span",{children:e})]},t)})]},e.id):null})]})}const ln={da:(0,l.__)("-다","editnday"),yo:(0,l.__)("-요","editnday"),sumnida:(0,l.__)("-습니다","editnday")},rn=[{id:"ai",rules:["banned_phrase"],label:(0,l.__)("AI가 쓴 티가 나는 표현","editnday"),hint:(0,l.__)('상투적인 칭찬, 글을 소개하는 문장, "결론적으로" 같은 정리 말은 빼거나 내 말로 바꿔요.',"editnday")},{id:"spell",rules:["common_mistake"],label:(0,l.__)("자주 틀리는 표현","editnday"),hint:(0,l.__)("몇일 → 며칠, 되요 → 돼요, 컨텐츠 → 콘텐츠처럼 자주 틀리는 표현을 표준 표기로 고쳐요. 맞춤법 전체를 보지는 않아요.","editnday")},{id:"ending",rules:["ending_mixed"],label:(0,l.__)("어미 섞임","editnday"),hint:e=>e.ending?(0,l.sprintf)(/* translators: %s: ENDING_LABEL[ r.ending ] */ /* translators: %s: ENDING_LABEL[ r.ending ] */(0,l.__)("이 글은 대부분 '%s'로 끝나요. 다른 어미로 끝난 문장을 맞춰요.","editnday"),ln[e.ending]):(0,l.__)("문장이 더 쌓이면 어미를 봐요.","editnday")},{id:"similar",rules:["repeated_sentence"],label:(0,l.__)("닮은 문장","editnday"),hint:(0,l.__)("앞에서 한 말을 다시 하고 있어요. 한 곳만 남기거나 다르게 써요.","editnday")},{id:"repeat",rules:["repetition"],label:(0,l.__)("같은 표현 되풀이","editnday"),hint:(0,l.__)("같은 말이 세 번 넘게 나와요. 몇 곳은 다른 말로 바꿔요.","editnday")},{id:"start",rules:["same_start"],label:(0,l.__)("같은 말로 시작하는 문장","editnday"),hint:(0,l.__)('"또한 … 또한 …"처럼 이어지면 단조로워요. 접속어를 빼거나 순서를 바꿔요.',"editnday")},{id:"long",rules:["long_sentence"],label:(0,l.__)("긴 문장","editnday"),hint:(0,l.__)("100자가 넘는 문장은 모바일에서 읽기 힘들어요. 둘로 나눠요.","editnday")},{id:"adverb",rules:["adverb_heavy"],label:(0,l.__)("부사 몰림","editnday"),hint:(0,l.__)("한 문장에 정말·너무·아주 같은 부사가 둘 넘게 있어요. 빼도 뜻이 바뀌지 않으면 빼요. 부사가 빠질수록 담백해져요.","editnday")},{id:"clauses",rules:["many_clauses"],label:(0,l.__)("이어 붙인 문장","editnday"),hint:(0,l.__)("'-고, -는데, -지만'으로 절이 네 개 넘게 이어졌어요. 정보 하나에 문장 하나로 나누면 읽는 사람이 놓치지 않아요.","editnday")},{id:"para",rules:["long_paragraph"],label:(0,l.__)("긴 단락","editnday"),hint:(0,l.__)("한 단락이 500자를 넘으면 화면이 글자로 가득해요. 나눠요.","editnday")},{id:"number",rules:["number_format"],label:(0,l.__)("숫자 표기","editnday"),hint:(0,l.__)("큰 수를 쉼표 있게도 없게도 썼어요. 한 가지로 맞춰요.","editnday")},{id:"foreign",rules:["foreign_script"],label:(0,l.__)("일본어·한자 섞임","editnday"),hint:(0,l.__)("한국어 글에 일본어나 한자가 섞였어요.","editnday")},{id:"alt",rules:["image_alt"],label:(0,l.__)("대체 텍스트 없는 이미지","editnday"),hint:(0,l.__)("검색엔진과 화면 읽기 프로그램이 그림을 이해하게 대체 텍스트(ALT)를 적어요.","editnday")}],on="editnday_textcheck_off",cn=()=>{try{return JSON.parse(window.localStorage.getItem(on)||"[]")}catch(e){return[]}},un=e=>{try{window.localStorage.setItem(on,JSON.stringify(e))}catch(e){}};function hn(){const e=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),[t,n]=(0,o.useState)(()=>Je(e));(0,o.useEffect)(()=>{const t=setTimeout(()=>n(Je(e)),800);return()=>clearTimeout(t)},[e]);const[s,a]=(0,o.useState)(cn),[d,i]=(0,o.useState)(!1),[r,c]=(0,o.useState)(null);if(t.metrics.chars<50)return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("본문을 쓰면 여기서 바로 점검해요.","editnday")})]});const u=rn.filter(e=>!s.includes(e.id)).map(e=>({...e,issues:t.issues.filter(t=>e.rules.includes(t.rule))})),h=u.filter(e=>!e.issues.length).length,m=u.filter(e=>e.issues.length),p=d?u:m;return(0,f.jsxs)(w,{className:"ed-koseo ed-textcheck",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(m.length?"":" is-ok"),children:(0,l.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
     19(0,l.__)("%1$d개 중 %2$d개 통과","editnday"),u.length,h)})]}),p.map(e=>{const n=r===e.id,d="function"==typeof e.hint?e.hint(t):e.hint;return(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.issues.length?" is-warn":" is-filled"),children:e.issues.length?"!":(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("button",{type:"button",className:"ed-koseo__head ed-textcheck__head","aria-expanded":n,disabled:!e.issues.length,onClick:()=>c(n?null:e.id),children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.issues.length?(0,l.sprintf)(/* translators: %s: it.issues.length */ /* translators: %s: it.issues.length */(0,l.__)("%s곳","editnday"),e.issues.length):(0,l.__)("없음","editnday")})]}),n&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"ed-koseo__hint",children:d}),e.issues.slice(0,5).map((e,t)=>(0,f.jsxs)("button",{type:"button",className:"ed-textcheck__sent",onClick:()=>{var t;(t=e).clientId?(0,G.dispatch)("core/block-editor").selectBlock(t.clientId):_e(t.sentence)||(0,G.dispatch)("core/notices").createWarningNotice((0,l.__)("본문에서 문장을 찾지 못했어요","editnday"),{type:"snackbar"})},title:(0,l.__)("본문에서 보기","editnday"),children:[["common_mistake","adverb_heavy","many_clauses"].includes(e.rule)&&(0,f.jsxs)("strong",{children:[e.detail," · "]}),e.sentence.length>70?`${e.sentence.slice(0,70)}…`:e.sentence]},t)),e.issues.length>5&&(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: %d: 더 있는 곳 수 */ /* translators: %d: 더 있는 곳 수 */
     20(0,l.__)("그 밖에 %d곳","editnday"),e.issues.length-5)}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>(e=>{const t=s.includes(e)?s.filter(t=>t!==e):[...s,e];a(t),un(t)})(e.id),children:(0,l.__)("이 항목 점검 끄기","editnday")}),y(_.checkItemActions,{item:e.id,issues:e.issues}),"number"!==e.id&&(0,f.jsx)(K,{label:(0,l.__)("AI로 고치기","editnday")})]})]})]},e.id)}),!m.length&&!d&&(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("모두 좋아요.","editnday")}),(0,f.jsx)(dn,{result:t}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>i(!d),children:d?(0,l.__)("고칠 것만 보기","editnday"):(0,l.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,l.__)("통과한 것도 보기 (%s)","editnday"),h)}),s.length>0&&(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{a([]),un([])},children:(0,l.sprintf)(/* translators: %d: 꺼 둔 항목 수 */ /* translators: %d: 꺼 둔 항목 수 */
     21(0,l.__)("꺼 둔 항목 %d개 다시 켜기","editnday"),s.length)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("문장을 누르면 본문에서 보여 줘요. 맞춤법 전체가 아니라 자주 틀리는 표현만 봐요.","editnday")})]})]})}function yn(){const e=ft();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,l.__)("글 점검","editnday"),title:(0,l.__)("이 글을 점검해요","editnday"),sub:(0,l.__)("쓰는 동안 문장과 검색을 함께 봐요. 글을 고치면 잠깐 뒤 다시 점검해요.","editnday")}),(0,f.jsx)(hn,{}),(0,f.jsx)(Lt,{st:e}),(0,f.jsx)(z,{})]})}function mn(){const e=(0,G.useSelect)(e=>!e("core/editor").isEditedPostEmpty(),[]),t=(0,G.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),[n,s]=(0,o.useState)(null),a=[{id:"check",label:(0,l.__)("글 점검","editnday"),render:e=>(0,f.jsx)(yn,{api:e})},{id:"publish",label:(0,l.__)("발행 준비","editnday"),render:e=>(0,f.jsx)(Jt,{onNew:()=>h()?m(u.newPost):window.location.href="post-new.php",onCheck:()=>e.goTab("check")})}],d=y(_.tabs,{free:a}),i=d.length?d:a,r=(0,o.useRef)(!1),c=e=>{r.current||(r.current=!0,s(e))},p=i.some(e=>e.decides);(0,o.useEffect)(()=>{p||c(t&&e&&!(()=>{try{return!!JSON.parse((0,G.select)("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null")?.id}catch(e){return!1}})()?"publish":"check")},[p,t,e]);const g=n??i[0].id,x=y(_.notice,{tab:g});return(0,f.jsxs)("div",{className:"editnday ed-body",children:[x,(0,f.jsx)(v,{tabs:i.map(e=>[e.id,e.label]),value:g,onChange:s}),i.map(e=>{const t=e.id===g;return t||e.keepMounted?(0,f.jsx)(o.Fragment,{children:e.render({active:t,goTab:s,onDecide:c})},e.id):null})]})}window.editnday=Object.freeze({...d,...i,...s,...a});const pn=()=>(0,f.jsx)(x,{size:18}),gn=()=>(0,f.jsxs)("div",{className:"editnday-header",children:[(0,f.jsx)("img",{src:window.editndayConfig?.wordmark,alt:(0,l.__)("에디튼","editnday"),height:"18"}),(0,f.jsxs)("span",{className:"editnday-header__ver",children:["v",window.editndayConfig?.version]}),h()&&(0,f.jsxs)("span",{className:"editnday-header__pro",title:(0,l.__)("에디튼 프로","editnday"),children:["P",window.editndayConfig?.proVersion&&(0,f.jsx)("span",{className:"editnday-header__prover",children:window.editndayConfig.proVersion})]})]});sn()(()=>(0,tn.registerPlugin)("editnday",{render:()=>(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(r.PluginSidebarMoreMenuItem,{target:"editnday-sidebar",icon:(0,f.jsx)(pn,{}),children:(0,l.__)("에디튼","editnday")}),(0,f.jsx)(r.PluginSidebar,{name:"editnday-sidebar",title:(0,l.__)("에디튼","editnday"),icon:(0,f.jsx)(pn,{}),header:(0,f.jsx)(gn,{}),children:(0,f.jsx)(mn,{})}),(0,f.jsx)(r.PluginPrePublishPanel,{title:(0,l.__)("에디튼 발행 점검","editnday"),initialOpen:!0,icon:(0,f.jsx)(pn,{}),children:(0,f.jsx)(en,{})})]})}))}};const t={};function n(s){const a=t[s];if(void 0!==a)return a.exports;const d=t[s]={exports:{}};return e[s](d,d.exports,n),d.exports}n.m=e,(()=>{const e=[];n.O=(t,s,a)=>{if(!s){for(var d=0;d<e.length;d++){let[s,a]=e[d],l=!0;for(var i=0;i<s.length;i++)n.O.j(s[i])?s.splice(i--,1):l=!1;if(l){e.splice(d--,1);const n=a();void 0!==n&&(t=n)}}return t}e.push([s,a])}})(),n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.hasOwn(e,t),n.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{const e={57:0,350:0};n.O.j=t=>0===e[t];const t=(t,s)=>{let[a,d,i]=s;var l,r,o=0;if(a.some(t=>0!==e[t])){for(l in d)n.o(d,l)&&(n.m[l]=d[l]);if(i)var c=i(n)}for(t&&t(s);o<a.length;o++)r=a[o],n.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return n.O(c)},s=globalThis.webpackChunk_editnday_plugin||=[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})();let s=n.O(void 0,[350],()=>n(786));s=n.O(s)})();
  • editnday/tags/1.0.88/build/style-index-rtl.css

    r3742866 r3747744  
    1 .editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;left:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(-135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:right}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(-90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:right}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 30px 6px 0}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;flex-direction:column;padding-top:8px}.editnday .ed-tpl,.editnday .ed-tpl__swatches{display:flex;gap:6px}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:100% 0}to{background-position:right 28px top 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-right:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-right:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-right:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:right;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:left}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:right;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 20px 12px 0}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;left:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-left:1px solid #dde0e6}.editnday .ed-stat:last-child{border-left:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-left:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-left:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-right:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-right:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 30px 8px 0;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
     1.editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;left:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(-135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:right}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(-90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:right}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 30px 6px 0}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;display:flex;flex-direction:column;gap:6px;padding-top:8px}.editnday .ed-tpl__swatches{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-tpl__row{align-items:start;column-gap:8px;display:grid;grid-template-columns:34px 1fr}.editnday .ed-tpl__label{color:#50575e;font-size:11px;font-weight:600;line-height:26px}.editnday .ed-tpl__sw--custom{background:#fff;border-style:dashed;color:#50575e;font-size:16px;font-weight:500}.editnday .ed-tpl__color{align-items:center;display:inline-flex;gap:6px}.editnday .ed-tpl__color input[type=color]{background:#fff;border:1px solid #c3c4c7;border-radius:4px;cursor:pointer;height:26px;padding:2px;width:28px}.editnday .ed-tpl__color input[type=text]{border:1px solid #c3c4c7;border-radius:4px;font-family:ui-monospace,Menlo,monospace;font-size:12px;height:26px;min-height:26px;padding:0 8px;text-transform:uppercase;width:88px}.editnday .ed-tpl__preview{border:1px solid rgba(0,0,0,.1);border-radius:6px;display:block;margin:2px auto 0;max-height:220px;max-width:100%}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:100% 0}to{background-position:right 28px top 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-right:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-right:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-right:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:right;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:left}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:right;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 20px 12px 0}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;left:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-left:1px solid #dde0e6}.editnday .ed-stat:last-child{border-left:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-left:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-left:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-right:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-right:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 30px 8px 0;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
  • editnday/tags/1.0.88/build/style-index.css

    r3742866 r3747744  
    1 .editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;right:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:left}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:left}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 0 6px 30px}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;flex-direction:column;padding-top:8px}.editnday .ed-tpl,.editnday .ed-tpl__swatches{display:flex;gap:6px}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:0 0}to{background-position:28px 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-left:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-left:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-left:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:left;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:right}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:left;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 0 12px 20px}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;right:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-right:1px solid #dde0e6}.editnday .ed-stat:last-child{border-right:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-right:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-right:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-left:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-left:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 0 8px 30px;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
     1.editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;right:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:left}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:left}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 0 6px 30px}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;display:flex;flex-direction:column;gap:6px;padding-top:8px}.editnday .ed-tpl__swatches{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-tpl__row{align-items:start;column-gap:8px;display:grid;grid-template-columns:34px 1fr}.editnday .ed-tpl__label{color:#50575e;font-size:11px;font-weight:600;line-height:26px}.editnday .ed-tpl__sw--custom{background:#fff;border-style:dashed;color:#50575e;font-size:16px;font-weight:500}.editnday .ed-tpl__color{align-items:center;display:inline-flex;gap:6px}.editnday .ed-tpl__color input[type=color]{background:#fff;border:1px solid #c3c4c7;border-radius:4px;cursor:pointer;height:26px;padding:2px;width:28px}.editnday .ed-tpl__color input[type=text]{border:1px solid #c3c4c7;border-radius:4px;font-family:ui-monospace,Menlo,monospace;font-size:12px;height:26px;min-height:26px;padding:0 8px;text-transform:uppercase;width:88px}.editnday .ed-tpl__preview{border:1px solid rgba(0,0,0,.1);border-radius:6px;display:block;margin:2px auto 0;max-height:220px;max-width:100%}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:0 0}to{background-position:28px 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-left:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-left:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-left:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:left;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:right}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:left;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 0 12px 20px}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;right:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-right:1px solid #dde0e6}.editnday .ed-stat:last-child{border-right:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-right:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-right:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-left:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-left:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 0 8px 30px;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
  • editnday/tags/1.0.88/editnday.php

    r3743363 r3747744  
    44 * Plugin URI:        https://editn.day
    55 * Description:       Korean writing check and publishing assistant: spelling, AI-sounding phrases, SEO and Naver previews, summary and FAQ boxes, search engine registration. Runs entirely on your site.
    6  * Version:           1.0.77
     6 * Version:           1.0.88
    77 * Requires at least: 6.6
    88 * Requires PHP:      8.1
    … …  
    1616defined( 'ABSPATH' ) || exit;
    1717
    18 define( 'EDITNDAY_VERSION', '1.0.77' );
     18define( 'EDITNDAY_VERSION', '1.0.88' );
    1919define( 'EDITNDAY_FILE', __FILE__ );
    2020define( 'EDITNDAY_DIR', plugin_dir_path( __FILE__ ) );
  • editnday/tags/1.0.88/readme.txt

    r3743363 r3747744  
    55Tested up to: 7.1
    66Requires PHP: 8.1
    7 Stable tag: 1.0.77
     7Stable tag: 1.0.88
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    8383== Changelog ==
    8484
     85= 1.0.88 =
     86* Background-template thumbnails (no AI): a live preview while you choose; five sizes (share 1.91:1, 16:9, 4:3, 3:4, 9:16); three layouts (centered, magazine with a small site label and accent bar, bottom band); pick any background color with a color picker or hex code (text color adjusts automatically); the title size now fits its length; your last choices are remembered.
     87
    8588= 1.0.77 =
    8689* Reach counting: after the first beacon (sent when the tab is hidden or closed) a reader who comes back and reads further now sends a correction, so switching tabs midway no longer leaves the post marked as unfinished; visits are still counted once per session. Pro: post titles in the Performance table no longer show HTML entities for quotes.
    … …  
    9598* Korean text check gains two readability items: "too many adverbs" (two or more intensifiers such as 정말·너무·아주 in one sentence) and "run-on sentence" (four or more clauses joined by -고/-는데/-지만). A new "sentence view" lists every sentence on its own line with its length, and "read aloud" speaks a section with the browser voice so awkward sentences are caught by ear. Everything runs in the browser; nothing leaves your site.
    9699
    97 = 1.0.71 =
    98 * Site Open step 3: Naver and Google are now marked as required and Bing/Daum as optional, the step summary reads "required n / 2 · optional n / 2" and turns green once both required engines are verified, and the registration guide collapses for engines that already have a code so only the remaining ones stay expanded.
    99 
    100100Full history (Korean): https://editn.day/updates
  • editnday/tags/1.0.88/src/publish.js

    r3740496 r3747744  
    1010} from '@wordpress/components';
    1111import { dispatch, select, useSelect } from '@wordpress/data';
    12 import { createInterpolateElement, useMemo, useState } from '@wordpress/element';
     12import {
     13        createInterpolateElement,
     14        useEffect,
     15        useMemo,
     16        useState,
     17} from '@wordpress/element';
    1318import { showSentence } from './blocks';
    1419import { plain } from './textcheck';
    … …  
    672677}
    673678
     679/** 배경 틀 비율 (10-15 대표: AI와 같은 4가지 + 공유 미리보기 크기). [키, 이름, 너비, 높이] */
     680export const TPL_ASPECTS = [
     681        [ 'og', __( '공유 1.91:1', 'editnday' ), 1200, 630 ],
     682        [ '16:9', __( '가로 16:9', 'editnday' ), 1600, 900 ],
     683        [ '4:3', __( '가로 4:3', 'editnday' ), 1440, 1080 ],
     684        [ '3:4', __( '세로 3:4', 'editnday' ), 1080, 1440 ],
     685        [ '9:16', __( '세로 9:16', 'editnday' ), 1080, 1920 ],
     686];
     687/** 배경 틀 배치 (10-15 대표). [키, 이름] */
     688export const TPL_LAYOUTS = [
     689        [ 'center', __( '가운데', 'editnday' ) ],
     690        [ 'magazine', __( '잡지형', 'editnday' ) ],
     691        [ 'band', __( '아래 띠', 'editnday' ) ],
     692];
     693
     694/** 바탕색에 맞는 글자색 (밝으면 먹색, 어두우면 흰색) */
     695function inkFor( hex ) {
     696        const m = /^#?([0-9a-f]{6})$/i.exec( hex || '' );
     697        if ( ! m ) {
     698                return '#ffffff';
     699        }
     700        const [ r, g, b ] = [ 0, 2, 4 ].map(
     701                ( i ) => parseInt( m[ 1 ].slice( i, i + 2 ), 16 ) / 255
     702        );
     703        const lin = ( c ) =>
     704                c <= 0.03928 ? c / 12.92 : ( ( c + 0.055 ) / 1.055 ) ** 2.4;
     705        const lum = 0.2126 * lin( r ) + 0.7152 * lin( g ) + 0.0722 * lin( b );
     706        return lum > 0.45 ? '#1f2a2c' : '#ffffff';
     707}
     708
    674709/**
    675  * 배경 틀로 대표 이미지 만들기 (크레딧 없음, 서버를 부르지 않음): 1200×630(공유 미리보기 크기)에 제목을 가운데, 아래에 사이트 이름
    676  * @param {string} text     그림에 넣을 제목
    677  * @param {string} template TEMPLATES의 키
     710 * 제목이 maxLines 줄 안에 말줄임 없이 들어가는 가장 큰 글자 크기 (짧은 제목은 크게, 긴 제목은 작게)
     711 * @param ctx
     712 * @param text
     713 * @param maxWidth
     714 * @param maxSize
     715 * @param minSize
     716 * @param maxLines
    678717 */
    679 export async function templateFeatured( text, template = 'ink' ) {
    680         if ( ! text.trim() ) {
    681                 return null;
    682         }
    683         await loadTitleFont();
    684         const [ key, , colors, ink ] =
    685                 TEMPLATES.find( ( t ) => t[ 0 ] === template ) || TEMPLATES[ 0 ];
    686         const w = 1200;
    687         const h = 630;
     718function fitTitle( ctx, text, maxWidth, maxSize, minSize, maxLines = 3 ) {
     719        for ( let size = maxSize; size > minSize; size -= 4 ) {
     720                ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
     721                if ( wrapTitle( ctx, text, maxWidth, Infinity ).length <= maxLines ) {
     722                        return { size, lines: wrapTitle( ctx, text, maxWidth, maxLines ) };
     723                }
     724        }
     725        ctx.font = `800 ${ minSize }px ${ TITLE_FONT }`;
     726        return { size: minSize, lines: wrapTitle( ctx, text, maxWidth, maxLines ) };
     727}
     728
     729/**
     730 * 배경 틀 그리기 (캔버스, 서버·AI 없음). 미리보기와 올리기가 같은 함수를 쓴다
     731 * @param {Object} o
     732 * @param {string} o.text     그림에 넣을 제목
     733 * @param {string} o.template TEMPLATES의 키, 또는 'custom'
     734 * @param {string} o.color    custom일 때 바탕색 "#RRGGBB"
     735 * @param {string} o.layout   TPL_LAYOUTS의 키
     736 * @param {string} o.aspect   TPL_ASPECTS의 키
     737 * @param {number} o.scale    미리보기용 축소 (1 = 원래 크기)
     738 */
     739export function drawTemplate( {
     740        text,
     741        template = 'ink',
     742        color = '',
     743        layout = 'center',
     744        aspect = 'og',
     745        scale = 1,
     746} ) {
     747        const custom = template === 'custom' && /^#[0-9a-f]{6}$/i.test( color );
     748        const [ , , colors, ink ] = custom
     749                ? [ 'custom', '', [ color ], inkFor( color ) ]
     750                : TEMPLATES.find( ( t ) => t[ 0 ] === template ) || TEMPLATES[ 0 ];
     751        const [ , , W, H ] =
     752                TPL_ASPECTS.find( ( a ) => a[ 0 ] === aspect ) || TPL_ASPECTS[ 0 ];
     753        const w = Math.round( W * scale );
     754        const h = Math.round( H * scale );
    688755        const canvas = document.createElement( 'canvas' );
    689756        canvas.width = w;
    690757        canvas.height = h;
    691758        const ctx = canvas.getContext( '2d' );
    692         if ( colors.length > 1 ) {
    693                 const g = ctx.createLinearGradient( 0, 0, w, h );
    694                 g.addColorStop( 0, colors[ 0 ] );
    695                 g.addColorStop( 1, colors[ 1 ] );
    696                 ctx.fillStyle = g;
    697         } else {
    698                 ctx.fillStyle = colors[ 0 ];
    699         }
     759        const paint = () => {
     760                if ( colors.length > 1 ) {
     761                        const g = ctx.createLinearGradient( 0, 0, w, h );
     762                        g.addColorStop( 0, colors[ 0 ] );
     763                        g.addColorStop( 1, colors[ 1 ] );
     764                        return g;
     765                }
     766                return colors[ 0 ];
     767        };
     768        ctx.fillStyle = paint();
    700769        ctx.fillRect( 0, 0, w, h );
    701         const size = 72;
     770        const base = Math.min( w, h );
     771        const pad = Math.round( base * 0.1 );
     772        const site = String( window.editndayConfig?.siteName || '' )
     773                .trim()
     774                .slice( 0, 40 );
     775        const small = Math.round( base * 0.042 );
     776        ctx.textBaseline = 'alphabetic';
     777
     778        if ( layout === 'band' ) {
     779                // 아래 띠: 위는 바탕색, 아래 띠는 글자색으로 칠하고 그 위에 바탕색 제목 (왼쪽 정렬)
     780                const bandH = Math.round( h * ( h > w ? 0.34 : 0.4 ) );
     781                ctx.fillStyle = ink;
     782                ctx.fillRect( 0, h - bandH, w, bandH );
     783                const { size, lines } = fitTitle(
     784                        ctx,
     785                        text,
     786                        w - pad * 2,
     787                        Math.round( base * 0.12 ),
     788                        Math.round( base * 0.06 ),
     789                        2
     790                );
     791                ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
     792                ctx.fillStyle = colors.length > 1 ? colors[ 0 ] : colors[ 0 ];
     793                ctx.textAlign = 'left';
     794                const lead = Math.round( size * 1.25 );
     795                const blockH = size + ( lines.length - 1 ) * lead;
     796                const y0 = h - bandH + ( bandH - blockH ) / 2 + size * 0.85;
     797                lines.forEach( ( l, i ) => ctx.fillText( l, pad, y0 + i * lead ) );
     798                if ( site ) {
     799                        ctx.font = `700 ${ small }px ${ TITLE_FONT }`;
     800                        ctx.fillStyle = ink;
     801                        ctx.globalAlpha = 0.75;
     802                        ctx.fillText( site, pad, pad + small );
     803                        ctx.globalAlpha = 1;
     804                }
     805                return canvas;
     806        }
     807
     808        if ( layout === 'magazine' ) {
     809                // 잡지형: 위에 사이트 이름 꼬리표, 아래쪽에 짧은 막대 + 큰 제목 (왼쪽 정렬)
     810                ctx.fillStyle = ink;
     811                ctx.textAlign = 'left';
     812                if ( site ) {
     813                        ctx.font = `700 ${ small }px ${ TITLE_FONT }`;
     814                        ctx.globalAlpha = 0.8;
     815                        ctx.fillText( site, pad, pad + small );
     816                        ctx.globalAlpha = 1;
     817                }
     818                const { size, lines } = fitTitle(
     819                        ctx,
     820                        text,
     821                        w - pad * 2,
     822                        Math.round( base * 0.14 ),
     823                        Math.round( base * 0.07 ),
     824                        h > w ? 4 : 3
     825                );
     826                ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
     827                const lead = Math.round( size * 1.22 );
     828                const lastY = h - pad;
     829                const firstY = lastY - ( lines.length - 1 ) * lead;
     830                ctx.fillRect(
     831                        pad,
     832                        firstY - size - Math.round( base * 0.05 ),
     833                        Math.round( base * 0.09 ),
     834                        Math.max( 3, Math.round( base * 0.012 ) )
     835                );
     836                lines.forEach( ( l, i ) => ctx.fillText( l, pad, firstY + i * lead ) );
     837                return canvas;
     838        }
     839
     840        // 가운데 (처음 틀): 제목 가운데, 아래에 사이트 이름
     841        const { size, lines } = fitTitle(
     842                ctx,
     843                text,
     844                w - pad * 2,
     845                Math.round( base * 0.14 ),
     846                Math.round( base * 0.07 ),
     847                h > w ? 4 : 3
     848        );
    702849        ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
    703850        ctx.fillStyle = ink;
    704851        ctx.textAlign = 'center';
    705         ctx.textBaseline = 'alphabetic';
    706         const lines = wrapTitle( ctx, text, w - 200 );
    707         const lead = Math.round( size * 1.3 );
     852        const lead = Math.round( size * 1.28 );
    708853        const block = ( lines.length - 1 ) * lead;
    709         const y0 = ( h - block ) / 2 + size * 0.35 - 16;
     854        const y0 = ( h - block ) / 2 + size * 0.35 - small * 0.4;
    710855        lines.forEach( ( l, i ) => ctx.fillText( l, w / 2, y0 + i * lead ) );
    711         const site = String( window.editndayConfig?.siteName || '' ).trim();
    712856        if ( site ) {
    713                 ctx.font = `700 26px ${ TITLE_FONT }`;
     857                ctx.font = `700 ${ small }px ${ TITLE_FONT }`;
    714858                ctx.globalAlpha = 0.72;
    715                 ctx.fillText( site.slice( 0, 40 ), w / 2, h - 56 );
     859                ctx.fillText( site, w / 2, h - pad * 0.9 );
    716860                ctx.globalAlpha = 1;
    717861        }
     862        return canvas;
     863}
     864
     865/**
     866 * 배경 틀로 대표 이미지 만들기 (크레딧 없음, 서버를 부르지 않음).
     867 * 10-15: 비율 5가지 · 배치 3가지 · 직접 고른 색 · 제목 길이에 맞춘 글자 크기
     868 * @param {string} text     그림에 넣을 제목
     869 * @param {string} template TEMPLATES의 키, 또는 'custom'
     870 * @param {Object} opts     { color, layout, aspect }
     871 */
     872export async function templateFeatured( text, template = 'ink', opts = {} ) {
     873        if ( ! text.trim() ) {
     874                return null;
     875        }
     876        await loadTitleFont();
     877        const canvas = drawTemplate( { text, template, ...opts } );
     878        const key =
     879                template === 'custom'
     880                        ? `custom-${ String( opts.color || '' ).replace( '#', '' ) }`
     881                        : template;
    718882        return uploadFeatured( canvas, { template: key, alt: text.trim() } );
    719883}
    720884
     885/** 미리보기용: 글꼴을 불러온 뒤 작게 그려 data URL로 */
     886export async function templatePreview( o ) {
     887        if ( ! o.text?.trim() ) {
     888                return '';
     889        }
     890        await loadTitleFont();
     891        return drawTemplate( { ...o, scale: 0.3 } ).toDataURL( 'image/jpeg', 0.8 );
     892}
     893
    721894/**
    722  * 낱말 단위로 줄을 나눈다 (낱말 하나가 너무 길면 글자 단위로). 많아야 3줄, 넘치면 말줄임
     895 * 낱말 단위로 줄을 나눈다 (낱말 하나가 너무 길면 글자 단위로). 많아야 maxLines줄(기본 3), 넘치면 말줄임
    723896 * @param ctx
    724897 * @param text
    725898 * @param maxWidth
    726899 */
    727 function wrapTitle( ctx, text, maxWidth ) {
     900function wrapTitle( ctx, text, maxWidth, maxLines = 3 ) {
    728901        const lines = [];
    729902        let line = '';
    … …  
    756929                lines.push( line );
    757930        }
    758         if ( lines.length > 3 ) {
    759                 lines.length = 3;
    760                 lines[ 2 ] = lines[ 2 ].replace( /.$/, '…' );
     931        if ( lines.length > maxLines ) {
     932                lines.length = maxLines;
     933                lines[ maxLines - 1 ] = lines[ maxLines - 1 ].replace( /.$/, '…' );
    761934        }
    762935        return lines;
    … …  
    14311604        const [ titlePos, setTitlePos ] = useState( 'bottom' );
    14321605        const [ titleKind, setTitleKind ] = useState( 'title' );
    1433         const [ tpl, setTpl ] = useState( 'ink' );
     1606        // 배경 틀 (10-15): 색·배치·비율·직접 고른 색은 마지막 것을 기억, 미리보기는 고를 때마다 다시 그림
     1607        const [ tplOpts, setTplOptsState ] = useState( () => {
     1608                try {
     1609                        return {
     1610                                tpl: 'ink',
     1611                                layout: 'center',
     1612                                aspect: 'og',
     1613                                color: '#2F5D50',
     1614                                ...JSON.parse( window.localStorage.getItem( 'editndayTpl' ) || '{}' ),
     1615                        };
     1616                } catch {
     1617                        return { tpl: 'ink', layout: 'center', aspect: 'og', color: '#2F5D50' };
     1618                }
     1619        } );
     1620        const setTplOpts = ( patch ) =>
     1621                setTplOptsState( ( o ) => {
     1622                        const n = { ...o, ...patch };
     1623                        try {
     1624                                window.localStorage.setItem( 'editndayTpl', JSON.stringify( n ) );
     1625                        } catch {}
     1626                        return n;
     1627                } );
     1628        const tpl = tplOpts.tpl;
     1629        const [ tplPreview, setTplPreview ] = useState( '' );
     1630        const tplText = onImage.trim() || st.title?.trim() || '';
     1631        useEffect( () => {
     1632                let gone = false;
     1633                const t = setTimeout( () => {
     1634                        templatePreview( {
     1635                                text: tplText,
     1636                                template: tplOpts.tpl,
     1637                                color: tplOpts.color,
     1638                                layout: tplOpts.layout,
     1639                                aspect: tplOpts.aspect,
     1640                        } )
     1641                                .then( ( u ) => ! gone && setTplPreview( u ) )
     1642                                .catch( () => ! gone && setTplPreview( '' ) );
     1643                }, 150 );
     1644                return () => {
     1645                        gone = true;
     1646                        clearTimeout( t );
     1647                };
     1648        }, [ tplText, tplOpts ] );
    14341649        // 이어지는 내 글: null(아직 안 찾음) | [] | [{id,title,url,date,added}]
    14351650        const [ related, setRelated ] = useState( null );
    … …  
    18642079                                                                        ) }
    18652080                                                                </span>
    1866                                                                 <span className="ed-tpl__swatches">
    1867                                                                         { TEMPLATES.map( ( [ k, l, c, ink ] ) => (
     2081                                                                <div className="ed-tpl__row">
     2082                                                                        <span className="ed-tpl__label">
     2083                                                                                { __( '색', 'editnday' ) }
     2084                                                                        </span>
     2085                                                                        <span className="ed-tpl__swatches">
     2086                                                                                { TEMPLATES.map( ( [ k, l, c, ink ] ) => (
     2087                                                                                        <button
     2088                                                                                                key={ k }
     2089                                                                                                type="button"
     2090                                                                                                className={ `ed-tpl__sw${
     2091                                                                                                        tpl === k ? ' is-on' : ''
     2092                                                                                                }` }
     2093                                                                                                style={ {
     2094                                                                                                        background:
     2095                                                                                                                c.length > 1
     2096                                                                                                                        ? `linear-gradient(135deg, ${ c[ 0 ] }, ${ c[ 1 ] })`
     2097                                                                                                                        : c[ 0 ],
     2098                                                                                                        color: ink,
     2099                                                                                                } }
     2100                                                                                                aria-pressed={ tpl === k }
     2101                                                                                                title={ l }
     2102                                                                                                onClick={ () => setTplOpts( { tpl: k } ) }
     2103                                                                                        >
     2104                                                                                                { __( '가', 'editnday' ) }
     2105                                                                                        </button>
     2106                                                                                ) ) }
    18682107                                                                                <button
    1869                                                                                         key={ k }
    18702108                                                                                        type="button"
    1871                                                                                         className={ `ed-tpl__sw${
    1872                                                                                                 tpl === k ? ' is-on' : ''
     2109                                                                                        className={ `ed-tpl__sw ed-tpl__sw--custom${
     2110                                                                                                tpl === 'custom' ? ' is-on' : ''
    18732111                                                                                        }` }
    1874                                                                                         style={ {
    1875                                                                                                 background:
    1876                                                                                                         c.length > 1
    1877                                                                                                                 ? `linear-gradient(135deg, ${ c[ 0 ] }, ${ c[ 1 ] })`
    1878                                                                                                                 : c[ 0 ],
    1879                                                                                                 color: ink,
    1880                                                                                         } }
    1881                                                                                         aria-pressed={ tpl === k }
    1882                                                                                         title={ l }
    1883                                                                                         onClick={ () => setTpl( k ) }
     2112                                                                                        style={
     2113                                                                                                tpl === 'custom'
     2114                                                                                                        ? { background: tplOpts.color }
     2115                                                                                                        : undefined
     2116                                                                                        }
     2117                                                                                        aria-pressed={ tpl === 'custom' }
     2118                                                                                        title={ __( '직접 고른 색', 'editnday' ) }
     2119                                                                                        onClick={ () => setTplOpts( { tpl: 'custom' } ) }
    18842120                                                                                >
    1885                                                                                         { __( '가', 'editnday' ) }
     2121                                                                                        { tpl === 'custom' ? '' : '+' }
    18862122                                                                                </button>
    1887                                                                         ) ) }
    1888                                                                 </span>
     2123                                                                        </span>
     2124                                                                </div>
     2125                                                                { tpl === 'custom' && (
     2126                                                                        <div className="ed-tpl__row">
     2127                                                                                <span className="ed-tpl__label" />
     2128                                                                                <span className="ed-tpl__color">
     2129                                                                                        <input
     2130                                                                                                type="color"
     2131                                                                                                aria-label={ __( '바탕색 고르기', 'editnday' ) }
     2132                                                                                                value={
     2133                                                                                                        /^#[0-9a-f]{6}$/i.test( tplOpts.color )
     2134                                                                                                                ? tplOpts.color
     2135                                                                                                                : '#2F5D50'
     2136                                                                                                }
     2137                                                                                                onChange={ ( e ) =>
     2138                                                                                                        setTplOpts( { color: e.target.value } )
     2139                                                                                                }
     2140                                                                                        />
     2141                                                                                        <input
     2142                                                                                                type="text"
     2143                                                                                                aria-label={ __( '바탕색 hex', 'editnday' ) }
     2144                                                                                                value={ tplOpts.color }
     2145                                                                                                maxLength={ 7 }
     2146                                                                                                spellCheck={ false }
     2147                                                                                                onChange={ ( e ) => {
     2148                                                                                                        const v = e.target.value.trim();
     2149                                                                                                        setTplOpts( {
     2150                                                                                                                color: v.startsWith( '#' ) ? v : '#' + v,
     2151                                                                                                        } );
     2152                                                                                                } }
     2153                                                                                        />
     2154                                                                                </span>
     2155                                                                        </div>
     2156                                                                ) }
     2157                                                                <div className="ed-tpl__row">
     2158                                                                        <span className="ed-tpl__label">
     2159                                                                                { __( '배치', 'editnday' ) }
     2160                                                                        </span>
     2161                                                                        <span className="ed-chips">
     2162                                                                                { TPL_LAYOUTS.map( ( [ k, l ] ) => (
     2163                                                                                        <Chip
     2164                                                                                                key={ k }
     2165                                                                                                on={ tplOpts.layout === k }
     2166                                                                                                onClick={ () => setTplOpts( { layout: k } ) }
     2167                                                                                        >
     2168                                                                                                { l }
     2169                                                                                        </Chip>
     2170                                                                                ) ) }
     2171                                                                        </span>
     2172                                                                </div>
     2173                                                                <div className="ed-tpl__row">
     2174                                                                        <span className="ed-tpl__label">
     2175                                                                                { __( '비율', 'editnday' ) }
     2176                                                                        </span>
     2177                                                                        <span className="ed-chips">
     2178                                                                                { TPL_ASPECTS.map( ( [ k, l ] ) => (
     2179                                                                                        <Chip
     2180                                                                                                key={ k }
     2181                                                                                                on={ tplOpts.aspect === k }
     2182                                                                                                onClick={ () => setTplOpts( { aspect: k } ) }
     2183                                                                                        >
     2184                                                                                                { l }
     2185                                                                                        </Chip>
     2186                                                                                ) ) }
     2187                                                                        </span>
     2188                                                                </div>
     2189                                                                { tplPreview ? (
     2190                                                                        <img
     2191                                                                                className="ed-tpl__preview"
     2192                                                                                src={ tplPreview }
     2193                                                                                alt={ __( '배경 틀 미리보기', 'editnday' ) }
     2194                                                                        />
     2195                                                                ) : (
     2196                                                                        <span className="ed-muted">
     2197                                                                                { __(
     2198                                                                                        '제목을 쓰면 여기에 미리보기가 나와요.',
     2199                                                                                        'editnday'
     2200                                                                                ) }
     2201                                                                        </span>
     2202                                                                ) }
    18892203                                                                <Ghost
    18902204                                                                        disabled={
    18912205                                                                                !! busy ||
    1892                                                                                 ! ( onImage.trim() || st.title?.trim() )
     2206                                                                                ! tplText ||
     2207                                                                                ( tpl === 'custom' &&
     2208                                                                                        ! /^#[0-9a-f]{6}$/i.test( tplOpts.color ) )
    18932209                                                                        }
    18942210                                                                        onClick={ () =>
    … …  
    18962212                                                                                        'featured',
    18972213                                                                                        async () => (
    1898                                                                                                 await templateFeatured(
    1899                                                                                                         onImage.trim() || st.title,
    1900                                                                                                         tpl
    1901                                                                                                 ),
     2214                                                                                                await templateFeatured( tplText, tpl, {
     2215                                                                                                        color: tplOpts.color,
     2216                                                                                                        layout: tplOpts.layout,
     2217                                                                                                        aspect: tplOpts.aspect,
     2218                                                                                                } ),
    19022219                                                                                                setRedo( false )
    19032220                                                                                        )
    … …  
    19092226                                                                <span className="ed-muted">
    19102227                                                                        { __(
    1911                                                                                 '위 "그림에 넣을 제목"을, 비워 두면 글 제목을 1200×630 그림 가운데에 넣어요.',
     2228                                                                                '위 "그림에 넣을 제목"을, 비워 두면 글 제목을 넣어요. AI·서버 없이 이 컴퓨터에서 바로 그려요.',
    19122229                                                                                'editnday'
    1913                                                                         ) }{ ' ' }
    1914                                                                         가운데에 넣어요.
     2230                                                                        ) }
    19152231                                                                </span>
    19162232                                                        </div>
  • editnday/tags/1.0.88/src/style.scss

    r3742866 r3747744  
    764764        .ed-tpl__swatches {
    765765                display: flex;
     766                flex-wrap: wrap;
    766767                gap: 6px;
     768        }
     769        // 배경 틀 줄: 왼쪽 이름 + 오른쪽 고르기 (10-15)
     770        .ed-tpl__row {
     771                display: grid;
     772                grid-template-columns: 34px 1fr;
     773                column-gap: 8px;
     774                align-items: start;
     775        }
     776        .ed-tpl__label {
     777                font-size: 11px;
     778                font-weight: 600;
     779                color: #50575e;
     780                line-height: 26px;
     781        }
     782        .ed-tpl__sw--custom {
     783                background: #fff;
     784                border-style: dashed;
     785                color: #50575e;
     786                font-size: 16px;
     787                font-weight: 500;
     788        }
     789        .ed-tpl__color {
     790                display: inline-flex;
     791                align-items: center;
     792                gap: 6px;
     793                input[type="color"] {
     794                        width: 28px;
     795                        height: 26px;
     796                        padding: 2px;
     797                        border: 1px solid #c3c4c7;
     798                        border-radius: 4px;
     799                        background: #fff;
     800                        cursor: pointer;
     801                }
     802                input[type="text"] {
     803                        width: 88px;
     804                        height: 26px;
     805                        min-height: 26px;
     806                        padding: 0 8px;
     807                        font-size: 12px;
     808                        font-family: ui-monospace, Menlo, monospace;
     809                        text-transform: uppercase;
     810                        border: 1px solid #c3c4c7;
     811                        border-radius: 4px;
     812                }
     813        }
     814        .ed-tpl__preview {
     815                display: block;
     816                max-width: 100%;
     817                max-height: 220px;
     818                margin: 2px auto 0;
     819                border-radius: 6px;
     820                border: 1px solid rgba(0, 0, 0, 0.1);
    767821        }
    768822        .ed-tpl__sw {
  • editnday/trunk/CHANGELOG.md

    r3743363 r3747744  
    33> 이 파일은 `apps/site/src/content/updates/`에서 만들어진다 (`pnpm release:plugin`). 직접 고치지 않는다.
    44> 웹에서 보기: https://editn.day/updates
     5
     6## 1.0.88 (2026-10-15) — 배경 틀 썸네일: 미리보기·비율·배치·직접 고른 색
     7
     8- (무료) **AI 없이 배경 틀로 만들기**를 고쳤어요.
     9  - 고르는 대로 바로 **미리보기**가 나와요.
     10  - **비율**: 공유 1.91:1(카카오톡·페이스북 미리보기) · 가로 16:9 · 가로 4:3 · 세로 3:4 · 세로 9:16
     11  - **배치**: 가운데 · 잡지형(위에 사이트 이름, 아래쪽에 짧은 막대와 큰 제목) · 아래 띠
     12  - **색**: 기본 6가지에 더해 **직접 고른 색**(컬러 피커나 hex 코드). 글자색은 바탕에 맞춰 자동으로
     13  - 제목이 짧으면 크게, 길면 작게 맞춰요. 마지막에 고른 것을 기억해요.
     14- AI·서버를 부르지 않고 이 컴퓨터에서 바로 그려요.
    515
    616## 1.0.77 (2026-10-13) — 읽힘 세기: 떠난 뒤 더 읽으면 보정, 성과 표 제목 따옴표
  • editnday/trunk/build/index.asset.php

    r3742866 r3747744  
    1414                'wp-plugins'
    1515        ),
    16         'version' => '22091c4fbc188e4a19f6'
     16        'version' => 'b728a36bc7a64e8c88e5'
    1717);
  • editnday/trunk/build/index.js

    r3742866 r3747744  
    1 (()=>{"use strict";var e={786(e,t,n){var s={};n.r(s),n.d(s,{EVENT:()=>u,SLOT:()=>_,emit:()=>m,hasPro:()=>h,slot:()=>y});var d={};n.r(d),n.d(d,{Bar:()=>M,Card:()=>w,Check:()=>j,Chip:()=>S,Cta:()=>k,Elapsed:()=>E,Ghost:()=>N,Head:()=>A,Live:()=>P,Opt:()=>$,Radio:()=>O,Req:()=>I,Stepper:()=>L,Steps:()=>B,Symbol:()=>x,Tabs:()=>v,Tag:()=>C});var a={};n.r(a),n.d(a,{CONTENT_STYLE:()=>te,applyToSentence:()=>le,bodyHeadings:()=>Q,clearEmptyStart:()=>ie,contentStyleOn:()=>ne,findSentenceBlock:()=>ce,hasSection:()=>W,insertSection:()=>X,insertSectionAfter:()=>ee,plainText:()=>de,restoreBlocks:()=>oe,setTitle:()=>re,showSentence:()=>_e,withContentStyle:()=>se});var i={};n.r(i),n.d(i,{CategoryNoFit:()=>st,KoSeoCard:()=>Pt,PublishScreen:()=>Rt,TASKS:()=>ht,TEMPLATES:()=>kt,closestSentence:()=>ct,contentText:()=>tt,decode:()=>dt,ed:()=>Ze,edit:()=>Ye,hasWord:()=>lt,insertRelated:()=>It,memberOnly:()=>rt,placeVisible:()=>gt,readMeta:()=>Qe,setFineKeyword:()=>xt,strip:()=>At,tagIds:()=>yt,templateFeatured:()=>vt,titleFeatured:()=>Ct,useKoSeo:()=>Et,usePublishState:()=>ft,writeMeta:()=>et});const r=window.wp.i18n,l=window.wp.editor,o=window.wp.element,c=window.wp.hooks,_={pro:"editnday.pro",tabs:"editnday.sidebar.tabs",notice:"editnday.notice",checkItemActions:"editnday.check.itemActions",publishFieldActions:"editnday.publish.fieldActions",keywordFix:"editnday.publish.keywordFix",keywordInfo:"editnday.publish.keywordInfo",prepublishFixes:"editnday.prepublish.fixes"},u={newPost:"editnday.newPost"},h=()=>!!(0,c.applyFilters)(_.pro,null),y=(e,t={})=>{const n=(0,c.applyFilters)(e,[],t);return Array.isArray(n)?n.filter(Boolean):[]},m=(e,...t)=>(0,c.doAction)(e,...t),p=window.wp.components,g=window.wp.compose,f=window.ReactJSXRuntime,x=({size:e=16,color:t="#243235"})=>(0,f.jsx)("svg",{viewBox:"0 0 44 46.6",width:e,height:e,"aria-hidden":"true",children:(0,f.jsx)("path",{fill:t,d:"M43.22,21.083c.304-6.426-2.765-9.571-2.765-9.571-4.952-5.651-16.923-5.378-27.013-5.047-1.774,0-2.833.293-4.019.748-1.738.635-3.071,1.831-4.423,3.1-1.435,1.352-2.621,3.131-3.517,5.49C.131,19.294-.296,23.225.2,27.005c0,.003,0,.005.001.008,0,0,1.116,5.041,2.233,7.124.662,1.241,4.373,5.311,5.531,5.987,2.069,1.2,5.559,2.262,7.863,1.117-.386-.455-.814-.91-1.035-1.476-.221-.538-.221-1.228.166-1.669.11-.138.221-.262.331-.372.772.028,1.499.428,5.568.428,5.378.133,16.915,1.493,15.26-2.767-13.801-.264-20.166-.917-22.161-3.05-.475-.508-.34-1.395.13-.921,3.733,3.767,23.166,3.09,23.175,3.095,3.119.035,5.785-8.914,5.957-13.425ZM12.152,28.125c-2.019.168-3.793-2.006-2.416-3.297.971-.912,2.233-1.046,3.547.038,1.691,1.459.425,3.13-1.131,3.26Z"})}),b=()=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"#243235",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M7 17L17 7M9 7h8v8"})}),j=({color:e="#fff"})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:e,strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M5 12.5l4.5 4.5L19 7.5"})}),w=({children:e,className:t=""})=>(0,f.jsx)("div",{className:`ed-card ${t}`,children:e}),k=({children:e,onClick:t,disabled:n})=>(0,f.jsxs)("button",{type:"button",className:"ed-cta",onClick:t,disabled:n,children:[(0,f.jsx)("span",{children:e}),(0,f.jsx)("span",{className:"ed-cta__dot",children:(0,f.jsx)(b,{})})]}),N=({children:e,onClick:t,disabled:n})=>(0,f.jsx)("button",{type:"button",className:"ed-ghost",onClick:t,disabled:n,children:e}),v=({tabs:e,value:t,onChange:n})=>(0,f.jsx)("div",{className:"ed-tabs",role:"tablist",children:e.map(([e,s])=>(0,f.jsx)("button",{type:"button",role:"tab","aria-selected":t===e,className:"ed-tab"+(t===e?" is-on":""),onClick:()=>n(e),children:s},e))}),S=({children:e,on:t,lav:n,onClick:s})=>(0,f.jsx)("button",{type:"button",className:`ed-chip${t?" is-on":""}${n?" is-lav":""}`,onClick:s,"aria-pressed":!!t,children:e}),C=({children:e,tone:t})=>(0,f.jsx)("span",{className:"ed-tag"+(t?` is-${t}`:""),children:e}),I=()=>(0,f.jsx)("span",{className:"ed-req",role:"img","aria-label":(0,r.__)("필수","editnday")}),$=()=>(0,f.jsx)("span",{className:"ed-opt",children:(0,r.__)("선택","editnday")}),A=({eyebrow:e,title:t,sub:n})=>(0,f.jsxs)("div",{className:"ed-head",children:[e&&(0,f.jsx)("span",{className:"ed-eyebrow",children:e}),(0,f.jsx)("h2",{className:"ed-h",children:t}),n&&(0,f.jsx)("p",{className:"ed-sub",children:n})]}),B=({steps:e})=>(0,f.jsx)("div",{className:"ed-steps",children:e.map(e=>(0,f.jsxs)("div",{className:`ed-step is-${e.state}`,children:[(0,f.jsx)("span",{className:"ed-circ",children:"done"===e.state&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-step__label",children:e.label}),e.meta&&(0,f.jsx)("span",{className:"ed-muted ed-step__meta",children:e.meta})]},e.label))});function E({since:e}){const[t,n]=(0,o.useState)(Date.now());(0,o.useEffect)(()=>{const e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]);const s=Math.max(0,Math.round((t-e)/1e3));return(0,f.jsx)("span",{className:"ed-muted ed-elapsed",children:s>=60?(0,r.sprintf)(/* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */ /* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */(0,r.__)("%1$s분 %2$s초째","editnday"),Math.floor(s/60),s%60):(0,r.sprintf)(/* translators: %s: s */ /* translators: %s: s */(0,r.__)("%s초째","editnday"),s)})}const P=({text:e,since:t})=>(0,f.jsxs)("div",{className:"ed-live",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,f.jsx)("span",{className:"ed-live__t",children:e}),(0,f.jsx)(E,{since:t})]}),M=({ratio:e,busy:t})=>(0,f.jsxs)("div",{className:"ed-bar"+(t?" is-busy":""),role:"progressbar","aria-valuenow":Math.round(100*e),"aria-valuemin":0,"aria-valuemax":100,children:[(0,f.jsx)("div",{className:"ed-bar__fill",style:{width:`${Math.max(4,100*e)}%`}}),(0,f.jsx)("div",{className:"ed-bar__hatch"})]}),O=({checked:e,onChange:t,children:n})=>{const s=`ed-radio-${(0,g.useInstanceId)(O)}`;return(0,f.jsxs)("label",{htmlFor:s,className:"ed-radio"+(e?" is-on":""),children:[(0,f.jsx)("input",{id:s,type:"radio",checked:e,onChange:t}),(0,f.jsx)("span",{className:"ed-rdot"}),(0,f.jsx)("span",{children:n})]})},T={start:[0,-1,""],research:[0,0,(0,r.__)("에디튼이 자료를 모으는 중 · 1~2분","editnday")],plan:[1,-1,""],writing:[1,1,(0,r.__)("다 쓰면 확인할 곳을 보여 드려요 · 2~3분","editnday")],review:[2,-1,(0,r.__)("확인할 곳을 정하면 발행 준비로 넘어가요","editnday")],done:[2,-1,""]},q=[(0,r.__)("주제·메모","editnday"),(0,r.__)("구성안 고르기","editnday"),(0,r.__)("확인·발행","editnday")],F=[(0,r.__)("자료 조사","editnday"),(0,r.__)("본문 쓰기","editnday")];function L({stage:e}){const t=T[e];if(!t)return null;const[n,s,d]=t,a=s>=0?s:n-1;return(0,f.jsxs)("div",{className:"ed-stepper","aria-label":(0,r.sprintf)(/* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */ /* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */(0,r.__)("작가가 할 일 3단계 중 %1$s단계%2$s","editnday"),n+1,s>=0?(0,r.sprintf)(/* translators: %s: 진행 중인 일 */ /* translators: %s: 진행 중인 일 */
    2 (0,r.__)(", %s 중","editnday"),F[s]):""),children:[(0,f.jsx)("div",{className:"ed-stepper__flow",children:q.map((e,t)=>{const d=t<=a,i=!d&&t===n&&s<0;return[(0,f.jsxs)("div",{className:`ed-stepper__st${d?" is-done":""}${i?" is-now":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__dot",children:d?(0,f.jsx)(j,{}):t+1}),(0,f.jsx)("span",{className:"ed-stepper__lbl",children:e})]},e),t<F.length&&(0,f.jsxs)("div",{className:`ed-stepper__link${t===s?" is-run":""}${t<a||t<n&&s<0?" is-done":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__line"}),(0,f.jsxs)("em",{children:[F[t],t===s?(0,r.__)("중","editnday"):""]})]},F[t])]})}),d&&(0,f.jsx)("span",{className:"ed-stepper__note",children:d})]})}const R="editnday_pro_card_off";function K({onClose:e}){return(0,f.jsxs)(p.Modal,{title:(0,r.__)("에디튼 프로","editnday"),onRequestClose:e,className:"ed-proinfo",size:"medium",children:[(0,f.jsx)("p",{children:(0,r.__)("에디튼 프로는 지금 쓰는 에디튼에 AI를 더해요. 무료 기능은 그대로이고, 같은 사이드바에 버튼과 [새 글 쓰기] 탭이 생겨요.","editnday")}),(0,f.jsxs)("ul",{children:[(0,f.jsx)("li",{children:(0,r.__)("새 글 쓰기: 주제와 메모로 자료 조사 → 구성안 → 내 문체의 초안 → 확인할 곳까지 (글 1편 10크레딧 안팎)","editnday")}),(0,f.jsx)("li",{children:(0,r.__)("글 점검에서 찾은 문장을 AI로 고치기, 줄이기, 다시 쓰기","editnday")}),(0,f.jsx)("li",{children:(0,r.__)("발행 준비 칸 채우기: 발췌문·태그·카테고리·영문 주소·SEO 제목과 설명·요약·질문답 (한 번에)","editnday")}),(0,f.jsx)("li",{children:(0,r.__)("대표 이미지 만들기(1장 1크레딧)와 ALT, 단락 더 쓰기(1크레딧)","editnday")})]}),(0,f.jsx)("p",{className:"ed-muted",children:(0,r.__)("프로를 설치하고 라이선스를 넣으면 바로 쓸 수 있어요. 지금 이 화면의 기능은 프로 없이도 계속 무료예요.","editnday")}),(0,f.jsx)("p",{children:(0,f.jsx)("a",{className:"components-button is-primary",href:"https://editn.day/",target:"_blank",rel:"noopener noreferrer",children:(0,r.__)("에디튼 프로 알아보기","editnday")})})]})}function D({label:e}){const[t,n]=(0,o.useState)(!1);return h()?null:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("button",{type:"button",className:"ed-prohint",onClick:()=>n(!0),children:[e," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,r.__)("프로","editnday"),children:"P"})]}),t&&(0,f.jsx)(K,{onClose:()=>n(!1)})]})}const H=()=>{try{return"1"===window.localStorage.getItem(R)}catch(e){return!1}};function U(){const[e,t]=(0,o.useState)(H),[n,s]=(0,o.useState)(!1);return h()||e?null:(0,f.jsxs)(w,{className:"ed-procard",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("span",{className:"ed-lbl",children:[(0,r.__)("초안도 써 드려요","editnday")," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,r.__)("프로","editnday"),children:"P"})]}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{t(!0);try{window.localStorage.setItem(R,"1")}catch(e){}},"aria-label":(0,r.__)("이 안내 닫기","editnday"),children:(0,r.__)("닫기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("에디튼 프로는 주제와 메모만으로 자료를 찾아 내 문체의 초안을 쓰고, 여기서 찾은 문장도 AI로 고쳐요.","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!0),children:(0,r.__)("자세히 보기","editnday")}),n&&(0,f.jsx)(K,{onClose:()=>s(!1)})]})}const V=window.wp.apiFetch;var z=n.n(V);const G=window.wp.blocks,J=window.wp.data;function W(e){return(0,J.select)("core/block-editor").getBlocks().some(t=>"core/heading"===t.name&&t.attributes?.metadata?.editnday===e)}function X({id:e,heading:t,text:n}){if(e&&W(e))return!1;const s=[(0,G.createBlock)("core/heading",{level:2,content:ue(t),metadata:{editnday:e}})],d=(0,G.pasteHandler)({plainText:String(n).replace(/~/g,"\\~"),mode:"BLOCKS"});return s.push(...(Array.isArray(d)?d:[]).map(se)),(0,J.dispatch)("core/block-editor").insertBlocks(s),!0}const Z=e=>String(e.attributes?.content??"").replace(/<[^>]+>/g,"").trim(),Y=e=>"faq"===e.attributes?.metadata?.editnday;function Q(){return(0,J.select)("core/block-editor").getBlocks().filter(e=>"core/heading"===e.name&&2===(e.attributes.level??2)&&Z(e)).map(Z)}function ee({heading:e,text:t,afterHeading:n}){const s=(0,J.select)("core/block-editor").getBlocks(),d=e=>"core/heading"===e.name&&2===(e.attributes.level??2),a=s.findIndex(Y),i=a>=0?a:s.length,r=s.findIndex(e=>d(e)&&Z(e)===n);let l=i;if(r>=0&&r<i){const e=s.findIndex((e,t)=>t>r&&d(e));l=e>=0&&e<i?e:i}const o=(0,G.pasteHandler)({plainText:String(t).replace(/~/g,"\\~"),mode:"BLOCKS"}),c=[(0,G.createBlock)("core/heading",{level:2,content:ue(e),metadata:{editnday:`extra-${Date.now()}`}}),...(Array.isArray(o)?o:[]).map(se)];return(0,J.dispatch)("core/block-editor").insertBlocks(c,l),c.map(e=>e.clientId)}const te="is-style-editnday",ne=()=>"off"!==window.editndayConfig?.contentStyle;function se(e){if("core/list"!==e?.name&&"core/table"!==e?.name||!ne())return e;const t=e.attributes.className||"";return/\bis-style-/.test(t)||(e.attributes.className=`${t} ${te}`.trim()),e}const de=e=>String(e).replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),ae=e=>String(e).replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,'<a href="$2">$1</a>');function ie(){const e=(0,J.select)("core/block-editor").getBlocks();1!==e.length||"core/paragraph"!==e[0].name||e[0].attributes.content||(0,J.dispatch)("core/block-editor").removeBlocks([e[0].clientId])}function re(e){(0,J.dispatch)("core/editor").editPost({title:e})}function le(e,t){const n=(0,J.select)("core/block-editor"),s=n=>{for(const d of n){if("core/paragraph"===d.name||"core/list-item"===d.name){const n=String(d.attributes.content??""),s=[e,ae(e),de(e)].find(e=>n.includes(e)),a=s?n.indexOf(s):-1;if(a>=0){const e=(n.slice(0,a)+ae(t??"")+n.slice(a+s.length)).replace(/\s{2,}/g," ").trim();return(0,J.dispatch)("core/block-editor").updateBlockAttributes(d.clientId,{content:e}),{clientId:d.clientId,before:n}}}const n=!!d.innerBlocks?.length&&s(d.innerBlocks);if(n)return n}return!1};return s(n.getBlocks())}function oe(e){const t=(0,J.select)("core/block-editor");for(const n of[...e].reverse())t.getBlock(n.clientId)&&(0,J.dispatch)("core/block-editor").updateBlockAttributes(n.clientId,{content:n.before})}function ce(e){const t=[e,ae(e),de(e)],n=e=>{for(const s of e){const e=String(s.attributes?.content??"");if(e&&t.some(t=>e.includes(t)))return s.clientId;const d=s.innerBlocks?.length&&n(s.innerBlocks);if(d)return d}return null};return n((0,J.select)("core/block-editor").getBlocks())}function _e(e){const t=ce(e);if(!t)return!1;const n=document.querySelector('iframe[name="editor-canvas"]')?.contentDocument||document,s=n.querySelector(`[data-block="${t}"]`),d=n.defaultView,a=s&&function(e,t){const n=e.ownerDocument,s=n.createTreeWalker(e,4),d=[];let a="";for(let e=s.nextNode();e;e=s.nextNode())d.push({n:e,start:a.length}),a+=e.nodeValue;const i=e=>e.replace(/\s+/g," "),r=i(a).indexOf(i(t).trim());if(r<0)return null;const l=[];for(let e=0,t=!1;e<a.length;e++){const n=/\s/.test(a[e]);n&&t||l.push(e),t=n}const o=l[r],c=(l[r+i(t).trim().length-1]??a.length-1)+1,_=e=>{const t=d.findLastIndex(t=>t.start<=e),n=d[Math.max(0,t)];return[n.n,Math.min(e-n.start,n.n.nodeValue.length)]},u=n.createRange();return u.setStart(..._(o)),u.setEnd(..._(c)),u}(s,de(e));if(!a||!d?.CSS?.highlights||"function"!=typeof d.Highlight)return(0,J.dispatch)("core/block-editor").selectBlock(t),(0,J.dispatch)("core/block-editor").flashBlock?.(t),!0;(a.startContainer.parentElement||s).scrollIntoView({behavior:"smooth",block:"center"});let i=n.getElementById("editnday-mark-style");i||(i=n.createElement("style"),i.id="editnday-mark-style",n.head.appendChild(i)),d.CSS.highlights.set("editnday-mark",new d.Highlight(a));const r=Date.now();return clearInterval(_e.timer),_e.timer=setInterval(()=>{const e=Date.now()-r,t=e<2500?.75:Math.max(0,.75*(1-(e-2500)/1500));i.textContent=`::highlight(editnday-mark){background-color:rgba(211,183,241,${t.toFixed(3)});color:inherit}`,0===t&&(clearInterval(_e.timer),d.CSS.highlights.delete("editnday-mark"))},50),!0}const ue=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),he=(e,t,n="낱말")=>({re:new RegExp(`(?<![가-힣])${e}`,"g"),fix:t,kind:n}),ye=(e,t)=>({re:new RegExp(e,"g"),fix:t,kind:"어미"}),me=[he("몇 ?일(?!본|반|부|정|자리|손|꾼|요일|단|등|대|원|차)","며칠"),he("웬지","왠지"),he("왠만","웬만"),he("왠일","웬일"),he("왠걸","웬걸"),he("왠 (?=[가-힣])","웬 "),he("금새","금세"),he("일일히","일일이"),he("깨끗히","깨끗이"),he("틈틈히","틈틈이"),he("곰곰히","곰곰이"),he("번번히","번번이"),he("일찌기","일찍이"),he("오랫만","오랜만"),he("오랜동안","오랫동안"),he("설겆이","설거지"),he("희안","희한"),he("어의없","어이없"),he("역활","역할"),he("되물림","대물림"),he("구지(?= |[.,])","굳이"),he("어짜피","어차피"),he("어줍잖","어쭙잖"),he("널부러","널브러"),he("닥달","닦달"),he("짜집기","짜깁기"),he("설레임","설렘"),he("설레이","설레"),he("헤매이","헤매"),he("되뇌이","되뇌"),he("애시당초","애당초"),he("무릎쓰","무릅쓰"),he("뒤치닥거리","뒤치다꺼리"),he("개거품","게거품"),he("칠흙","칠흑"),he("희노애락","희로애락"),he("인권비","인건비"),he("뇌졸증","뇌졸중"),he("숫가락","숟가락"),he("육계장","육개장"),{re:/찌게(?! ?(하|해|했|되|만들))/g,fix:"찌개",kind:"낱말"},he("떡볶기","떡볶이"),he("윗층","위층"),he("윗쪽","위쪽"),he("아랫층","아래층"),he("가르키","가리키(가리킬 때)·가르치(알려 줄 때)"),he("모자르","모자라"),he("들어나(?=[다고는면서지])","드러나"),he("들어났","드러났"),he("어떡게","어떻게"),he("어떻해","어떡해"),ye("되요","돼요"),ye("되서(?![가-힣])","돼서"),ye("되야","돼야"),ye("됬","됐"),ye("떄","때"),ye("됀","된"),ye("뵈요","봬요"),ye("뵜","뵀"),ye("(?<=[가-힣])이예요","이에요"),ye("아니예요","아니에요"),ye("있슴(?![가-힣])","있음"),ye("없슴(?![가-힣])","없음"),ye("알맞는","알맞은"),ye("걸맞는","걸맞은"),ye("치뤄","치러"),ye("치뤘","치렀"),ye("잠궈","잠가"),ye("잠궜","잠갔"),ye("담궈","담가"),ye("담궜","담갔"),ye("삼가해","삼가"),ye("(?<![가-힣])할려고","하려고"),ye("(?<![가-힣])할려면","하려면"),ye("(?<![가-힣])볼려고","보려고"),ye("(?<![가-힣])먹을려고","먹으려고"),ye("(?<![가-힣])될려고","되려고"),ye("안절부절(?=하|했|한)","안절부절못"),{re:/않(?= ?(하|해|했|된|되|돼))/g,fix:"안",kind:"어미"},{re:/(?<=지 )안(?=[아았는을])/g,fix:"않",kind:"어미"},{re:/가능한 (?=빨리|많이|빠르게|일찍|자주|정확하게|짧게)/g,fix:"가능한 한 ",kind:"표현"},{re:/(?<=답을 )맞(?=추|춰|췄)/g,fix:"맞히(정답을 맞히다)",kind:"표현"},{re:/(?<=사단이 )(났|나)/g,fix:"'사달이 났다'",kind:"표현"},{re:/(?<=(?:하기|하시기|되기|되시기|가기|오기)를 )바래/g,fix:"바라",kind:"표현"},{re:/(?<=(?:하길|되길|가길|오길) )바래/g,fix:"바라",kind:"표현"},he("컨텐츠","콘텐츠","외래어"),he("메세지","메시지","외래어"),he("악세사리","액세서리","외래어"),he("악세서리","액세서리","외래어"),he("리더쉽","리더십","외래어"),he("멤버쉽","멤버십","외래어"),he("파트너쉽","파트너십","외래어"),he("스폰서쉽","스폰서십","외래어"),he("타겟","타깃","외래어"),he("비지니스","비즈니스","외래어"),he("워크샵","워크숍","외래어"),he("스케쥴","스케줄","외래어"),he("쥬스","주스","외래어"),he("초콜렛","초콜릿","외래어"),he("케익","케이크","외래어"),he("카페트","카펫","외래어"),he("부페","뷔페","외래어"),he("렌트카","렌터카","외래어"),he("프로포즈","프러포즈","외래어"),he("로보트","로봇","외래어"),he("앙케이트","앙케트","외래어"),he("엑세스","액세스","외래어"),he("어플리케이션","애플리케이션","외래어"),he("싸이트","사이트","외래어"),he("화이팅","파이팅","외래어"),he("데이타","데이터","외래어"),he("컨셉","콘셉트","외래어"),he("팜플렛","팸플릿","외래어")],pe=e=>(e.charCodeAt(0)-44032)%28,ge=e=>!!e&&e>="가"&&e<="힣";function fe(e){const t=[];for(const n of e.matchAll(/([가-힣])(께|껄)(?=요|[\s.,!?~]|$)/g))8===pe(n[1])&&t.push({wrong:n[0],fix:`${n[1]}${"께"===n[2]?"게":"걸"}`});return t}function xe(e){const t=[];for(const n of e.matchAll(/([가-힣])(율|률)/g)){if(!ge(n[1]))continue;const e=pe(n[1]),s=0===e||4===e?"율":"률";n[2]!==s&&t.push({wrong:n[0],fix:`${n[1]}${s}`})}return t}function be(e){const t=[];for(const n of je(e.text)){const s=[];for(const e of me)for(const t of n.matchAll(e.re))s.push({wrong:t[0].trim(),fix:e.fix.trim()});s.push(...fe(n),...xe(n));const d=new Set;for(const a of s)d.has(a.wrong)||(d.add(a.wrong),t.push({sectionId:e.id,rule:"common_mistake",severity:"warn",detail:`"${a.wrong}" → "${a.fix}"`,sentence:n}))}return t}function je(e){return function(e){return e.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/https?:\/\/\S+/g,"")}(e).replace(/\n+/g,"\n").split(/(?<=[.!?。])\s+|\n/).map(e=>e.replace(/^[#>\-*\s|]+/,"").trim()).filter(e=>e.length>3&&!e.startsWith("|"))}function we(e){const t=je(e).map(e=>e.length),n=t.length||1;return{chars:e.replace(/^#.*$/gm,"").trim().length,sentences:t.length,sentenceAvg:Math.round(t.reduce((e,t)=>e+t,0)/n*10)/10,long100:Math.round(t.filter(e=>e>=100).length/n*1e3)/10,short25:Math.round(t.filter(e=>e<25).length/n*1e3)/10}}const ke=[{re:/완벽한|압도적인|독보적인|특별한 경험/,label:"상투 극찬"},{re:/이상으로 .{0,10}(살펴|알아)/,label:"요약형 맺음"},{re:/(이번 글|이 글)에서(는)? .{0,30}(살펴보|알아보|따라가|다루|정리해)/,label:"메타 서술"},{re:/결론적으로|요약하자면|정리하자면|^정리하면|^요컨대|^종합하면/,label:"정리형 연결어"},{re:/(앞으로|다음에는?|이제부터).{0,40}(보게|하게|찾게|쓰게|되게) 될 것 같다/,label:"작가 행동을 지어냈을 수 있음"},{re:/(기준|대상)[이가과은는]?.{0,12}(다르|달라).{0,20}(겹쳐|합쳐|곧바로|하나로|그대로).{0,8}(읽|비교|보)/,label:"정형 문장 (기준이 달라 합쳐 읽기 어렵다)"}];function Ne(e,t=[]){const n=[];for(const s of je(e.text)){for(const t of ke)t.re.test(s)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"warn",detail:t.label,sentence:s});for(const d of t)d&&s.includes(d)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"block",detail:`금지 표현 "${d}"`,sentence:s})}return n}const ve=/[\u3040-\u30ff\u31f0-\u31ff\uff66-\uff9f]/,Se=/[\u3400-\u4dbf\u4e00-\u9fff]/g;function Ce(e,t=100){return je(e.text).filter(e=>e.length>t).map(n=>({sectionId:e.id,rule:"long_sentence",severity:"warn",detail:`${n.length}자 문장 (${t}자 넘음)`,sentence:n}))}const Ie=/^(또한|그리고|하지만|그러나|그런데|또|특히|이처럼|따라서|즉|게다가|물론|결국)[\s,]/;function $e(e){const t=je(e.text),n=t.map(e=>e.split(/[\s,]/)[0]??""),s=[];for(let d=1;d<t.length;d++){const a=n[d];if(a.length<2||a!==n[d-1])continue;const i=Ie.test(t[d])&&Ie.test(t[d-1]),r=d>=2&&n[d-2]===a;(i||r)&&s.push({sectionId:e.id,rule:"same_start",severity:"warn",detail:`"${a}"(으)로 시작하는 문장이 이어짐`,sentence:t[d]})}return s}const Ae=new RegExp(`(?:^|[\\s"'(“‘])(${["정말","정말로","진짜","진짜로","너무","너무나","아주","매우","완전","엄청","굉장히","상당히","꽤","좀","조금","약간","거의","솔직히","사실","항상","늘","자주","무척","되게","많이","훨씬","딱","전혀","결코","절대","분명","확실히","당연히","역시","그냥","막","가장","제일","특히"].join("|")})(?=[\\s,.!?)”’]|$)`,"g");function Be(e,t=1){return je(e.text).flatMap(n=>{const s=[...n.matchAll(Ae)].map(e=>e[1]??"");return s.length>t?[{sectionId:e.id,rule:"adverb_heavy",severity:"warn",detail:`부사 ${s.length}개: ${s.join("·")}`,sentence:n}]:[]})}const Ee=/(?:고|는데|ㄴ데|은데|지만|며|면서|거나|니까|므로|어서|아서|해서|라서|려고|더니|다가)(?=[,\s])/g,Pe=/(?:^|\s)(그리고|그런데|그래서|그러나|하지만|그러면서|그러니까|그러므로|그렇지만|그러다가)(?=[,\s])/g;function Me(e,t=3){return je(e.text).flatMap(n=>{const s=(n.replace(Pe," ").match(Ee)??[]).length+1;return s>t?[{sectionId:e.id,rule:"many_clauses",severity:"warn",detail:`절 ${s}개`,sentence:n}]:[]})}function Oe(e){const t=e.map(e=>e.text).join("\n");if(!/\d{1,3}(,\d{3})+/.test(t))return[];const n=[];for(const t of e)for(const e of je(t.text))for(const s of e.matchAll(/(?<![\d,.])(\d{4,})(?![\d,])/g)){const d=Number(s[1]),a=e.slice(s.index+s[1].length),i=e.slice(0,s.index);4===s[1].length&&(d>=1900&&d<=2099||/^\s*(년|~)/.test(a)||/~\s*$/.test(i))||n.push({sectionId:t.id,rule:"number_format",severity:"warn",detail:`"${s[1]}" — 다른 곳은 쉼표를 썼어요 (${Number(d).toLocaleString("en-US")})`,sentence:e})}return n}function Te(e){const t=e.evidence.join(" ");return je(e.text).filter(e=>[...e.match(new RegExp(ve.source,"g"))??[],...e.replace(/\([^()]*\)/g,"").match(Se)??[]].some(e=>!t.includes(e))).map(t=>({sectionId:e.id,rule:"foreign_script",severity:"warn",detail:"한국어가 아닌 글자(일본어·한자)가 섞였어요",sentence:t}))}const qe={da:"-다",yo:"-요",sumnida:"-습니다"};function Fe(e,t="da"){const n=je(e.text).map(e=>({sent:e,t:e.replace(/[.!?"'”’)\]\s]+$/,"")}));return"da"===t?n.filter(({sent:e})=>/([어아여해에예지네]요|죠|(?<!아)니다)[.!]?$/.test(e)).map(({sent:t})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:"평서체('-다') 글에 다른 어미",sentence:t})):n.filter(({t:e})=>/다$/.test(e)&&!/(니다|니까)$/.test(e)).map(({sent:n})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:`존댓말('${qe[t]}') 글에 평서체('-다') 문장`,sentence:n}))}function Le(e){const t=new Map;for(const n of e)for(const e of je(n.text)){const s=e.split(/\s+/);for(let d=0;d+3<=s.length;d++){const a=s.slice(d,d+3).join(" ");if(a.length<8)continue;const i=t.get(a)??{n:0,sectionId:n.id,sentence:e};i.n++,t.set(a,i)}}return[...t.entries()].filter(([,e])=>e.n>=3).map(([e,t])=>({sectionId:t.sectionId,rule:"repetition",severity:"warn",detail:`"${e}" ${t.n}회 반복`,sentence:t.sentence}))}const Re=e=>{const t=e.replace(/\s+/g,""),n=new Set;for(let e=0;e+2<=t.length;e++)n.add(t.slice(e,e+2));return n};function Ke(e,t=.4){const n=e.flatMap(e=>je(e.text).filter(e=>e.length>=20).map(t=>({id:e.id,x:t,g:Re(t)}))),s=[],d=new Set;for(let e=0;e<n.length;e++)for(let a=e+1;a<n.length;a++){const i=n[e],r=n[a];if(i.id===r.id||d.has(r.x))continue;let l=0;i.g.forEach(e=>r.g.has(e)&&l++),l/(i.g.size+r.g.size-l)<t||(d.add(r.x),s.push({sectionId:r.id,rule:"repeated_sentence",severity:"warn",detail:`앞에서 거의 같은 말을 했어요: "${i.x.length>60?`${i.x.slice(0,60)}…`:i.x}"`,sentence:r.x}))}return s}const De=["core/paragraph","core/heading","core/list-item","core/quote","core/pullquote","core/verse"],He=e=>String(e??"").replace(/<br\s*\/?>/gi,"\n").replace(/<[^>]+>/g,"").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#0?39;/g,"'").replace(/&#(\d+);/g,(e,t)=>String.fromCodePoint(Number(t))).replace(/&#x([0-9a-f]+);/gi,(e,t)=>String.fromCodePoint(parseInt(t,16))).trim(),Ue=e=>["summary","faq"].includes(e?.attributes?.metadata?.editnday)||/\beditnday-(summary|faq|related)/.test(e?.attributes?.className||"");function Ve(e){const t=[],n=e=>{for(const s of e||[])if(!Ue(s)){if("core/paragraph"===s.name){const e=He(s.attributes?.content);e.length>500&&t.push({rule:"long_paragraph",detail:(0,r.sprintf)(/* translators: %s: t.length */ /* translators: %s: t.length */(0,r.__)("%s자 단락","editnday"),e.length),sentence:`${e.slice(0,40)}…`,clientId:s.clientId})}"core/image"!==s.name||String(s.attributes?.alt??"").trim()||t.push({rule:"image_alt",detail:(0,r.__)("대체 텍스트 없음","editnday"),sentence:(0,r.sprintf)(/* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */ /* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */(0,r.__)("이미지 %s","editnday"),String(s.attributes?.url??"").split("/").pop()||"").trim(),clientId:s.clientId}),n(s.innerBlocks)}};return n(e),t}function ze(e){const t=function(e){const t=[];let n={id:"s0",heading:"",lines:[],blockIds:[]},s=0;const d=e=>{for(const a of e||[])if(!Ue(a))if("core/heading"===a.name&&(a.attributes?.level??2)<=2)(n.lines.length||n.heading)&&t.push(n),n={id:"s"+ ++s,heading:He(a.attributes?.content),lines:[],blockIds:[a.clientId]};else{if(De.includes(a.name)){const e=He(a.attributes?.content??a.attributes?.value??a.attributes?.citation);e&&(n.lines.push(e),n.blockIds.push(a.clientId))}d(a.innerBlocks)}};return d(e),(n.lines.length||n.heading)&&t.push(n),t.map(e=>({id:e.id,heading:e.heading,text:e.lines.join("\n"),evidence:[],blockIds:e.blockIds}))}(e),n=t.map(e=>e.text).join("\n"),s=function(e){const t={da:0,yo:0,sumnida:0};for(const n of je(e)){const e=n.replace(/[.!?"'”’)\]\s]+$/,"");/(니다|니까)$/.test(e)?t.sumnida++:/([어아여해에예지네]요|죠)$/.test(e)?t.yo++:/다$/.test(e)&&t.da++}return t.da+t.yo+t.sumnida<4?null:Object.entries(t).sort((e,t)=>t[1]-e[1])[0][0]}(n),d=[...t.flatMap(e=>[...Ne(e),...be(e),...s?Fe(e,s):[],...Te(e),...Ce(e),...Be(e),...Me(e),...$e(e)]),...Ke(t),...Le(t),...Oe(t),...Ve(e)];return{sections:t,ending:s,issues:d,metrics:we(n)}}const Ge=[(0,r.__)("에서부터","editnday"),(0,r.__)("이라는","editnday"),(0,r.__)("이라고","editnday"),(0,r.__)("으로는","editnday"),(0,r.__)("에서는","editnday"),(0,r.__)("에서도","editnday"),(0,r.__)("으로서","editnday"),(0,r.__)("으로써","editnday"),(0,r.__)("이에요","editnday"),(0,r.__)("입니다","editnday"),(0,r.__)("에게","editnday"),(0,r.__)("에서","editnday"),(0,r.__)("한테","editnday"),(0,r.__)("으로","editnday"),(0,r.__)("까지","editnday"),(0,r.__)("부터","editnday"),(0,r.__)("처럼","editnday"),(0,r.__)("보다","editnday"),(0,r.__)("이나","editnday"),(0,r.__)("이란","editnday"),(0,r.__)("이라","editnday"),(0,r.__)("이랑","editnday"),(0,r.__)("이다","editnday"),(0,r.__)("인데","editnday"),(0,r.__)("이고","editnday"),(0,r.__)("이며","editnday"),(0,r.__)("이죠","editnday"),(0,r.__)("이야","editnday"),(0,r.__)("로서","editnday"),(0,r.__)("로써","editnday"),(0,r.__)("로는","editnday"),(0,r.__)("에는","editnday"),(0,r.__)("에도","editnday"),(0,r.__)("와는","editnday"),(0,r.__)("과는","editnday"),(0,r.__)("라는","editnday"),(0,r.__)("라고","editnday"),(0,r.__)("마다","editnday"),(0,r.__)("조차","editnday"),(0,r.__)("밖에","editnday"),(0,r.__)("예요","editnday"),(0,r.__)("은","editnday"),(0,r.__)("는","editnday"),(0,r.__)("이","editnday"),(0,r.__)("가","editnday"),(0,r.__)("을","editnday"),(0,r.__)("를","editnday"),(0,r.__)("의","editnday"),(0,r.__)("에","editnday"),(0,r.__)("께","editnday"),(0,r.__)("로","editnday"),(0,r.__)("와","editnday"),(0,r.__)("과","editnday"),(0,r.__)("도","editnday"),(0,r.__)("만","editnday"),(0,r.__)("나","editnday"),(0,r.__)("란","editnday"),(0,r.__)("라","editnday"),(0,r.__)("랑","editnday"),(0,r.__)("다","editnday"),(0,r.__)("인","editnday"),(0,r.__)("고","editnday"),(0,r.__)("며","editnday"),(0,r.__)("죠","editnday"),(0,r.__)("야","editnday"),(0,r.__)("뿐","editnday")],Je=e=>!!e&&/[\p{L}\p{N}]/u.test(e);function We(e,t){const n=String(t||"").toLowerCase().replace(/\s+/g,""),s=String(e||"").toLowerCase();if(!n||!s)return 0;const d=[];let a="";for(let e=0;e<s.length;e++)/\s/.test(s[e])||(d.push(e),a+=s[e]);let i=0,r=0;for(;;){const e=a.indexOf(n,r);if(e<0)break;r=e+1;const t=d[e],l=d[e+n.length-1]+1;if(Je(s[t-1]))continue;const o=s.slice(l);if(!Je(o[0])){i++;continue}const c=Ge.find(e=>o.startsWith(e));c&&!Je(o[c.length])&&i++}return i}const Xe=(e,t="")=>(e.find(([e])=>e)||[null,t])[1],Ze=()=>(0,J.select)("core/editor"),Ye=e=>(0,J.dispatch)("core/editor").editPost(e),Qe=e=>{try{return JSON.parse(Ze().getEditedPostAttribute("meta")?.[e]||"{}")||{}}catch(e){return{}}},et=(e,t)=>Ye({meta:{[e]:JSON.stringify(t)}}),tt=()=>String(Ze().getEditedPostContent()).replace(/<!--[\s\S]*?-->/g,"").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();function nt({near:e=[]}){const{all:t,chosen:n}=(0,J.useSelect)(e=>({all:e("core").getEntityRecords("taxonomy","category",{per_page:100,hide_empty:!1,_fields:"id,name"})||[],chosen:e("core/editor").getEditedPostAttribute("categories")||[]}),[]);return(0,f.jsx)("span",{className:"ed-chips",children:t.filter(e=>e.id!==it()).map(t=>(0,f.jsxs)(S,{on:n.includes(t.id),lav:!n.includes(t.id)&&e.includes(dt(t.name)),onClick:()=>(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n.filter(e=>e!==it()),e];Ye({categories:t.length?t:[it()]})})(t.id),children:[dt(t.name),rt(t.id)&&(0,f.jsx)("span",{className:"ed-chip__lock",title:(0,r.sprintf)(/* translators: %s: memberOnly( c.id ).join( ', ' ) */ /* translators: %s: memberOnly( c.id ).join( ', ' ) */(0,r.__)("SureMembers 회원 전용: %s","editnday"),rt(t.id).join(", ")),children:(0,r.__)("회원 전용","editnday")})]},t.id))})}function st({panel:e,onDone:t}){const[n,s]=(0,o.useState)(null),[d,a]=(0,o.useState)(!1),[i,l]=(0,o.useState)(null);return(0,f.jsxs)("div",{className:"ed-redo",children:[(0,f.jsxs)("span",{className:"ed-small",children:[(0,r.__)("딱 맞는 카테고리가 없어요.","editnday")," ",e.near?.length?(0,r.__)("보라색이 그나마 가까운 곳이에요.","editnday"):"",(0,r.__)("골라 주세요.","editnday")]}),(0,f.jsx)(nt,{near:e.near||[]}),null===n?(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(e.suggest||""),children:(0,r.__)("+ 새 카테고리 만들기","editnday")}):(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,r.__)("새 카테고리 이름","editnday"),value:n,onChange:s}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:d||!n.trim(),onClick:async()=>{a(!0),l(null);try{const e=await z()({path:"/wp/v2/categories",method:"POST",data:{name:n.trim()}}).catch(async e=>"term_exists"===e?.code?{id:e.data?.term_id}:Promise.reject(e));e?.id&&Ye({categories:[e.id]}),t?.()}catch(e){l((0,r.__)("카테고리를 만들지 못했어요. 권한을 확인해 주세요.","editnday"))}finally{a(!1)}},children:(0,r.__)("만들기","editnday")})]}),i&&(0,f.jsx)("span",{className:"ed-small is-error",children:i})]})}const dt=e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value},at=e=>{try{return decodeURIComponent(e||"")}catch(t){return e||""}},it=()=>window.editndayConfig?.defaultCategory,rt=e=>window.editndayConfig?.memberCategories?.[e]||null,lt=(e,t)=>{const n=String(t||"").trim();if(!n)return!1;const s=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[^\\p{L}\\p{N}])${s}($|[^\\p{L}\\p{N}])`,"iu").test(String(e||""))},ot=/(에서|으로|부터|까지|에게|처럼|보다|의|은|는|이|가|을|를|와|과|로|에|도|만)$/;function ct(e){const t=e.split(/\s+/).map(e=>e.replace(ot,"").toLowerCase()).filter(Boolean);let n=null;const s=e=>{for(const d of e){if("core/paragraph"===d.name||"core/list-item"===d.name){const e=He(String(d.attributes.content??""));for(const s of e.split(/(?<=[.!?。])\s+/)){const e=s.trim();if(e.length<8)continue;const d=e.toLowerCase(),a=t.filter(e=>d.includes(e)).length;a&&(!n||a>n.score)&&(n={sentence:e,score:a})}}d.innerBlocks?.length&&s(d.innerBlocks)}};return s((0,J.select)("core/block-editor").getBlocks()),n?.sentence??null}function _t({keyword:e}){const t=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=(0,o.useMemo)(()=>ct(e),[e,t]);return n?(0,f.jsxs)("span",{className:"ed-kwplace",children:[(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
    3 (0,r.__)('이 문장에 "%s"를 그대로 넣으면 돼요:',"editnday"),e)}),(0,f.jsx)("span",{className:"ed-quote",children:n}),(0,f.jsxs)("span",{className:"ed-row ed-gap6",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>_e(n),children:(0,r.__)("본문에서 보기","editnday")}),y(_.keywordFix,{keyword:e,sentence:n})]})]}):(0,f.jsx)("span",{className:"ed-muted ed-kwplace",children:(0,r.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
    4 (0,r.__)('본문 첫 단락에 "%s"를 그대로 한 번 넣어 보세요 (바로 뒤에 조사 없이).',"editnday"),e)})}function ut({keyword:e,seo:t}){const[n,s]=(0,o.useState)(!1),d=window.editndayConfig?.seoPlugin;if(!e?.trim()||!d)return null;const a=[!lt(tt(),e)&&(0,r.__)("본문","editnday"),!lt(t.title,e)&&(0,r.__)("제목","editnday"),!lt(t.description,e)&&(0,r.__)("설명","editnday")].filter(Boolean);return a.length?(0,f.jsxs)("span",{className:"ed-small is-warn",children:[(0,r.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */ /* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */
    5 (0,r.__)("%1$s 점수로는 %2$s에서 못 찾아요","editnday"),d,a.join("·"))," ",(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!n),children:n?(0,r.__)("닫기","editnday"):(0,r.__)("왜?","editnday")}),n&&(0,f.jsx)("span",{className:"ed-muted ed-koseo__hint",children:(0,r.__)("조사가 붙거나('코스피는') 띄어쓰기가 다르면 다른 말로 봐요. 구글·네이버는 같은 말로 보니 점수만의 문제예요.","editnday")}),!lt(tt(),e)&&(0,f.jsx)(_t,{keyword:e})]}):(0,f.jsx)("span",{className:"ed-small",children:(0,r.sprintf)(/* translators: %s: SEO 플러그인 이름 */ /* translators: %s: SEO 플러그인 이름 */
    6 (0,r.__)("%s 키워드 점검 통과","editnday"),d)})}const ht=[["excerpt",(0,r.__)("발췌문","editnday")],["tags",(0,r.__)("태그","editnday"),(0,r.__)("있는 태그 우선","editnday")],["category",(0,r.__)("카테고리","editnday"),(0,r.__)("있는 것 중에서","editnday")],["slug",(0,r.__)("영문 주소","editnday")],["seo",(0,r.__)("SEO 제목·설명","editnday"),(0,r.__)("Fine Keyword 포함","editnday")],["aeo","AEO",(0,r.__)("질문·답","editnday")],["geo","GEO",(0,r.__)("AI 인용용 요약","editnday")]];async function yt(e){const t=[];for(const n of e){const e=(await z()({path:`/wp/v2/tags?search=${encodeURIComponent(n)}&per_page=20&_fields=id,name`})).find(e=>e.name===n);t.push(e?e.id:(await z()({path:"/wp/v2/tags",method:"POST",data:{name:n}})).id)}return t}const mt=e=>String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),pt=(0,r.__)("한눈에 보는 질문과 답","editnday");function gt({summary:e,faq:t},n=["summary","faq"]){const s=(0,J.select)("core/block-editor").getBlocks().filter(e=>n.includes(e.attributes?.metadata?.editnday)),d=String(s.find(e=>"faq"===e.attributes.metadata.editnday)?.innerBlocks.find(e=>"core/heading"===e.name)?.attributes.content||"").trim(),a=s.map(e=>e.clientId);a.length&&(0,J.dispatch)("core/block-editor").removeBlocks(a,!1),t=n.includes("faq")?(t||[]).filter(e=>e.question?.trim()&&e.answer?.trim()):[],e?.trim()&&n.includes("summary")&&(0,J.dispatch)("core/block-editor").insertBlocks((0,G.createBlock)("core/group",{metadata:{editnday:"summary",name:(0,r.__)("요약","editnday")},className:"editnday-box editnday-box--summary"},[(0,G.createBlock)("core/paragraph",{content:(0,r.sprintf)(/* translators: %s: asText( summary ) */ /* translators: %s: asText( summary ) */(0,r.__)("<strong>요약</strong> %s","editnday"),mt(e))})]),0),t?.length&&(0,J.dispatch)("core/block-editor").insertBlocks((0,G.createBlock)("core/group",{metadata:{editnday:"faq",name:(0,r.__)("질문과 답","editnday")},className:"editnday-box editnday-box--faq"},[(0,G.createBlock)("core/heading",{level:2,content:d&&"자주 묻는 질문"!==d?d:pt}),...t.map((e,t)=>(0,G.createBlock)("core/details",{summary:mt(e.question),showContent:0===t},[(0,G.createBlock)("core/paragraph",{content:mt(e.answer)})]))]))}function ft(){return(0,J.useSelect)(e=>{const t=e("core/editor"),n=t.getEditedPostAttribute("featured_media"),s=n?e("core").getMedia(n):null;return{postId:t.getCurrentPostId(),title:t.getEditedPostAttribute("title"),excerpt:t.getEditedPostAttribute("excerpt"),slug:t.getEditedPostAttribute("slug"),tags:t.getEditedPostAttribute("tags")||[],categories:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()),categoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),memberCategoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>rt(e)).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),featured:n||0,featuredAlt:s?.alt_text??"",featuredUrl:s?.media_details?.sizes?.medium?.source_url??s?.source_url,seo:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_seo||"{}")||{}}catch(e){return{}}})(),schema:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_schema||"{}")||{}}catch(e){return{}}})()}},[])}function xt(e){et("_editnday_seo",{...Qe("_editnday_seo"),keyword:String(e).slice(0,40)})}const bt='EditndayTitle, "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif';let jt=null;const wt=()=>{const e=window.editndayConfig?.titleFont;return jt||(jt=e&&window.FontFace?new window.FontFace("EditndayTitle",`url(${e})`,{weight:"100 900"}).load().then(e=>document.fonts.add(e)).catch(()=>null):Promise.resolve()),jt},kt=[["ink",(0,r.__)("먹색","editnday"),["#1f2a2c"],"#ffffff"],["cream",(0,r.__)("크림","editnday"),["#f4eee3"],"#243235"],["lavender",(0,r.__)("라벤더","editnday"),["#a988e0","#6c48b5"],"#ffffff"],["ocean",(0,r.__)("바다","editnday"),["#0f4c75","#3a8fc9"],"#ffffff"],["sunset",(0,r.__)("노을","editnday"),["#ff9a8b","#f0627f"],"#ffffff"],["forest",(0,r.__)("숲","editnday"),["#134e5e","#5fa77a"],"#ffffff"]];async function Nt(e,t){let n;try{n=await new Promise(t=>e.toBlob(t,"image/jpeg",.9))}catch(e){n=null}if(!n)throw new Error((0,r.__)("이 사이트의 이미지 주소 설정 때문에 그림에 글자를 넣지 못했어요.","editnday"));const s=new window.FormData;s.append("postId",Ze().getCurrentPostId()),Object.entries(t).forEach(([e,t])=>s.append(e,t)),s.append("image",n,"featured-title.jpg");const d=await z()({path:"/editnday/v1/publish/image-title",method:"POST",body:s});return Ye({featured_media:d.id}),(0,J.dispatch)("core").invalidateResolution("getMedia",[d.id]),d}async function vt(e,t="ink"){if(!e.trim())return null;await wt();const[n,,s,d]=kt.find(e=>e[0]===t)||kt[0],a=1200,i=630,r=document.createElement("canvas");r.width=a,r.height=i;const l=r.getContext("2d");if(s.length>1){const e=l.createLinearGradient(0,0,a,i);e.addColorStop(0,s[0]),e.addColorStop(1,s[1]),l.fillStyle=e}else l.fillStyle=s[0];l.fillRect(0,0,a,i),l.font=`800 72px ${bt}`,l.fillStyle=d,l.textAlign="center",l.textBaseline="alphabetic";const o=St(l,e,1e3),c=Math.round(72*1.3),_=(i-(o.length-1)*c)/2+25.2-16;o.forEach((e,t)=>l.fillText(e,600,_+t*c));const u=String(window.editndayConfig?.siteName||"").trim();return u&&(l.font=`700 26px ${bt}`,l.globalAlpha=.72,l.fillText(u.slice(0,40),600,574),l.globalAlpha=1),Nt(r,{template:n,alt:e.trim()})}function St(e,t,n){const s=[];let d="";return t.trim().split(/\s+/).forEach(t=>(t=>{const a=d?d+" "+t:t;if(e.measureText(a).width<=n)d=a;else if(d&&(s.push(d),d=""),e.measureText(t).width<=n)d=t;else for(const a of t)e.measureText(d+a).width>n&&(s.push(d),d=""),d+=a})(t)),d&&s.push(d),s.length>3&&(s.length=3,s[2]=s[2].replace(/.$/,"…")),s}async function Ct(e,t="bottom",n="title"){const s=Ze().getEditedPostAttribute("featured_media");if(!s||!e.trim())return null;await wt();const d=await z()({path:`/editnday/v1/publish/image-source?id=${s}`}),a=await new Promise((e,t)=>{const n=new window.Image;n.crossOrigin="anonymous",n.onload=()=>e(n),n.onerror=()=>t(new Error((0,r.__)("그림을 불러오지 못했어요.","editnday"))),n.src=d.url}),i=Math.min(a.naturalWidth,1600),l=Math.round(a.naturalHeight*i/a.naturalWidth),o=document.createElement("canvas");o.width=i,o.height=l;const c=o.getContext("2d");c.drawImage(a,0,0,i,l);const _="caption"===n;if("center"===t)c.fillStyle=_?"rgba(0,0,0,0.18)":"rgba(0,0,0,0.42)",c.fillRect(0,0,i,l);else{const e="top"===t,n=_?.2:.65,s=c.createLinearGradient(0,e?l*n:l*(1-n),0,e?0:l);s.addColorStop(0,"rgba(0,0,0,0)"),s.addColorStop(1,_?"rgba(0,0,0,0.45)":"rgba(0,0,0,0.74)"),c.fillStyle=s,c.fillRect(0,e?0:l*(1-n),i,l*n)}const u=_?Math.max(12,Math.round(.011*i)):Math.round(.064*i);c.font=`${_?700:800} ${u}px ${bt}`,c.fillStyle="#fff",c.textBaseline="alphabetic",c.shadowColor="rgba(0,0,0,0.45)",c.shadowBlur=.25*u;const h=Math.round(i*(_?.03:.06)),y=St(c,e,i-h*(_?4:2)),m=Math.round(1.28*u),p=(y.length-1)*m;let g=l-h-p;return"top"===t?g=h+.85*u:"center"===t&&(g=(l-p)/2+.35*u),c.textAlign="center",y.forEach((e,t)=>c.fillText(e,i/2,g+t*m)),Nt(o,{sourceId:d.id})}function It(e){const t=(0,J.select)("core/block-editor"),n=`<a href="${encodeURI(e.url)}">${String(e.title).replace(/&/g,"&amp;").replace(/</g,"&lt;")}</a>`,s=(0,G.createBlock)("core/list-item",{content:n}),d=t.getBlocks().find(e=>"core/list"===e.name&&String(e.attributes.className||"").includes("editnday-related"));d?(0,J.dispatch)("core/block-editor").insertBlock(s,d.innerBlocks.length,d.clientId):(0,J.dispatch)("core/block-editor").insertBlocks([(0,G.createBlock)("core/paragraph",{content:(0,r.__)("<strong>함께 읽으면 좋은 글</strong>","editnday"),className:"editnday-related-title"}),(0,G.createBlock)("core/list",{className:"editnday-related"},[s])],t.getBlockCount())}const $t=(e,t)=>({excerpt:!!e.excerpt,tags:e.tags.length>0,category:e.categories.length>0,slug:/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e.slug||"")&&!/^\d+$/.test(e.slug),seo:!!e.seo.description,aeo:!!e.schema.faq?.some(e=>e.question?.trim()&&e.answer?.trim()),geo:!!e.schema.summary?.trim(),featured:!!e.featured,alt:!!e.featuredAlt}[t]),At=e=>String(e??"").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim();function Bt(e){const t=[];let n="",s=0;const d=e=>{for(const a of e){const e=a.attributes?.metadata?.editnday;"core/heading"===a.name?t.push(At(a.attributes.content)):"core/paragraph"===a.name&&!n&&"summary"!==e&&At(a.attributes.content)?n=At(a.attributes.content):"core/image"===a.name&&a.attributes.url&&s++,"summary"!==e&&"faq"!==e&&a.innerBlocks?.length&&d(a.innerBlocks)}};d(e);const a=String(Ze().getEditedPostContent());return{headings:t,firstPara:n,images:s,links:(a.match(/<a\s[^>]*href=/gi)||[]).length,body:tt()}}function Et(e){const t=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=e.seo.kept||{};return function(e){const t=String(e.keyword||"").trim(),n=e=>[...String(e||"").trim()].length,s=[],d=(e,t,n,d,a)=>s.push({id:e,ok:t,label:n,hint:t?"":d,who:a});if(t){const s=e=>We(e,t)>0;d("title",s(e.title),s(e.title)?(0,r.__)("제목에 Fine Keyword","editnday"):(0,r.__)("제목에 Fine Keyword가 없어요","editnday"),(0,r.__)("검색 결과 제목 앞쪽에 넣으면 검색어와 바로 맞물려요","editnday"),(0,r.__)("구글·네이버","editnday")),d("first",s(e.firstPara),s(e.firstPara)?(0,r.__)("첫 단락에 Fine Keyword","editnday"):(0,r.__)("첫 단락에 Fine Keyword가 없어요","editnday"),(0,r.__)("무엇에 관한 글인지 첫 단락에서 밝히면 검색엔진과 AI가 주제를 잡기 쉬워요","editnday"),(0,r.__)("구글·네이버·AI","editnday"));const a=e.headings.some(s);d("heading",a,a?(0,r.__)("소제목에 Fine Keyword","editnday"):(0,r.__)("소제목에 Fine Keyword가 없어요","editnday"),(0,r.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,r.__)("소제목 %s개 중 하나에 넣으면 글의 짜임이 검색어와 이어져요","editnday"),e.headings.length),(0,r.__)("구글·네이버","editnday"));const i=We(e.body,t),l=n(e.body)?1e3*i/n(e.body):0;d("repeat",i>=1&&l<=6,Xe([[0===i,(0,r.__)("본문에 Fine Keyword가 없어요","editnday")],[l>6,(0,r.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,r.__)("본문에 Fine Keyword %s번 (많아요)","editnday"),i)]],(0,r.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,r.__)("본문에 Fine Keyword %s번","editnday"),i)),Xe([[0===i,(0,r.__)("본문에 실제로 쓰는 표기와 같은지 확인해 주세요 (예: 볼보EX60 / VolvoEX60)","editnday")]],(0,r.__)("같은 말을 너무 자주 되풀이하면 구글·네이버 모두 낮게 봐요. 대명사나 다른 표현으로 바꿔 보세요","editnday")),(0,r.__)("구글·네이버","editnday")),n(e.description)&&d("desc",s(e.description),s(e.description)?(0,r.__)("설명에 Fine Keyword","editnday"):(0,r.__)("설명에 Fine Keyword가 없어요","editnday"),(0,r.__)("순위와는 상관없지만, 검색어가 설명에 있으면 검색 결과에서 굵게 보여 눈에 띄어요","editnday"),(0,r.__)("구글·네이버","editnday"))}const a=n(e.title);d("titleLen",a>0&&a<=40,a?(0,r.sprintf)(/* translators: %s: tl */ /* translators: %s: tl */(0,r.__)("검색 결과 제목 %s자","editnday"),a):(0,r.__)("검색 결과 제목이 없어요","editnday"),Xe([[a>40,(0,r.__)("40자를 넘으면 검색 결과에서 잘려요","editnday")]],(0,r.__)("제목을 넣어 주세요","editnday")),(0,r.__)("구글·네이버","editnday"));const i=n(e.description);return d("descLen",i>=40&&i<=110,i?(0,r.sprintf)(/* translators: %s: dl */ /* translators: %s: dl */(0,r.__)("검색 결과 설명 %s자","editnday"),i):(0,r.__)("검색 결과 설명이 없어요","editnday"),Xe([[0===i,(0,r.__)("SEO 설명을 만들어 보세요. 없으면 검색엔진이 본문에서 아무 문장이나 가져가요","editnday")],[i<40,(0,r.__)("너무 짧으면 검색엔진이 본문에서 다른 문장을 가져가요","editnday")]],(0,r.__)("110자를 넘으면 잘려요","editnday")),(0,r.__)("구글·네이버","editnday")),d("headings",e.headings.length>=2,(0,r.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,r.__)("소제목 %s개","editnday"),e.headings.length),(0,r.__)("소제목으로 나누면 검색엔진이 단락별 주제를, AI가 답할 부분을 찾기 쉬워요","editnday"),(0,r.__)("구글·네이버·AI","editnday")),d("answer",!!e.summary||e.faq>0,Xe([[e.summary&&e.faq>0,(0,r.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,r.__)("요약과 질문답 %s개","editnday"),e.faq)],[e.summary,(0,r.__)("요약 있음","editnday")],[e.faq>0,(0,r.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,r.__)("질문답 %s개","editnday"),e.faq)]],(0,r.__)("요약·질문답이 없어요","editnday")),(0,r.__)("발행 준비의 AEO·GEO로 만들면 AI 답변에 인용되기 쉬워요","editnday"),"AI"),d("links",e.links>0,e.links?(0,r.sprintf)(/* translators: %s: o.links */ /* translators: %s: o.links */(0,r.__)("출처·관련 링크 %s개","editnday"),e.links):(0,r.__)("링크가 없어요","editnday"),(0,r.__)("출처가 보이면 믿을 만한 글로 보고, AI도 근거로 인용해요","editnday"),(0,r.__)("구글·네이버·AI","editnday")),d("images",e.images>0,e.images?(0,r.sprintf)(/* translators: %s: o.images */ /* translators: %s: o.images */(0,r.__)("본문 이미지 %s개","editnday"),e.images):(0,r.__)("본문 이미지가 없어요 (대표 이미지만)","editnday"),(0,r.__)("본문에 사진·도표가 있으면 이미지 검색과 네이버 노출에 도움이 돼요","editnday"),(0,r.__)("구글·네이버","editnday")),s}({keyword:e.seo.keyword,title:n.title||e.seo.title||e.title||"",description:n.description||e.seo.description||"",summary:!!e.schema.summary,faq:e.schema.faq?.length||0,...Bt(t)})}function Pt({st:e}){const[t,n]=(0,o.useState)(!1),s=Et(e),d=s.filter(e=>e.ok).length,a=s.filter(e=>!e.ok),[i,l]=(0,o.useState)("");return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(a.length?"":" is-ok"),children:(0,r.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
    7 (0,r.__)("%1$d개 중 %2$d개 통과","editnday"),s.length,d)})]}),!e.seo.keyword?.trim()&&(0,f.jsxs)("div",{className:"ed-koseo__kw",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,r.__)("예: 노벨문학상","editnday"),value:i,onChange:l,onKeyDown:e=>"Enter"===e.key&&i.trim()&&xt(i.trim())}),(0,f.jsx)(N,{disabled:!i.trim(),onClick:()=>xt(i.trim()),children:(0,r.__)("정하기","editnday")}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("정하면 제목·설명·본문에 키워드가 있는지도 봐요.","editnday")})]}),(t?s:a).map(e=>(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("span",{className:"ed-koseo__head",children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.who})]}),e.hint&&(0,f.jsx)("span",{className:"ed-koseo__hint",children:e.hint})]})]},e.id)),!a.length&&!t&&(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("모두 좋아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,r.__)("고칠 것만 보기","editnday"):(0,r.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,r.__)("통과한 것도 보기 (%s)","editnday"),d)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("조사·띄어쓰기가 달라도 같은 말로 봐요 (구글·네이버 기준)","editnday")})]})]})}function Mt({st:e}){const[t,n]=(0,o.useState)("google"),s=e.seo.kept||{},d=s.title||e.seo.title||e.title||"",a=s.description||e.seo.description||e.excerpt||"",i=window.editndayConfig?.seoPlugin,l=window.location.host,c=(e,t,n)=>e<t?(0,r.__)("짧음","editnday"):e>n?(0,r.__)("김","editnday"):(0,r.__)("적정","editnday");return(0,f.jsxs)(w,{children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색 결과 미리보기","editnday")}),(0,f.jsxs)("span",{className:"ed-chips",children:[(0,f.jsx)(S,{on:"google"===t,onClick:()=>n("google"),children:(0,r.__)("구글","editnday")}),(0,f.jsx)(S,{on:"naver"===t,onClick:()=>n("naver"),children:(0,r.__)("네이버","editnday")})]})]}),(0,f.jsxs)("div",{className:`ed-serp is-${t}`,children:[(0,f.jsxs)("span",{className:"ed-serp__u",children:[l," › ",at(e.slug)||"…"]}),(0,f.jsx)("span",{className:"ed-serp__t",children:d||(0,r.__)("제목 없음","editnday")}),(0,f.jsx)("span",{className:"ed-serp__d",children:a||(0,r.__)("설명이 없어요. SEO 설명을 만들어 보세요.","editnday")})]}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */ /* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */
    8 (0,r.__)("제목 %1$d자 (%2$s) · 설명 %3$d자 (%4$s)","editnday"),d.length,c(d.length,20,45),a.length,c(a.length,60,110))}),i&&(0,f.jsx)("span",{className:"ed-muted",children:s.title||s.description?(0,r.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */ /* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */(0,r.__)("%1$s에 직접 쓴 %2$s이 있어 그 값이 나가요. 에디튼 값을 쓰려면 %3$s에서 그 칸을 비워 주세요.","editnday"),i,[s.title&&(0,r.__)("제목","editnday"),s.description&&(0,r.__)("설명","editnday")].filter(Boolean).join("·"),i):(0,r.sprintf)(/* translators: %s: plugin */ /* translators: %s: plugin */(0,r.__)("저장하면 %s 칸에도 들어가요.","editnday"),i)})]})}function Ot(e,t){return t?(0,r.__)("닫기","editnday"):e?(0,r.__)("다시","editnday"):(0,r.__)("만들기","editnday")}function Tt(){const e=window.editndayConfig?.siteOpen;return e?.blocking?.length?(0,f.jsxs)(w,{className:"ed-ask ed-siteopen",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색에 나오지 않을 수 있어요","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.sprintf)(/* translators: %s: 안 된 워드프레스 설정 목록 */ /* translators: %s: 안 된 워드프레스 설정 목록 */
    9 (0,r.__)("워드프레스 설정에서 %s이(가) 아직 안 됐어요. 이대로 발행하면 검색엔진이 이 글을 찾지 못하거나 늦게 찾아요.","editnday"),e.blocking.join(", "))}),e.canManage&&(0,f.jsx)("a",{className:"ed-link",href:e.url,children:(0,r.__)("에디튼 → 사이트 오픈에서 확인하기","editnday")})]}):null}function qt(){const e=window.editndayConfig?.seoMode||{},t=(0,J.useSelect)(e=>"1"===e("core/editor").getEditedPostAttribute("meta")?._editnday_noindex,[]);return"with"===e.mode?(0,f.jsx)("p",{className:"ed-muted ed-seomode",children:(0,r.sprintf)(/* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */ /* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */
    10 (0,r.__)("%1$s와 함께 쓰는 중이에요. 검색엔진이 읽는 머리말(제목·설명·공유 미리보기)은 %1$s가 내고, 에디튼은 값을 채우고 점검해요.","editnday"),e.plugin)}):(0,f.jsxs)(w,{className:"ed-seomode",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색엔진·공유 머리말","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("SEO 플러그인 없이 쓰는 중이라 에디튼이 직접 내요: SEO 제목·설명, 카카오톡·페이스북 공유 미리보기, 글 구조화 데이터.","editnday")}),(0,f.jsx)(p.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("이 글은 검색 결과에 보이지 않게","editnday"),checked:t,onChange:e=>(0,J.dispatch)("core/editor").editPost({meta:{_editnday_noindex:e?"1":""}})})]})}function Ft({st:e}){const[t,n]=(0,o.useState)(!1),s=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),d=(0,J.useSelect)(e=>{const t=e("core/editor");return"auto-draft"===t.getEditedPostAttribute("status")?null:t.getEditedPostAttribute("modified")||null},[]),a=Bt(s),i=String(Ze().getEditedPostContent()),l=window.location.host;let c=0,_=0;for(const e of i.matchAll(/<a\s[^>]*href=["']([^"']+)["']/gi))try{const t=new URL(e[1],window.location.href);if(!/^https?:$/.test(t.protocol))continue;t.host===l?c++:_++}catch{}const u=window.editndayConfig?.aiReady||{},{score:h,items:y}=function(e){const t=String(e.body||""),n=t.split(/(?<=[.!?。])\s+|\n+/).filter(e=>/\d/.test(e)).length,s=[...t.replace(/\s+/g,"")].length,d=!e.modified||(e.now??Date.now())-new Date(e.modified).getTime()<31536e6,a=[],i=(e,t,n,s,d,i)=>a.push({part:e,id:t,points:n,ok:!!s,label:d,hint:s?"":i}),l=(0,r.__)("형식","editnday"),o=(0,r.__)("내용","editnday");return i(l,"lead",12,e.summaryVisible,(0,r.__)("결론 먼저 (글 앞 요약)","editnday"),(0,r.__)('GEO 요약을 "본문에 보이게"로 넣으면 AI가 첫 단락에서 답을 가져가요',"editnday")),i(l,"headings",8,e.headings>=3,(0,r.sprintf)(/* translators: %d: 소제목 수 */ /* translators: %d: 소제목 수 */(0,r.__)("소제목 %d개","editnday"),e.headings),(0,r.__)("소제목을 3개 이상으로 나누면 AI가 질문마다 답할 부분을 찾아요","editnday")),i(l,"faq",8,e.faq>=2,(0,r.sprintf)(/* translators: %d: 질문답 수 */ /* translators: %d: 질문답 수 */(0,r.__)("질문답 %d개","editnday"),e.faq),(0,r.__)("AEO 질문답을 2개 이상 넣어요","editnday")),i(l,"identity",6,e.identity,(0,r.__)("내 블로그 정체성","editnday"),(0,r.__)("사이트 오픈 4단계에서 한 줄 소개·다른 곳 주소를 넣으면 AI가 누가 쓴 글인지 알아봐요","editnday")),i(l,"internal",8,e.internal>=1,(0,r.sprintf)(/* translators: %d: 내부 링크 수 */ /* translators: %d: 내부 링크 수 */(0,r.__)("내 글 링크 %d개","editnday"),e.internal),(0,r.__)('이어지는 내 글을 하나 이상 연결해요 (발행 준비의 "이어지는 내 글")',"editnday")),i(l,"bots",8,!1!==e.bots,!1===e.bots?(0,r.__)("AI 검색 봇이 막힘","editnday"):(0,r.__)("AI 검색 봇 허용","editnday"),(0,r.__)("사이트 오픈 4단계에서 robots.txt·방화벽을 확인해요","editnday")),i(o,"numbers",12,n>=3,(0,r.sprintf)(/* translators: %d: 숫자 문장 수 */ /* translators: %d: 숫자 문장 수 */(0,r.__)("숫자가 든 문장 %d개","editnday"),n),(0,r.__)("통계·가격·날짜처럼 확인할 수 있는 숫자를 3문장 이상에 넣으면 AI가 근거로 써요","editnday")),i(o,"sources",12,e.external>=2,(0,r.sprintf)(/* translators: %d: 출처 링크 수 */ /* translators: %d: 출처 링크 수 */(0,r.__)("출처 링크 %d개","editnday"),e.external),(0,r.__)("숫자·주장의 출처를 2곳 이상 링크로 밝혀요","editnday")),i(o,"author",8,e.authorBio,(0,r.__)("저자 소개","editnday"),(0,r.__)("[사용자 → 프로필]의 자기소개를 채우면 누가 썼는지(전문성)가 보여요","editnday")),i(o,"fresh",8,d,d?(0,r.__)("1년 안에 고친 글","editnday"):(0,r.__)("1년 넘게 고치지 않은 글","editnday"),(0,r.__)("AI는 최신 정보를 인용해요. 숫자를 다시 확인하고 고쳐 주세요","editnday")),i(o,"length",10,s>=1500,(0,r.sprintf)(/* translators: %s: 글자 수 */ /* translators: %s: 글자 수 */(0,r.__)("본문 %s자","editnday"),s.toLocaleString("ko-KR")),(0,r.__)("1,500자 이상이면 AI가 인용할 근거가 충분해요","editnday")),{score:a.reduce((e,t)=>e+(t.ok?t.points:0),0),items:a}}({summaryVisible:s.some(e=>"summary"===e.attributes?.metadata?.editnday),headings:a.headings.length,faq:e.schema.faq?.length||0,identity:!!u.identity,internal:c,external:_,bots:u.bots??null,body:a.body,authorBio:!!u.authorBio,modified:d}),m=y.filter(e=>!e.ok).sort((e,t)=>t.points-e.points),p=h>=80?"is-ok":h>=60?"is-warn":"is-bad";return(0,f.jsxs)(w,{className:"ed-aicite",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("AI 인용 준비","editnday")}),(0,f.jsx)("span",{className:`ed-aicite__score ${p}`,children:(0,r.sprintf)(/* translators: %d: 점수 */ /* translators: %d: 점수 */
    11 (0,r.__)("%d / 100","editnday"),h)})]}),(0,f.jsx)("div",{className:"ed-aicite__bar","aria-hidden":"true",children:(0,f.jsx)("span",{className:p,style:{width:`${h}%`}})}),(0,f.jsx)("p",{className:"ed-muted ed-small",children:h>=80?(0,r.__)("ChatGPT·구글 AI 개요·네이버 AI 브리핑이 인용하기 좋은 글이에요.","editnday"):(0,r.__)("80점이 넘으면 AI 답변에 인용되기 좋은 글이에요. 점수가 큰 것부터 채워 보세요.","editnday")}),m.slice(0,t?m.length:3).map(e=>(0,f.jsxs)("div",{className:"ed-aicite__item",children:[(0,f.jsxs)("span",{className:"ed-aicite__pts",children:["+",e.points]}),(0,f.jsxs)("span",{children:[(0,f.jsx)("strong",{children:e.label}),(0,f.jsxs)("span",{className:"ed-muted ed-small",children:[" ",e.hint]})]})]},e.id)),m.length>3&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,r.__)("접기","editnday"):(0,r.sprintf)(/* translators: %d: 남은 항목 수 */ /* translators: %d: 남은 항목 수 */
    12 (0,r.__)("빠진 것 %d개 더 보기","editnday"),m.length-3)})]})}function Lt({st:e,onCheck:t}){const n=Et(e),s=n.filter(e=>e.ok).length;return(0,f.jsxs)(w,{className:"ed-koseo-line",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
    13 (0,r.__)("%1$d개 중 %2$d개 통과","editnday"),n.length,s)})]}),t&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:t,children:(0,r.__)("글 점검에서 자세히 보기","editnday")})]})}function Rt({onNew:e,onCheck:t}){const n=ft(),[s,d]=(0,o.useState)(null),[a,i]=(0,o.useState)(null),[l,c]=(0,o.useState)(null),[u,m]=(0,o.useState)(n.schema.mode||"visible"),[g,x]=(0,o.useState)(!1),[b,v]=(0,o.useState)(0),[C,I]=(0,o.useState)(null),[$,B]=(0,o.useState)(""),[P,M]=(0,o.useState)("bottom"),[T,q]=(0,o.useState)("title"),[F,L]=(0,o.useState)("ink"),[R,K]=(0,o.useState)(null),H=Qe("_editnday_indexed"),U=(0,J.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),V=(0,J.useSelect)(e=>e("core/editor").isSavingPost(),[]),G=(0,J.useSelect)(e=>{const t=e("core/editor");return"future"===t.getEditedPostAttribute("status")?t.getEditedPostAttribute("date"):null},[]),W=e=>!!s&&s.split(",").includes(e),X=async(e,t)=>{d(e),v(Date.now()),i(null);try{await t()}catch(e){i(e?.message&&!e.message.includes("<")?e.message:(0,r.__)("만들지 못했어요. 잠시 뒤 다시 해 주세요.","editnday"))}finally{d(null)}},Z={st:n,busy:s,isBusy:W,run:X,since:b,aeoMode:u,setCatPanel:I,setRedo:x,onImage:$,titlePos:P,titleKind:T},Y=(e,t={})=>y(_.publishFieldActions,{...Z,key:e,...t}),Q=()=>(0,f.jsxs)("span",{className:"ed-busy",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,r.__)("만드는 중","editnday")," ",(0,f.jsx)(E,{since:b})]});return(0,f.jsxs)(f.Fragment,{children:[G?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,r.__)("예약한 글","editnday"),title:(0,r.__)("예약한 글 다듬기","editnday"),sub:(0,r.__)("발행되기 전까지 대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)((0,r.sprintf)(/* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */ /* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */
    14 (0,r.__)("<b>%s</b>에 발행돼요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 저장]</b>을 눌러야 예약된 글에 들어가요. 시간은 오른쪽 위 <b>[예약됨]</b>에서 바꿔요.","editnday"),Dt(G)),{b:(0,f.jsx)("strong",{})})})]}):U?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,r.__)("발행한 글","editnday"),title:(0,r.__)("발행한 글 다듬기","editnday"),sub:(0,r.__)("대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)(/* translators: <b>…</b>는 굵게 (버튼 이름) */ /* translators: <b>…</b>는 굵게 (버튼 이름) */
    15 (0,r.__)("이미 공개된 글이에요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 사이트에 반영]</b>을 눌러야 사이트에 반영돼요.","editnday"),{b:(0,f.jsx)("strong",{})})})]}):(0,f.jsx)(A,{eyebrow:(0,r.__)("발행 준비","editnday"),title:(0,r.__)("발행 전에 다듬을 것","editnday"),sub:(0,r.__)("하나씩 하거나 한 번에 해요. 만든 값은 고칠 수 있어요.","editnday")}),a&&(0,f.jsx)("div",{className:"ed-note is-error",children:a}),(0,f.jsxs)(w,{className:"ed-tasks",children:[(0,f.jsxs)("div",{className:"ed-cardhead",children:[(0,f.jsxs)("span",{className:"ed-cardhead__t",children:[(0,r.__)("할 일","editnday")," ",(0,f.jsx)("span",{className:"ed-tag",children:(0,r.sprintf)(/* translators: 1: 된 것, 2: 전체 */ /* translators: 1: 된 것, 2: 전체 */
    16 (0,r.__)("%1$d / %2$d 됨","editnday"),ht.filter(([e])=>$t(n,e)).length+(n.featured?1:0)+(n.featuredAlt?1:0),ht.length+2)})]}),Y("all",{place:"head"})]}),Y("all",{place:"live"}),ht.map(([e,t,s])=>{const d=Y(e,{place:"row"}),a=!h()&&["seo","aeo","geo"].includes(e);return(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:`ed-circ${$t(n,e)?" is-filled":""}${W(e)?" is-busy":""}`,children:$t(n,e)&&(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-task__t",children:[t," ",s&&(0,f.jsxs)("span",{className:"ed-muted",children:["(",s,")"]})]}),W(e)&&(0,f.jsx)(Q,{}),!W(e)&&$t(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-done",onClick:()=>c(l===e?null:e),children:l===e?(0,r.__)("닫기","editnday"):(0,r.__)("보기","editnday")}),!W(e)&&!$t(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",onClick:()=>c(l===e?null:e),children:l===e?(0,r.__)("닫기","editnday"):d.length?(0,r.__)("직접","editnday"):(0,r.__)("직접 쓰기","editnday")}),!W(e)&&!$t(n,e)&&d]}),!$t(n,e)&&a&&(0,f.jsx)("div",{className:"ed-prohint-row",children:(0,f.jsx)(D,{label:(0,r.__)("AI로 만들기","editnday")})}),"category"===e&&C&&!$t(n,e)&&(0,f.jsx)(st,{panel:C,onDone:()=>I(null)}),l===e&&(0,f.jsx)(Vt,{k:e,st:n,mode:u,extra:Y(e,{place:"editor"}),below:Y(e,{place:"below"})})]},e)}),(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featured?" is-filled":""),children:!!n.featured&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,r.__)("대표 이미지","editnday")}),"featured"===s?(0,f.jsx)(Q,{}):(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>x(!g),children:Ot(n.featured,g)})]}),n.featuredUrl&&(0,f.jsx)("img",{className:"ed-thumb",src:n.featuredUrl,alt:n.featuredAlt}),n.featuredUrl&&(0,f.jsx)(Gt,{url:n.featuredUrl,title:n.seo.kept?.title||n.seo.title||n.title||"",description:n.seo.kept?.description||n.seo.description||""}),g&&(0,f.jsxs)("div",{className:"ed-redo",children:[Y("featured"),(0,f.jsx)(D,{label:(0,r.__)("AI로 그림 만들기","editnday")}),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,r.__)("그림에 넣을 제목 (선택)","editnday"),placeholder:(0,r.__)("비워 두면 글자 없는 그림","editnday"),value:$,onChange:B}),(0,f.jsxs)("div",{className:"ed-redo__title",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>B(n.title||""),children:(0,r.__)("글 제목 그대로 넣기","editnday")}),!!$.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["title",(0,r.__)("제목형","editnday")],["caption",(0,r.__)("캡션형","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:T===e,onClick:()=>q(e),children:t},e))}),!!$.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["top",(0,r.__)("위","editnday")],["center",(0,r.__)("가운데","editnday")],["bottom",(0,r.__)("아래","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:P===e,onClick:()=>M(e),children:t},e))})]}),(0,f.jsx)("div",{className:"ed-redo__actions",children:!!n.featured&&(0,f.jsx)(N,{disabled:!!s||!$.trim(),onClick:()=>X("featured",async()=>(await Ct($,P,T),x(!1))),children:(0,r.__)("지금 그림에 제목만 넣기","editnday")})})]}),(0,f.jsxs)("div",{className:"ed-tpl",children:[(0,f.jsx)("span",{className:"ed-small ed-strong",children:(0,r.__)("AI 없이 배경 틀로 만들기","editnday")}),(0,f.jsx)("span",{className:"ed-tpl__swatches",children:kt.map(([e,t,n,s])=>(0,f.jsx)("button",{type:"button",className:"ed-tpl__sw"+(F===e?" is-on":""),style:{background:n.length>1?`linear-gradient(135deg, ${n[0]}, ${n[1]})`:n[0],color:s},"aria-pressed":F===e,title:t,onClick:()=>L(e),children:(0,r.__)("가","editnday")},e))}),(0,f.jsx)(N,{disabled:!!s||!($.trim()||n.title?.trim()),onClick:()=>X("featured",async()=>(await vt($.trim()||n.title,F),x(!1))),children:(0,r.__)("배경 틀로 만들기","editnday")}),(0,f.jsxs)("span",{className:"ed-muted",children:[(0,r.__)('위 "그림에 넣을 제목"을, 비워 두면 글 제목을 1200×630 그림 가운데에 넣어요.',"editnday")," ","가운데에 넣어요."]})]}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>{const e=window.wp?.media?.({title:(0,r.__)("대표 이미지 고르기","editnday"),library:{type:"image"},multiple:!1,button:{text:(0,r.__)("대표 이미지로","editnday")}});e&&(e.on("select",()=>{const t=e.state().get("selection").first()?.toJSON();t?.id&&Ye({featured_media:t.id}),x(!1)}),e.open())},children:(0,r.__)("미디어 라이브러리에서 고르기","editnday")})]})]}),(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featuredAlt?" is-filled":""),children:n.featuredAlt&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,r.__)("대표 이미지 ALT","editnday")}),"alt"===s?(0,f.jsx)(Q,{}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",disabled:!n.featured,onClick:()=>c("alt"===l?null:"alt"),children:"alt"===l?(0,r.__)("닫기","editnday"):(0,r.__)("직접 쓰기","editnday")}),Y("alt")]})]}),n.featuredAlt&&"alt"!==l&&(0,f.jsx)("p",{className:"ed-alttext",children:n.featuredAlt}),"alt"===l&&!!n.featured&&(0,f.jsx)(Ut,{id:n.featured,alt:n.featuredAlt,onDone:()=>c(null)})]}),Y("all"),(0,f.jsx)(Mt,{st:n}),(0,f.jsx)(Tt,{}),(0,f.jsx)(qt,{}),(0,f.jsx)(Ft,{st:n}),(0,f.jsx)(Lt,{st:n,onCheck:t}),(0,f.jsxs)(w,{children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("AEO·GEO 넣는 방식","editnday")}),(0,f.jsxs)(O,{checked:"visible"===u,onChange:()=>{m("visible"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"visible"}),gt(Qe("_editnday_schema"))},children:[(0,r.__)("본문에 보이게","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("· 글 앞 요약, 글 끝 자주 묻는 질문","editnday")})]}),(0,f.jsxs)(O,{checked:"structured"===u,onChange:()=>{m("structured"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"structured"}),gt({})},children:[(0,r.__)("구조화 데이터로만","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("· 본문 내용 그대로, 검색봇·AI가 읽는 형식","editnday")})]})]}),(0,f.jsxs)(w,{className:"ed-related",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("strong",{children:(0,r.__)("이어지는 내 글","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>X("related",async()=>{const e=await z()({path:"/editnday/v1/publish/related",method:"POST",data:{postId:n.postId,title:n.title,tags:n.tags,categories:n.categories,content:Ze().getEditedPostContent()}});K(e.items||[])}),children:R?(0,r.__)("다시 찾기","editnday"):(0,r.__)("찾기","editnday")})]}),null===R&&(0,f.jsx)("div",{className:"ed-muted",children:(0,r.__)("이 글과 태그·제목이 겹치는 내 공개 글을 찾아 본문 끝에 링크로 넣을 수 있어요.","editnday")}),R&&!R.length&&(0,f.jsx)("div",{className:"ed-muted",children:(0,r.__)("이어 붙일 만한 글을 찾지 못했어요. 태그를 먼저 달면 더 잘 찾아요.","editnday")}),(R||[]).map(e=>(0,f.jsxs)("div",{className:"ed-row ed-between ed-related__item",children:[(0,f.jsxs)("span",{children:[e.title," ",(0,f.jsx)("span",{className:"ed-muted",children:e.date})]}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:e.added,onClick:()=>{It(e),K(t=>t.map(t=>t.id===e.id?{...t,added:!0}:t))},children:e.added?(0,r.__)("넣었어요","editnday"):(0,r.__)("넣기","editnday")})]},e.id))]}),U&&!G&&H.at&&(0,f.jsxs)("div",{className:"ed-muted ed-indexed",children:[(0,r.__)("검색엔진에 알림:","editnday")," ",new Date(H.at).toLocaleString("ko-KR",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}),Object.entries(H.results||{}).map(([e,t])=>` · ${"naver"===e?(0,r.__)("네이버","editnday"):(0,r.__)("Bing 등","editnday")} ${t>=200&&t<300?"✓":"✕"}`)]}),(0,f.jsx)(Kt,{}),(0,f.jsx)(Ht,{live:U,scheduled:!!G}),(0,f.jsxs)("div",{className:"ed-foot",children:[G?(0,f.jsx)(k,{disabled:!!V,onClick:async()=>{await(0,J.dispatch)("core/editor").savePost(),(0,J.dispatch)("core/notices").createSuccessNotice((0,r.__)("저장했어요. 예약한 시간에 이 내용으로 발행돼요.","editnday"),{type:"snackbar"})},children:V?(0,r.__)("저장하는 중…","editnday"):(0,r.__)("바뀐 내용 저장","editnday")}):U?(0,f.jsx)(k,{disabled:!!V,onClick:async()=>{await(0,J.dispatch)("core/editor").savePost(),(0,J.dispatch)("core/notices").createSuccessNotice((0,r.__)("바뀐 내용을 사이트에 반영했어요.","editnday"),{type:"snackbar"})},children:V?(0,r.__)("반영하는 중…","editnday"):(0,r.__)("바뀐 내용 사이트에 반영","editnday")}):(0,f.jsx)(k,{onClick:()=>(0,J.dispatch)("core/editor").openPublishSidebar?.(),children:(0,r.__)("공개 전 점검하고 발행","editnday")}),(0,f.jsx)(N,{onClick:e,children:(0,r.__)("새 글 시작","editnday")})]})]})}function Kt(){const e=window.editndayConfig?.indexnow,[t,n]=(0,o.useState)(e?.state),[s,d]=(0,o.useState)(!1);if("unset"!==t||!e?.canManage||e?.blocked)return null;const a=async t=>{d(!0);try{const s=await z()({path:"/editnday/v1/indexnow",method:"POST",data:{on:t}});e.state=s.state,window.editndayConfig.autoSend&&(window.editndayConfig.autoSend.indexnow=!!s.available),n(s.state),(0,J.dispatch)("core/notices").createSuccessNotice(t?(0,r.__)("검색엔진에 알리기를 켰어요. 에디튼 → 설정에서 언제든 끌 수 있어요.","editnday"):(0,r.__)("켜지 않았어요. 에디튼 → 설정에서 언제든 켤 수 있어요.","editnday"),{type:"snackbar"})}catch(e){(0,J.dispatch)("core/notices").createErrorNotice(e?.message||(0,r.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{d(!1)}};return(0,f.jsxs)(w,{className:"ed-ask",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("발행하면 검색엔진에 알릴까요?","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("글을 발행하거나 고치면 그 글의 주소를 네이버·Bing 등에 바로 알려서, 새 글을 더 빨리 찾게 해요 (IndexNow). 글 주소만 보내고, 비공개 글은 보내지 않아요. 구글은 이 방식을 받지 않아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(N,{disabled:s,onClick:()=>a(!0),children:(0,r.__)("켜기","editnday")}),(0,f.jsx)(N,{disabled:s,onClick:()=>a(!1),children:(0,r.__)("지금은 안 함","editnday")})]})]})}function Dt(e){const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("ko-KR",{month:"long",day:"numeric",weekday:"short",hour:"numeric",minute:"2-digit"})}function Ht({live:e,scheduled:t}){const n=window.editndayConfig?.autoSend||{},s=!e||t,d=[s&&n.published&&(0,r.__)("고친 내용을 에디튼에 보내 초안과 비교해요","editnday"),n.indexnow&&(s?(0,r.__)("글 주소를 Bing·네이버에 바로 알려요","editnday"):(0,r.__)("반영하면 글 주소를 검색엔진에 다시 알려요","editnday"))].filter(Boolean);if(!d.length)return null;let a="";return t?a=(0,r.__)("예약 시간에 발행되면 자동으로:","editnday"):e||(a=(0,r.__)("발행하면 자동으로:","editnday")),(0,f.jsxs)("p",{className:"ed-muted ed-autosend",children:[a,d.join(" · "),"."," ",(0,f.jsx)("a",{href:window.editndayConfig?.settingsUrl,target:"_blank",rel:"noreferrer",children:(0,r.__)("설정에서 끄기","editnday")})]})}function Ut({id:e,alt:t,onDone:n}){const[s,d]=(0,o.useState)(t||""),[a,i]=(0,o.useState)(!1);return(0,f.jsxs)("div",{className:"ed-taskedit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,r.__)("대표 이미지 ALT","editnday"),help:(0,r.__)("그림에 무엇이 보이는지 한 문장으로. 검색엔진과 화면 읽기 프로그램이 읽어요.","editnday"),value:s,onChange:d}),(0,f.jsx)(N,{disabled:a||!s.trim(),onClick:async()=>{i(!0);try{await(0,J.dispatch)("core").saveEntityRecord("postType","attachment",{id:e,alt_text:s.trim()}),n()}catch(e){(0,J.dispatch)("core/notices").createErrorNotice(e?.message||(0,r.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{i(!1)}},children:a?(0,r.__)("저장 중…","editnday"):(0,r.__)("저장","editnday")})]})}function Vt({k:e,st:t,mode:n,extra:s=[],below:d=[]}){const a=(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(zt,{k:e,st:t,mode:n,extra:s}),d]});return["geo","aeo"].includes(e)||!s.length?a:(0,f.jsxs)(f.Fragment,{children:[a,(0,f.jsx)("div",{className:"ed-row",children:s})]})}function zt({k:e,st:t,mode:n,extra:s}){if("excerpt"===e)return(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,rows:3,value:t.excerpt,onChange:e=>Ye({excerpt:e})});if("slug"===e)return(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,value:at(t.slug),onChange:e=>Ye({slug:e})});if("seo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:"Fine Keyword",help:(0,r.__)("저장하면 SEO 플러그인 키워드 칸으로 옮겨요","editnday"),value:t.seo.keyword||"",onChange:e=>et("_editnday_seo",{...t.seo,keyword:e})}),y(_.keywordInfo,{keyword:t.seo.keyword||"",setKeyword:e=>et("_editnday_seo",{...t.seo,keyword:e})}),(0,f.jsx)(ut,{keyword:t.seo.keyword,seo:t.seo}),(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("SEO 제목","editnday"),value:t.seo.title||"",onChange:e=>et("_editnday_seo",{...t.seo,title:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("SEO 설명","editnday"),rows:3,value:t.seo.description||"",onChange:e=>et("_editnday_seo",{...t.seo,description:e})})]});const d="visible"===n,a=e=>et("_editnday_schema",{...t.schema,...e,mode:n}),i=e=>{gt(Qe("_editnday_schema"),[e]),(0,J.dispatch)("core/notices").createSuccessNotice("faq"===e?(0,r.__)("본문 끝 질문과 답을 바꿨어요.","editnday"):(0,r.__)("본문 앞 요약을 바꿨어요.","editnday"),{type:"snackbar"})},l=(0,f.jsx)("span",{className:"ed-muted",children:d?(0,r.__)("본문 박스를 바로 고쳐도 돼요. 여기서 고쳤다면 [본문에 반영]을 눌러야 본문이 바뀌어요.","editnday"):(0,r.__)("본문에는 안 보여요. 본문에 있는 내용만 남겨 주세요.","editnday")});if("geo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:d?(0,r.__)("글 앞 요약","editnday"):(0,r.__)("검색봇·AI가 읽는 요약","editnday"),help:(0,r.__)("글 전체를 두세 문장으로. 검색 결과와 AI 답변에 인용되기 좋아요.","editnday"),rows:4,value:t.schema.summary||"",onChange:e=>a({summary:e})}),!d&&window.editndayConfig?.seoPlugin?(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: %s: window.editndayConfig.seoPlugin */ /* translators: %s: window.editndayConfig.seoPlugin */(0,r.__)('%s가 글 정보를 이미 내고 있어, 같은 글이 두 번 잡히지 않게 요약은 구조화 데이터에 넣지 않아요. AI 인용에 쓰이게 하려면 "본문에 보이게"를 고르세요.',"editnday"),window.editndayConfig.seoPlugin)}):l,(0,f.jsxs)("div",{className:"ed-row",children:[d&&(0,f.jsx)(N,{disabled:!t.schema.summary?.trim(),onClick:()=>i("summary"),children:(0,r.__)("본문에 반영","editnday")}),s]})]});if("aeo"===e){const e=t.schema.faq?.length?t.schema.faq:[{question:"",answer:""}],n=(t,n)=>a({faq:e.map((e,s)=>s===t?{...e,...n}:e)});return(0,f.jsxs)("div",{className:"ed-faq",children:[e.map((t,s)=>(0,f.jsxs)("div",{className:"ed-faq__item is-edit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,r.sprintf)(/* translators: %s: i + 1 */ /* translators: %s: i + 1 */(0,r.__)("질문 %s","editnday"),s+1),placeholder:(0,r.__)("독자가 검색창에 칠 만한 질문","editnday"),value:t.question,onChange:e=>n(s,{question:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,r.__)("답","editnday"),rows:3,value:t.answer,onChange:e=>n(s,{answer:e})}),e.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>a({faq:e.filter((e,t)=>t!==s)}),children:(0,r.__)("이 질문 빼기","editnday")})]},s)),l,(0,f.jsxs)("div",{className:"ed-row",children:[e.length<6&&(0,f.jsx)(N,{onClick:()=>a({faq:[...e,{question:"",answer:""}]}),children:(0,r.__)("질문 더하기","editnday")}),d&&(0,f.jsx)(N,{disabled:!e.some(e=>e.question?.trim()&&e.answer?.trim()),onClick:()=>i("faq"),children:(0,r.__)("본문에 반영","editnday")}),s]})]})}return"category"===e?(0,f.jsx)(nt,{}):"tags"===e?(0,f.jsx)("span",{className:"ed-muted",children:t.tags.length?(0,r.__)("워드프레스 태그 칸에 넣었어요. 오른쪽 ‘글’ 설정에서 고칠 수 있어요.","editnday"):(0,r.__)("태그는 오른쪽 ‘글’ 설정의 태그 칸에서 넣어요. 이 글을 찾을 만한 낱말 3~5개면 충분해요.","editnday")}):null}function Gt({url:e,title:t,description:n}){const[s,d]=(0,o.useState)(!1);let a="";try{a=new URL(window.location.href).hostname.replace(/^www\./,"")}catch(e){}return s?(0,f.jsxs)("div",{className:"ed-share",children:[(0,f.jsxs)("div",{className:"ed-share__card",children:[(0,f.jsx)("div",{className:"ed-share__img",style:{backgroundImage:`url("${e}")`},role:"img","aria-label":(0,r.__)("1.91:1로 잘린 대표 이미지","editnday")}),(0,f.jsxs)("div",{className:"ed-share__text",children:[(0,f.jsx)("span",{className:"ed-muted",children:a}),(0,f.jsx)("strong",{children:t||(0,r.__)("(제목 없음)","editnday")}),n&&(0,f.jsx)("span",{className:"ed-share__desc",children:n})]})]}),(0,f.jsxs)("p",{className:"ed-muted",children:[(0,r.__)("카카오톡·페이스북·X 링크는 보통 가운데를 1.91:1(1200×630)로 잘라 보여요. 가장자리의 글자·얼굴이 잘리면 그림을 다시 고르거나 만들어 보세요.","editnday")," ",(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>d(!1),children:(0,r.__)("닫기","editnday")})]})]}):(0,f.jsx)("button",{type:"button",className:"ed-mini",style:{margin:"6px 0 2px"},onClick:()=>d(!0),children:(0,r.__)("공유될 때 모습 보기","editnday")})}function Jt(){const e=ft(),t=(0,c.applyFilters)(_.prepublishFixes,null),n=Et(e),s=n.filter(e=>!e.ok),[d,a]=(0,o.useState)(!1),[i,l]=(0,o.useState)(null),u=(()=>{try{const t=JSON.parse(e&&window.wp?.data?.select("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null");return t?t.reviewed?"done":"pending":"none"}catch(e){return"none"}})(),h=["none"!==u&&{ok:"done"===u,label:"done"===u?(0,r.__)("확인할 곳 처리함","editnday"):(0,r.__)("확인할 곳이 남아 있어요 (에디튼 사이드바)","editnday")},{ok:e.categories.length>0,label:e.categories.length?(0,r.sprintf)(/* translators: %s: st.categoryNames.join( ', ' ) */ /* translators: %s: st.categoryNames.join( ', ' ) */(0,r.__)("카테고리: %s","editnday"),e.categoryNames.join(", ")):(0,r.__)("카테고리를 아직 고르지 않았어요 (기본 카테고리만)","editnday"),fix:t&&(async()=>{const e=await t.text(["category"]);l(e.categories?.length?null:{near:e.nearCategories||[],suggest:e.newCategory||""})}),key:"category"},e.memberCategoryNames?.length>0&&{ok:!1,label:(0,r.sprintf)(/* translators: %s: st.memberCategoryNames.join( ', ' ) */ /* translators: %s: st.memberCategoryNames.join( ', ' ) */(0,r.__)("회원 전용 카테고리: %s — 공개해도 회원만 볼 수 있어요 (SureMembers)","editnday"),e.memberCategoryNames.join(", "))},{ok:!s.length,label:s.length?(0,r.sprintf)(/* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */ /* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */(0,r.__)("검색·AI 점검 %1$s/%2$s: %3$s%4$s (에디튼 사이드바 → 발행 준비)","editnday"),n.length-s.length,n.length,s.slice(0,2).map(e=>e.label).join(", "),s.length>2?(0,r.__)(" 등","editnday"):""):(0,r.sprintf)(/* translators: %1$s: ko.length, %2$s: ko.length */ /* translators: %1$s: ko.length, %2$s: ko.length */(0,r.__)("검색·AI 점검 %1$s/%2$s","editnday"),n.length,n.length)},{ok:!!e.excerpt,label:e.excerpt?(0,r.__)("발췌문 있음","editnday"):(0,r.__)("발췌문 없음","editnday"),fix:t&&(()=>t.text(["excerpt"]))},{ok:!!e.seo.description,label:e.seo.description?(0,r.__)("SEO 설명 있음","editnday"):(0,r.__)("SEO 설명 없음","editnday"),fix:t&&(()=>t.text(["seo"]))},{ok:!!e.featured,label:e.featured?(0,r.__)("대표 이미지 있음","editnday"):(0,r.__)("대표 이미지 없음","editnday"),fix:t?.featured},(e.schema.faq?.length||e.schema.summary)&&{ok:!0,label:(0,r.sprintf)(/* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */ /* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */(0,r.__)("검색봇·AI용 데이터: %1$s%2$s","editnday"),[e.schema.summary&&(0,r.__)("요약","editnday"),e.schema.faq?.length&&(0,r.sprintf)(/* translators: %d: 질문 수 */ /* translators: %d: 질문 수 */
    17 (0,r.__)("질문 %d개","editnday"),e.schema.faq.length)].filter(Boolean).join(" · "),"structured"===e.schema.mode?(0,r.__)(" (본문에 안 보임, 에디튼 사이드바에서 고침)","editnday"):"")},(window.editndayConfig?.autoSend?.published||window.editndayConfig?.autoSend?.indexnow)&&{ok:!0,label:(0,r.sprintf)(/* translators: %s: 발행 때 자동으로 하는 일 목록 */ /* translators: %s: 발행 때 자동으로 하는 일 목록 */(0,r.__)("발행되면(예약이면 그 시간에) 자동으로: %s (관리자 메뉴 에디튼에서 끌 수 있어요)","editnday"),[window.editndayConfig.autoSend.published&&(0,r.__)("고친 내용을 에디튼에 보내요","editnday"),window.editndayConfig.autoSend.indexnow&&(0,r.__)("글 주소를 검색엔진에 알려요","editnday")].filter(Boolean).join(" · "))},e.featured&&{ok:!!e.featuredAlt,label:e.featuredAlt?(0,r.__)("대표 이미지 ALT 있음","editnday"):(0,r.__)("대표 이미지 ALT 없음","editnday"),fix:t?.alt}].filter(Boolean),y=h.filter(e=>!e.ok&&e.fix);return(0,f.jsxs)("div",{className:"editnday ed-prepublish",children:[h.map(e=>(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsx)("span",{className:"ed-task__t",children:e.label}),!e.ok&&e.fix&&(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:d,onClick:async()=>{a(!0);try{await e.fix()}finally{a(!1)}},children:"category"===e.key?(0,r.__)("고르기","editnday"):(0,r.__)("AI로 만들기","editnday")})]}),"category"===e.key&&i&&!e.ok&&(0,f.jsx)(st,{panel:i,onDone:()=>l(null)})]},e.label)),y.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-ghost",disabled:d,onClick:async()=>{a(!0);try{const n=[!e.categories.length&&"category",!e.excerpt&&"excerpt",!e.seo.description&&"seo"].filter(Boolean);if(n.length){const e=await t.text(n);n.includes("category")&&!e.categories?.length&&l({near:e.nearCategories||[],suggest:e.newCategory||""})}e.featured||await t.featured(),await t.alt().catch(()=>{})}finally{a(!1)}},children:d?(0,r.__)("만드는 중…","editnday"):(0,r.__)("남은 것 모두 하기","editnday")})]})}const Wt=window.wp.plugins,Xt=window.wp.domReady;var Zt=n.n(Xt);const Yt=()=>"undefined"!=typeof window&&window.speechSynthesis?window.speechSynthesis:null;function Qt({result:e}){const[t,n]=(0,o.useState)(!1),[s,d]=(0,o.useState)(null);if((0,o.useEffect)(()=>()=>Yt()?.cancel(),[]),!t)return(0,f.jsx)("button",{type:"button",className:"ed-link ed-sentences__toggle",onClick:()=>n(!0),children:(0,r.__)("문장별로 보기","editnday")});const a=new Set(e.issues.filter(e=>["long_sentence","many_clauses","adverb_heavy"].includes(e.rule)).map(e=>e.sentence));return(0,f.jsxs)("div",{className:"ed-sentences",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("문장별로 보기","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{Yt()?.cancel(),d(null),n(!1)},children:(0,r.__)("접기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("한 줄에 한 문장이에요. 한 호흡(60자)을 넘으면 노랑, 100자를 넘으면 빨강. 소리 내어 읽어 어색하면 나눠요.","editnday")}),e.sections.map(e=>{const t=je(e.text);return t.length?(0,f.jsxs)("div",{className:"ed-sentences__sec",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("strong",{className:"ed-sentences__h",children:[e.heading||(0,r.__)("도입","editnday"),(0,f.jsxs)("span",{className:"ed-muted",children:[" · ",(0,r.sprintf)(/* translators: %d: 문장 수 */ /* translators: %d: 문장 수 */
    18 (0,r.__)("%d문장","editnday"),t.length)]})]}),Yt()&&(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>(e=>{const t=Yt();if(!t)return;if(s===e.id)return t.cancel(),void d(null);t.cancel();const n=new window.SpeechSynthesisUtterance((e.heading?e.heading+". ":"")+je(e.text).join(" "));n.lang="ko-KR",n.rate=1,n.onend=()=>d(null),n.onerror=()=>d(null),d(e.id),t.speak(n)})(e),"aria-pressed":s===e.id,children:s===e.id?(0,r.__)("멈추기","editnday"):(0,r.__)("읽어 주기","editnday")})]}),t.map((e,t)=>{let n="";return e.length>100?n=" is-long":e.length>60&&(n=" is-breath"),(0,f.jsxs)("button",{type:"button",className:`ed-sentences__s${n}${a.has(e)?" is-flag":""}`,onClick:()=>_e(e),title:(0,r.__)("본문에서 보기","editnday"),children:[(0,f.jsx)("span",{className:"ed-sentences__n",children:e.length}),(0,f.jsx)("span",{children:e})]},t)})]},e.id):null})]})}const en={da:(0,r.__)("-다","editnday"),yo:(0,r.__)("-요","editnday"),sumnida:(0,r.__)("-습니다","editnday")},tn=[{id:"ai",rules:["banned_phrase"],label:(0,r.__)("AI가 쓴 티가 나는 표현","editnday"),hint:(0,r.__)('상투적인 칭찬, 글을 소개하는 문장, "결론적으로" 같은 정리 말은 빼거나 내 말로 바꿔요.',"editnday")},{id:"spell",rules:["common_mistake"],label:(0,r.__)("자주 틀리는 표현","editnday"),hint:(0,r.__)("몇일 → 며칠, 되요 → 돼요, 컨텐츠 → 콘텐츠처럼 자주 틀리는 표현을 표준 표기로 고쳐요. 맞춤법 전체를 보지는 않아요.","editnday")},{id:"ending",rules:["ending_mixed"],label:(0,r.__)("어미 섞임","editnday"),hint:e=>e.ending?(0,r.sprintf)(/* translators: %s: ENDING_LABEL[ r.ending ] */ /* translators: %s: ENDING_LABEL[ r.ending ] */(0,r.__)("이 글은 대부분 '%s'로 끝나요. 다른 어미로 끝난 문장을 맞춰요.","editnday"),en[e.ending]):(0,r.__)("문장이 더 쌓이면 어미를 봐요.","editnday")},{id:"similar",rules:["repeated_sentence"],label:(0,r.__)("닮은 문장","editnday"),hint:(0,r.__)("앞에서 한 말을 다시 하고 있어요. 한 곳만 남기거나 다르게 써요.","editnday")},{id:"repeat",rules:["repetition"],label:(0,r.__)("같은 표현 되풀이","editnday"),hint:(0,r.__)("같은 말이 세 번 넘게 나와요. 몇 곳은 다른 말로 바꿔요.","editnday")},{id:"start",rules:["same_start"],label:(0,r.__)("같은 말로 시작하는 문장","editnday"),hint:(0,r.__)('"또한 … 또한 …"처럼 이어지면 단조로워요. 접속어를 빼거나 순서를 바꿔요.',"editnday")},{id:"long",rules:["long_sentence"],label:(0,r.__)("긴 문장","editnday"),hint:(0,r.__)("100자가 넘는 문장은 모바일에서 읽기 힘들어요. 둘로 나눠요.","editnday")},{id:"adverb",rules:["adverb_heavy"],label:(0,r.__)("부사 몰림","editnday"),hint:(0,r.__)("한 문장에 정말·너무·아주 같은 부사가 둘 넘게 있어요. 빼도 뜻이 바뀌지 않으면 빼요. 부사가 빠질수록 담백해져요.","editnday")},{id:"clauses",rules:["many_clauses"],label:(0,r.__)("이어 붙인 문장","editnday"),hint:(0,r.__)("'-고, -는데, -지만'으로 절이 네 개 넘게 이어졌어요. 정보 하나에 문장 하나로 나누면 읽는 사람이 놓치지 않아요.","editnday")},{id:"para",rules:["long_paragraph"],label:(0,r.__)("긴 단락","editnday"),hint:(0,r.__)("한 단락이 500자를 넘으면 화면이 글자로 가득해요. 나눠요.","editnday")},{id:"number",rules:["number_format"],label:(0,r.__)("숫자 표기","editnday"),hint:(0,r.__)("큰 수를 쉼표 있게도 없게도 썼어요. 한 가지로 맞춰요.","editnday")},{id:"foreign",rules:["foreign_script"],label:(0,r.__)("일본어·한자 섞임","editnday"),hint:(0,r.__)("한국어 글에 일본어나 한자가 섞였어요.","editnday")},{id:"alt",rules:["image_alt"],label:(0,r.__)("대체 텍스트 없는 이미지","editnday"),hint:(0,r.__)("검색엔진과 화면 읽기 프로그램이 그림을 이해하게 대체 텍스트(ALT)를 적어요.","editnday")}],nn="editnday_textcheck_off",sn=()=>{try{return JSON.parse(window.localStorage.getItem(nn)||"[]")}catch(e){return[]}},dn=e=>{try{window.localStorage.setItem(nn,JSON.stringify(e))}catch(e){}};function an(){const e=(0,J.useSelect)(e=>e("core/block-editor").getBlocks(),[]),[t,n]=(0,o.useState)(()=>ze(e));(0,o.useEffect)(()=>{const t=setTimeout(()=>n(ze(e)),800);return()=>clearTimeout(t)},[e]);const[s,d]=(0,o.useState)(sn),[a,i]=(0,o.useState)(!1),[l,c]=(0,o.useState)(null);if(t.metrics.chars<50)return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("본문을 쓰면 여기서 바로 점검해요.","editnday")})]});const u=tn.filter(e=>!s.includes(e.id)).map(e=>({...e,issues:t.issues.filter(t=>e.rules.includes(t.rule))})),h=u.filter(e=>!e.issues.length).length,m=u.filter(e=>e.issues.length),p=a?u:m;return(0,f.jsxs)(w,{className:"ed-koseo ed-textcheck",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,r.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(m.length?"":" is-ok"),children:(0,r.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
    19 (0,r.__)("%1$d개 중 %2$d개 통과","editnday"),u.length,h)})]}),p.map(e=>{const n=l===e.id,a="function"==typeof e.hint?e.hint(t):e.hint;return(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.issues.length?" is-warn":" is-filled"),children:e.issues.length?"!":(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("button",{type:"button",className:"ed-koseo__head ed-textcheck__head","aria-expanded":n,disabled:!e.issues.length,onClick:()=>c(n?null:e.id),children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.issues.length?(0,r.sprintf)(/* translators: %s: it.issues.length */ /* translators: %s: it.issues.length */(0,r.__)("%s곳","editnday"),e.issues.length):(0,r.__)("없음","editnday")})]}),n&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"ed-koseo__hint",children:a}),e.issues.slice(0,5).map((e,t)=>(0,f.jsxs)("button",{type:"button",className:"ed-textcheck__sent",onClick:()=>{var t;(t=e).clientId?(0,J.dispatch)("core/block-editor").selectBlock(t.clientId):_e(t.sentence)||(0,J.dispatch)("core/notices").createWarningNotice((0,r.__)("본문에서 문장을 찾지 못했어요","editnday"),{type:"snackbar"})},title:(0,r.__)("본문에서 보기","editnday"),children:[["common_mistake","adverb_heavy","many_clauses"].includes(e.rule)&&(0,f.jsxs)("strong",{children:[e.detail," · "]}),e.sentence.length>70?`${e.sentence.slice(0,70)}…`:e.sentence]},t)),e.issues.length>5&&(0,f.jsx)("span",{className:"ed-muted",children:(0,r.sprintf)(/* translators: %d: 더 있는 곳 수 */ /* translators: %d: 더 있는 곳 수 */
    20 (0,r.__)("그 밖에 %d곳","editnday"),e.issues.length-5)}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>(e=>{const t=s.includes(e)?s.filter(t=>t!==e):[...s,e];d(t),dn(t)})(e.id),children:(0,r.__)("이 항목 점검 끄기","editnday")}),y(_.checkItemActions,{item:e.id,issues:e.issues}),"number"!==e.id&&(0,f.jsx)(D,{label:(0,r.__)("AI로 고치기","editnday")})]})]})]},e.id)}),!m.length&&!a&&(0,f.jsx)("span",{className:"ed-small",children:(0,r.__)("모두 좋아요.","editnday")}),(0,f.jsx)(Qt,{result:t}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>i(!a),children:a?(0,r.__)("고칠 것만 보기","editnday"):(0,r.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,r.__)("통과한 것도 보기 (%s)","editnday"),h)}),s.length>0&&(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{d([]),dn([])},children:(0,r.sprintf)(/* translators: %d: 꺼 둔 항목 수 */ /* translators: %d: 꺼 둔 항목 수 */
    21 (0,r.__)("꺼 둔 항목 %d개 다시 켜기","editnday"),s.length)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,r.__)("문장을 누르면 본문에서 보여 줘요. 맞춤법 전체가 아니라 자주 틀리는 표현만 봐요.","editnday")})]})]})}function rn(){const e=ft();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,r.__)("글 점검","editnday"),title:(0,r.__)("이 글을 점검해요","editnday"),sub:(0,r.__)("쓰는 동안 문장과 검색을 함께 봐요. 글을 고치면 잠깐 뒤 다시 점검해요.","editnday")}),(0,f.jsx)(an,{}),(0,f.jsx)(Pt,{st:e}),(0,f.jsx)(U,{})]})}function ln(){const e=(0,J.useSelect)(e=>!e("core/editor").isEditedPostEmpty(),[]),t=(0,J.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),[n,s]=(0,o.useState)(null),d=[{id:"check",label:(0,r.__)("글 점검","editnday"),render:e=>(0,f.jsx)(rn,{api:e})},{id:"publish",label:(0,r.__)("발행 준비","editnday"),render:e=>(0,f.jsx)(Rt,{onNew:()=>h()?m(u.newPost):window.location.href="post-new.php",onCheck:()=>e.goTab("check")})}],a=y(_.tabs,{free:d}),i=a.length?a:d,l=(0,o.useRef)(!1),c=e=>{l.current||(l.current=!0,s(e))},p=i.some(e=>e.decides);(0,o.useEffect)(()=>{p||c(t&&e&&!(()=>{try{return!!JSON.parse((0,J.select)("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null")?.id}catch(e){return!1}})()?"publish":"check")},[p,t,e]);const g=n??i[0].id,x=y(_.notice,{tab:g});return(0,f.jsxs)("div",{className:"editnday ed-body",children:[x,(0,f.jsx)(v,{tabs:i.map(e=>[e.id,e.label]),value:g,onChange:s}),i.map(e=>{const t=e.id===g;return t||e.keepMounted?(0,f.jsx)(o.Fragment,{children:e.render({active:t,goTab:s,onDecide:c})},e.id):null})]})}window.editnday=Object.freeze({...a,...i,...s,...d});const on=()=>(0,f.jsx)(x,{size:18}),cn=()=>(0,f.jsxs)("div",{className:"editnday-header",children:[(0,f.jsx)("img",{src:window.editndayConfig?.wordmark,alt:(0,r.__)("에디튼","editnday"),height:"18"}),(0,f.jsxs)("span",{className:"editnday-header__ver",children:["v",window.editndayConfig?.version]}),h()&&(0,f.jsxs)("span",{className:"editnday-header__pro",title:(0,r.__)("에디튼 프로","editnday"),children:["P",window.editndayConfig?.proVersion&&(0,f.jsx)("span",{className:"editnday-header__prover",children:window.editndayConfig.proVersion})]})]});Zt()(()=>(0,Wt.registerPlugin)("editnday",{render:()=>(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(l.PluginSidebarMoreMenuItem,{target:"editnday-sidebar",icon:(0,f.jsx)(on,{}),children:(0,r.__)("에디튼","editnday")}),(0,f.jsx)(l.PluginSidebar,{name:"editnday-sidebar",title:(0,r.__)("에디튼","editnday"),icon:(0,f.jsx)(on,{}),header:(0,f.jsx)(cn,{}),children:(0,f.jsx)(ln,{})}),(0,f.jsx)(l.PluginPrePublishPanel,{title:(0,r.__)("에디튼 발행 점검","editnday"),initialOpen:!0,icon:(0,f.jsx)(on,{}),children:(0,f.jsx)(Jt,{})})]})}))}};const t={};function n(s){const d=t[s];if(void 0!==d)return d.exports;const a=t[s]={exports:{}};return e[s](a,a.exports,n),a.exports}n.m=e,(()=>{const e=[];n.O=(t,s,d)=>{if(!s){for(var a=0;a<e.length;a++){let[s,d]=e[a],r=!0;for(var i=0;i<s.length;i++)n.O.j(s[i])?s.splice(i--,1):r=!1;if(r){e.splice(a--,1);const n=d();void 0!==n&&(t=n)}}return t}e.push([s,d])}})(),n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.hasOwn(e,t),n.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{const e={57:0,350:0};n.O.j=t=>0===e[t];const t=(t,s)=>{let[d,a,i]=s;var r,l,o=0;if(d.some(t=>0!==e[t])){for(r in a)n.o(a,r)&&(n.m[r]=a[r]);if(i)var c=i(n)}for(t&&t(s);o<d.length;o++)l=d[o],n.o(e,l)&&e[l]&&e[l][0](),e[l]=0;return n.O(c)},s=globalThis.webpackChunk_editnday_plugin||=[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})();let s=n.O(void 0,[350],()=>n(786));s=n.O(s)})();
     1(()=>{"use strict";var e={786(e,t,n){var s={};n.r(s),n.d(s,{EVENT:()=>u,SLOT:()=>_,emit:()=>m,hasPro:()=>h,slot:()=>y});var a={};n.r(a),n.d(a,{Bar:()=>M,Card:()=>w,Check:()=>j,Chip:()=>S,Cta:()=>k,Elapsed:()=>B,Ghost:()=>N,Head:()=>A,Live:()=>P,Opt:()=>I,Radio:()=>T,Req:()=>$,Stepper:()=>L,Steps:()=>E,Symbol:()=>x,Tabs:()=>v,Tag:()=>C});var d={};n.r(d),n.d(d,{CONTENT_STYLE:()=>te,applyToSentence:()=>re,bodyHeadings:()=>Q,clearEmptyStart:()=>ie,contentStyleOn:()=>ne,findSentenceBlock:()=>ce,hasSection:()=>W,insertSection:()=>X,insertSectionAfter:()=>ee,plainText:()=>ae,restoreBlocks:()=>oe,setTitle:()=>le,showSentence:()=>_e,withContentStyle:()=>se});var i={};n.r(i),n.d(i,{CategoryNoFit:()=>st,KoSeoCard:()=>Lt,PublishScreen:()=>Jt,TASKS:()=>ht,TEMPLATES:()=>kt,TPL_ASPECTS:()=>vt,TPL_LAYOUTS:()=>St,closestSentence:()=>ct,contentText:()=>tt,decode:()=>at,drawTemplate:()=>It,ed:()=>Ye,edit:()=>Ze,hasWord:()=>rt,insertRelated:()=>Mt,memberOnly:()=>lt,placeVisible:()=>gt,readMeta:()=>Qe,setFineKeyword:()=>xt,strip:()=>Ot,tagIds:()=>yt,templateFeatured:()=>At,templatePreview:()=>Et,titleFeatured:()=>Pt,useKoSeo:()=>qt,usePublishState:()=>ft,writeMeta:()=>et});const l=window.wp.i18n,r=window.wp.editor,o=window.wp.element,c=window.wp.hooks,_={pro:"editnday.pro",tabs:"editnday.sidebar.tabs",notice:"editnday.notice",checkItemActions:"editnday.check.itemActions",publishFieldActions:"editnday.publish.fieldActions",keywordFix:"editnday.publish.keywordFix",keywordInfo:"editnday.publish.keywordInfo",prepublishFixes:"editnday.prepublish.fixes"},u={newPost:"editnday.newPost"},h=()=>!!(0,c.applyFilters)(_.pro,null),y=(e,t={})=>{const n=(0,c.applyFilters)(e,[],t);return Array.isArray(n)?n.filter(Boolean):[]},m=(e,...t)=>(0,c.doAction)(e,...t),p=window.wp.components,g=window.wp.compose,f=window.ReactJSXRuntime,x=({size:e=16,color:t="#243235"})=>(0,f.jsx)("svg",{viewBox:"0 0 44 46.6",width:e,height:e,"aria-hidden":"true",children:(0,f.jsx)("path",{fill:t,d:"M43.22,21.083c.304-6.426-2.765-9.571-2.765-9.571-4.952-5.651-16.923-5.378-27.013-5.047-1.774,0-2.833.293-4.019.748-1.738.635-3.071,1.831-4.423,3.1-1.435,1.352-2.621,3.131-3.517,5.49C.131,19.294-.296,23.225.2,27.005c0,.003,0,.005.001.008,0,0,1.116,5.041,2.233,7.124.662,1.241,4.373,5.311,5.531,5.987,2.069,1.2,5.559,2.262,7.863,1.117-.386-.455-.814-.91-1.035-1.476-.221-.538-.221-1.228.166-1.669.11-.138.221-.262.331-.372.772.028,1.499.428,5.568.428,5.378.133,16.915,1.493,15.26-2.767-13.801-.264-20.166-.917-22.161-3.05-.475-.508-.34-1.395.13-.921,3.733,3.767,23.166,3.09,23.175,3.095,3.119.035,5.785-8.914,5.957-13.425ZM12.152,28.125c-2.019.168-3.793-2.006-2.416-3.297.971-.912,2.233-1.046,3.547.038,1.691,1.459.425,3.13-1.131,3.26Z"})}),b=()=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"#243235",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M7 17L17 7M9 7h8v8"})}),j=({color:e="#fff"})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:e,strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,f.jsx)("path",{d:"M5 12.5l4.5 4.5L19 7.5"})}),w=({children:e,className:t=""})=>(0,f.jsx)("div",{className:`ed-card ${t}`,children:e}),k=({children:e,onClick:t,disabled:n})=>(0,f.jsxs)("button",{type:"button",className:"ed-cta",onClick:t,disabled:n,children:[(0,f.jsx)("span",{children:e}),(0,f.jsx)("span",{className:"ed-cta__dot",children:(0,f.jsx)(b,{})})]}),N=({children:e,onClick:t,disabled:n})=>(0,f.jsx)("button",{type:"button",className:"ed-ghost",onClick:t,disabled:n,children:e}),v=({tabs:e,value:t,onChange:n})=>(0,f.jsx)("div",{className:"ed-tabs",role:"tablist",children:e.map(([e,s])=>(0,f.jsx)("button",{type:"button",role:"tab","aria-selected":t===e,className:"ed-tab"+(t===e?" is-on":""),onClick:()=>n(e),children:s},e))}),S=({children:e,on:t,lav:n,onClick:s})=>(0,f.jsx)("button",{type:"button",className:`ed-chip${t?" is-on":""}${n?" is-lav":""}`,onClick:s,"aria-pressed":!!t,children:e}),C=({children:e,tone:t})=>(0,f.jsx)("span",{className:"ed-tag"+(t?` is-${t}`:""),children:e}),$=()=>(0,f.jsx)("span",{className:"ed-req",role:"img","aria-label":(0,l.__)("필수","editnday")}),I=()=>(0,f.jsx)("span",{className:"ed-opt",children:(0,l.__)("선택","editnday")}),A=({eyebrow:e,title:t,sub:n})=>(0,f.jsxs)("div",{className:"ed-head",children:[e&&(0,f.jsx)("span",{className:"ed-eyebrow",children:e}),(0,f.jsx)("h2",{className:"ed-h",children:t}),n&&(0,f.jsx)("p",{className:"ed-sub",children:n})]}),E=({steps:e})=>(0,f.jsx)("div",{className:"ed-steps",children:e.map(e=>(0,f.jsxs)("div",{className:`ed-step is-${e.state}`,children:[(0,f.jsx)("span",{className:"ed-circ",children:"done"===e.state&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-step__label",children:e.label}),e.meta&&(0,f.jsx)("span",{className:"ed-muted ed-step__meta",children:e.meta})]},e.label))});function B({since:e}){const[t,n]=(0,o.useState)(Date.now());(0,o.useEffect)(()=>{const e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]);const s=Math.max(0,Math.round((t-e)/1e3));return(0,f.jsx)("span",{className:"ed-muted ed-elapsed",children:s>=60?(0,l.sprintf)(/* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */ /* translators: %1$s: Math.floor( s / 60 ), %2$s: s % 60 */(0,l.__)("%1$s분 %2$s초째","editnday"),Math.floor(s/60),s%60):(0,l.sprintf)(/* translators: %s: s */ /* translators: %s: s */(0,l.__)("%s초째","editnday"),s)})}const P=({text:e,since:t})=>(0,f.jsxs)("div",{className:"ed-live",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,f.jsx)("span",{className:"ed-live__t",children:e}),(0,f.jsx)(B,{since:t})]}),M=({ratio:e,busy:t})=>(0,f.jsxs)("div",{className:"ed-bar"+(t?" is-busy":""),role:"progressbar","aria-valuenow":Math.round(100*e),"aria-valuemin":0,"aria-valuemax":100,children:[(0,f.jsx)("div",{className:"ed-bar__fill",style:{width:`${Math.max(4,100*e)}%`}}),(0,f.jsx)("div",{className:"ed-bar__hatch"})]}),T=({checked:e,onChange:t,children:n})=>{const s=`ed-radio-${(0,g.useInstanceId)(T)}`;return(0,f.jsxs)("label",{htmlFor:s,className:"ed-radio"+(e?" is-on":""),children:[(0,f.jsx)("input",{id:s,type:"radio",checked:e,onChange:t}),(0,f.jsx)("span",{className:"ed-rdot"}),(0,f.jsx)("span",{children:n})]})},O={start:[0,-1,""],research:[0,0,(0,l.__)("에디튼이 자료를 모으는 중 · 1~2분","editnday")],plan:[1,-1,""],writing:[1,1,(0,l.__)("다 쓰면 확인할 곳을 보여 드려요 · 2~3분","editnday")],review:[2,-1,(0,l.__)("확인할 곳을 정하면 발행 준비로 넘어가요","editnday")],done:[2,-1,""]},F=[(0,l.__)("주제·메모","editnday"),(0,l.__)("구성안 고르기","editnday"),(0,l.__)("확인·발행","editnday")],q=[(0,l.__)("자료 조사","editnday"),(0,l.__)("본문 쓰기","editnday")];function L({stage:e}){const t=O[e];if(!t)return null;const[n,s,a]=t,d=s>=0?s:n-1;return(0,f.jsxs)("div",{className:"ed-stepper","aria-label":(0,l.sprintf)(/* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */ /* translators: 1: 지금 단계 번호, 2: 진행 중인 일 (예: ", 구성안 만드는 중") */(0,l.__)("작가가 할 일 3단계 중 %1$s단계%2$s","editnday"),n+1,s>=0?(0,l.sprintf)(/* translators: %s: 진행 중인 일 */ /* translators: %s: 진행 중인 일 */
     2(0,l.__)(", %s 중","editnday"),q[s]):""),children:[(0,f.jsx)("div",{className:"ed-stepper__flow",children:F.map((e,t)=>{const a=t<=d,i=!a&&t===n&&s<0;return[(0,f.jsxs)("div",{className:`ed-stepper__st${a?" is-done":""}${i?" is-now":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__dot",children:a?(0,f.jsx)(j,{}):t+1}),(0,f.jsx)("span",{className:"ed-stepper__lbl",children:e})]},e),t<q.length&&(0,f.jsxs)("div",{className:`ed-stepper__link${t===s?" is-run":""}${t<d||t<n&&s<0?" is-done":""}`,children:[(0,f.jsx)("span",{className:"ed-stepper__line"}),(0,f.jsxs)("em",{children:[q[t],t===s?(0,l.__)("중","editnday"):""]})]},q[t])]})}),a&&(0,f.jsx)("span",{className:"ed-stepper__note",children:a})]})}const R="editnday_pro_card_off";function D({onClose:e}){return(0,f.jsxs)(p.Modal,{title:(0,l.__)("에디튼 프로","editnday"),onRequestClose:e,className:"ed-proinfo",size:"medium",children:[(0,f.jsx)("p",{children:(0,l.__)("에디튼 프로는 지금 쓰는 에디튼에 AI를 더해요. 무료 기능은 그대로이고, 같은 사이드바에 버튼과 [새 글 쓰기] 탭이 생겨요.","editnday")}),(0,f.jsxs)("ul",{children:[(0,f.jsx)("li",{children:(0,l.__)("새 글 쓰기: 주제와 메모로 자료 조사 → 구성안 → 내 문체의 초안 → 확인할 곳까지 (글 1편 10크레딧 안팎)","editnday")}),(0,f.jsx)("li",{children:(0,l.__)("글 점검에서 찾은 문장을 AI로 고치기, 줄이기, 다시 쓰기","editnday")}),(0,f.jsx)("li",{children:(0,l.__)("발행 준비 칸 채우기: 발췌문·태그·카테고리·영문 주소·SEO 제목과 설명·요약·질문답 (한 번에)","editnday")}),(0,f.jsx)("li",{children:(0,l.__)("대표 이미지 만들기(1장 1크레딧)와 ALT, 단락 더 쓰기(1크레딧)","editnday")})]}),(0,f.jsx)("p",{className:"ed-muted",children:(0,l.__)("프로를 설치하고 라이선스를 넣으면 바로 쓸 수 있어요. 지금 이 화면의 기능은 프로 없이도 계속 무료예요.","editnday")}),(0,f.jsx)("p",{children:(0,f.jsx)("a",{className:"components-button is-primary",href:"https://editn.day/",target:"_blank",rel:"noopener noreferrer",children:(0,l.__)("에디튼 프로 알아보기","editnday")})})]})}function K({label:e}){const[t,n]=(0,o.useState)(!1);return h()?null:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("button",{type:"button",className:"ed-prohint",onClick:()=>n(!0),children:[e," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,l.__)("프로","editnday"),children:"P"})]}),t&&(0,f.jsx)(D,{onClose:()=>n(!1)})]})}const H=()=>{try{return"1"===window.localStorage.getItem(R)}catch(e){return!1}};function z(){const[e,t]=(0,o.useState)(H),[n,s]=(0,o.useState)(!1);return h()||e?null:(0,f.jsxs)(w,{className:"ed-procard",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("span",{className:"ed-lbl",children:[(0,l.__)("초안도 써 드려요","editnday")," ",(0,f.jsx)("span",{className:"ed-prohint__tag",title:(0,l.__)("프로","editnday"),children:"P"})]}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{t(!0);try{window.localStorage.setItem(R,"1")}catch(e){}},"aria-label":(0,l.__)("이 안내 닫기","editnday"),children:(0,l.__)("닫기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("에디튼 프로는 주제와 메모만으로 자료를 찾아 내 문체의 초안을 쓰고, 여기서 찾은 문장도 AI로 고쳐요.","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!0),children:(0,l.__)("자세히 보기","editnday")}),n&&(0,f.jsx)(D,{onClose:()=>s(!1)})]})}const U=window.wp.apiFetch;var J=n.n(U);const V=window.wp.blocks,G=window.wp.data;function W(e){return(0,G.select)("core/block-editor").getBlocks().some(t=>"core/heading"===t.name&&t.attributes?.metadata?.editnday===e)}function X({id:e,heading:t,text:n}){if(e&&W(e))return!1;const s=[(0,V.createBlock)("core/heading",{level:2,content:ue(t),metadata:{editnday:e}})],a=(0,V.pasteHandler)({plainText:String(n).replace(/~/g,"\\~"),mode:"BLOCKS"});return s.push(...(Array.isArray(a)?a:[]).map(se)),(0,G.dispatch)("core/block-editor").insertBlocks(s),!0}const Y=e=>String(e.attributes?.content??"").replace(/<[^>]+>/g,"").trim(),Z=e=>"faq"===e.attributes?.metadata?.editnday;function Q(){return(0,G.select)("core/block-editor").getBlocks().filter(e=>"core/heading"===e.name&&2===(e.attributes.level??2)&&Y(e)).map(Y)}function ee({heading:e,text:t,afterHeading:n}){const s=(0,G.select)("core/block-editor").getBlocks(),a=e=>"core/heading"===e.name&&2===(e.attributes.level??2),d=s.findIndex(Z),i=d>=0?d:s.length,l=s.findIndex(e=>a(e)&&Y(e)===n);let r=i;if(l>=0&&l<i){const e=s.findIndex((e,t)=>t>l&&a(e));r=e>=0&&e<i?e:i}const o=(0,V.pasteHandler)({plainText:String(t).replace(/~/g,"\\~"),mode:"BLOCKS"}),c=[(0,V.createBlock)("core/heading",{level:2,content:ue(e),metadata:{editnday:`extra-${Date.now()}`}}),...(Array.isArray(o)?o:[]).map(se)];return(0,G.dispatch)("core/block-editor").insertBlocks(c,r),c.map(e=>e.clientId)}const te="is-style-editnday",ne=()=>"off"!==window.editndayConfig?.contentStyle;function se(e){if("core/list"!==e?.name&&"core/table"!==e?.name||!ne())return e;const t=e.attributes.className||"";return/\bis-style-/.test(t)||(e.attributes.className=`${t} ${te}`.trim()),e}const ae=e=>String(e).replace(/\[([^\]]+)\]\([^)]*\)/g,"$1"),de=e=>String(e).replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,'<a href="$2">$1</a>');function ie(){const e=(0,G.select)("core/block-editor").getBlocks();1!==e.length||"core/paragraph"!==e[0].name||e[0].attributes.content||(0,G.dispatch)("core/block-editor").removeBlocks([e[0].clientId])}function le(e){(0,G.dispatch)("core/editor").editPost({title:e})}function re(e,t){const n=(0,G.select)("core/block-editor"),s=n=>{for(const a of n){if("core/paragraph"===a.name||"core/list-item"===a.name){const n=String(a.attributes.content??""),s=[e,de(e),ae(e)].find(e=>n.includes(e)),d=s?n.indexOf(s):-1;if(d>=0){const e=(n.slice(0,d)+de(t??"")+n.slice(d+s.length)).replace(/\s{2,}/g," ").trim();return(0,G.dispatch)("core/block-editor").updateBlockAttributes(a.clientId,{content:e}),{clientId:a.clientId,before:n}}}const n=!!a.innerBlocks?.length&&s(a.innerBlocks);if(n)return n}return!1};return s(n.getBlocks())}function oe(e){const t=(0,G.select)("core/block-editor");for(const n of[...e].reverse())t.getBlock(n.clientId)&&(0,G.dispatch)("core/block-editor").updateBlockAttributes(n.clientId,{content:n.before})}function ce(e){const t=[e,de(e),ae(e)],n=e=>{for(const s of e){const e=String(s.attributes?.content??"");if(e&&t.some(t=>e.includes(t)))return s.clientId;const a=s.innerBlocks?.length&&n(s.innerBlocks);if(a)return a}return null};return n((0,G.select)("core/block-editor").getBlocks())}function _e(e){const t=ce(e);if(!t)return!1;const n=document.querySelector('iframe[name="editor-canvas"]')?.contentDocument||document,s=n.querySelector(`[data-block="${t}"]`),a=n.defaultView,d=s&&function(e,t){const n=e.ownerDocument,s=n.createTreeWalker(e,4),a=[];let d="";for(let e=s.nextNode();e;e=s.nextNode())a.push({n:e,start:d.length}),d+=e.nodeValue;const i=e=>e.replace(/\s+/g," "),l=i(d).indexOf(i(t).trim());if(l<0)return null;const r=[];for(let e=0,t=!1;e<d.length;e++){const n=/\s/.test(d[e]);n&&t||r.push(e),t=n}const o=r[l],c=(r[l+i(t).trim().length-1]??d.length-1)+1,_=e=>{const t=a.findLastIndex(t=>t.start<=e),n=a[Math.max(0,t)];return[n.n,Math.min(e-n.start,n.n.nodeValue.length)]},u=n.createRange();return u.setStart(..._(o)),u.setEnd(..._(c)),u}(s,ae(e));if(!d||!a?.CSS?.highlights||"function"!=typeof a.Highlight)return(0,G.dispatch)("core/block-editor").selectBlock(t),(0,G.dispatch)("core/block-editor").flashBlock?.(t),!0;(d.startContainer.parentElement||s).scrollIntoView({behavior:"smooth",block:"center"});let i=n.getElementById("editnday-mark-style");i||(i=n.createElement("style"),i.id="editnday-mark-style",n.head.appendChild(i)),a.CSS.highlights.set("editnday-mark",new a.Highlight(d));const l=Date.now();return clearInterval(_e.timer),_e.timer=setInterval(()=>{const e=Date.now()-l,t=e<2500?.75:Math.max(0,.75*(1-(e-2500)/1500));i.textContent=`::highlight(editnday-mark){background-color:rgba(211,183,241,${t.toFixed(3)});color:inherit}`,0===t&&(clearInterval(_e.timer),a.CSS.highlights.delete("editnday-mark"))},50),!0}const ue=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),he=(e,t,n="낱말")=>({re:new RegExp(`(?<![가-힣])${e}`,"g"),fix:t,kind:n}),ye=(e,t)=>({re:new RegExp(e,"g"),fix:t,kind:"어미"}),me=[he("몇 ?일(?!본|반|부|정|자리|손|꾼|요일|단|등|대|원|차)","며칠"),he("웬지","왠지"),he("왠만","웬만"),he("왠일","웬일"),he("왠걸","웬걸"),he("왠 (?=[가-힣])","웬 "),he("금새","금세"),he("일일히","일일이"),he("깨끗히","깨끗이"),he("틈틈히","틈틈이"),he("곰곰히","곰곰이"),he("번번히","번번이"),he("일찌기","일찍이"),he("오랫만","오랜만"),he("오랜동안","오랫동안"),he("설겆이","설거지"),he("희안","희한"),he("어의없","어이없"),he("역활","역할"),he("되물림","대물림"),he("구지(?= |[.,])","굳이"),he("어짜피","어차피"),he("어줍잖","어쭙잖"),he("널부러","널브러"),he("닥달","닦달"),he("짜집기","짜깁기"),he("설레임","설렘"),he("설레이","설레"),he("헤매이","헤매"),he("되뇌이","되뇌"),he("애시당초","애당초"),he("무릎쓰","무릅쓰"),he("뒤치닥거리","뒤치다꺼리"),he("개거품","게거품"),he("칠흙","칠흑"),he("희노애락","희로애락"),he("인권비","인건비"),he("뇌졸증","뇌졸중"),he("숫가락","숟가락"),he("육계장","육개장"),{re:/찌게(?! ?(하|해|했|되|만들))/g,fix:"찌개",kind:"낱말"},he("떡볶기","떡볶이"),he("윗층","위층"),he("윗쪽","위쪽"),he("아랫층","아래층"),he("가르키","가리키(가리킬 때)·가르치(알려 줄 때)"),he("모자르","모자라"),he("들어나(?=[다고는면서지])","드러나"),he("들어났","드러났"),he("어떡게","어떻게"),he("어떻해","어떡해"),ye("되요","돼요"),ye("되서(?![가-힣])","돼서"),ye("되야","돼야"),ye("됬","됐"),ye("떄","때"),ye("됀","된"),ye("뵈요","봬요"),ye("뵜","뵀"),ye("(?<=[가-힣])이예요","이에요"),ye("아니예요","아니에요"),ye("있슴(?![가-힣])","있음"),ye("없슴(?![가-힣])","없음"),ye("알맞는","알맞은"),ye("걸맞는","걸맞은"),ye("치뤄","치러"),ye("치뤘","치렀"),ye("잠궈","잠가"),ye("잠궜","잠갔"),ye("담궈","담가"),ye("담궜","담갔"),ye("삼가해","삼가"),ye("(?<![가-힣])할려고","하려고"),ye("(?<![가-힣])할려면","하려면"),ye("(?<![가-힣])볼려고","보려고"),ye("(?<![가-힣])먹을려고","먹으려고"),ye("(?<![가-힣])될려고","되려고"),ye("안절부절(?=하|했|한)","안절부절못"),{re:/않(?= ?(하|해|했|된|되|돼))/g,fix:"안",kind:"어미"},{re:/(?<=지 )안(?=[아았는을])/g,fix:"않",kind:"어미"},{re:/가능한 (?=빨리|많이|빠르게|일찍|자주|정확하게|짧게)/g,fix:"가능한 한 ",kind:"표현"},{re:/(?<=답을 )맞(?=추|춰|췄)/g,fix:"맞히(정답을 맞히다)",kind:"표현"},{re:/(?<=사단이 )(났|나)/g,fix:"'사달이 났다'",kind:"표현"},{re:/(?<=(?:하기|하시기|되기|되시기|가기|오기)를 )바래/g,fix:"바라",kind:"표현"},{re:/(?<=(?:하길|되길|가길|오길) )바래/g,fix:"바라",kind:"표현"},he("컨텐츠","콘텐츠","외래어"),he("메세지","메시지","외래어"),he("악세사리","액세서리","외래어"),he("악세서리","액세서리","외래어"),he("리더쉽","리더십","외래어"),he("멤버쉽","멤버십","외래어"),he("파트너쉽","파트너십","외래어"),he("스폰서쉽","스폰서십","외래어"),he("타겟","타깃","외래어"),he("비지니스","비즈니스","외래어"),he("워크샵","워크숍","외래어"),he("스케쥴","스케줄","외래어"),he("쥬스","주스","외래어"),he("초콜렛","초콜릿","외래어"),he("케익","케이크","외래어"),he("카페트","카펫","외래어"),he("부페","뷔페","외래어"),he("렌트카","렌터카","외래어"),he("프로포즈","프러포즈","외래어"),he("로보트","로봇","외래어"),he("앙케이트","앙케트","외래어"),he("엑세스","액세스","외래어"),he("어플리케이션","애플리케이션","외래어"),he("싸이트","사이트","외래어"),he("화이팅","파이팅","외래어"),he("데이타","데이터","외래어"),he("컨셉","콘셉트","외래어"),he("팜플렛","팸플릿","외래어")],pe=e=>(e.charCodeAt(0)-44032)%28,ge=e=>!!e&&e>="가"&&e<="힣";function fe(e){const t=[];for(const n of e.matchAll(/([가-힣])(께|껄)(?=요|[\s.,!?~]|$)/g))8===pe(n[1])&&t.push({wrong:n[0],fix:`${n[1]}${"께"===n[2]?"게":"걸"}`});return t}function xe(e){const t=[];for(const n of e.matchAll(/([가-힣])(율|률)/g)){if(!ge(n[1]))continue;const e=pe(n[1]),s=0===e||4===e?"율":"률";n[2]!==s&&t.push({wrong:n[0],fix:`${n[1]}${s}`})}return t}function be(e){const t=[];for(const n of je(e.text)){const s=[];for(const e of me)for(const t of n.matchAll(e.re))s.push({wrong:t[0].trim(),fix:e.fix.trim()});s.push(...fe(n),...xe(n));const a=new Set;for(const d of s)a.has(d.wrong)||(a.add(d.wrong),t.push({sectionId:e.id,rule:"common_mistake",severity:"warn",detail:`"${d.wrong}" → "${d.fix}"`,sentence:n}))}return t}function je(e){return function(e){return e.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/https?:\/\/\S+/g,"")}(e).replace(/\n+/g,"\n").split(/(?<=[.!?。])\s+|\n/).map(e=>e.replace(/^[#>\-*\s|]+/,"").trim()).filter(e=>e.length>3&&!e.startsWith("|"))}function we(e){const t=je(e).map(e=>e.length),n=t.length||1;return{chars:e.replace(/^#.*$/gm,"").trim().length,sentences:t.length,sentenceAvg:Math.round(t.reduce((e,t)=>e+t,0)/n*10)/10,long100:Math.round(t.filter(e=>e>=100).length/n*1e3)/10,short25:Math.round(t.filter(e=>e<25).length/n*1e3)/10}}const ke=[{re:/완벽한|압도적인|독보적인|특별한 경험/,label:"상투 극찬"},{re:/이상으로 .{0,10}(살펴|알아)/,label:"요약형 맺음"},{re:/(이번 글|이 글)에서(는)? .{0,30}(살펴보|알아보|따라가|다루|정리해)/,label:"메타 서술"},{re:/결론적으로|요약하자면|정리하자면|^정리하면|^요컨대|^종합하면/,label:"정리형 연결어"},{re:/(앞으로|다음에는?|이제부터).{0,40}(보게|하게|찾게|쓰게|되게) 될 것 같다/,label:"작가 행동을 지어냈을 수 있음"},{re:/(기준|대상)[이가과은는]?.{0,12}(다르|달라).{0,20}(겹쳐|합쳐|곧바로|하나로|그대로).{0,8}(읽|비교|보)/,label:"정형 문장 (기준이 달라 합쳐 읽기 어렵다)"}];function Ne(e,t=[]){const n=[];for(const s of je(e.text)){for(const t of ke)t.re.test(s)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"warn",detail:t.label,sentence:s});for(const a of t)a&&s.includes(a)&&n.push({sectionId:e.id,rule:"banned_phrase",severity:"block",detail:`금지 표현 "${a}"`,sentence:s})}return n}const ve=/[\u3040-\u30ff\u31f0-\u31ff\uff66-\uff9f]/,Se=/[\u3400-\u4dbf\u4e00-\u9fff]/g;function Ce(e,t=100){return je(e.text).filter(e=>e.length>t).map(n=>({sectionId:e.id,rule:"long_sentence",severity:"warn",detail:`${n.length}자 문장 (${t}자 넘음)`,sentence:n}))}const $e=/^(또한|그리고|하지만|그러나|그런데|또|특히|이처럼|따라서|즉|게다가|물론|결국)[\s,]/;function Ie(e){const t=je(e.text),n=t.map(e=>e.split(/[\s,]/)[0]??""),s=[];for(let a=1;a<t.length;a++){const d=n[a];if(d.length<2||d!==n[a-1])continue;const i=$e.test(t[a])&&$e.test(t[a-1]),l=a>=2&&n[a-2]===d;(i||l)&&s.push({sectionId:e.id,rule:"same_start",severity:"warn",detail:`"${d}"(으)로 시작하는 문장이 이어짐`,sentence:t[a]})}return s}const Ae=new RegExp(`(?:^|[\\s"'(“‘])(${["정말","정말로","진짜","진짜로","너무","너무나","아주","매우","완전","엄청","굉장히","상당히","꽤","좀","조금","약간","거의","솔직히","사실","항상","늘","자주","무척","되게","많이","훨씬","딱","전혀","결코","절대","분명","확실히","당연히","역시","그냥","막","가장","제일","특히"].join("|")})(?=[\\s,.!?)”’]|$)`,"g");function Ee(e,t=1){return je(e.text).flatMap(n=>{const s=[...n.matchAll(Ae)].map(e=>e[1]??"");return s.length>t?[{sectionId:e.id,rule:"adverb_heavy",severity:"warn",detail:`부사 ${s.length}개: ${s.join("·")}`,sentence:n}]:[]})}const Be=/(?:고|는데|ㄴ데|은데|지만|며|면서|거나|니까|므로|어서|아서|해서|라서|려고|더니|다가)(?=[,\s])/g,Pe=/(?:^|\s)(그리고|그런데|그래서|그러나|하지만|그러면서|그러니까|그러므로|그렇지만|그러다가)(?=[,\s])/g;function Me(e,t=3){return je(e.text).flatMap(n=>{const s=(n.replace(Pe," ").match(Be)??[]).length+1;return s>t?[{sectionId:e.id,rule:"many_clauses",severity:"warn",detail:`절 ${s}개`,sentence:n}]:[]})}function Te(e){const t=e.map(e=>e.text).join("\n");if(!/\d{1,3}(,\d{3})+/.test(t))return[];const n=[];for(const t of e)for(const e of je(t.text))for(const s of e.matchAll(/(?<![\d,.])(\d{4,})(?![\d,])/g)){const a=Number(s[1]),d=e.slice(s.index+s[1].length),i=e.slice(0,s.index);4===s[1].length&&(a>=1900&&a<=2099||/^\s*(년|~)/.test(d)||/~\s*$/.test(i))||n.push({sectionId:t.id,rule:"number_format",severity:"warn",detail:`"${s[1]}" — 다른 곳은 쉼표를 썼어요 (${Number(a).toLocaleString("en-US")})`,sentence:e})}return n}function Oe(e){const t=e.evidence.join(" ");return je(e.text).filter(e=>[...e.match(new RegExp(ve.source,"g"))??[],...e.replace(/\([^()]*\)/g,"").match(Se)??[]].some(e=>!t.includes(e))).map(t=>({sectionId:e.id,rule:"foreign_script",severity:"warn",detail:"한국어가 아닌 글자(일본어·한자)가 섞였어요",sentence:t}))}const Fe={da:"-다",yo:"-요",sumnida:"-습니다"};function qe(e,t="da"){const n=je(e.text).map(e=>({sent:e,t:e.replace(/[.!?"'”’)\]\s]+$/,"")}));return"da"===t?n.filter(({sent:e})=>/([어아여해에예지네]요|죠|(?<!아)니다)[.!]?$/.test(e)).map(({sent:t})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:"평서체('-다') 글에 다른 어미",sentence:t})):n.filter(({t:e})=>/다$/.test(e)&&!/(니다|니까)$/.test(e)).map(({sent:n})=>({sectionId:e.id,rule:"ending_mixed",severity:"warn",detail:`존댓말('${Fe[t]}') 글에 평서체('-다') 문장`,sentence:n}))}function Le(e){const t=new Map;for(const n of e)for(const e of je(n.text)){const s=e.split(/\s+/);for(let a=0;a+3<=s.length;a++){const d=s.slice(a,a+3).join(" ");if(d.length<8)continue;const i=t.get(d)??{n:0,sectionId:n.id,sentence:e};i.n++,t.set(d,i)}}return[...t.entries()].filter(([,e])=>e.n>=3).map(([e,t])=>({sectionId:t.sectionId,rule:"repetition",severity:"warn",detail:`"${e}" ${t.n}회 반복`,sentence:t.sentence}))}const Re=e=>{const t=e.replace(/\s+/g,""),n=new Set;for(let e=0;e+2<=t.length;e++)n.add(t.slice(e,e+2));return n};function De(e,t=.4){const n=e.flatMap(e=>je(e.text).filter(e=>e.length>=20).map(t=>({id:e.id,x:t,g:Re(t)}))),s=[],a=new Set;for(let e=0;e<n.length;e++)for(let d=e+1;d<n.length;d++){const i=n[e],l=n[d];if(i.id===l.id||a.has(l.x))continue;let r=0;i.g.forEach(e=>l.g.has(e)&&r++),r/(i.g.size+l.g.size-r)<t||(a.add(l.x),s.push({sectionId:l.id,rule:"repeated_sentence",severity:"warn",detail:`앞에서 거의 같은 말을 했어요: "${i.x.length>60?`${i.x.slice(0,60)}…`:i.x}"`,sentence:l.x}))}return s}const Ke=["core/paragraph","core/heading","core/list-item","core/quote","core/pullquote","core/verse"],He=e=>String(e??"").replace(/<br\s*\/?>/gi,"\n").replace(/<[^>]+>/g,"").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#0?39;/g,"'").replace(/&#(\d+);/g,(e,t)=>String.fromCodePoint(Number(t))).replace(/&#x([0-9a-f]+);/gi,(e,t)=>String.fromCodePoint(parseInt(t,16))).trim(),ze=e=>["summary","faq"].includes(e?.attributes?.metadata?.editnday)||/\beditnday-(summary|faq|related)/.test(e?.attributes?.className||"");function Ue(e){const t=[],n=e=>{for(const s of e||[])if(!ze(s)){if("core/paragraph"===s.name){const e=He(s.attributes?.content);e.length>500&&t.push({rule:"long_paragraph",detail:(0,l.sprintf)(/* translators: %s: t.length */ /* translators: %s: t.length */(0,l.__)("%s자 단락","editnday"),e.length),sentence:`${e.slice(0,40)}…`,clientId:s.clientId})}"core/image"!==s.name||String(s.attributes?.alt??"").trim()||t.push({rule:"image_alt",detail:(0,l.__)("대체 텍스트 없음","editnday"),sentence:(0,l.sprintf)(/* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */ /* translators: %s: String( b.attributes?.url ?? '' ) .split( '/' ) .pop() || '' */(0,l.__)("이미지 %s","editnday"),String(s.attributes?.url??"").split("/").pop()||"").trim(),clientId:s.clientId}),n(s.innerBlocks)}};return n(e),t}function Je(e){const t=function(e){const t=[];let n={id:"s0",heading:"",lines:[],blockIds:[]},s=0;const a=e=>{for(const d of e||[])if(!ze(d))if("core/heading"===d.name&&(d.attributes?.level??2)<=2)(n.lines.length||n.heading)&&t.push(n),n={id:"s"+ ++s,heading:He(d.attributes?.content),lines:[],blockIds:[d.clientId]};else{if(Ke.includes(d.name)){const e=He(d.attributes?.content??d.attributes?.value??d.attributes?.citation);e&&(n.lines.push(e),n.blockIds.push(d.clientId))}a(d.innerBlocks)}};return a(e),(n.lines.length||n.heading)&&t.push(n),t.map(e=>({id:e.id,heading:e.heading,text:e.lines.join("\n"),evidence:[],blockIds:e.blockIds}))}(e),n=t.map(e=>e.text).join("\n"),s=function(e){const t={da:0,yo:0,sumnida:0};for(const n of je(e)){const e=n.replace(/[.!?"'”’)\]\s]+$/,"");/(니다|니까)$/.test(e)?t.sumnida++:/([어아여해에예지네]요|죠)$/.test(e)?t.yo++:/다$/.test(e)&&t.da++}return t.da+t.yo+t.sumnida<4?null:Object.entries(t).sort((e,t)=>t[1]-e[1])[0][0]}(n),a=[...t.flatMap(e=>[...Ne(e),...be(e),...s?qe(e,s):[],...Oe(e),...Ce(e),...Ee(e),...Me(e),...Ie(e)]),...De(t),...Le(t),...Te(t),...Ue(e)];return{sections:t,ending:s,issues:a,metrics:we(n)}}const Ve=[(0,l.__)("에서부터","editnday"),(0,l.__)("이라는","editnday"),(0,l.__)("이라고","editnday"),(0,l.__)("으로는","editnday"),(0,l.__)("에서는","editnday"),(0,l.__)("에서도","editnday"),(0,l.__)("으로서","editnday"),(0,l.__)("으로써","editnday"),(0,l.__)("이에요","editnday"),(0,l.__)("입니다","editnday"),(0,l.__)("에게","editnday"),(0,l.__)("에서","editnday"),(0,l.__)("한테","editnday"),(0,l.__)("으로","editnday"),(0,l.__)("까지","editnday"),(0,l.__)("부터","editnday"),(0,l.__)("처럼","editnday"),(0,l.__)("보다","editnday"),(0,l.__)("이나","editnday"),(0,l.__)("이란","editnday"),(0,l.__)("이라","editnday"),(0,l.__)("이랑","editnday"),(0,l.__)("이다","editnday"),(0,l.__)("인데","editnday"),(0,l.__)("이고","editnday"),(0,l.__)("이며","editnday"),(0,l.__)("이죠","editnday"),(0,l.__)("이야","editnday"),(0,l.__)("로서","editnday"),(0,l.__)("로써","editnday"),(0,l.__)("로는","editnday"),(0,l.__)("에는","editnday"),(0,l.__)("에도","editnday"),(0,l.__)("와는","editnday"),(0,l.__)("과는","editnday"),(0,l.__)("라는","editnday"),(0,l.__)("라고","editnday"),(0,l.__)("마다","editnday"),(0,l.__)("조차","editnday"),(0,l.__)("밖에","editnday"),(0,l.__)("예요","editnday"),(0,l.__)("은","editnday"),(0,l.__)("는","editnday"),(0,l.__)("이","editnday"),(0,l.__)("가","editnday"),(0,l.__)("을","editnday"),(0,l.__)("를","editnday"),(0,l.__)("의","editnday"),(0,l.__)("에","editnday"),(0,l.__)("께","editnday"),(0,l.__)("로","editnday"),(0,l.__)("와","editnday"),(0,l.__)("과","editnday"),(0,l.__)("도","editnday"),(0,l.__)("만","editnday"),(0,l.__)("나","editnday"),(0,l.__)("란","editnday"),(0,l.__)("라","editnday"),(0,l.__)("랑","editnday"),(0,l.__)("다","editnday"),(0,l.__)("인","editnday"),(0,l.__)("고","editnday"),(0,l.__)("며","editnday"),(0,l.__)("죠","editnday"),(0,l.__)("야","editnday"),(0,l.__)("뿐","editnday")],Ge=e=>!!e&&/[\p{L}\p{N}]/u.test(e);function We(e,t){const n=String(t||"").toLowerCase().replace(/\s+/g,""),s=String(e||"").toLowerCase();if(!n||!s)return 0;const a=[];let d="";for(let e=0;e<s.length;e++)/\s/.test(s[e])||(a.push(e),d+=s[e]);let i=0,l=0;for(;;){const e=d.indexOf(n,l);if(e<0)break;l=e+1;const t=a[e],r=a[e+n.length-1]+1;if(Ge(s[t-1]))continue;const o=s.slice(r);if(!Ge(o[0])){i++;continue}const c=Ve.find(e=>o.startsWith(e));c&&!Ge(o[c.length])&&i++}return i}const Xe=(e,t="")=>(e.find(([e])=>e)||[null,t])[1],Ye=()=>(0,G.select)("core/editor"),Ze=e=>(0,G.dispatch)("core/editor").editPost(e),Qe=e=>{try{return JSON.parse(Ye().getEditedPostAttribute("meta")?.[e]||"{}")||{}}catch(e){return{}}},et=(e,t)=>Ze({meta:{[e]:JSON.stringify(t)}}),tt=()=>String(Ye().getEditedPostContent()).replace(/<!--[\s\S]*?-->/g,"").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();function nt({near:e=[]}){const{all:t,chosen:n}=(0,G.useSelect)(e=>({all:e("core").getEntityRecords("taxonomy","category",{per_page:100,hide_empty:!1,_fields:"id,name"})||[],chosen:e("core/editor").getEditedPostAttribute("categories")||[]}),[]);return(0,f.jsx)("span",{className:"ed-chips",children:t.filter(e=>e.id!==it()).map(t=>(0,f.jsxs)(S,{on:n.includes(t.id),lav:!n.includes(t.id)&&e.includes(at(t.name)),onClick:()=>(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n.filter(e=>e!==it()),e];Ze({categories:t.length?t:[it()]})})(t.id),children:[at(t.name),lt(t.id)&&(0,f.jsx)("span",{className:"ed-chip__lock",title:(0,l.sprintf)(/* translators: %s: memberOnly( c.id ).join( ', ' ) */ /* translators: %s: memberOnly( c.id ).join( ', ' ) */(0,l.__)("SureMembers 회원 전용: %s","editnday"),lt(t.id).join(", ")),children:(0,l.__)("회원 전용","editnday")})]},t.id))})}function st({panel:e,onDone:t}){const[n,s]=(0,o.useState)(null),[a,d]=(0,o.useState)(!1),[i,r]=(0,o.useState)(null);return(0,f.jsxs)("div",{className:"ed-redo",children:[(0,f.jsxs)("span",{className:"ed-small",children:[(0,l.__)("딱 맞는 카테고리가 없어요.","editnday")," ",e.near?.length?(0,l.__)("보라색이 그나마 가까운 곳이에요.","editnday"):"",(0,l.__)("골라 주세요.","editnday")]}),(0,f.jsx)(nt,{near:e.near||[]}),null===n?(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(e.suggest||""),children:(0,l.__)("+ 새 카테고리 만들기","editnday")}):(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,l.__)("새 카테고리 이름","editnday"),value:n,onChange:s}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:a||!n.trim(),onClick:async()=>{d(!0),r(null);try{const e=await J()({path:"/wp/v2/categories",method:"POST",data:{name:n.trim()}}).catch(async e=>"term_exists"===e?.code?{id:e.data?.term_id}:Promise.reject(e));e?.id&&Ze({categories:[e.id]}),t?.()}catch(e){r((0,l.__)("카테고리를 만들지 못했어요. 권한을 확인해 주세요.","editnday"))}finally{d(!1)}},children:(0,l.__)("만들기","editnday")})]}),i&&(0,f.jsx)("span",{className:"ed-small is-error",children:i})]})}const at=e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value},dt=e=>{try{return decodeURIComponent(e||"")}catch(t){return e||""}},it=()=>window.editndayConfig?.defaultCategory,lt=e=>window.editndayConfig?.memberCategories?.[e]||null,rt=(e,t)=>{const n=String(t||"").trim();if(!n)return!1;const s=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[^\\p{L}\\p{N}])${s}($|[^\\p{L}\\p{N}])`,"iu").test(String(e||""))},ot=/(에서|으로|부터|까지|에게|처럼|보다|의|은|는|이|가|을|를|와|과|로|에|도|만)$/;function ct(e){const t=e.split(/\s+/).map(e=>e.replace(ot,"").toLowerCase()).filter(Boolean);let n=null;const s=e=>{for(const a of e){if("core/paragraph"===a.name||"core/list-item"===a.name){const e=He(String(a.attributes.content??""));for(const s of e.split(/(?<=[.!?。])\s+/)){const e=s.trim();if(e.length<8)continue;const a=e.toLowerCase(),d=t.filter(e=>a.includes(e)).length;d&&(!n||d>n.score)&&(n={sentence:e,score:d})}}a.innerBlocks?.length&&s(a.innerBlocks)}};return s((0,G.select)("core/block-editor").getBlocks()),n?.sentence??null}function _t({keyword:e}){const t=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=(0,o.useMemo)(()=>ct(e),[e,t]);return n?(0,f.jsxs)("span",{className:"ed-kwplace",children:[(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
     3(0,l.__)('이 문장에 "%s"를 그대로 넣으면 돼요:',"editnday"),e)}),(0,f.jsx)("span",{className:"ed-quote",children:n}),(0,f.jsxs)("span",{className:"ed-row ed-gap6",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>_e(n),children:(0,l.__)("본문에서 보기","editnday")}),y(_.keywordFix,{keyword:e,sentence:n})]})]}):(0,f.jsx)("span",{className:"ed-muted ed-kwplace",children:(0,l.sprintf)(/* translators: %s: Fine Keyword */ /* translators: %s: Fine Keyword */
     4(0,l.__)('본문 첫 단락에 "%s"를 그대로 한 번 넣어 보세요 (바로 뒤에 조사 없이).',"editnday"),e)})}function ut({keyword:e,seo:t}){const[n,s]=(0,o.useState)(!1),a=window.editndayConfig?.seoPlugin;if(!e?.trim()||!a)return null;const d=[!rt(tt(),e)&&(0,l.__)("본문","editnday"),!rt(t.title,e)&&(0,l.__)("제목","editnday"),!rt(t.description,e)&&(0,l.__)("설명","editnday")].filter(Boolean);return d.length?(0,f.jsxs)("span",{className:"ed-small is-warn",children:[(0,l.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */ /* translators: 1: SEO 플러그인 이름, 2: 키워드를 못 찾은 곳 (예: 본문·제목) */
     5(0,l.__)("%1$s 점수로는 %2$s에서 못 찾아요","editnday"),a,d.join("·"))," ",(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>s(!n),children:n?(0,l.__)("닫기","editnday"):(0,l.__)("왜?","editnday")}),n&&(0,f.jsx)("span",{className:"ed-muted ed-koseo__hint",children:(0,l.__)("조사가 붙거나('코스피는') 띄어쓰기가 다르면 다른 말로 봐요. 구글·네이버는 같은 말로 보니 점수만의 문제예요.","editnday")}),!rt(tt(),e)&&(0,f.jsx)(_t,{keyword:e})]}):(0,f.jsx)("span",{className:"ed-small",children:(0,l.sprintf)(/* translators: %s: SEO 플러그인 이름 */ /* translators: %s: SEO 플러그인 이름 */
     6(0,l.__)("%s 키워드 점검 통과","editnday"),a)})}const ht=[["excerpt",(0,l.__)("발췌문","editnday")],["tags",(0,l.__)("태그","editnday"),(0,l.__)("있는 태그 우선","editnday")],["category",(0,l.__)("카테고리","editnday"),(0,l.__)("있는 것 중에서","editnday")],["slug",(0,l.__)("영문 주소","editnday")],["seo",(0,l.__)("SEO 제목·설명","editnday"),(0,l.__)("Fine Keyword 포함","editnday")],["aeo","AEO",(0,l.__)("질문·답","editnday")],["geo","GEO",(0,l.__)("AI 인용용 요약","editnday")]];async function yt(e){const t=[];for(const n of e){const e=(await J()({path:`/wp/v2/tags?search=${encodeURIComponent(n)}&per_page=20&_fields=id,name`})).find(e=>e.name===n);t.push(e?e.id:(await J()({path:"/wp/v2/tags",method:"POST",data:{name:n}})).id)}return t}const mt=e=>String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),pt=(0,l.__)("한눈에 보는 질문과 답","editnday");function gt({summary:e,faq:t},n=["summary","faq"]){const s=(0,G.select)("core/block-editor").getBlocks().filter(e=>n.includes(e.attributes?.metadata?.editnday)),a=String(s.find(e=>"faq"===e.attributes.metadata.editnday)?.innerBlocks.find(e=>"core/heading"===e.name)?.attributes.content||"").trim(),d=s.map(e=>e.clientId);d.length&&(0,G.dispatch)("core/block-editor").removeBlocks(d,!1),t=n.includes("faq")?(t||[]).filter(e=>e.question?.trim()&&e.answer?.trim()):[],e?.trim()&&n.includes("summary")&&(0,G.dispatch)("core/block-editor").insertBlocks((0,V.createBlock)("core/group",{metadata:{editnday:"summary",name:(0,l.__)("요약","editnday")},className:"editnday-box editnday-box--summary"},[(0,V.createBlock)("core/paragraph",{content:(0,l.sprintf)(/* translators: %s: asText( summary ) */ /* translators: %s: asText( summary ) */(0,l.__)("<strong>요약</strong> %s","editnday"),mt(e))})]),0),t?.length&&(0,G.dispatch)("core/block-editor").insertBlocks((0,V.createBlock)("core/group",{metadata:{editnday:"faq",name:(0,l.__)("질문과 답","editnday")},className:"editnday-box editnday-box--faq"},[(0,V.createBlock)("core/heading",{level:2,content:a&&"자주 묻는 질문"!==a?a:pt}),...t.map((e,t)=>(0,V.createBlock)("core/details",{summary:mt(e.question),showContent:0===t},[(0,V.createBlock)("core/paragraph",{content:mt(e.answer)})]))]))}function ft(){return(0,G.useSelect)(e=>{const t=e("core/editor"),n=t.getEditedPostAttribute("featured_media"),s=n?e("core").getMedia(n):null;return{postId:t.getCurrentPostId(),title:t.getEditedPostAttribute("title"),excerpt:t.getEditedPostAttribute("excerpt"),slug:t.getEditedPostAttribute("slug"),tags:t.getEditedPostAttribute("tags")||[],categories:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()),categoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>e!==it()).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),memberCategoryNames:(t.getEditedPostAttribute("categories")||[]).filter(e=>lt(e)).map(t=>e("core").getEntityRecord("taxonomy","category",t)?.name).filter(Boolean),featured:n||0,featuredAlt:s?.alt_text??"",featuredUrl:s?.media_details?.sizes?.medium?.source_url??s?.source_url,seo:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_seo||"{}")||{}}catch(e){return{}}})(),schema:(()=>{try{return JSON.parse(t.getEditedPostAttribute("meta")?._editnday_schema||"{}")||{}}catch(e){return{}}})()}},[])}function xt(e){et("_editnday_seo",{...Qe("_editnday_seo"),keyword:String(e).slice(0,40)})}const bt='EditndayTitle, "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif';let jt=null;const wt=()=>{const e=window.editndayConfig?.titleFont;return jt||(jt=e&&window.FontFace?new window.FontFace("EditndayTitle",`url(${e})`,{weight:"100 900"}).load().then(e=>document.fonts.add(e)).catch(()=>null):Promise.resolve()),jt},kt=[["ink",(0,l.__)("먹색","editnday"),["#1f2a2c"],"#ffffff"],["cream",(0,l.__)("크림","editnday"),["#f4eee3"],"#243235"],["lavender",(0,l.__)("라벤더","editnday"),["#a988e0","#6c48b5"],"#ffffff"],["ocean",(0,l.__)("바다","editnday"),["#0f4c75","#3a8fc9"],"#ffffff"],["sunset",(0,l.__)("노을","editnday"),["#ff9a8b","#f0627f"],"#ffffff"],["forest",(0,l.__)("숲","editnday"),["#134e5e","#5fa77a"],"#ffffff"]];async function Nt(e,t){let n;try{n=await new Promise(t=>e.toBlob(t,"image/jpeg",.9))}catch(e){n=null}if(!n)throw new Error((0,l.__)("이 사이트의 이미지 주소 설정 때문에 그림에 글자를 넣지 못했어요.","editnday"));const s=new window.FormData;s.append("postId",Ye().getCurrentPostId()),Object.entries(t).forEach(([e,t])=>s.append(e,t)),s.append("image",n,"featured-title.jpg");const a=await J()({path:"/editnday/v1/publish/image-title",method:"POST",body:s});return Ze({featured_media:a.id}),(0,G.dispatch)("core").invalidateResolution("getMedia",[a.id]),a}const vt=[["og",(0,l.__)("공유 1.91:1","editnday"),1200,630],["16:9",(0,l.__)("가로 16:9","editnday"),1600,900],["4:3",(0,l.__)("가로 4:3","editnday"),1440,1080],["3:4",(0,l.__)("세로 3:4","editnday"),1080,1440],["9:16",(0,l.__)("세로 9:16","editnday"),1080,1920]],St=[["center",(0,l.__)("가운데","editnday")],["magazine",(0,l.__)("잡지형","editnday")],["band",(0,l.__)("아래 띠","editnday")]];function Ct(e){const t=/^#?([0-9a-f]{6})$/i.exec(e||"");if(!t)return"#ffffff";const[n,s,a]=[0,2,4].map(e=>parseInt(t[1].slice(e,e+2),16)/255),d=e=>e<=.03928?e/12.92:((e+.055)/1.055)**2.4;return.2126*d(n)+.7152*d(s)+.0722*d(a)>.45?"#1f2a2c":"#ffffff"}function $t(e,t,n,s,a,d=3){for(let i=s;i>a;i-=4)if(e.font=`800 ${i}px ${bt}`,Bt(e,t,n,1/0).length<=d)return{size:i,lines:Bt(e,t,n,d)};return e.font=`800 ${a}px ${bt}`,{size:a,lines:Bt(e,t,n,d)}}function It({text:e,template:t="ink",color:n="",layout:s="center",aspect:a="og",scale:d=1}){const i="custom"===t&&/^#[0-9a-f]{6}$/i.test(n),[,,l,r]=i?["custom","",[n],Ct(n)]:kt.find(e=>e[0]===t)||kt[0],[,,o,c]=vt.find(e=>e[0]===a)||vt[0],_=Math.round(o*d),u=Math.round(c*d),h=document.createElement("canvas");h.width=_,h.height=u;const y=h.getContext("2d");y.fillStyle=(()=>{if(l.length>1){const e=y.createLinearGradient(0,0,_,u);return e.addColorStop(0,l[0]),e.addColorStop(1,l[1]),e}return l[0]})(),y.fillRect(0,0,_,u);const m=Math.min(_,u),p=Math.round(.1*m),g=String(window.editndayConfig?.siteName||"").trim().slice(0,40),f=Math.round(.042*m);if(y.textBaseline="alphabetic","band"===s){const t=Math.round(u*(u>_?.34:.4));y.fillStyle=r,y.fillRect(0,u-t,_,t);const{size:n,lines:s}=$t(y,e,_-2*p,Math.round(.12*m),Math.round(.06*m),2);y.font=`800 ${n}px ${bt}`,y.fillStyle=(l.length,l[0]),y.textAlign="left";const a=Math.round(1.25*n),d=n+(s.length-1)*a,i=u-t+(t-d)/2+.85*n;return s.forEach((e,t)=>y.fillText(e,p,i+t*a)),g&&(y.font=`700 ${f}px ${bt}`,y.fillStyle=r,y.globalAlpha=.75,y.fillText(g,p,p+f),y.globalAlpha=1),h}if("magazine"===s){y.fillStyle=r,y.textAlign="left",g&&(y.font=`700 ${f}px ${bt}`,y.globalAlpha=.8,y.fillText(g,p,p+f),y.globalAlpha=1);const{size:t,lines:n}=$t(y,e,_-2*p,Math.round(.14*m),Math.round(.07*m),u>_?4:3);y.font=`800 ${t}px ${bt}`;const s=Math.round(1.22*t),a=u-p-(n.length-1)*s;return y.fillRect(p,a-t-Math.round(.05*m),Math.round(.09*m),Math.max(3,Math.round(.012*m))),n.forEach((e,t)=>y.fillText(e,p,a+t*s)),h}const{size:x,lines:b}=$t(y,e,_-2*p,Math.round(.14*m),Math.round(.07*m),u>_?4:3);y.font=`800 ${x}px ${bt}`,y.fillStyle=r,y.textAlign="center";const j=Math.round(1.28*x),w=(b.length-1)*j,k=(u-w)/2+.35*x-.4*f;return b.forEach((e,t)=>y.fillText(e,_/2,k+t*j)),g&&(y.font=`700 ${f}px ${bt}`,y.globalAlpha=.72,y.fillText(g,_/2,u-.9*p),y.globalAlpha=1),h}async function At(e,t="ink",n={}){return e.trim()?(await wt(),Nt(It({text:e,template:t,...n}),{template:"custom"===t?`custom-${String(n.color||"").replace("#","")}`:t,alt:e.trim()})):null}async function Et(e){return e.text?.trim()?(await wt(),It({...e,scale:.3}).toDataURL("image/jpeg",.8)):""}function Bt(e,t,n,s=3){const a=[];let d="";return t.trim().split(/\s+/).forEach(t=>(t=>{const s=d?d+" "+t:t;if(e.measureText(s).width<=n)d=s;else if(d&&(a.push(d),d=""),e.measureText(t).width<=n)d=t;else for(const s of t)e.measureText(d+s).width>n&&(a.push(d),d=""),d+=s})(t)),d&&a.push(d),a.length>s&&(a.length=s,a[s-1]=a[s-1].replace(/.$/,"…")),a}async function Pt(e,t="bottom",n="title"){const s=Ye().getEditedPostAttribute("featured_media");if(!s||!e.trim())return null;await wt();const a=await J()({path:`/editnday/v1/publish/image-source?id=${s}`}),d=await new Promise((e,t)=>{const n=new window.Image;n.crossOrigin="anonymous",n.onload=()=>e(n),n.onerror=()=>t(new Error((0,l.__)("그림을 불러오지 못했어요.","editnday"))),n.src=a.url}),i=Math.min(d.naturalWidth,1600),r=Math.round(d.naturalHeight*i/d.naturalWidth),o=document.createElement("canvas");o.width=i,o.height=r;const c=o.getContext("2d");c.drawImage(d,0,0,i,r);const _="caption"===n;if("center"===t)c.fillStyle=_?"rgba(0,0,0,0.18)":"rgba(0,0,0,0.42)",c.fillRect(0,0,i,r);else{const e="top"===t,n=_?.2:.65,s=c.createLinearGradient(0,e?r*n:r*(1-n),0,e?0:r);s.addColorStop(0,"rgba(0,0,0,0)"),s.addColorStop(1,_?"rgba(0,0,0,0.45)":"rgba(0,0,0,0.74)"),c.fillStyle=s,c.fillRect(0,e?0:r*(1-n),i,r*n)}const u=_?Math.max(12,Math.round(.011*i)):Math.round(.064*i);c.font=`${_?700:800} ${u}px ${bt}`,c.fillStyle="#fff",c.textBaseline="alphabetic",c.shadowColor="rgba(0,0,0,0.45)",c.shadowBlur=.25*u;const h=Math.round(i*(_?.03:.06)),y=Bt(c,e,i-h*(_?4:2)),m=Math.round(1.28*u),p=(y.length-1)*m;let g=r-h-p;return"top"===t?g=h+.85*u:"center"===t&&(g=(r-p)/2+.35*u),c.textAlign="center",y.forEach((e,t)=>c.fillText(e,i/2,g+t*m)),Nt(o,{sourceId:a.id})}function Mt(e){const t=(0,G.select)("core/block-editor"),n=`<a href="${encodeURI(e.url)}">${String(e.title).replace(/&/g,"&amp;").replace(/</g,"&lt;")}</a>`,s=(0,V.createBlock)("core/list-item",{content:n}),a=t.getBlocks().find(e=>"core/list"===e.name&&String(e.attributes.className||"").includes("editnday-related"));a?(0,G.dispatch)("core/block-editor").insertBlock(s,a.innerBlocks.length,a.clientId):(0,G.dispatch)("core/block-editor").insertBlocks([(0,V.createBlock)("core/paragraph",{content:(0,l.__)("<strong>함께 읽으면 좋은 글</strong>","editnday"),className:"editnday-related-title"}),(0,V.createBlock)("core/list",{className:"editnday-related"},[s])],t.getBlockCount())}const Tt=(e,t)=>({excerpt:!!e.excerpt,tags:e.tags.length>0,category:e.categories.length>0,slug:/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e.slug||"")&&!/^\d+$/.test(e.slug),seo:!!e.seo.description,aeo:!!e.schema.faq?.some(e=>e.question?.trim()&&e.answer?.trim()),geo:!!e.schema.summary?.trim(),featured:!!e.featured,alt:!!e.featuredAlt}[t]),Ot=e=>String(e??"").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim();function Ft(e){const t=[];let n="",s=0;const a=e=>{for(const d of e){const e=d.attributes?.metadata?.editnday;"core/heading"===d.name?t.push(Ot(d.attributes.content)):"core/paragraph"===d.name&&!n&&"summary"!==e&&Ot(d.attributes.content)?n=Ot(d.attributes.content):"core/image"===d.name&&d.attributes.url&&s++,"summary"!==e&&"faq"!==e&&d.innerBlocks?.length&&a(d.innerBlocks)}};a(e);const d=String(Ye().getEditedPostContent());return{headings:t,firstPara:n,images:s,links:(d.match(/<a\s[^>]*href=/gi)||[]).length,body:tt()}}function qt(e){const t=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),n=e.seo.kept||{};return function(e){const t=String(e.keyword||"").trim(),n=e=>[...String(e||"").trim()].length,s=[],a=(e,t,n,a,d)=>s.push({id:e,ok:t,label:n,hint:t?"":a,who:d});if(t){const s=e=>We(e,t)>0;a("title",s(e.title),s(e.title)?(0,l.__)("제목에 Fine Keyword","editnday"):(0,l.__)("제목에 Fine Keyword가 없어요","editnday"),(0,l.__)("검색 결과 제목 앞쪽에 넣으면 검색어와 바로 맞물려요","editnday"),(0,l.__)("구글·네이버","editnday")),a("first",s(e.firstPara),s(e.firstPara)?(0,l.__)("첫 단락에 Fine Keyword","editnday"):(0,l.__)("첫 단락에 Fine Keyword가 없어요","editnday"),(0,l.__)("무엇에 관한 글인지 첫 단락에서 밝히면 검색엔진과 AI가 주제를 잡기 쉬워요","editnday"),(0,l.__)("구글·네이버·AI","editnday"));const d=e.headings.some(s);a("heading",d,d?(0,l.__)("소제목에 Fine Keyword","editnday"):(0,l.__)("소제목에 Fine Keyword가 없어요","editnday"),(0,l.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,l.__)("소제목 %s개 중 하나에 넣으면 글의 짜임이 검색어와 이어져요","editnday"),e.headings.length),(0,l.__)("구글·네이버","editnday"));const i=We(e.body,t),r=n(e.body)?1e3*i/n(e.body):0;a("repeat",i>=1&&r<=6,Xe([[0===i,(0,l.__)("본문에 Fine Keyword가 없어요","editnday")],[r>6,(0,l.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,l.__)("본문에 Fine Keyword %s번 (많아요)","editnday"),i)]],(0,l.sprintf)(/* translators: %s: times */ /* translators: %s: times */(0,l.__)("본문에 Fine Keyword %s번","editnday"),i)),Xe([[0===i,(0,l.__)("본문에 실제로 쓰는 표기와 같은지 확인해 주세요 (예: 볼보EX60 / VolvoEX60)","editnday")]],(0,l.__)("같은 말을 너무 자주 되풀이하면 구글·네이버 모두 낮게 봐요. 대명사나 다른 표현으로 바꿔 보세요","editnday")),(0,l.__)("구글·네이버","editnday")),n(e.description)&&a("desc",s(e.description),s(e.description)?(0,l.__)("설명에 Fine Keyword","editnday"):(0,l.__)("설명에 Fine Keyword가 없어요","editnday"),(0,l.__)("순위와는 상관없지만, 검색어가 설명에 있으면 검색 결과에서 굵게 보여 눈에 띄어요","editnday"),(0,l.__)("구글·네이버","editnday"))}const d=n(e.title);a("titleLen",d>0&&d<=40,d?(0,l.sprintf)(/* translators: %s: tl */ /* translators: %s: tl */(0,l.__)("검색 결과 제목 %s자","editnday"),d):(0,l.__)("검색 결과 제목이 없어요","editnday"),Xe([[d>40,(0,l.__)("40자를 넘으면 검색 결과에서 잘려요","editnday")]],(0,l.__)("제목을 넣어 주세요","editnday")),(0,l.__)("구글·네이버","editnday"));const i=n(e.description);return a("descLen",i>=40&&i<=110,i?(0,l.sprintf)(/* translators: %s: dl */ /* translators: %s: dl */(0,l.__)("검색 결과 설명 %s자","editnday"),i):(0,l.__)("검색 결과 설명이 없어요","editnday"),Xe([[0===i,(0,l.__)("SEO 설명을 만들어 보세요. 없으면 검색엔진이 본문에서 아무 문장이나 가져가요","editnday")],[i<40,(0,l.__)("너무 짧으면 검색엔진이 본문에서 다른 문장을 가져가요","editnday")]],(0,l.__)("110자를 넘으면 잘려요","editnday")),(0,l.__)("구글·네이버","editnday")),a("headings",e.headings.length>=2,(0,l.sprintf)(/* translators: %s: o.headings.length */ /* translators: %s: o.headings.length */(0,l.__)("소제목 %s개","editnday"),e.headings.length),(0,l.__)("소제목으로 나누면 검색엔진이 단락별 주제를, AI가 답할 부분을 찾기 쉬워요","editnday"),(0,l.__)("구글·네이버·AI","editnday")),a("answer",!!e.summary||e.faq>0,Xe([[e.summary&&e.faq>0,(0,l.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,l.__)("요약과 질문답 %s개","editnday"),e.faq)],[e.summary,(0,l.__)("요약 있음","editnday")],[e.faq>0,(0,l.sprintf)(/* translators: %s: o.faq */ /* translators: %s: o.faq */(0,l.__)("질문답 %s개","editnday"),e.faq)]],(0,l.__)("요약·질문답이 없어요","editnday")),(0,l.__)("발행 준비의 AEO·GEO로 만들면 AI 답변에 인용되기 쉬워요","editnday"),"AI"),a("links",e.links>0,e.links?(0,l.sprintf)(/* translators: %s: o.links */ /* translators: %s: o.links */(0,l.__)("출처·관련 링크 %s개","editnday"),e.links):(0,l.__)("링크가 없어요","editnday"),(0,l.__)("출처가 보이면 믿을 만한 글로 보고, AI도 근거로 인용해요","editnday"),(0,l.__)("구글·네이버·AI","editnday")),a("images",e.images>0,e.images?(0,l.sprintf)(/* translators: %s: o.images */ /* translators: %s: o.images */(0,l.__)("본문 이미지 %s개","editnday"),e.images):(0,l.__)("본문 이미지가 없어요 (대표 이미지만)","editnday"),(0,l.__)("본문에 사진·도표가 있으면 이미지 검색과 네이버 노출에 도움이 돼요","editnday"),(0,l.__)("구글·네이버","editnday")),s}({keyword:e.seo.keyword,title:n.title||e.seo.title||e.title||"",description:n.description||e.seo.description||"",summary:!!e.schema.summary,faq:e.schema.faq?.length||0,...Ft(t)})}function Lt({st:e}){const[t,n]=(0,o.useState)(!1),s=qt(e),a=s.filter(e=>e.ok).length,d=s.filter(e=>!e.ok),[i,r]=(0,o.useState)("");return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(d.length?"":" is-ok"),children:(0,l.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
     7(0,l.__)("%1$d개 중 %2$d개 통과","editnday"),s.length,a)})]}),!e.seo.keyword?.trim()&&(0,f.jsxs)("div",{className:"ed-koseo__kw",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,placeholder:(0,l.__)("예: 노벨문학상","editnday"),value:i,onChange:r,onKeyDown:e=>"Enter"===e.key&&i.trim()&&xt(i.trim())}),(0,f.jsx)(N,{disabled:!i.trim(),onClick:()=>xt(i.trim()),children:(0,l.__)("정하기","editnday")}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("정하면 제목·설명·본문에 키워드가 있는지도 봐요.","editnday")})]}),(t?s:d).map(e=>(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("span",{className:"ed-koseo__head",children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.who})]}),e.hint&&(0,f.jsx)("span",{className:"ed-koseo__hint",children:e.hint})]})]},e.id)),!d.length&&!t&&(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("모두 좋아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,l.__)("고칠 것만 보기","editnday"):(0,l.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,l.__)("통과한 것도 보기 (%s)","editnday"),a)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("조사·띄어쓰기가 달라도 같은 말로 봐요 (구글·네이버 기준)","editnday")})]})]})}function Rt({st:e}){const[t,n]=(0,o.useState)("google"),s=e.seo.kept||{},a=s.title||e.seo.title||e.title||"",d=s.description||e.seo.description||e.excerpt||"",i=window.editndayConfig?.seoPlugin,r=window.location.host,c=(e,t,n)=>e<t?(0,l.__)("짧음","editnday"):e>n?(0,l.__)("김","editnday"):(0,l.__)("적정","editnday");return(0,f.jsxs)(w,{children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색 결과 미리보기","editnday")}),(0,f.jsxs)("span",{className:"ed-chips",children:[(0,f.jsx)(S,{on:"google"===t,onClick:()=>n("google"),children:(0,l.__)("구글","editnday")}),(0,f.jsx)(S,{on:"naver"===t,onClick:()=>n("naver"),children:(0,l.__)("네이버","editnday")})]})]}),(0,f.jsxs)("div",{className:`ed-serp is-${t}`,children:[(0,f.jsxs)("span",{className:"ed-serp__u",children:[r," › ",dt(e.slug)||"…"]}),(0,f.jsx)("span",{className:"ed-serp__t",children:a||(0,l.__)("제목 없음","editnday")}),(0,f.jsx)("span",{className:"ed-serp__d",children:d||(0,l.__)("설명이 없어요. SEO 설명을 만들어 보세요.","editnday")})]}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */ /* translators: 1: 제목 글자 수, 2: 제목 길이 판정(짧음·적정·김), 3: 설명 글자 수, 4: 설명 길이 판정 */
     8(0,l.__)("제목 %1$d자 (%2$s) · 설명 %3$d자 (%4$s)","editnday"),a.length,c(a.length,20,45),d.length,c(d.length,60,110))}),i&&(0,f.jsx)("span",{className:"ed-muted",children:s.title||s.description?(0,l.sprintf)(/* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */ /* translators: 1: SEO 플러그인 이름, 2: 직접 쓴 칸 (제목·설명), 3: SEO 플러그인 이름 */(0,l.__)("%1$s에 직접 쓴 %2$s이 있어 그 값이 나가요. 에디튼 값을 쓰려면 %3$s에서 그 칸을 비워 주세요.","editnday"),i,[s.title&&(0,l.__)("제목","editnday"),s.description&&(0,l.__)("설명","editnday")].filter(Boolean).join("·"),i):(0,l.sprintf)(/* translators: %s: plugin */ /* translators: %s: plugin */(0,l.__)("저장하면 %s 칸에도 들어가요.","editnday"),i)})]})}function Dt(e,t){return t?(0,l.__)("닫기","editnday"):e?(0,l.__)("다시","editnday"):(0,l.__)("만들기","editnday")}function Kt(){const e=window.editndayConfig?.siteOpen;return e?.blocking?.length?(0,f.jsxs)(w,{className:"ed-ask ed-siteopen",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색에 나오지 않을 수 있어요","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.sprintf)(/* translators: %s: 안 된 워드프레스 설정 목록 */ /* translators: %s: 안 된 워드프레스 설정 목록 */
     9(0,l.__)("워드프레스 설정에서 %s이(가) 아직 안 됐어요. 이대로 발행하면 검색엔진이 이 글을 찾지 못하거나 늦게 찾아요.","editnday"),e.blocking.join(", "))}),e.canManage&&(0,f.jsx)("a",{className:"ed-link",href:e.url,children:(0,l.__)("에디튼 → 사이트 오픈에서 확인하기","editnday")})]}):null}function Ht(){const e=window.editndayConfig?.seoMode||{},t=(0,G.useSelect)(e=>"1"===e("core/editor").getEditedPostAttribute("meta")?._editnday_noindex,[]);return"with"===e.mode?(0,f.jsx)("p",{className:"ed-muted ed-seomode",children:(0,l.sprintf)(/* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */ /* translators: %s: 함께 쓰는 SEO 플러그인 이름 (두 번 나옴) */
     10(0,l.__)("%1$s와 함께 쓰는 중이에요. 검색엔진이 읽는 머리말(제목·설명·공유 미리보기)은 %1$s가 내고, 에디튼은 값을 채우고 점검해요.","editnday"),e.plugin)}):(0,f.jsxs)(w,{className:"ed-seomode",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색엔진·공유 머리말","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("SEO 플러그인 없이 쓰는 중이라 에디튼이 직접 내요: SEO 제목·설명, 카카오톡·페이스북 공유 미리보기, 글 구조화 데이터.","editnday")}),(0,f.jsx)(p.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("이 글은 검색 결과에 보이지 않게","editnday"),checked:t,onChange:e=>(0,G.dispatch)("core/editor").editPost({meta:{_editnday_noindex:e?"1":""}})})]})}function zt({st:e}){const[t,n]=(0,o.useState)(!1),s=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),a=(0,G.useSelect)(e=>{const t=e("core/editor");return"auto-draft"===t.getEditedPostAttribute("status")?null:t.getEditedPostAttribute("modified")||null},[]),d=Ft(s),i=String(Ye().getEditedPostContent()),r=window.location.host;let c=0,_=0;for(const e of i.matchAll(/<a\s[^>]*href=["']([^"']+)["']/gi))try{const t=new URL(e[1],window.location.href);if(!/^https?:$/.test(t.protocol))continue;t.host===r?c++:_++}catch{}const u=window.editndayConfig?.aiReady||{},{score:h,items:y}=function(e){const t=String(e.body||""),n=t.split(/(?<=[.!?。])\s+|\n+/).filter(e=>/\d/.test(e)).length,s=[...t.replace(/\s+/g,"")].length,a=!e.modified||(e.now??Date.now())-new Date(e.modified).getTime()<31536e6,d=[],i=(e,t,n,s,a,i)=>d.push({part:e,id:t,points:n,ok:!!s,label:a,hint:s?"":i}),r=(0,l.__)("형식","editnday"),o=(0,l.__)("내용","editnday");return i(r,"lead",12,e.summaryVisible,(0,l.__)("결론 먼저 (글 앞 요약)","editnday"),(0,l.__)('GEO 요약을 "본문에 보이게"로 넣으면 AI가 첫 단락에서 답을 가져가요',"editnday")),i(r,"headings",8,e.headings>=3,(0,l.sprintf)(/* translators: %d: 소제목 수 */ /* translators: %d: 소제목 수 */(0,l.__)("소제목 %d개","editnday"),e.headings),(0,l.__)("소제목을 3개 이상으로 나누면 AI가 질문마다 답할 부분을 찾아요","editnday")),i(r,"faq",8,e.faq>=2,(0,l.sprintf)(/* translators: %d: 질문답 수 */ /* translators: %d: 질문답 수 */(0,l.__)("질문답 %d개","editnday"),e.faq),(0,l.__)("AEO 질문답을 2개 이상 넣어요","editnday")),i(r,"identity",6,e.identity,(0,l.__)("내 블로그 정체성","editnday"),(0,l.__)("사이트 오픈 4단계에서 한 줄 소개·다른 곳 주소를 넣으면 AI가 누가 쓴 글인지 알아봐요","editnday")),i(r,"internal",8,e.internal>=1,(0,l.sprintf)(/* translators: %d: 내부 링크 수 */ /* translators: %d: 내부 링크 수 */(0,l.__)("내 글 링크 %d개","editnday"),e.internal),(0,l.__)('이어지는 내 글을 하나 이상 연결해요 (발행 준비의 "이어지는 내 글")',"editnday")),i(r,"bots",8,!1!==e.bots,!1===e.bots?(0,l.__)("AI 검색 봇이 막힘","editnday"):(0,l.__)("AI 검색 봇 허용","editnday"),(0,l.__)("사이트 오픈 4단계에서 robots.txt·방화벽을 확인해요","editnday")),i(o,"numbers",12,n>=3,(0,l.sprintf)(/* translators: %d: 숫자 문장 수 */ /* translators: %d: 숫자 문장 수 */(0,l.__)("숫자가 든 문장 %d개","editnday"),n),(0,l.__)("통계·가격·날짜처럼 확인할 수 있는 숫자를 3문장 이상에 넣으면 AI가 근거로 써요","editnday")),i(o,"sources",12,e.external>=2,(0,l.sprintf)(/* translators: %d: 출처 링크 수 */ /* translators: %d: 출처 링크 수 */(0,l.__)("출처 링크 %d개","editnday"),e.external),(0,l.__)("숫자·주장의 출처를 2곳 이상 링크로 밝혀요","editnday")),i(o,"author",8,e.authorBio,(0,l.__)("저자 소개","editnday"),(0,l.__)("[사용자 → 프로필]의 자기소개를 채우면 누가 썼는지(전문성)가 보여요","editnday")),i(o,"fresh",8,a,a?(0,l.__)("1년 안에 고친 글","editnday"):(0,l.__)("1년 넘게 고치지 않은 글","editnday"),(0,l.__)("AI는 최신 정보를 인용해요. 숫자를 다시 확인하고 고쳐 주세요","editnday")),i(o,"length",10,s>=1500,(0,l.sprintf)(/* translators: %s: 글자 수 */ /* translators: %s: 글자 수 */(0,l.__)("본문 %s자","editnday"),s.toLocaleString("ko-KR")),(0,l.__)("1,500자 이상이면 AI가 인용할 근거가 충분해요","editnday")),{score:d.reduce((e,t)=>e+(t.ok?t.points:0),0),items:d}}({summaryVisible:s.some(e=>"summary"===e.attributes?.metadata?.editnday),headings:d.headings.length,faq:e.schema.faq?.length||0,identity:!!u.identity,internal:c,external:_,bots:u.bots??null,body:d.body,authorBio:!!u.authorBio,modified:a}),m=y.filter(e=>!e.ok).sort((e,t)=>t.points-e.points),p=h>=80?"is-ok":h>=60?"is-warn":"is-bad";return(0,f.jsxs)(w,{className:"ed-aicite",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("AI 인용 준비","editnday")}),(0,f.jsx)("span",{className:`ed-aicite__score ${p}`,children:(0,l.sprintf)(/* translators: %d: 점수 */ /* translators: %d: 점수 */
     11(0,l.__)("%d / 100","editnday"),h)})]}),(0,f.jsx)("div",{className:"ed-aicite__bar","aria-hidden":"true",children:(0,f.jsx)("span",{className:p,style:{width:`${h}%`}})}),(0,f.jsx)("p",{className:"ed-muted ed-small",children:h>=80?(0,l.__)("ChatGPT·구글 AI 개요·네이버 AI 브리핑이 인용하기 좋은 글이에요.","editnday"):(0,l.__)("80점이 넘으면 AI 답변에 인용되기 좋은 글이에요. 점수가 큰 것부터 채워 보세요.","editnday")}),m.slice(0,t?m.length:3).map(e=>(0,f.jsxs)("div",{className:"ed-aicite__item",children:[(0,f.jsxs)("span",{className:"ed-aicite__pts",children:["+",e.points]}),(0,f.jsxs)("span",{children:[(0,f.jsx)("strong",{children:e.label}),(0,f.jsxs)("span",{className:"ed-muted ed-small",children:[" ",e.hint]})]})]},e.id)),m.length>3&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>n(!t),children:t?(0,l.__)("접기","editnday"):(0,l.sprintf)(/* translators: %d: 남은 항목 수 */ /* translators: %d: 남은 항목 수 */
     12(0,l.__)("빠진 것 %d개 더 보기","editnday"),m.length-3)})]})}function Ut({st:e,onCheck:t}){const n=qt(e),s=n.filter(e=>e.ok).length;return(0,f.jsxs)(w,{className:"ed-koseo-line",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("검색·AI 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
     13(0,l.__)("%1$d개 중 %2$d개 통과","editnday"),n.length,s)})]}),t&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:t,children:(0,l.__)("글 점검에서 자세히 보기","editnday")})]})}function Jt({onNew:e,onCheck:t}){const n=ft(),[s,a]=(0,o.useState)(null),[d,i]=(0,o.useState)(null),[r,c]=(0,o.useState)(null),[u,m]=(0,o.useState)(n.schema.mode||"visible"),[g,x]=(0,o.useState)(!1),[b,v]=(0,o.useState)(0),[C,$]=(0,o.useState)(null),[I,E]=(0,o.useState)(""),[P,M]=(0,o.useState)("bottom"),[O,F]=(0,o.useState)("title"),[q,L]=(0,o.useState)(()=>{try{return{tpl:"ink",layout:"center",aspect:"og",color:"#2F5D50",...JSON.parse(window.localStorage.getItem("editndayTpl")||"{}")}}catch{return{tpl:"ink",layout:"center",aspect:"og",color:"#2F5D50"}}}),R=e=>L(t=>{const n={...t,...e};try{window.localStorage.setItem("editndayTpl",JSON.stringify(n))}catch{}return n}),D=q.tpl,[H,z]=(0,o.useState)(""),U=I.trim()||n.title?.trim()||"";(0,o.useEffect)(()=>{let e=!1;const t=setTimeout(()=>{Et({text:U,template:q.tpl,color:q.color,layout:q.layout,aspect:q.aspect}).then(t=>!e&&z(t)).catch(()=>!e&&z(""))},150);return()=>{e=!0,clearTimeout(t)}},[U,q]);const[V,W]=(0,o.useState)(null),X=Qe("_editnday_indexed"),Y=(0,G.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),Z=(0,G.useSelect)(e=>e("core/editor").isSavingPost(),[]),Q=(0,G.useSelect)(e=>{const t=e("core/editor");return"future"===t.getEditedPostAttribute("status")?t.getEditedPostAttribute("date"):null},[]),ee=e=>!!s&&s.split(",").includes(e),te=async(e,t)=>{a(e),v(Date.now()),i(null);try{await t()}catch(e){i(e?.message&&!e.message.includes("<")?e.message:(0,l.__)("만들지 못했어요. 잠시 뒤 다시 해 주세요.","editnday"))}finally{a(null)}},ne={st:n,busy:s,isBusy:ee,run:te,since:b,aeoMode:u,setCatPanel:$,setRedo:x,onImage:I,titlePos:P,titleKind:O},se=(e,t={})=>y(_.publishFieldActions,{...ne,key:e,...t}),ae=()=>(0,f.jsxs)("span",{className:"ed-busy",children:[(0,f.jsx)("span",{className:"ed-pulse"}),(0,l.__)("만드는 중","editnday")," ",(0,f.jsx)(B,{since:b})]});return(0,f.jsxs)(f.Fragment,{children:[Q?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,l.__)("예약한 글","editnday"),title:(0,l.__)("예약한 글 다듬기","editnday"),sub:(0,l.__)("발행되기 전까지 대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)((0,l.sprintf)(/* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */ /* translators: %s: 예약 발행 시각. <b>…</b>는 굵게 (버튼 이름) */
     14(0,l.__)("<b>%s</b>에 발행돼요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 저장]</b>을 눌러야 예약된 글에 들어가요. 시간은 오른쪽 위 <b>[예약됨]</b>에서 바꿔요.","editnday"),Gt(Q)),{b:(0,f.jsx)("strong",{})})})]}):Y?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,l.__)("발행한 글","editnday"),title:(0,l.__)("발행한 글 다듬기","editnday"),sub:(0,l.__)("대표 이미지, 검색 설정, 요약과 질문·답을 다시 만들거나 고칠 수 있어요.","editnday")}),(0,f.jsx)("div",{className:"ed-note",children:(0,o.createInterpolateElement)(/* translators: <b>…</b>는 굵게 (버튼 이름) */ /* translators: <b>…</b>는 굵게 (버튼 이름) */
     15(0,l.__)("이미 공개된 글이에요. 여기서 바꾼 내용은 맨 아래 <b>[바뀐 내용 사이트에 반영]</b>을 눌러야 사이트에 반영돼요.","editnday"),{b:(0,f.jsx)("strong",{})})})]}):(0,f.jsx)(A,{eyebrow:(0,l.__)("발행 준비","editnday"),title:(0,l.__)("발행 전에 다듬을 것","editnday"),sub:(0,l.__)("하나씩 하거나 한 번에 해요. 만든 값은 고칠 수 있어요.","editnday")}),d&&(0,f.jsx)("div",{className:"ed-note is-error",children:d}),(0,f.jsxs)(w,{className:"ed-tasks",children:[(0,f.jsxs)("div",{className:"ed-cardhead",children:[(0,f.jsxs)("span",{className:"ed-cardhead__t",children:[(0,l.__)("할 일","editnday")," ",(0,f.jsx)("span",{className:"ed-tag",children:(0,l.sprintf)(/* translators: 1: 된 것, 2: 전체 */ /* translators: 1: 된 것, 2: 전체 */
     16(0,l.__)("%1$d / %2$d 됨","editnday"),ht.filter(([e])=>Tt(n,e)).length+(n.featured?1:0)+(n.featuredAlt?1:0),ht.length+2)})]}),se("all",{place:"head"})]}),se("all",{place:"live"}),ht.map(([e,t,s])=>{const a=se(e,{place:"row"}),d=!h()&&["seo","aeo","geo"].includes(e);return(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:`ed-circ${Tt(n,e)?" is-filled":""}${ee(e)?" is-busy":""}`,children:Tt(n,e)&&(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-task__t",children:[t," ",s&&(0,f.jsxs)("span",{className:"ed-muted",children:["(",s,")"]})]}),ee(e)&&(0,f.jsx)(ae,{}),!ee(e)&&Tt(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-done",onClick:()=>c(r===e?null:e),children:r===e?(0,l.__)("닫기","editnday"):(0,l.__)("보기","editnday")}),!ee(e)&&!Tt(n,e)&&(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",onClick:()=>c(r===e?null:e),children:r===e?(0,l.__)("닫기","editnday"):a.length?(0,l.__)("직접","editnday"):(0,l.__)("직접 쓰기","editnday")}),!ee(e)&&!Tt(n,e)&&a]}),!Tt(n,e)&&d&&(0,f.jsx)("div",{className:"ed-prohint-row",children:(0,f.jsx)(K,{label:(0,l.__)("AI로 만들기","editnday")})}),"category"===e&&C&&!Tt(n,e)&&(0,f.jsx)(st,{panel:C,onDone:()=>$(null)}),r===e&&(0,f.jsx)(Yt,{k:e,st:n,mode:u,extra:se(e,{place:"editor"}),below:se(e,{place:"below"})})]},e)}),(0,f.jsxs)("div",{className:"ed-taskwrap",children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featured?" is-filled":""),children:!!n.featured&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,l.__)("대표 이미지","editnday")}),"featured"===s?(0,f.jsx)(ae,{}):(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>x(!g),children:Dt(n.featured,g)})]}),n.featuredUrl&&(0,f.jsx)("img",{className:"ed-thumb",src:n.featuredUrl,alt:n.featuredAlt}),n.featuredUrl&&(0,f.jsx)(Qt,{url:n.featuredUrl,title:n.seo.kept?.title||n.seo.title||n.title||"",description:n.seo.kept?.description||n.seo.description||""}),g&&(0,f.jsxs)("div",{className:"ed-redo",children:[se("featured"),(0,f.jsx)(K,{label:(0,l.__)("AI로 그림 만들기","editnday")}),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,l.__)("그림에 넣을 제목 (선택)","editnday"),placeholder:(0,l.__)("비워 두면 글자 없는 그림","editnday"),value:I,onChange:E}),(0,f.jsxs)("div",{className:"ed-redo__title",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>E(n.title||""),children:(0,l.__)("글 제목 그대로 넣기","editnday")}),!!I.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["title",(0,l.__)("제목형","editnday")],["caption",(0,l.__)("캡션형","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:O===e,onClick:()=>F(e),children:t},e))}),!!I.trim()&&(0,f.jsx)("span",{className:"ed-chips",children:[["top",(0,l.__)("위","editnday")],["center",(0,l.__)("가운데","editnday")],["bottom",(0,l.__)("아래","editnday")]].map(([e,t])=>(0,f.jsx)(S,{on:P===e,onClick:()=>M(e),children:t},e))})]}),(0,f.jsx)("div",{className:"ed-redo__actions",children:!!n.featured&&(0,f.jsx)(N,{disabled:!!s||!I.trim(),onClick:()=>te("featured",async()=>(await Pt(I,P,O),x(!1))),children:(0,l.__)("지금 그림에 제목만 넣기","editnday")})})]}),(0,f.jsxs)("div",{className:"ed-tpl",children:[(0,f.jsx)("span",{className:"ed-small ed-strong",children:(0,l.__)("AI 없이 배경 틀로 만들기","editnday")}),(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label",children:(0,l.__)("색","editnday")}),(0,f.jsxs)("span",{className:"ed-tpl__swatches",children:[kt.map(([e,t,n,s])=>(0,f.jsx)("button",{type:"button",className:"ed-tpl__sw"+(D===e?" is-on":""),style:{background:n.length>1?`linear-gradient(135deg, ${n[0]}, ${n[1]})`:n[0],color:s},"aria-pressed":D===e,title:t,onClick:()=>R({tpl:e}),children:(0,l.__)("가","editnday")},e)),(0,f.jsx)("button",{type:"button",className:"ed-tpl__sw ed-tpl__sw--custom"+("custom"===D?" is-on":""),style:"custom"===D?{background:q.color}:void 0,"aria-pressed":"custom"===D,title:(0,l.__)("직접 고른 색","editnday"),onClick:()=>R({tpl:"custom"}),children:"custom"===D?"":"+"})]})]}),"custom"===D&&(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label"}),(0,f.jsxs)("span",{className:"ed-tpl__color",children:[(0,f.jsx)("input",{type:"color","aria-label":(0,l.__)("바탕색 고르기","editnday"),value:/^#[0-9a-f]{6}$/i.test(q.color)?q.color:"#2F5D50",onChange:e=>R({color:e.target.value})}),(0,f.jsx)("input",{type:"text","aria-label":(0,l.__)("바탕색 hex","editnday"),value:q.color,maxLength:7,spellCheck:!1,onChange:e=>{const t=e.target.value.trim();R({color:t.startsWith("#")?t:"#"+t})}})]})]}),(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label",children:(0,l.__)("배치","editnday")}),(0,f.jsx)("span",{className:"ed-chips",children:St.map(([e,t])=>(0,f.jsx)(S,{on:q.layout===e,onClick:()=>R({layout:e}),children:t},e))})]}),(0,f.jsxs)("div",{className:"ed-tpl__row",children:[(0,f.jsx)("span",{className:"ed-tpl__label",children:(0,l.__)("비율","editnday")}),(0,f.jsx)("span",{className:"ed-chips",children:vt.map(([e,t])=>(0,f.jsx)(S,{on:q.aspect===e,onClick:()=>R({aspect:e}),children:t},e))})]}),H?(0,f.jsx)("img",{className:"ed-tpl__preview",src:H,alt:(0,l.__)("배경 틀 미리보기","editnday")}):(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("제목을 쓰면 여기에 미리보기가 나와요.","editnday")}),(0,f.jsx)(N,{disabled:!!s||!U||"custom"===D&&!/^#[0-9a-f]{6}$/i.test(q.color),onClick:()=>te("featured",async()=>(await At(U,D,{color:q.color,layout:q.layout,aspect:q.aspect}),x(!1))),children:(0,l.__)("배경 틀로 만들기","editnday")}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)('위 "그림에 넣을 제목"을, 비워 두면 글 제목을 넣어요. AI·서버 없이 이 컴퓨터에서 바로 그려요.',"editnday")})]}),(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>{const e=window.wp?.media?.({title:(0,l.__)("대표 이미지 고르기","editnday"),library:{type:"image"},multiple:!1,button:{text:(0,l.__)("대표 이미지로","editnday")}});e&&(e.on("select",()=>{const t=e.state().get("selection").first()?.toJSON();t?.id&&Ze({featured_media:t.id}),x(!1)}),e.open())},children:(0,l.__)("미디어 라이브러리에서 고르기","editnday")})]})]}),(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(n.featuredAlt?" is-filled":""),children:n.featuredAlt&&(0,f.jsx)(j,{})}),(0,f.jsx)("span",{className:"ed-task__t",children:(0,l.__)("대표 이미지 ALT","editnday")}),"alt"===s?(0,f.jsx)(ae,{}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("button",{type:"button",className:"ed-mini is-plain",disabled:!n.featured,onClick:()=>c("alt"===r?null:"alt"),children:"alt"===r?(0,l.__)("닫기","editnday"):(0,l.__)("직접 쓰기","editnday")}),se("alt")]})]}),n.featuredAlt&&"alt"!==r&&(0,f.jsx)("p",{className:"ed-alttext",children:n.featuredAlt}),"alt"===r&&!!n.featured&&(0,f.jsx)(Xt,{id:n.featured,alt:n.featuredAlt,onDone:()=>c(null)})]}),se("all"),(0,f.jsx)(Rt,{st:n}),(0,f.jsx)(Kt,{}),(0,f.jsx)(Ht,{}),(0,f.jsx)(zt,{st:n}),(0,f.jsx)(Ut,{st:n,onCheck:t}),(0,f.jsxs)(w,{children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("AEO·GEO 넣는 방식","editnday")}),(0,f.jsxs)(T,{checked:"visible"===u,onChange:()=>{m("visible"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"visible"}),gt(Qe("_editnday_schema"))},children:[(0,l.__)("본문에 보이게","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("· 글 앞 요약, 글 끝 자주 묻는 질문","editnday")})]}),(0,f.jsxs)(T,{checked:"structured"===u,onChange:()=>{m("structured"),et("_editnday_schema",{...Qe("_editnday_schema"),mode:"structured"}),gt({})},children:[(0,l.__)("구조화 데이터로만","editnday")," ",(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("· 본문 내용 그대로, 검색봇·AI가 읽는 형식","editnday")})]})]}),(0,f.jsxs)(w,{className:"ed-related",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("strong",{children:(0,l.__)("이어지는 내 글","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:!!s,onClick:()=>te("related",async()=>{const e=await J()({path:"/editnday/v1/publish/related",method:"POST",data:{postId:n.postId,title:n.title,tags:n.tags,categories:n.categories,content:Ye().getEditedPostContent()}});W(e.items||[])}),children:V?(0,l.__)("다시 찾기","editnday"):(0,l.__)("찾기","editnday")})]}),null===V&&(0,f.jsx)("div",{className:"ed-muted",children:(0,l.__)("이 글과 태그·제목이 겹치는 내 공개 글을 찾아 본문 끝에 링크로 넣을 수 있어요.","editnday")}),V&&!V.length&&(0,f.jsx)("div",{className:"ed-muted",children:(0,l.__)("이어 붙일 만한 글을 찾지 못했어요. 태그를 먼저 달면 더 잘 찾아요.","editnday")}),(V||[]).map(e=>(0,f.jsxs)("div",{className:"ed-row ed-between ed-related__item",children:[(0,f.jsxs)("span",{children:[e.title," ",(0,f.jsx)("span",{className:"ed-muted",children:e.date})]}),(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:e.added,onClick:()=>{Mt(e),W(t=>t.map(t=>t.id===e.id?{...t,added:!0}:t))},children:e.added?(0,l.__)("넣었어요","editnday"):(0,l.__)("넣기","editnday")})]},e.id))]}),Y&&!Q&&X.at&&(0,f.jsxs)("div",{className:"ed-muted ed-indexed",children:[(0,l.__)("검색엔진에 알림:","editnday")," ",new Date(X.at).toLocaleString("ko-KR",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}),Object.entries(X.results||{}).map(([e,t])=>` · ${"naver"===e?(0,l.__)("네이버","editnday"):(0,l.__)("Bing 등","editnday")} ${t>=200&&t<300?"✓":"✕"}`)]}),(0,f.jsx)(Vt,{}),(0,f.jsx)(Wt,{live:Y,scheduled:!!Q}),(0,f.jsxs)("div",{className:"ed-foot",children:[Q?(0,f.jsx)(k,{disabled:!!Z,onClick:async()=>{await(0,G.dispatch)("core/editor").savePost(),(0,G.dispatch)("core/notices").createSuccessNotice((0,l.__)("저장했어요. 예약한 시간에 이 내용으로 발행돼요.","editnday"),{type:"snackbar"})},children:Z?(0,l.__)("저장하는 중…","editnday"):(0,l.__)("바뀐 내용 저장","editnday")}):Y?(0,f.jsx)(k,{disabled:!!Z,onClick:async()=>{await(0,G.dispatch)("core/editor").savePost(),(0,G.dispatch)("core/notices").createSuccessNotice((0,l.__)("바뀐 내용을 사이트에 반영했어요.","editnday"),{type:"snackbar"})},children:Z?(0,l.__)("반영하는 중…","editnday"):(0,l.__)("바뀐 내용 사이트에 반영","editnday")}):(0,f.jsx)(k,{onClick:()=>(0,G.dispatch)("core/editor").openPublishSidebar?.(),children:(0,l.__)("공개 전 점검하고 발행","editnday")}),(0,f.jsx)(N,{onClick:e,children:(0,l.__)("새 글 시작","editnday")})]})]})}function Vt(){const e=window.editndayConfig?.indexnow,[t,n]=(0,o.useState)(e?.state),[s,a]=(0,o.useState)(!1);if("unset"!==t||!e?.canManage||e?.blocked)return null;const d=async t=>{a(!0);try{const s=await J()({path:"/editnday/v1/indexnow",method:"POST",data:{on:t}});e.state=s.state,window.editndayConfig.autoSend&&(window.editndayConfig.autoSend.indexnow=!!s.available),n(s.state),(0,G.dispatch)("core/notices").createSuccessNotice(t?(0,l.__)("검색엔진에 알리기를 켰어요. 에디튼 → 설정에서 언제든 끌 수 있어요.","editnday"):(0,l.__)("켜지 않았어요. 에디튼 → 설정에서 언제든 켤 수 있어요.","editnday"),{type:"snackbar"})}catch(e){(0,G.dispatch)("core/notices").createErrorNotice(e?.message||(0,l.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{a(!1)}};return(0,f.jsxs)(w,{className:"ed-ask",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("발행하면 검색엔진에 알릴까요?","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("글을 발행하거나 고치면 그 글의 주소를 네이버·Bing 등에 바로 알려서, 새 글을 더 빨리 찾게 해요 (IndexNow). 글 주소만 보내고, 비공개 글은 보내지 않아요. 구글은 이 방식을 받지 않아요.","editnday")}),(0,f.jsxs)("div",{className:"ed-row ed-gap6",children:[(0,f.jsx)(N,{disabled:s,onClick:()=>d(!0),children:(0,l.__)("켜기","editnday")}),(0,f.jsx)(N,{disabled:s,onClick:()=>d(!1),children:(0,l.__)("지금은 안 함","editnday")})]})]})}function Gt(e){const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("ko-KR",{month:"long",day:"numeric",weekday:"short",hour:"numeric",minute:"2-digit"})}function Wt({live:e,scheduled:t}){const n=window.editndayConfig?.autoSend||{},s=!e||t,a=[s&&n.published&&(0,l.__)("고친 내용을 에디튼에 보내 초안과 비교해요","editnday"),n.indexnow&&(s?(0,l.__)("글 주소를 Bing·네이버에 바로 알려요","editnday"):(0,l.__)("반영하면 글 주소를 검색엔진에 다시 알려요","editnday"))].filter(Boolean);if(!a.length)return null;let d="";return t?d=(0,l.__)("예약 시간에 발행되면 자동으로:","editnday"):e||(d=(0,l.__)("발행하면 자동으로:","editnday")),(0,f.jsxs)("p",{className:"ed-muted ed-autosend",children:[d,a.join(" · "),"."," ",(0,f.jsx)("a",{href:window.editndayConfig?.settingsUrl,target:"_blank",rel:"noreferrer",children:(0,l.__)("설정에서 끄기","editnday")})]})}function Xt({id:e,alt:t,onDone:n}){const[s,a]=(0,o.useState)(t||""),[d,i]=(0,o.useState)(!1);return(0,f.jsxs)("div",{className:"ed-taskedit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,label:(0,l.__)("대표 이미지 ALT","editnday"),help:(0,l.__)("그림에 무엇이 보이는지 한 문장으로. 검색엔진과 화면 읽기 프로그램이 읽어요.","editnday"),value:s,onChange:a}),(0,f.jsx)(N,{disabled:d||!s.trim(),onClick:async()=>{i(!0);try{await(0,G.dispatch)("core").saveEntityRecord("postType","attachment",{id:e,alt_text:s.trim()}),n()}catch(e){(0,G.dispatch)("core/notices").createErrorNotice(e?.message||(0,l.__)("저장하지 못했어요.","editnday"),{type:"snackbar"})}finally{i(!1)}},children:d?(0,l.__)("저장 중…","editnday"):(0,l.__)("저장","editnday")})]})}function Yt({k:e,st:t,mode:n,extra:s=[],below:a=[]}){const d=(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(Zt,{k:e,st:t,mode:n,extra:s}),a]});return["geo","aeo"].includes(e)||!s.length?d:(0,f.jsxs)(f.Fragment,{children:[d,(0,f.jsx)("div",{className:"ed-row",children:s})]})}function Zt({k:e,st:t,mode:n,extra:s}){if("excerpt"===e)return(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,rows:3,value:t.excerpt,onChange:e=>Ze({excerpt:e})});if("slug"===e)return(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,value:dt(t.slug),onChange:e=>Ze({slug:e})});if("seo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:"Fine Keyword",help:(0,l.__)("저장하면 SEO 플러그인 키워드 칸으로 옮겨요","editnday"),value:t.seo.keyword||"",onChange:e=>et("_editnday_seo",{...t.seo,keyword:e})}),y(_.keywordInfo,{keyword:t.seo.keyword||"",setKeyword:e=>et("_editnday_seo",{...t.seo,keyword:e})}),(0,f.jsx)(ut,{keyword:t.seo.keyword,seo:t.seo}),(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("SEO 제목","editnday"),value:t.seo.title||"",onChange:e=>et("_editnday_seo",{...t.seo,title:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("SEO 설명","editnday"),rows:3,value:t.seo.description||"",onChange:e=>et("_editnday_seo",{...t.seo,description:e})})]});const a="visible"===n,d=e=>et("_editnday_schema",{...t.schema,...e,mode:n}),i=e=>{gt(Qe("_editnday_schema"),[e]),(0,G.dispatch)("core/notices").createSuccessNotice("faq"===e?(0,l.__)("본문 끝 질문과 답을 바꿨어요.","editnday"):(0,l.__)("본문 앞 요약을 바꿨어요.","editnday"),{type:"snackbar"})},r=(0,f.jsx)("span",{className:"ed-muted",children:a?(0,l.__)("본문 박스를 바로 고쳐도 돼요. 여기서 고쳤다면 [본문에 반영]을 눌러야 본문이 바뀌어요.","editnday"):(0,l.__)("본문에는 안 보여요. 본문에 있는 내용만 남겨 주세요.","editnday")});if("geo"===e)return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:a?(0,l.__)("글 앞 요약","editnday"):(0,l.__)("검색봇·AI가 읽는 요약","editnday"),help:(0,l.__)("글 전체를 두세 문장으로. 검색 결과와 AI 답변에 인용되기 좋아요.","editnday"),rows:4,value:t.schema.summary||"",onChange:e=>d({summary:e})}),!a&&window.editndayConfig?.seoPlugin?(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: %s: window.editndayConfig.seoPlugin */ /* translators: %s: window.editndayConfig.seoPlugin */(0,l.__)('%s가 글 정보를 이미 내고 있어, 같은 글이 두 번 잡히지 않게 요약은 구조화 데이터에 넣지 않아요. AI 인용에 쓰이게 하려면 "본문에 보이게"를 고르세요.',"editnday"),window.editndayConfig.seoPlugin)}):r,(0,f.jsxs)("div",{className:"ed-row",children:[a&&(0,f.jsx)(N,{disabled:!t.schema.summary?.trim(),onClick:()=>i("summary"),children:(0,l.__)("본문에 반영","editnday")}),s]})]});if("aeo"===e){const e=t.schema.faq?.length?t.schema.faq:[{question:"",answer:""}],n=(t,n)=>d({faq:e.map((e,s)=>s===t?{...e,...n}:e)});return(0,f.jsxs)("div",{className:"ed-faq",children:[e.map((t,s)=>(0,f.jsxs)("div",{className:"ed-faq__item is-edit",children:[(0,f.jsx)(p.TextControl,{__nextHasNoMarginBottom:!0,label:(0,l.sprintf)(/* translators: %s: i + 1 */ /* translators: %s: i + 1 */(0,l.__)("질문 %s","editnday"),s+1),placeholder:(0,l.__)("독자가 검색창에 칠 만한 질문","editnday"),value:t.question,onChange:e=>n(s,{question:e})}),(0,f.jsx)(p.TextareaControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("답","editnday"),rows:3,value:t.answer,onChange:e=>n(s,{answer:e})}),e.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>d({faq:e.filter((e,t)=>t!==s)}),children:(0,l.__)("이 질문 빼기","editnday")})]},s)),r,(0,f.jsxs)("div",{className:"ed-row",children:[e.length<6&&(0,f.jsx)(N,{onClick:()=>d({faq:[...e,{question:"",answer:""}]}),children:(0,l.__)("질문 더하기","editnday")}),a&&(0,f.jsx)(N,{disabled:!e.some(e=>e.question?.trim()&&e.answer?.trim()),onClick:()=>i("faq"),children:(0,l.__)("본문에 반영","editnday")}),s]})]})}return"category"===e?(0,f.jsx)(nt,{}):"tags"===e?(0,f.jsx)("span",{className:"ed-muted",children:t.tags.length?(0,l.__)("워드프레스 태그 칸에 넣었어요. 오른쪽 ‘글’ 설정에서 고칠 수 있어요.","editnday"):(0,l.__)("태그는 오른쪽 ‘글’ 설정의 태그 칸에서 넣어요. 이 글을 찾을 만한 낱말 3~5개면 충분해요.","editnday")}):null}function Qt({url:e,title:t,description:n}){const[s,a]=(0,o.useState)(!1);let d="";try{d=new URL(window.location.href).hostname.replace(/^www\./,"")}catch(e){}return s?(0,f.jsxs)("div",{className:"ed-share",children:[(0,f.jsxs)("div",{className:"ed-share__card",children:[(0,f.jsx)("div",{className:"ed-share__img",style:{backgroundImage:`url("${e}")`},role:"img","aria-label":(0,l.__)("1.91:1로 잘린 대표 이미지","editnday")}),(0,f.jsxs)("div",{className:"ed-share__text",children:[(0,f.jsx)("span",{className:"ed-muted",children:d}),(0,f.jsx)("strong",{children:t||(0,l.__)("(제목 없음)","editnday")}),n&&(0,f.jsx)("span",{className:"ed-share__desc",children:n})]})]}),(0,f.jsxs)("p",{className:"ed-muted",children:[(0,l.__)("카카오톡·페이스북·X 링크는 보통 가운데를 1.91:1(1200×630)로 잘라 보여요. 가장자리의 글자·얼굴이 잘리면 그림을 다시 고르거나 만들어 보세요.","editnday")," ",(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>a(!1),children:(0,l.__)("닫기","editnday")})]})]}):(0,f.jsx)("button",{type:"button",className:"ed-mini",style:{margin:"6px 0 2px"},onClick:()=>a(!0),children:(0,l.__)("공유될 때 모습 보기","editnday")})}function en(){const e=ft(),t=(0,c.applyFilters)(_.prepublishFixes,null),n=qt(e),s=n.filter(e=>!e.ok),[a,d]=(0,o.useState)(!1),[i,r]=(0,o.useState)(null),u=(()=>{try{const t=JSON.parse(e&&window.wp?.data?.select("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null");return t?t.reviewed?"done":"pending":"none"}catch(e){return"none"}})(),h=["none"!==u&&{ok:"done"===u,label:"done"===u?(0,l.__)("확인할 곳 처리함","editnday"):(0,l.__)("확인할 곳이 남아 있어요 (에디튼 사이드바)","editnday")},{ok:e.categories.length>0,label:e.categories.length?(0,l.sprintf)(/* translators: %s: st.categoryNames.join( ', ' ) */ /* translators: %s: st.categoryNames.join( ', ' ) */(0,l.__)("카테고리: %s","editnday"),e.categoryNames.join(", ")):(0,l.__)("카테고리를 아직 고르지 않았어요 (기본 카테고리만)","editnday"),fix:t&&(async()=>{const e=await t.text(["category"]);r(e.categories?.length?null:{near:e.nearCategories||[],suggest:e.newCategory||""})}),key:"category"},e.memberCategoryNames?.length>0&&{ok:!1,label:(0,l.sprintf)(/* translators: %s: st.memberCategoryNames.join( ', ' ) */ /* translators: %s: st.memberCategoryNames.join( ', ' ) */(0,l.__)("회원 전용 카테고리: %s — 공개해도 회원만 볼 수 있어요 (SureMembers)","editnday"),e.memberCategoryNames.join(", "))},{ok:!s.length,label:s.length?(0,l.sprintf)(/* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */ /* translators: 1: 통과한 수, 2: 전체 수, 3: 안 된 항목 이름(두 개까지), 4: 더 있으면 " 등" */(0,l.__)("검색·AI 점검 %1$s/%2$s: %3$s%4$s (에디튼 사이드바 → 발행 준비)","editnday"),n.length-s.length,n.length,s.slice(0,2).map(e=>e.label).join(", "),s.length>2?(0,l.__)(" 등","editnday"):""):(0,l.sprintf)(/* translators: %1$s: ko.length, %2$s: ko.length */ /* translators: %1$s: ko.length, %2$s: ko.length */(0,l.__)("검색·AI 점검 %1$s/%2$s","editnday"),n.length,n.length)},{ok:!!e.excerpt,label:e.excerpt?(0,l.__)("발췌문 있음","editnday"):(0,l.__)("발췌문 없음","editnday"),fix:t&&(()=>t.text(["excerpt"]))},{ok:!!e.seo.description,label:e.seo.description?(0,l.__)("SEO 설명 있음","editnday"):(0,l.__)("SEO 설명 없음","editnday"),fix:t&&(()=>t.text(["seo"]))},{ok:!!e.featured,label:e.featured?(0,l.__)("대표 이미지 있음","editnday"):(0,l.__)("대표 이미지 없음","editnday"),fix:t?.featured},(e.schema.faq?.length||e.schema.summary)&&{ok:!0,label:(0,l.sprintf)(/* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */ /* translators: 1: 만든 데이터 목록 (예: 요약 · 질문 3개), 2: 본문에 안 보일 때 덧붙이는 설명 */(0,l.__)("검색봇·AI용 데이터: %1$s%2$s","editnday"),[e.schema.summary&&(0,l.__)("요약","editnday"),e.schema.faq?.length&&(0,l.sprintf)(/* translators: %d: 질문 수 */ /* translators: %d: 질문 수 */
     17(0,l.__)("질문 %d개","editnday"),e.schema.faq.length)].filter(Boolean).join(" · "),"structured"===e.schema.mode?(0,l.__)(" (본문에 안 보임, 에디튼 사이드바에서 고침)","editnday"):"")},(window.editndayConfig?.autoSend?.published||window.editndayConfig?.autoSend?.indexnow)&&{ok:!0,label:(0,l.sprintf)(/* translators: %s: 발행 때 자동으로 하는 일 목록 */ /* translators: %s: 발행 때 자동으로 하는 일 목록 */(0,l.__)("발행되면(예약이면 그 시간에) 자동으로: %s (관리자 메뉴 에디튼에서 끌 수 있어요)","editnday"),[window.editndayConfig.autoSend.published&&(0,l.__)("고친 내용을 에디튼에 보내요","editnday"),window.editndayConfig.autoSend.indexnow&&(0,l.__)("글 주소를 검색엔진에 알려요","editnday")].filter(Boolean).join(" · "))},e.featured&&{ok:!!e.featuredAlt,label:e.featuredAlt?(0,l.__)("대표 이미지 ALT 있음","editnday"):(0,l.__)("대표 이미지 ALT 없음","editnday"),fix:t?.alt}].filter(Boolean),y=h.filter(e=>!e.ok&&e.fix);return(0,f.jsxs)("div",{className:"editnday ed-prepublish",children:[h.map(e=>(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"ed-task",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.ok?" is-filled":" is-warn"),children:e.ok?(0,f.jsx)(j,{}):"!"}),(0,f.jsx)("span",{className:"ed-task__t",children:e.label}),!e.ok&&e.fix&&(0,f.jsx)("button",{type:"button",className:"ed-mini",disabled:a,onClick:async()=>{d(!0);try{await e.fix()}finally{d(!1)}},children:"category"===e.key?(0,l.__)("고르기","editnday"):(0,l.__)("AI로 만들기","editnday")})]}),"category"===e.key&&i&&!e.ok&&(0,f.jsx)(st,{panel:i,onDone:()=>r(null)})]},e.label)),y.length>1&&(0,f.jsx)("button",{type:"button",className:"ed-ghost",disabled:a,onClick:async()=>{d(!0);try{const n=[!e.categories.length&&"category",!e.excerpt&&"excerpt",!e.seo.description&&"seo"].filter(Boolean);if(n.length){const e=await t.text(n);n.includes("category")&&!e.categories?.length&&r({near:e.nearCategories||[],suggest:e.newCategory||""})}e.featured||await t.featured(),await t.alt().catch(()=>{})}finally{d(!1)}},children:a?(0,l.__)("만드는 중…","editnday"):(0,l.__)("남은 것 모두 하기","editnday")})]})}const tn=window.wp.plugins,nn=window.wp.domReady;var sn=n.n(nn);const an=()=>"undefined"!=typeof window&&window.speechSynthesis?window.speechSynthesis:null;function dn({result:e}){const[t,n]=(0,o.useState)(!1),[s,a]=(0,o.useState)(null);if((0,o.useEffect)(()=>()=>an()?.cancel(),[]),!t)return(0,f.jsx)("button",{type:"button",className:"ed-link ed-sentences__toggle",onClick:()=>n(!0),children:(0,l.__)("문장별로 보기","editnday")});const d=new Set(e.issues.filter(e=>["long_sentence","many_clauses","adverb_heavy"].includes(e.rule)).map(e=>e.sentence));return(0,f.jsxs)("div",{className:"ed-sentences",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("문장별로 보기","editnday")}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{an()?.cancel(),a(null),n(!1)},children:(0,l.__)("접기","editnday")})]}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("한 줄에 한 문장이에요. 한 호흡(60자)을 넘으면 노랑, 100자를 넘으면 빨강. 소리 내어 읽어 어색하면 나눠요.","editnday")}),e.sections.map(e=>{const t=je(e.text);return t.length?(0,f.jsxs)("div",{className:"ed-sentences__sec",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsxs)("strong",{className:"ed-sentences__h",children:[e.heading||(0,l.__)("도입","editnday"),(0,f.jsxs)("span",{className:"ed-muted",children:[" · ",(0,l.sprintf)(/* translators: %d: 문장 수 */ /* translators: %d: 문장 수 */
     18(0,l.__)("%d문장","editnday"),t.length)]})]}),an()&&(0,f.jsx)("button",{type:"button",className:"ed-mini",onClick:()=>(e=>{const t=an();if(!t)return;if(s===e.id)return t.cancel(),void a(null);t.cancel();const n=new window.SpeechSynthesisUtterance((e.heading?e.heading+". ":"")+je(e.text).join(" "));n.lang="ko-KR",n.rate=1,n.onend=()=>a(null),n.onerror=()=>a(null),a(e.id),t.speak(n)})(e),"aria-pressed":s===e.id,children:s===e.id?(0,l.__)("멈추기","editnday"):(0,l.__)("읽어 주기","editnday")})]}),t.map((e,t)=>{let n="";return e.length>100?n=" is-long":e.length>60&&(n=" is-breath"),(0,f.jsxs)("button",{type:"button",className:`ed-sentences__s${n}${d.has(e)?" is-flag":""}`,onClick:()=>_e(e),title:(0,l.__)("본문에서 보기","editnday"),children:[(0,f.jsx)("span",{className:"ed-sentences__n",children:e.length}),(0,f.jsx)("span",{children:e})]},t)})]},e.id):null})]})}const ln={da:(0,l.__)("-다","editnday"),yo:(0,l.__)("-요","editnday"),sumnida:(0,l.__)("-습니다","editnday")},rn=[{id:"ai",rules:["banned_phrase"],label:(0,l.__)("AI가 쓴 티가 나는 표현","editnday"),hint:(0,l.__)('상투적인 칭찬, 글을 소개하는 문장, "결론적으로" 같은 정리 말은 빼거나 내 말로 바꿔요.',"editnday")},{id:"spell",rules:["common_mistake"],label:(0,l.__)("자주 틀리는 표현","editnday"),hint:(0,l.__)("몇일 → 며칠, 되요 → 돼요, 컨텐츠 → 콘텐츠처럼 자주 틀리는 표현을 표준 표기로 고쳐요. 맞춤법 전체를 보지는 않아요.","editnday")},{id:"ending",rules:["ending_mixed"],label:(0,l.__)("어미 섞임","editnday"),hint:e=>e.ending?(0,l.sprintf)(/* translators: %s: ENDING_LABEL[ r.ending ] */ /* translators: %s: ENDING_LABEL[ r.ending ] */(0,l.__)("이 글은 대부분 '%s'로 끝나요. 다른 어미로 끝난 문장을 맞춰요.","editnday"),ln[e.ending]):(0,l.__)("문장이 더 쌓이면 어미를 봐요.","editnday")},{id:"similar",rules:["repeated_sentence"],label:(0,l.__)("닮은 문장","editnday"),hint:(0,l.__)("앞에서 한 말을 다시 하고 있어요. 한 곳만 남기거나 다르게 써요.","editnday")},{id:"repeat",rules:["repetition"],label:(0,l.__)("같은 표현 되풀이","editnday"),hint:(0,l.__)("같은 말이 세 번 넘게 나와요. 몇 곳은 다른 말로 바꿔요.","editnday")},{id:"start",rules:["same_start"],label:(0,l.__)("같은 말로 시작하는 문장","editnday"),hint:(0,l.__)('"또한 … 또한 …"처럼 이어지면 단조로워요. 접속어를 빼거나 순서를 바꿔요.',"editnday")},{id:"long",rules:["long_sentence"],label:(0,l.__)("긴 문장","editnday"),hint:(0,l.__)("100자가 넘는 문장은 모바일에서 읽기 힘들어요. 둘로 나눠요.","editnday")},{id:"adverb",rules:["adverb_heavy"],label:(0,l.__)("부사 몰림","editnday"),hint:(0,l.__)("한 문장에 정말·너무·아주 같은 부사가 둘 넘게 있어요. 빼도 뜻이 바뀌지 않으면 빼요. 부사가 빠질수록 담백해져요.","editnday")},{id:"clauses",rules:["many_clauses"],label:(0,l.__)("이어 붙인 문장","editnday"),hint:(0,l.__)("'-고, -는데, -지만'으로 절이 네 개 넘게 이어졌어요. 정보 하나에 문장 하나로 나누면 읽는 사람이 놓치지 않아요.","editnday")},{id:"para",rules:["long_paragraph"],label:(0,l.__)("긴 단락","editnday"),hint:(0,l.__)("한 단락이 500자를 넘으면 화면이 글자로 가득해요. 나눠요.","editnday")},{id:"number",rules:["number_format"],label:(0,l.__)("숫자 표기","editnday"),hint:(0,l.__)("큰 수를 쉼표 있게도 없게도 썼어요. 한 가지로 맞춰요.","editnday")},{id:"foreign",rules:["foreign_script"],label:(0,l.__)("일본어·한자 섞임","editnday"),hint:(0,l.__)("한국어 글에 일본어나 한자가 섞였어요.","editnday")},{id:"alt",rules:["image_alt"],label:(0,l.__)("대체 텍스트 없는 이미지","editnday"),hint:(0,l.__)("검색엔진과 화면 읽기 프로그램이 그림을 이해하게 대체 텍스트(ALT)를 적어요.","editnday")}],on="editnday_textcheck_off",cn=()=>{try{return JSON.parse(window.localStorage.getItem(on)||"[]")}catch(e){return[]}},un=e=>{try{window.localStorage.setItem(on,JSON.stringify(e))}catch(e){}};function hn(){const e=(0,G.useSelect)(e=>e("core/block-editor").getBlocks(),[]),[t,n]=(0,o.useState)(()=>Je(e));(0,o.useEffect)(()=>{const t=setTimeout(()=>n(Je(e)),800);return()=>clearTimeout(t)},[e]);const[s,a]=(0,o.useState)(cn),[d,i]=(0,o.useState)(!1),[r,c]=(0,o.useState)(null);if(t.metrics.chars<50)return(0,f.jsxs)(w,{className:"ed-koseo",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("본문을 쓰면 여기서 바로 점검해요.","editnday")})]});const u=rn.filter(e=>!s.includes(e.id)).map(e=>({...e,issues:t.issues.filter(t=>e.rules.includes(t.rule))})),h=u.filter(e=>!e.issues.length).length,m=u.filter(e=>e.issues.length),p=d?u:m;return(0,f.jsxs)(w,{className:"ed-koseo ed-textcheck",children:[(0,f.jsxs)("div",{className:"ed-row ed-between",children:[(0,f.jsx)("span",{className:"ed-lbl",children:(0,l.__)("한국어 글 점검","editnday")}),(0,f.jsx)("span",{className:"ed-koseo__score"+(m.length?"":" is-ok"),children:(0,l.sprintf)(/* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */ /* translators: 1: 전체 항목 수, 2: 통과한 항목 수 */
     19(0,l.__)("%1$d개 중 %2$d개 통과","editnday"),u.length,h)})]}),p.map(e=>{const n=r===e.id,d="function"==typeof e.hint?e.hint(t):e.hint;return(0,f.jsxs)("div",{className:"ed-koseo__item",children:[(0,f.jsx)("span",{className:"ed-circ"+(e.issues.length?" is-warn":" is-filled"),children:e.issues.length?"!":(0,f.jsx)(j,{})}),(0,f.jsxs)("span",{className:"ed-koseo__body",children:[(0,f.jsxs)("button",{type:"button",className:"ed-koseo__head ed-textcheck__head","aria-expanded":n,disabled:!e.issues.length,onClick:()=>c(n?null:e.id),children:[(0,f.jsx)("span",{className:"ed-koseo__label",children:e.label}),(0,f.jsx)("span",{className:"ed-koseo__who",children:e.issues.length?(0,l.sprintf)(/* translators: %s: it.issues.length */ /* translators: %s: it.issues.length */(0,l.__)("%s곳","editnday"),e.issues.length):(0,l.__)("없음","editnday")})]}),n&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"ed-koseo__hint",children:d}),e.issues.slice(0,5).map((e,t)=>(0,f.jsxs)("button",{type:"button",className:"ed-textcheck__sent",onClick:()=>{var t;(t=e).clientId?(0,G.dispatch)("core/block-editor").selectBlock(t.clientId):_e(t.sentence)||(0,G.dispatch)("core/notices").createWarningNotice((0,l.__)("본문에서 문장을 찾지 못했어요","editnday"),{type:"snackbar"})},title:(0,l.__)("본문에서 보기","editnday"),children:[["common_mistake","adverb_heavy","many_clauses"].includes(e.rule)&&(0,f.jsxs)("strong",{children:[e.detail," · "]}),e.sentence.length>70?`${e.sentence.slice(0,70)}…`:e.sentence]},t)),e.issues.length>5&&(0,f.jsx)("span",{className:"ed-muted",children:(0,l.sprintf)(/* translators: %d: 더 있는 곳 수 */ /* translators: %d: 더 있는 곳 수 */
     20(0,l.__)("그 밖에 %d곳","editnday"),e.issues.length-5)}),(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>(e=>{const t=s.includes(e)?s.filter(t=>t!==e):[...s,e];a(t),un(t)})(e.id),children:(0,l.__)("이 항목 점검 끄기","editnday")}),y(_.checkItemActions,{item:e.id,issues:e.issues}),"number"!==e.id&&(0,f.jsx)(K,{label:(0,l.__)("AI로 고치기","editnday")})]})]})]},e.id)}),!m.length&&!d&&(0,f.jsx)("span",{className:"ed-small",children:(0,l.__)("모두 좋아요.","editnday")}),(0,f.jsx)(dn,{result:t}),(0,f.jsxs)("div",{className:"ed-koseo__foot",children:[(0,f.jsx)("button",{type:"button",className:"ed-link",onClick:()=>i(!d),children:d?(0,l.__)("고칠 것만 보기","editnday"):(0,l.sprintf)(/* translators: %s: okN */ /* translators: %s: okN */(0,l.__)("통과한 것도 보기 (%s)","editnday"),h)}),s.length>0&&(0,f.jsx)("button",{type:"button",className:"ed-link ed-muted",onClick:()=>{a([]),un([])},children:(0,l.sprintf)(/* translators: %d: 꺼 둔 항목 수 */ /* translators: %d: 꺼 둔 항목 수 */
     21(0,l.__)("꺼 둔 항목 %d개 다시 켜기","editnday"),s.length)}),(0,f.jsx)("span",{className:"ed-muted",children:(0,l.__)("문장을 누르면 본문에서 보여 줘요. 맞춤법 전체가 아니라 자주 틀리는 표현만 봐요.","editnday")})]})]})}function yn(){const e=ft();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(A,{eyebrow:(0,l.__)("글 점검","editnday"),title:(0,l.__)("이 글을 점검해요","editnday"),sub:(0,l.__)("쓰는 동안 문장과 검색을 함께 봐요. 글을 고치면 잠깐 뒤 다시 점검해요.","editnday")}),(0,f.jsx)(hn,{}),(0,f.jsx)(Lt,{st:e}),(0,f.jsx)(z,{})]})}function mn(){const e=(0,G.useSelect)(e=>!e("core/editor").isEditedPostEmpty(),[]),t=(0,G.useSelect)(e=>["publish","future","private"].includes(e("core/editor").getEditedPostAttribute("status")),[]),[n,s]=(0,o.useState)(null),a=[{id:"check",label:(0,l.__)("글 점검","editnday"),render:e=>(0,f.jsx)(yn,{api:e})},{id:"publish",label:(0,l.__)("발행 준비","editnday"),render:e=>(0,f.jsx)(Jt,{onNew:()=>h()?m(u.newPost):window.location.href="post-new.php",onCheck:()=>e.goTab("check")})}],d=y(_.tabs,{free:a}),i=d.length?d:a,r=(0,o.useRef)(!1),c=e=>{r.current||(r.current=!0,s(e))},p=i.some(e=>e.decides);(0,o.useEffect)(()=>{p||c(t&&e&&!(()=>{try{return!!JSON.parse((0,G.select)("core/editor").getEditedPostAttribute("meta")?._editnday_job||"null")?.id}catch(e){return!1}})()?"publish":"check")},[p,t,e]);const g=n??i[0].id,x=y(_.notice,{tab:g});return(0,f.jsxs)("div",{className:"editnday ed-body",children:[x,(0,f.jsx)(v,{tabs:i.map(e=>[e.id,e.label]),value:g,onChange:s}),i.map(e=>{const t=e.id===g;return t||e.keepMounted?(0,f.jsx)(o.Fragment,{children:e.render({active:t,goTab:s,onDecide:c})},e.id):null})]})}window.editnday=Object.freeze({...d,...i,...s,...a});const pn=()=>(0,f.jsx)(x,{size:18}),gn=()=>(0,f.jsxs)("div",{className:"editnday-header",children:[(0,f.jsx)("img",{src:window.editndayConfig?.wordmark,alt:(0,l.__)("에디튼","editnday"),height:"18"}),(0,f.jsxs)("span",{className:"editnday-header__ver",children:["v",window.editndayConfig?.version]}),h()&&(0,f.jsxs)("span",{className:"editnday-header__pro",title:(0,l.__)("에디튼 프로","editnday"),children:["P",window.editndayConfig?.proVersion&&(0,f.jsx)("span",{className:"editnday-header__prover",children:window.editndayConfig.proVersion})]})]});sn()(()=>(0,tn.registerPlugin)("editnday",{render:()=>(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(r.PluginSidebarMoreMenuItem,{target:"editnday-sidebar",icon:(0,f.jsx)(pn,{}),children:(0,l.__)("에디튼","editnday")}),(0,f.jsx)(r.PluginSidebar,{name:"editnday-sidebar",title:(0,l.__)("에디튼","editnday"),icon:(0,f.jsx)(pn,{}),header:(0,f.jsx)(gn,{}),children:(0,f.jsx)(mn,{})}),(0,f.jsx)(r.PluginPrePublishPanel,{title:(0,l.__)("에디튼 발행 점검","editnday"),initialOpen:!0,icon:(0,f.jsx)(pn,{}),children:(0,f.jsx)(en,{})})]})}))}};const t={};function n(s){const a=t[s];if(void 0!==a)return a.exports;const d=t[s]={exports:{}};return e[s](d,d.exports,n),d.exports}n.m=e,(()=>{const e=[];n.O=(t,s,a)=>{if(!s){for(var d=0;d<e.length;d++){let[s,a]=e[d],l=!0;for(var i=0;i<s.length;i++)n.O.j(s[i])?s.splice(i--,1):l=!1;if(l){e.splice(d--,1);const n=a();void 0!==n&&(t=n)}}return t}e.push([s,a])}})(),n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.hasOwn(e,t),n.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{const e={57:0,350:0};n.O.j=t=>0===e[t];const t=(t,s)=>{let[a,d,i]=s;var l,r,o=0;if(a.some(t=>0!==e[t])){for(l in d)n.o(d,l)&&(n.m[l]=d[l]);if(i)var c=i(n)}for(t&&t(s);o<a.length;o++)r=a[o],n.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return n.O(c)},s=globalThis.webpackChunk_editnday_plugin||=[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})();let s=n.O(void 0,[350],()=>n(786));s=n.O(s)})();
  • editnday/trunk/build/style-index-rtl.css

    r3742866 r3747744  
    1 .editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;left:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(-135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:right}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(-90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:right}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 30px 6px 0}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;flex-direction:column;padding-top:8px}.editnday .ed-tpl,.editnday .ed-tpl__swatches{display:flex;gap:6px}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:100% 0}to{background-position:right 28px top 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-right:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-right:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-right:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:right;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:left}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:right;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 20px 12px 0}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;left:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-left:1px solid #dde0e6}.editnday .ed-stat:last-child{border-left:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-left:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-left:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-right:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-right:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 30px 8px 0;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
     1.editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;left:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(-135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:right}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(-90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:right}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 30px 6px 0}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;display:flex;flex-direction:column;gap:6px;padding-top:8px}.editnday .ed-tpl__swatches{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-tpl__row{align-items:start;column-gap:8px;display:grid;grid-template-columns:34px 1fr}.editnday .ed-tpl__label{color:#50575e;font-size:11px;font-weight:600;line-height:26px}.editnday .ed-tpl__sw--custom{background:#fff;border-style:dashed;color:#50575e;font-size:16px;font-weight:500}.editnday .ed-tpl__color{align-items:center;display:inline-flex;gap:6px}.editnday .ed-tpl__color input[type=color]{background:#fff;border:1px solid #c3c4c7;border-radius:4px;cursor:pointer;height:26px;padding:2px;width:28px}.editnday .ed-tpl__color input[type=text]{border:1px solid #c3c4c7;border-radius:4px;font-family:ui-monospace,Menlo,monospace;font-size:12px;height:26px;min-height:26px;padding:0 8px;text-transform:uppercase;width:88px}.editnday .ed-tpl__preview{border:1px solid rgba(0,0,0,.1);border-radius:6px;display:block;margin:2px auto 0;max-height:220px;max-width:100%}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:100% 0}to{background-position:right 28px top 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-right:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-right:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-right:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:right;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:right;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:left}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:right;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 20px 12px 0}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;left:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-left:1px solid #dde0e6}.editnday .ed-stat:last-child{border-left:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-left:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-left:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-right:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-right:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 30px 8px 0;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
  • editnday/trunk/build/style-index.css

    r3742866 r3747744  
    1 .editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;right:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:left}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:left}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 0 6px 30px}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;flex-direction:column;padding-top:8px}.editnday .ed-tpl,.editnday .ed-tpl__swatches{display:flex;gap:6px}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:0 0}to{background-position:28px 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-left:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-left:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-left:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:left;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:right}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:left;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 0 12px 20px}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;right:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-right:1px solid #dde0e6}.editnday .ed-stat:last-child{border-right:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-right:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-right:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-left:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-left:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 0 8px 30px;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
     1.editnday{color:#243235;font-size:12px;letter-spacing:-.01em}.editnday *{box-sizing:border-box}.editnday.ed-body{background:#f4f5f5;display:flex;flex-direction:column;gap:8px;min-height:100%;padding:12px 12px 0}.editnday .ed-head{display:flex;flex-direction:column;gap:4px;padding:2px 0}.editnday .ed-eyebrow{color:#8b9698;font-size:11px;font-weight:500}.editnday .ed-h{color:#111416;font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin:0}.editnday .ed-sub{color:#56676a;font-size:11.5px;line-height:1.55;margin:0}.editnday .ed-card{background:#fff;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px}.editnday .ed-lbl{color:#56676a;font-size:11px;font-weight:600}.editnday .ed-muted{color:#8b9698;font-size:11px}.editnday .ed-small{font-size:12px;line-height:1.5}.editnday .ed-strong{font-weight:600}.editnday .ed-dim{color:#56676a}.editnday .ed-faint{color:#c8cfd0}.editnday .ed-row{align-items:center;display:flex;gap:8px;min-width:0}.editnday .ed-between{justify-content:space-between}.editnday .ed-gap6{gap:6px;margin-top:3px}.editnday .components-text-control__input,.editnday .components-textarea-control__input{border-color:#e1e5e5;border-radius:7px;font-size:12px}.editnday .components-base-control__label{color:#56676a;font-size:11px;font-weight:600;text-transform:none}.editnday .ed-chips{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-chip{align-items:center;background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;display:inline-flex;font:inherit;font-size:11px;gap:4px;height:24px;padding:0 9px;white-space:nowrap}.editnday .ed-chip .ed-chip__lock{background:rgba(0,0,0,.08);border-radius:999px;font-size:10px;line-height:16px;padding:0 5px}.editnday .ed-chip.is-on .ed-chip__lock{background:hsla(0,0%,100%,.22)}.editnday .ed-chip.is-lav{background:#e6d6f7;border-color:#e6d6f7}.editnday .ed-chip.is-static{cursor:default}.editnday .ed-chip.is-static b{color:#243235}.editnday .ed-tag{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:inline-flex;font-size:10px;font-weight:600;height:18px;padding:0 7px;white-space:nowrap}.editnday .ed-tag.is-lav{background:#e6d6f7}.editnday .ed-cta{border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;height:38px;position:relative;width:100%}.editnday .ed-cta:disabled{background:#c8cfd0;cursor:not-allowed}.editnday .ed-cta .ed-cta__dot{align-items:center;background:#d3b7f1;border-radius:999px;display:flex;justify-content:center;position:absolute;right:4px;top:4px}.editnday .ed-ghost{background:transparent;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;font:inherit;font-size:12px;font-weight:500;width:100%}.editnday .ed-iconbtn{background:transparent;border:0;color:#56676a;cursor:pointer;font-size:16px;height:24px;line-height:1;width:24px}.editnday .ed-foot{background:#f4f5f5;border-top:1px solid #e9ecec;bottom:0;display:flex;flex-direction:column;gap:8px;margin:auto -12px 0;padding:10px 12px 12px;position:sticky}.editnday .ed-steps{display:flex;flex-direction:column;gap:9px}.editnday .ed-step{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-step.is-now{font-weight:600}.editnday .ed-step.is-todo{color:#8b9698}.editnday .ed-step .ed-step__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-circ{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:18px;justify-content:center;width:18px}.editnday .ed-step.is-done .ed-circ{background:#243235;border-color:#243235}.editnday .ed-step.is-now .ed-circ{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-bar{background:#e9ecec;border-radius:999px;display:flex;height:8px;overflow:hidden}.editnday .ed-bar .ed-bar__fill{background:#243235;border-radius:999px;transition:width .4s ease}.editnday .ed-bar .ed-bar__hatch{background:repeating-linear-gradient(135deg,#d3b7f1 0 6px,transparent 6px 10px);flex:1}.editnday .ed-stats{display:flex;gap:8px}.editnday .ed-stat{background:#fff;border-radius:10px;display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;padding:8px 9px}.editnday .ed-stat .ed-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-stat__n{color:#111416;font-size:17px;font-weight:600;letter-spacing:-.02em}.editnday .ed-big{color:#111416;font-size:24px;font-weight:600;letter-spacing:-.03em}.editnday .ed-note{background:#fff;border-radius:10px;color:#56676a;font-size:11px;line-height:1.55;padding:8px 10px}.editnday .ed-pastpost{align-items:center;background:#f4f5f5;border-radius:8px;display:flex;gap:8px;padding:8px 10px}.editnday .ed-pastpost>div{flex:1;min-width:0}.editnday .ed-found{background:transparent;border:0;color:#243235;cursor:pointer;font:inherit;font-size:12px;padding:4px 2px;text-align:left}.editnday .ed-found:hover{background:#f4f5f5}.editnday .ed-cov{align-items:flex-start;display:flex;font-size:12px;gap:7px;line-height:1.45}.editnday .ed-cov .ed-cov__q{flex:1;min-width:0}.editnday .ed-covdot{border-radius:999px;flex:none;height:8px;margin-top:5px;width:8px}.editnday .ed-covdot.is-full{background:#243235}.editnday .ed-covdot.is-half{background:linear-gradient(90deg,#243235 50%,#d3b7f1 0)}.editnday .ed-covdot.is-empty{border:1.5px solid #b48fe0}.editnday .ed-radio{align-items:flex-start;background:#fff;border:1px solid #e9ecec;border-radius:7px;cursor:pointer;display:flex;font-size:12px;gap:7px;line-height:1.45;padding:7px 9px}.editnday .ed-radio input{opacity:0;pointer-events:none;position:absolute}.editnday .ed-rdot{align-items:center;border:1.5px solid #c8cfd0;border-radius:999px;display:flex;flex:none;height:15px;justify-content:center;margin-top:1px;width:15px}.editnday .ed-radio.is-on .ed-rdot{border-color:#243235}.editnday .ed-radio.is-on .ed-rdot:after{background:#243235;border-radius:999px;content:"";height:7px;width:7px}.editnday .ed-sec{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;gap:8px;padding:8px 0}.editnday .ed-sec:first-of-type{border-top:0}.editnday .ed-sec .ed-sec__body{flex:1;min-width:0}.editnday .ed-num{align-items:center;background:#f4f5f5;border-radius:999px;color:#56676a;display:flex;flex:none;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.editnday .ed-video{border-top:1px solid #e9ecec;display:flex;flex-direction:column;gap:8px;padding:10px 0}.editnday .ed-video__head{margin-top:6px}.editnday .ed-video__bar{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}.editnday .ed-video__actions{display:flex;flex-shrink:0;gap:12px}.editnday .ed-video .ed-link{white-space:nowrap}.editnday .ed-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0 0}.editnday .ed-review__head{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:0}.editnday .ed-quote{background:#f3ecfb;border-radius:8px;color:#111416}.editnday .ed-fix,.editnday .ed-quote{font-size:12px;line-height:1.55;padding:8px 10px}.editnday .ed-fix{border:1px dashed #b48fe0;border-radius:8px}.editnday .ed-seg{display:flex;gap:6px}.editnday .ed-segb{background:#fff;border:1px solid #e1e5e5;border-radius:999px;color:#56676a;cursor:pointer;flex:1;font:inherit;font-size:11px;height:26px}.editnday .ed-segb.is-on{background:#243235;border-color:#243235;color:#fff}.editnday.ed-wide .components-modal__content{background:#f4f5f5}.editnday.ed-wide .ed-wide__body{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:782px){.editnday.ed-wide .ed-wide__body{grid-template-columns:minmax(0,1fr)}}.editnday.ed-wide .ed-sections{grid-row:span 3}.editnday.ed-wide .ed-wide__foot{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.editnday.ed-wide .ed-wide__foot .ed-ghost{padding:0 20px;width:auto}.editnday.ed-wide .ed-wide__foot .ed-cta{width:280px}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed{background:#243235}.editor-header button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path,.interface-pinned-items button[aria-controls="editnday:editnday-sidebar"].is-pressed svg path{fill:#d3b7f1}.editnday .ed-tasks{gap:0}.editnday .ed-taskwrap{border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:6px;padding:7px 0}.editnday .ed-taskwrap:first-child{border-top:0;padding-top:0}.editnday .ed-task{align-items:center;display:flex;font-size:12px;gap:8px;min-width:0}.editnday .ed-task .ed-task__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.editnday .ed-task .ed-task__t>.ed-muted{display:block;font-size:11px;line-height:1.35}.editnday .ed-tasks>.ed-task{border-top:1px solid #f0f2f2;padding-top:7px}.editnday .ed-circ.is-filled{background:#243235;border-color:#243235}.editnday .ed-circ.is-warn{background:#f3ecfb;border-color:#b48fe0}.editnday .ed-mini{background:#fff;border:1px solid #c8cfd0;border-radius:999px;color:#243235;cursor:pointer;flex:none;font:inherit;font-size:11px;height:24px;padding:0 9px}.editnday .ed-mini.is-plain{border-color:transparent;text-decoration:underline}.editnday .ed-mini.is-done{background:#f3ecfb;border-color:#e6d6f7}.editnday .ed-mini:disabled{cursor:default;opacity:.5}.editnday .ed-redo{display:flex;flex-direction:column;gap:8px}.editnday .ed-redo__title{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin-top:-2px}.editnday .ed-redo__title>.ed-link{flex-basis:100%;text-align:left}.editnday .ed-redo__title .ed-chips{flex-wrap:nowrap}.editnday .ed-redo__actions{display:flex;flex-direction:column;gap:6px}.editnday .ed-redo .ed-link{align-self:flex-start;white-space:nowrap}.editnday .ed-band{background:#f3ecfb;border-radius:8px;font-size:12px;line-height:1.5;padding:8px 10px}.editnday .ed-band.is-warn{background:#fcf0e3;color:#5c3300}.editnday .ed-band a{font-weight:600}.editnday .ed-prohint{align-self:center;background:none;border:0;color:#6c48b5;cursor:pointer;flex:none;font:inherit;font-size:11px;padding:0;white-space:nowrap}.editnday .ed-prohint:hover{text-decoration:underline}.editnday .ed-prohint__tag{background:#243235;border-radius:999px;color:#e6d6f7;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:14px;padding:0 5px;vertical-align:1px}.editnday .ed-prohint-row{margin:-4px 0 6px 30px}.editnday .ed-procard{border:1px dashed #d3b7f1}.editnday .ed-koseo__body>.ed-prohint,.editnday .ed-redo>.ed-prohint{align-self:flex-start}.editnday .ed-tpl{border-top:1px dashed #e0e0e0;display:flex;flex-direction:column;gap:6px;padding-top:8px}.editnday .ed-tpl__swatches{display:flex;flex-wrap:wrap;gap:6px}.editnday .ed-tpl__row{align-items:start;column-gap:8px;display:grid;grid-template-columns:34px 1fr}.editnday .ed-tpl__label{color:#50575e;font-size:11px;font-weight:600;line-height:26px}.editnday .ed-tpl__sw--custom{background:#fff;border-style:dashed;color:#50575e;font-size:16px;font-weight:500}.editnday .ed-tpl__color{align-items:center;display:inline-flex;gap:6px}.editnday .ed-tpl__color input[type=color]{background:#fff;border:1px solid #c3c4c7;border-radius:4px;cursor:pointer;height:26px;padding:2px;width:28px}.editnday .ed-tpl__color input[type=text]{border:1px solid #c3c4c7;border-radius:4px;font-family:ui-monospace,Menlo,monospace;font-size:12px;height:26px;min-height:26px;padding:0 8px;text-transform:uppercase;width:88px}.editnday .ed-tpl__preview{border:1px solid rgba(0,0,0,.1);border-radius:6px;display:block;margin:2px auto 0;max-height:220px;max-width:100%}.editnday .ed-tpl__sw{border:1px solid rgba(0,0,0,.12);border-radius:8px;cursor:pointer;font-size:13px;font-weight:800;height:32px;width:32px}.editnday .ed-tpl__sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #8e6bd1}.editnday .ed-tabs{background:#eef0f0;border-radius:999px;display:flex;gap:4px;margin:0 0 12px;padding:4px}.editnday .ed-tab{background:transparent;border:0;border-radius:999px;color:#5f6969;cursor:pointer;flex:1;font:inherit;font-size:12px;height:30px;padding:0 6px;white-space:nowrap}.editnday .ed-tab.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:#243235;font-weight:600}.editnday .ed-tab:focus-visible{outline:2px solid #b48fe0}.editnday .ed-seomode{font-size:11px;line-height:1.5;margin:0 2px 10px}.editnday .ed-more{align-self:flex-start;margin:2px 2px 8px}.editnday .ed-autosend{font-size:11px;line-height:1.5;margin:4px 2px 0}.editnday .ed-autosend a{color:inherit}.editnday .ed-thumb{aspect-ratio:16/9;border-radius:8px;object-fit:cover;width:100%}.editnday .ed-serp{background:#fff;border:1px solid #e9ecec;border-radius:10px;display:flex;flex-direction:column;gap:3px;padding:10px}.editnday .ed-serp .ed-serp__u{color:#4d5156;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-serp .ed-serp__t{color:#1a0dab;font-size:14px;line-height:1.35}.editnday .ed-serp .ed-serp__d{color:#4d5156;font-size:11.5px;line-height:1.5}.editnday .ed-serp.is-naver .ed-serp__t{color:#001aad;font-weight:600}.editnday .ed-faq{display:flex;flex-direction:column;gap:8px}.editnday .ed-faq__item{display:flex;flex-direction:column;gap:2px}.editnday .ed-link{background:none;border:0;color:#243235;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.editnday .ed-faq__item.is-edit{border-bottom:1px solid #f0f2f2;gap:6px;padding-bottom:8px}.editnday .ed-note.is-error{color:#c2463b}.editnday.ed-prepublish{display:flex;flex-direction:column;gap:8px}.interface-complementary-area:has(.editnday.ed-body),.interface-complementary-area:has(.editnday.ed-body) .components-panel{background:#f4f5f5}@keyframes ed-pulse{0%{box-shadow:0 0 0 0 rgba(180,143,224,.6)}70%{box-shadow:0 0 0 7px rgba(180,143,224,0)}to{box-shadow:0 0 0 0 rgba(180,143,224,0)}}@keyframes ed-hatch{0%{background-position:0 0}to{background-position:28px 0}}.editnday .ed-live{align-items:center;background:#f3ecfb;border-radius:10px;display:flex;font-size:11.5px;gap:8px;min-width:0;padding:8px 10px}.editnday .ed-live .ed-live__t{color:#243235;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-live .ed-elapsed{flex:none;font-variant-numeric:tabular-nums}.editnday .ed-pulse{background:#b48fe0;border-radius:999px;flex:none;height:8px;width:8px}.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:ed-pulse 1.4s ease-out infinite}.editnday .ed-bar.is-busy .ed-bar__hatch{animation:ed-hatch 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.editnday .ed-bar.is-busy .ed-bar__hatch,.editnday .ed-pulse,.editnday .ed-step.is-now .ed-circ{animation:none}}.editnday-header{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.editnday-header img{display:block;height:18px;width:auto}.editnday-header .editnday-header__ver{color:#8b9698;font-size:10.5px;font-variant-numeric:tabular-nums}.editnday-header .editnday-header__pro{background:#243235;border-radius:999px;color:#e6d6f7;font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:14px;margin-left:-2px;padding:1px 6px}.editnday .ed-busy{align-items:center;color:#243235;display:inline-flex;flex:none;font-size:11px;gap:6px}.editnday .ed-circ.is-busy{animation:ed-pulse 1.4s ease-out infinite;background:#f3ecfb;border-color:#b48fe0}.ed-req,.editnday .ed-req{background:#b48fe0;border-radius:50%;display:inline-block;height:5px;margin-left:4px;vertical-align:middle;width:5px}.ed-opt,.editnday .ed-opt{color:#a3acad;font-size:10px;font-weight:400;margin-left:4px}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-req){color:#111416;font-weight:700}.editnday :is(.ed-lbl,.components-base-control__label):has(.ed-opt){color:#8b9698;font-weight:500}.editnday :is(.ed-lbl,.components-base-control__label) .ed-muted{font-weight:400}.ed-hint{color:#8b9698;display:block;font-size:11px;margin-bottom:6px}.editnday .ed-small.is-warn{color:#9a5b00;display:block}.editnday .ed-textcheck .ed-textcheck__head{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__head:disabled{cursor:default}.editnday .ed-textcheck .ed-textcheck__sent{background:#f6f2fb;border:1px solid rgba(180,143,224,.45);border-radius:0;color:#3c4646;cursor:pointer;display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0;padding:4px 8px;text-align:left;width:100%}.editnday .ed-textcheck .ed-textcheck__sent:hover{background:#efe6f8}.editnday .ed-textcheck .ed-koseo__body>.ed-link{align-self:flex-start;font-size:11px}.editnday .ed-sentences{border-top:1px solid #e1e5e5;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px}.editnday .ed-sentences .ed-sentences__sec{display:flex;flex-direction:column;gap:2px}.editnday .ed-sentences .ed-sentences__h{color:#243235;font-size:11.5px}.editnday .ed-sentences .ed-sentences__s{align-items:flex-start;background:#fff;border:1px solid #e1e5e5;border-radius:0;color:#3c4646;cursor:pointer;display:flex;font:inherit;font-size:11px;gap:6px;line-height:1.5;margin:0;padding:3px 6px;text-align:left;width:100%}.editnday .ed-sentences .ed-sentences__s:hover{background:#f6f2fb}.editnday .ed-sentences .ed-sentences__s.is-breath{background:#fff9e8;border-color:#e9c46a}.editnday .ed-sentences .ed-sentences__s.is-long{background:#fdf0ec;border-color:#e07a5f}.editnday .ed-sentences .ed-sentences__s.is-flag .ed-sentences__n{color:#b3412a}.editnday .ed-sentences .ed-sentences__n{color:#8b9698;flex:0 0 28px;font-variant-numeric:tabular-nums;text-align:right}.editnday .ed-sentences__toggle{align-self:flex-start;font-size:11px;margin-top:6px}.editnday .ed-koseo .ed-koseo__score{background:#f3ecfb;border-radius:999px;font-size:11px;padding:2px 8px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__score.is-ok{background:#f0f2f2}.editnday .ed-koseo .ed-koseo__kw{align-items:center;display:grid;gap:4px 6px;grid-template-columns:1fr auto}.editnday .ed-koseo .ed-koseo__kw .ed-ghost{padding:0 12px;width:auto}.editnday .ed-koseo .ed-koseo__kw .ed-muted{font-size:11px;grid-column:1/-1}.editnday .ed-koseo .ed-koseo__item{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;font-size:12px;gap:8px;padding-top:7px}.editnday .ed-koseo .ed-koseo__item .ed-circ{flex-shrink:0;margin-top:1px}.editnday .ed-koseo .ed-koseo__body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.editnday .ed-koseo .ed-koseo__head{align-items:baseline;display:flex;gap:6px;justify-content:space-between}.editnday .ed-koseo .ed-koseo__who{color:#c8cfd0;flex-shrink:0;font-size:10px;white-space:nowrap}.editnday .ed-koseo .ed-koseo__hint{color:#6b7272;font-size:11px;line-height:1.5}.editnday .ed-koseo .ed-koseo__foot{align-items:flex-start;border-top:1px solid #f0f2f2;display:flex;flex-direction:column;gap:4px;padding-top:6px}.editnday .ed-koseo .ed-koseo__foot .ed-muted{font-size:11px}.editnday .ed-stepper{display:flex;flex-direction:column;gap:6px;padding:2px 0 6px}.editnday .ed-stepper__flow{align-items:flex-start;display:flex}.editnday .ed-stepper__st{align-items:center;display:flex;flex:none;flex-direction:column;gap:4px;width:64px}.editnday .ed-stepper__dot{align-items:center;background:#fff;border:1.5px solid #c8cfd0;border-radius:50%;color:#8b9698;display:flex;font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}.editnday .ed-stepper__dot svg{height:11px;width:11px}.editnday .ed-stepper__lbl{color:#8b9698;font-size:10px;line-height:1.25;text-align:center}.editnday .ed-stepper__st.is-done .ed-stepper__dot{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stepper__st.is-done .ed-stepper__lbl{color:#243235}.editnday .ed-stepper__st.is-now .ed-stepper__dot{background:#b48fe0;border-color:#b48fe0;color:#fff}.editnday .ed-stepper__st.is-now .ed-stepper__lbl{color:#243235;font-weight:600}.editnday .ed-stepper__link{align-items:center;display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;padding-top:9px}.editnday .ed-stepper__link .ed-stepper__line{border-top:1.5px dashed #c8cfd0;width:100%}.editnday .ed-stepper__link em{color:#a3acad;font-size:9px;font-style:normal;white-space:nowrap}.editnday .ed-stepper__link.is-done .ed-stepper__line{border-top-color:#243235;border-top-style:solid}.editnday .ed-stepper__link.is-run .ed-stepper__line{animation:ed-stepper-run 1.2s ease-in-out infinite;border-top-color:#b48fe0}.editnday .ed-stepper__link.is-run em{color:#7d55b0;font-weight:600}.editnday .ed-stepper__note{color:#56676a;font-size:11px}@keyframes ed-stepper-run{0%,to{opacity:1}50%{opacity:.35}}.editnday .ed-fold{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:8px;padding:0;text-align:left;width:100%}.editnday .ed-fold .ed-lbl{margin:0}.editnday .ed-fold__v{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editnday .ed-fold__i{font-size:12px;opacity:.7;text-decoration:underline}.editnday .ed-fold[aria-expanded=true]{margin-bottom:10px}.editnday .ed-preset{font-size:12.5px;margin:-4px 0 10px}.editnday .ed-preset .ed-chips{margin-top:8px}.ed-proinfo ul{list-style:disc;margin:8px 0 12px 20px}.ed-proinfo li{margin-bottom:4px}.ed-proinfo,.editnday{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,system-ui,sans-serif;letter-spacing:0}.ed-proinfo :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot),.editnday :not(.ed-covdot):not(.ed-rdot):not(.ed-pulse):not(.ed-cta__dot){border-radius:0!important}.editnday{color:#1b1e25}.editnday.ed-body{background:#f6f7f9}.editnday .ed-h{color:#1b1e25;font-weight:650}.editnday .ed-dim,.editnday .ed-muted,.editnday .ed-sub{color:#646c7a}.editnday .ed-lbl{color:#474f5c;font-weight:650}.editnday .ed-card,.editnday .ed-live,.editnday .ed-note,.editnday .ed-pastpost,.editnday .ed-serp,.editnday .ed-stat{background:#fff;border:1px solid #dde0e6;box-shadow:none}.editnday .components-text-control__input,.editnday .components-textarea-control__input,.editnday input[type=text],.editnday input[type=url],.editnday select,.editnday textarea{border:1px solid #7c8494;box-shadow:none}.editnday .components-text-control__input:focus,.editnday .components-textarea-control__input:focus,.editnday textarea:focus{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday .ed-cta{background:#243235;font-size:13px;font-weight:650;height:36px}.editnday .ed-cta:hover:not(:disabled){background:#1a2527}.editnday .ed-cta:disabled{background:#f0f2f5;border:1px solid #dde0e6;color:#646c7a}.editnday .ed-cta .ed-cta__dot{border-radius:0!important;height:30px;right:3px;top:3px;width:30px}.editnday .ed-ghost{background:#fff;border:1px solid #7c8494;color:#1b1e25;font-weight:600;height:32px}.editnday .ed-ghost:hover:not(:disabled){background:#f0f2f5}.editnday .ed-chip{border:1px solid #7c8494;color:#474f5c;font-weight:500;height:26px}.editnday .ed-chip.is-on{background:#243235;border-color:#243235;color:#fff}.editnday .ed-chip.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag{background:#fff;border:1px solid #7c8494;color:#474f5c;font-size:10.5px;height:20px;padding:0 6px}.editnday .ed-tag.is-lav{background:#f3ecfb;border-color:#b48fe0;color:#243235}.editnday .ed-tag.is-dark{background:#243235;border-color:#243235;color:#fff}.editnday .ed-stats{background:#fff;border:1px solid #dde0e6;gap:0}.editnday .ed-stat{border:0;border-right:1px solid #dde0e6}.editnday .ed-stat:last-child{border-right:0}.editnday .ed-big,.editnday .ed-koseo__score,.editnday .ed-stat__n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0}.editnday .ed-circ{border-radius:0!important}.editnday .ed-bar{background:#f0f2f5}.editnday .ed-note.is-error{background:#fdecea;border:1px solid rgba(180,35,24,.4)}.editnday .ed-segb{border:1px solid #7c8494}.editnday .ed-radio{border:1px solid #dde0e6}.editnday .ed-radio.is-on{border-color:#243235;box-shadow:inset 0 0 0 1px #243235}.ed-proinfo .ed-tabs,.editnday .ed-tabs{background:#fff;border:1px solid #dde0e6;gap:0;padding:0}.ed-proinfo .ed-tab,.editnday .ed-tab{border-right:1px solid #dde0e6;color:#474f5c;height:32px}.ed-proinfo .ed-tab:last-child,.editnday .ed-tab:last-child{border-right:0}.ed-proinfo .ed-tab.is-on,.editnday .ed-tab.is-on{background:#243235;box-shadow:none;color:#fff;font-weight:650}.editnday-header__pro{border-radius:0!important}.editnday .ed-cardhead{align-items:center;background:#fff;border-bottom:1px solid #dde0e6;display:flex;gap:8px;justify-content:space-between;margin:-10px -10px 4px;padding:8px 10px}.editnday .ed-cardhead__t{align-items:center;color:#1b1e25;display:inline-flex;font-size:12.5px;font-weight:650;gap:6px}.editnday .ed-mini.is-strong{background:#243235;border-color:#243235;color:#fff}.editnday .ed-mini.is-strong:disabled{background:#f0f2f5;border-color:#dde0e6;color:#646c7a}.editnday .ed-circ.is-warn{background:#fdf3dc;border-color:#8a5300;color:#8a5300;font-size:11px;font-weight:800;line-height:1}.editnday .ed-kwplace{background:#f0f2f5;border:1px solid #dde0e6;display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px}.editnday .ed-kwplace .ed-quote{background:#fff;border:1px solid rgba(180,143,224,.5);color:#1b1e25;display:block;font-size:12px;line-height:1.6;margin:0;padding:6px 8px}.editnday .ed-kwplace .ed-quote.is-new{border-color:rgba(11,122,75,.45)}.editnday .ed-kwfix{display:flex;flex-direction:column;gap:6px;width:100%}.editnday .ed-kwfix .ed-quote{background:#fff;border:1px solid rgba(11,122,75,.45);display:block;font-size:12px;line-height:1.6;padding:6px 8px}.editnday .ed-found.is-on{border-color:#243235;box-shadow:0 0 0 1px #243235}.editnday-header__prover{font-weight:500;letter-spacing:0;margin-left:3px}.ed-kwvol{display:grid;font-size:12px;gap:6px;margin:2px 0 10px}.ed-kwvol p{margin:0}.ed-kwvol__self{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px}.ed-kwvol__comp{border:1px solid #c3c4c7;border-radius:2px;color:#50575e;margin-left:4px;padding:0 6px}.ed-kwvol__comp.is-high{border-color:#d63638;color:#a32022}.ed-kwvol__comp.is-low{border-color:#00a32a;color:#007017}.ed-kwvol__rel{display:grid;gap:4px}.ed-kwvol__chips{display:flex;flex-wrap:wrap;gap:4px}.ed-share{display:grid;gap:6px;margin:6px 0 4px}.ed-share__card{background:#fff;border:1px solid #dcdcde;border-radius:4px;overflow:hidden}.ed-share__img{aspect-ratio:1200/630;background-position:50%;background-size:cover;max-width:100%}.ed-share__text{display:grid;font-size:12px;gap:2px;padding:8px 10px}.ed-share__text strong{font-size:13px;line-height:1.35}.ed-share__desc{color:#50575e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-alttext,.interface-complementary-area .ed-alttext{background:#f6f7f7;border:1px solid #e0e0e0;border-radius:3px;color:#3c434a;font-size:12px;line-height:1.5;margin:2px 0 8px 30px;padding:6px 8px;word-break:keep-all}.ed-aicite .ed-aicite__score{font-variant-numeric:tabular-nums;font-weight:700}.ed-aicite .ed-aicite__score.is-ok{color:#1f8a4c}.ed-aicite .ed-aicite__score.is-warn{color:#996800}.ed-aicite .ed-aicite__score.is-bad{color:#b32d2e}.ed-aicite .ed-aicite__bar{background:#f0f0f1;height:6px;margin:6px 0}.ed-aicite .ed-aicite__bar span{background:#1f8a4c;display:block;height:100%}.ed-aicite .ed-aicite__bar span.is-warn{background:#dba617}.ed-aicite .ed-aicite__bar span.is-bad{background:#d63638}.ed-aicite .ed-aicite__item{align-items:baseline;display:flex;font-size:12px;gap:8px;line-height:1.5;margin:6px 0}.ed-aicite .ed-aicite__pts{color:#1f8a4c;flex:none;font-variant-numeric:tabular-nums;font-weight:700;min-width:28px}
  • editnday/trunk/editnday.php

    r3743363 r3747744  
    44 * Plugin URI:        https://editn.day
    55 * Description:       Korean writing check and publishing assistant: spelling, AI-sounding phrases, SEO and Naver previews, summary and FAQ boxes, search engine registration. Runs entirely on your site.
    6  * Version:           1.0.77
     6 * Version:           1.0.88
    77 * Requires at least: 6.6
    88 * Requires PHP:      8.1
    … …  
    1616defined( 'ABSPATH' ) || exit;
    1717
    18 define( 'EDITNDAY_VERSION', '1.0.77' );
     18define( 'EDITNDAY_VERSION', '1.0.88' );
    1919define( 'EDITNDAY_FILE', __FILE__ );
    2020define( 'EDITNDAY_DIR', plugin_dir_path( __FILE__ ) );
  • editnday/trunk/readme.txt

    r3743363 r3747744  
    55Tested up to: 7.1
    66Requires PHP: 8.1
    7 Stable tag: 1.0.77
     7Stable tag: 1.0.88
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    8383== Changelog ==
    8484
     85= 1.0.88 =
     86* Background-template thumbnails (no AI): a live preview while you choose; five sizes (share 1.91:1, 16:9, 4:3, 3:4, 9:16); three layouts (centered, magazine with a small site label and accent bar, bottom band); pick any background color with a color picker or hex code (text color adjusts automatically); the title size now fits its length; your last choices are remembered.
     87
    8588= 1.0.77 =
    8689* Reach counting: after the first beacon (sent when the tab is hidden or closed) a reader who comes back and reads further now sends a correction, so switching tabs midway no longer leaves the post marked as unfinished; visits are still counted once per session. Pro: post titles in the Performance table no longer show HTML entities for quotes.
    … …  
    9598* Korean text check gains two readability items: "too many adverbs" (two or more intensifiers such as 정말·너무·아주 in one sentence) and "run-on sentence" (four or more clauses joined by -고/-는데/-지만). A new "sentence view" lists every sentence on its own line with its length, and "read aloud" speaks a section with the browser voice so awkward sentences are caught by ear. Everything runs in the browser; nothing leaves your site.
    9699
    97 = 1.0.71 =
    98 * Site Open step 3: Naver and Google are now marked as required and Bing/Daum as optional, the step summary reads "required n / 2 · optional n / 2" and turns green once both required engines are verified, and the registration guide collapses for engines that already have a code so only the remaining ones stay expanded.
    99 
    100100Full history (Korean): https://editn.day/updates
  • editnday/trunk/src/publish.js

    r3740496 r3747744  
    1010} from '@wordpress/components';
    1111import { dispatch, select, useSelect } from '@wordpress/data';
    12 import { createInterpolateElement, useMemo, useState } from '@wordpress/element';
     12import {
     13        createInterpolateElement,
     14        useEffect,
     15        useMemo,
     16        useState,
     17} from '@wordpress/element';
    1318import { showSentence } from './blocks';
    1419import { plain } from './textcheck';
    … …  
    672677}
    673678
     679/** 배경 틀 비율 (10-15 대표: AI와 같은 4가지 + 공유 미리보기 크기). [키, 이름, 너비, 높이] */
     680export const TPL_ASPECTS = [
     681        [ 'og', __( '공유 1.91:1', 'editnday' ), 1200, 630 ],
     682        [ '16:9', __( '가로 16:9', 'editnday' ), 1600, 900 ],
     683        [ '4:3', __( '가로 4:3', 'editnday' ), 1440, 1080 ],
     684        [ '3:4', __( '세로 3:4', 'editnday' ), 1080, 1440 ],
     685        [ '9:16', __( '세로 9:16', 'editnday' ), 1080, 1920 ],
     686];
     687/** 배경 틀 배치 (10-15 대표). [키, 이름] */
     688export const TPL_LAYOUTS = [
     689        [ 'center', __( '가운데', 'editnday' ) ],
     690        [ 'magazine', __( '잡지형', 'editnday' ) ],
     691        [ 'band', __( '아래 띠', 'editnday' ) ],
     692];
     693
     694/** 바탕색에 맞는 글자색 (밝으면 먹색, 어두우면 흰색) */
     695function inkFor( hex ) {
     696        const m = /^#?([0-9a-f]{6})$/i.exec( hex || '' );
     697        if ( ! m ) {
     698                return '#ffffff';
     699        }
     700        const [ r, g, b ] = [ 0, 2, 4 ].map(
     701                ( i ) => parseInt( m[ 1 ].slice( i, i + 2 ), 16 ) / 255
     702        );
     703        const lin = ( c ) =>
     704                c <= 0.03928 ? c / 12.92 : ( ( c + 0.055 ) / 1.055 ) ** 2.4;
     705        const lum = 0.2126 * lin( r ) + 0.7152 * lin( g ) + 0.0722 * lin( b );
     706        return lum > 0.45 ? '#1f2a2c' : '#ffffff';
     707}
     708
    674709/**
    675  * 배경 틀로 대표 이미지 만들기 (크레딧 없음, 서버를 부르지 않음): 1200×630(공유 미리보기 크기)에 제목을 가운데, 아래에 사이트 이름
    676  * @param {string} text     그림에 넣을 제목
    677  * @param {string} template TEMPLATES의 키
     710 * 제목이 maxLines 줄 안에 말줄임 없이 들어가는 가장 큰 글자 크기 (짧은 제목은 크게, 긴 제목은 작게)
     711 * @param ctx
     712 * @param text
     713 * @param maxWidth
     714 * @param maxSize
     715 * @param minSize
     716 * @param maxLines
    678717 */
    679 export async function templateFeatured( text, template = 'ink' ) {
    680         if ( ! text.trim() ) {
    681                 return null;
    682         }
    683         await loadTitleFont();
    684         const [ key, , colors, ink ] =
    685                 TEMPLATES.find( ( t ) => t[ 0 ] === template ) || TEMPLATES[ 0 ];
    686         const w = 1200;
    687         const h = 630;
     718function fitTitle( ctx, text, maxWidth, maxSize, minSize, maxLines = 3 ) {
     719        for ( let size = maxSize; size > minSize; size -= 4 ) {
     720                ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
     721                if ( wrapTitle( ctx, text, maxWidth, Infinity ).length <= maxLines ) {
     722                        return { size, lines: wrapTitle( ctx, text, maxWidth, maxLines ) };
     723                }
     724        }
     725        ctx.font = `800 ${ minSize }px ${ TITLE_FONT }`;
     726        return { size: minSize, lines: wrapTitle( ctx, text, maxWidth, maxLines ) };
     727}
     728
     729/**
     730 * 배경 틀 그리기 (캔버스, 서버·AI 없음). 미리보기와 올리기가 같은 함수를 쓴다
     731 * @param {Object} o
     732 * @param {string} o.text     그림에 넣을 제목
     733 * @param {string} o.template TEMPLATES의 키, 또는 'custom'
     734 * @param {string} o.color    custom일 때 바탕색 "#RRGGBB"
     735 * @param {string} o.layout   TPL_LAYOUTS의 키
     736 * @param {string} o.aspect   TPL_ASPECTS의 키
     737 * @param {number} o.scale    미리보기용 축소 (1 = 원래 크기)
     738 */
     739export function drawTemplate( {
     740        text,
     741        template = 'ink',
     742        color = '',
     743        layout = 'center',
     744        aspect = 'og',
     745        scale = 1,
     746} ) {
     747        const custom = template === 'custom' && /^#[0-9a-f]{6}$/i.test( color );
     748        const [ , , colors, ink ] = custom
     749                ? [ 'custom', '', [ color ], inkFor( color ) ]
     750                : TEMPLATES.find( ( t ) => t[ 0 ] === template ) || TEMPLATES[ 0 ];
     751        const [ , , W, H ] =
     752                TPL_ASPECTS.find( ( a ) => a[ 0 ] === aspect ) || TPL_ASPECTS[ 0 ];
     753        const w = Math.round( W * scale );
     754        const h = Math.round( H * scale );
    688755        const canvas = document.createElement( 'canvas' );
    689756        canvas.width = w;
    690757        canvas.height = h;
    691758        const ctx = canvas.getContext( '2d' );
    692         if ( colors.length > 1 ) {
    693                 const g = ctx.createLinearGradient( 0, 0, w, h );
    694                 g.addColorStop( 0, colors[ 0 ] );
    695                 g.addColorStop( 1, colors[ 1 ] );
    696                 ctx.fillStyle = g;
    697         } else {
    698                 ctx.fillStyle = colors[ 0 ];
    699         }
     759        const paint = () => {
     760                if ( colors.length > 1 ) {
     761                        const g = ctx.createLinearGradient( 0, 0, w, h );
     762                        g.addColorStop( 0, colors[ 0 ] );
     763                        g.addColorStop( 1, colors[ 1 ] );
     764                        return g;
     765                }
     766                return colors[ 0 ];
     767        };
     768        ctx.fillStyle = paint();
    700769        ctx.fillRect( 0, 0, w, h );
    701         const size = 72;
     770        const base = Math.min( w, h );
     771        const pad = Math.round( base * 0.1 );
     772        const site = String( window.editndayConfig?.siteName || '' )
     773                .trim()
     774                .slice( 0, 40 );
     775        const small = Math.round( base * 0.042 );
     776        ctx.textBaseline = 'alphabetic';
     777
     778        if ( layout === 'band' ) {
     779                // 아래 띠: 위는 바탕색, 아래 띠는 글자색으로 칠하고 그 위에 바탕색 제목 (왼쪽 정렬)
     780                const bandH = Math.round( h * ( h > w ? 0.34 : 0.4 ) );
     781                ctx.fillStyle = ink;
     782                ctx.fillRect( 0, h - bandH, w, bandH );
     783                const { size, lines } = fitTitle(
     784                        ctx,
     785                        text,
     786                        w - pad * 2,
     787                        Math.round( base * 0.12 ),
     788                        Math.round( base * 0.06 ),
     789                        2
     790                );
     791                ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
     792                ctx.fillStyle = colors.length > 1 ? colors[ 0 ] : colors[ 0 ];
     793                ctx.textAlign = 'left';
     794                const lead = Math.round( size * 1.25 );
     795                const blockH = size + ( lines.length - 1 ) * lead;
     796                const y0 = h - bandH + ( bandH - blockH ) / 2 + size * 0.85;
     797                lines.forEach( ( l, i ) => ctx.fillText( l, pad, y0 + i * lead ) );
     798                if ( site ) {
     799                        ctx.font = `700 ${ small }px ${ TITLE_FONT }`;
     800                        ctx.fillStyle = ink;
     801                        ctx.globalAlpha = 0.75;
     802                        ctx.fillText( site, pad, pad + small );
     803                        ctx.globalAlpha = 1;
     804                }
     805                return canvas;
     806        }
     807
     808        if ( layout === 'magazine' ) {
     809                // 잡지형: 위에 사이트 이름 꼬리표, 아래쪽에 짧은 막대 + 큰 제목 (왼쪽 정렬)
     810                ctx.fillStyle = ink;
     811                ctx.textAlign = 'left';
     812                if ( site ) {
     813                        ctx.font = `700 ${ small }px ${ TITLE_FONT }`;
     814                        ctx.globalAlpha = 0.8;
     815                        ctx.fillText( site, pad, pad + small );
     816                        ctx.globalAlpha = 1;
     817                }
     818                const { size, lines } = fitTitle(
     819                        ctx,
     820                        text,
     821                        w - pad * 2,
     822                        Math.round( base * 0.14 ),
     823                        Math.round( base * 0.07 ),
     824                        h > w ? 4 : 3
     825                );
     826                ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
     827                const lead = Math.round( size * 1.22 );
     828                const lastY = h - pad;
     829                const firstY = lastY - ( lines.length - 1 ) * lead;
     830                ctx.fillRect(
     831                        pad,
     832                        firstY - size - Math.round( base * 0.05 ),
     833                        Math.round( base * 0.09 ),
     834                        Math.max( 3, Math.round( base * 0.012 ) )
     835                );
     836                lines.forEach( ( l, i ) => ctx.fillText( l, pad, firstY + i * lead ) );
     837                return canvas;
     838        }
     839
     840        // 가운데 (처음 틀): 제목 가운데, 아래에 사이트 이름
     841        const { size, lines } = fitTitle(
     842                ctx,
     843                text,
     844                w - pad * 2,
     845                Math.round( base * 0.14 ),
     846                Math.round( base * 0.07 ),
     847                h > w ? 4 : 3
     848        );
    702849        ctx.font = `800 ${ size }px ${ TITLE_FONT }`;
    703850        ctx.fillStyle = ink;
    704851        ctx.textAlign = 'center';
    705         ctx.textBaseline = 'alphabetic';
    706         const lines = wrapTitle( ctx, text, w - 200 );
    707         const lead = Math.round( size * 1.3 );
     852        const lead = Math.round( size * 1.28 );
    708853        const block = ( lines.length - 1 ) * lead;
    709         const y0 = ( h - block ) / 2 + size * 0.35 - 16;
     854        const y0 = ( h - block ) / 2 + size * 0.35 - small * 0.4;
    710855        lines.forEach( ( l, i ) => ctx.fillText( l, w / 2, y0 + i * lead ) );
    711         const site = String( window.editndayConfig?.siteName || '' ).trim();
    712856        if ( site ) {
    713                 ctx.font = `700 26px ${ TITLE_FONT }`;
     857                ctx.font = `700 ${ small }px ${ TITLE_FONT }`;
    714858                ctx.globalAlpha = 0.72;
    715                 ctx.fillText( site.slice( 0, 40 ), w / 2, h - 56 );
     859                ctx.fillText( site, w / 2, h - pad * 0.9 );
    716860                ctx.globalAlpha = 1;
    717861        }
     862        return canvas;
     863}
     864
     865/**
     866 * 배경 틀로 대표 이미지 만들기 (크레딧 없음, 서버를 부르지 않음).
     867 * 10-15: 비율 5가지 · 배치 3가지 · 직접 고른 색 · 제목 길이에 맞춘 글자 크기
     868 * @param {string} text     그림에 넣을 제목
     869 * @param {string} template TEMPLATES의 키, 또는 'custom'
     870 * @param {Object} opts     { color, layout, aspect }
     871 */
     872export async function templateFeatured( text, template = 'ink', opts = {} ) {
     873        if ( ! text.trim() ) {
     874                return null;
     875        }
     876        await loadTitleFont();
     877        const canvas = drawTemplate( { text, template, ...opts } );
     878        const key =
     879                template === 'custom'
     880                        ? `custom-${ String( opts.color || '' ).replace( '#', '' ) }`
     881                        : template;
    718882        return uploadFeatured( canvas, { template: key, alt: text.trim() } );
    719883}
    720884
     885/** 미리보기용: 글꼴을 불러온 뒤 작게 그려 data URL로 */
     886export async function templatePreview( o ) {
     887        if ( ! o.text?.trim() ) {
     888                return '';
     889        }
     890        await loadTitleFont();
     891        return drawTemplate( { ...o, scale: 0.3 } ).toDataURL( 'image/jpeg', 0.8 );
     892}
     893
    721894/**
    722  * 낱말 단위로 줄을 나눈다 (낱말 하나가 너무 길면 글자 단위로). 많아야 3줄, 넘치면 말줄임
     895 * 낱말 단위로 줄을 나눈다 (낱말 하나가 너무 길면 글자 단위로). 많아야 maxLines줄(기본 3), 넘치면 말줄임
    723896 * @param ctx
    724897 * @param text
    725898 * @param maxWidth
    726899 */
    727 function wrapTitle( ctx, text, maxWidth ) {
     900function wrapTitle( ctx, text, maxWidth, maxLines = 3 ) {
    728901        const lines = [];
    729902        let line = '';
    … …  
    756929                lines.push( line );
    757930        }
    758         if ( lines.length > 3 ) {
    759                 lines.length = 3;
    760                 lines[ 2 ] = lines[ 2 ].replace( /.$/, '…' );
     931        if ( lines.length > maxLines ) {
     932                lines.length = maxLines;
     933                lines[ maxLines - 1 ] = lines[ maxLines - 1 ].replace( /.$/, '…' );
    761934        }
    762935        return lines;
    … …  
    14311604        const [ titlePos, setTitlePos ] = useState( 'bottom' );
    14321605        const [ titleKind, setTitleKind ] = useState( 'title' );
    1433         const [ tpl, setTpl ] = useState( 'ink' );
     1606        // 배경 틀 (10-15): 색·배치·비율·직접 고른 색은 마지막 것을 기억, 미리보기는 고를 때마다 다시 그림
     1607        const [ tplOpts, setTplOptsState ] = useState( () => {
     1608                try {
     1609                        return {
     1610                                tpl: 'ink',
     1611                                layout: 'center',
     1612                                aspect: 'og',
     1613                                color: '#2F5D50',
     1614                                ...JSON.parse( window.localStorage.getItem( 'editndayTpl' ) || '{}' ),
     1615                        };
     1616                } catch {
     1617                        return { tpl: 'ink', layout: 'center', aspect: 'og', color: '#2F5D50' };
     1618                }
     1619        } );
     1620        const setTplOpts = ( patch ) =>
     1621                setTplOptsState( ( o ) => {
     1622                        const n = { ...o, ...patch };
     1623                        try {
     1624                                window.localStorage.setItem( 'editndayTpl', JSON.stringify( n ) );
     1625                        } catch {}
     1626                        return n;
     1627                } );
     1628        const tpl = tplOpts.tpl;
     1629        const [ tplPreview, setTplPreview ] = useState( '' );
     1630        const tplText = onImage.trim() || st.title?.trim() || '';
     1631        useEffect( () => {
     1632                let gone = false;
     1633                const t = setTimeout( () => {
     1634                        templatePreview( {
     1635                                text: tplText,
     1636                                template: tplOpts.tpl,
     1637                                color: tplOpts.color,
     1638                                layout: tplOpts.layout,
     1639                                aspect: tplOpts.aspect,
     1640                        } )
     1641                                .then( ( u ) => ! gone && setTplPreview( u ) )
     1642                                .catch( () => ! gone && setTplPreview( '' ) );
     1643                }, 150 );
     1644                return () => {
     1645                        gone = true;
     1646                        clearTimeout( t );
     1647                };
     1648        }, [ tplText, tplOpts ] );
    14341649        // 이어지는 내 글: null(아직 안 찾음) | [] | [{id,title,url,date,added}]
    14351650        const [ related, setRelated ] = useState( null );
    … …  
    18642079                                                                        ) }
    18652080                                                                </span>
    1866                                                                 <span className="ed-tpl__swatches">
    1867                                                                         { TEMPLATES.map( ( [ k, l, c, ink ] ) => (
     2081                                                                <div className="ed-tpl__row">
     2082                                                                        <span className="ed-tpl__label">
     2083                                                                                { __( '색', 'editnday' ) }
     2084                                                                        </span>
     2085                                                                        <span className="ed-tpl__swatches">
     2086                                                                                { TEMPLATES.map( ( [ k, l, c, ink ] ) => (
     2087                                                                                        <button
     2088                                                                                                key={ k }
     2089                                                                                                type="button"
     2090                                                                                                className={ `ed-tpl__sw${
     2091                                                                                                        tpl === k ? ' is-on' : ''
     2092                                                                                                }` }
     2093                                                                                                style={ {
     2094                                                                                                        background:
     2095                                                                                                                c.length > 1
     2096                                                                                                                        ? `linear-gradient(135deg, ${ c[ 0 ] }, ${ c[ 1 ] })`
     2097                                                                                                                        : c[ 0 ],
     2098                                                                                                        color: ink,
     2099                                                                                                } }
     2100                                                                                                aria-pressed={ tpl === k }
     2101                                                                                                title={ l }
     2102                                                                                                onClick={ () => setTplOpts( { tpl: k } ) }
     2103                                                                                        >
     2104                                                                                                { __( '가', 'editnday' ) }
     2105                                                                                        </button>
     2106                                                                                ) ) }
    18682107                                                                                <button
    1869                                                                                         key={ k }
    18702108                                                                                        type="button"
    1871                                                                                         className={ `ed-tpl__sw${
    1872                                                                                                 tpl === k ? ' is-on' : ''
     2109                                                                                        className={ `ed-tpl__sw ed-tpl__sw--custom${
     2110                                                                                                tpl === 'custom' ? ' is-on' : ''
    18732111                                                                                        }` }
    1874                                                                                         style={ {
    1875                                                                                                 background:
    1876                                                                                                         c.length > 1
    1877                                                                                                                 ? `linear-gradient(135deg, ${ c[ 0 ] }, ${ c[ 1 ] })`
    1878                                                                                                                 : c[ 0 ],
    1879                                                                                                 color: ink,
    1880                                                                                         } }
    1881                                                                                         aria-pressed={ tpl === k }
    1882                                                                                         title={ l }
    1883                                                                                         onClick={ () => setTpl( k ) }
     2112                                                                                        style={
     2113                                                                                                tpl === 'custom'
     2114                                                                                                        ? { background: tplOpts.color }
     2115                                                                                                        : undefined
     2116                                                                                        }
     2117                                                                                        aria-pressed={ tpl === 'custom' }
     2118                                                                                        title={ __( '직접 고른 색', 'editnday' ) }
     2119                                                                                        onClick={ () => setTplOpts( { tpl: 'custom' } ) }
    18842120                                                                                >
    1885                                                                                         { __( '가', 'editnday' ) }
     2121                                                                                        { tpl === 'custom' ? '' : '+' }
    18862122                                                                                </button>
    1887                                                                         ) ) }
    1888                                                                 </span>
     2123                                                                        </span>
     2124                                                                </div>
     2125                                                                { tpl === 'custom' && (
     2126                                                                        <div className="ed-tpl__row">
     2127                                                                                <span className="ed-tpl__label" />
     2128                                                                                <span className="ed-tpl__color">
     2129                                                                                        <input
     2130                                                                                                type="color"
     2131                                                                                                aria-label={ __( '바탕색 고르기', 'editnday' ) }
     2132                                                                                                value={
     2133                                                                                                        /^#[0-9a-f]{6}$/i.test( tplOpts.color )
     2134                                                                                                                ? tplOpts.color
     2135                                                                                                                : '#2F5D50'
     2136                                                                                                }
     2137                                                                                                onChange={ ( e ) =>
     2138                                                                                                        setTplOpts( { color: e.target.value } )
     2139                                                                                                }
     2140                                                                                        />
     2141                                                                                        <input
     2142                                                                                                type="text"
     2143                                                                                                aria-label={ __( '바탕색 hex', 'editnday' ) }
     2144                                                                                                value={ tplOpts.color }
     2145                                                                                                maxLength={ 7 }
     2146                                                                                                spellCheck={ false }
     2147                                                                                                onChange={ ( e ) => {
     2148                                                                                                        const v = e.target.value.trim();
     2149                                                                                                        setTplOpts( {
     2150                                                                                                                color: v.startsWith( '#' ) ? v : '#' + v,
     2151                                                                                                        } );
     2152                                                                                                } }
     2153                                                                                        />
     2154                                                                                </span>
     2155                                                                        </div>
     2156                                                                ) }
     2157                                                                <div className="ed-tpl__row">
     2158                                                                        <span className="ed-tpl__label">
     2159                                                                                { __( '배치', 'editnday' ) }
     2160                                                                        </span>
     2161                                                                        <span className="ed-chips">
     2162                                                                                { TPL_LAYOUTS.map( ( [ k, l ] ) => (
     2163                                                                                        <Chip
     2164                                                                                                key={ k }
     2165                                                                                                on={ tplOpts.layout === k }
     2166                                                                                                onClick={ () => setTplOpts( { layout: k } ) }
     2167                                                                                        >
     2168                                                                                                { l }
     2169                                                                                        </Chip>
     2170                                                                                ) ) }
     2171                                                                        </span>
     2172                                                                </div>
     2173                                                                <div className="ed-tpl__row">
     2174                                                                        <span className="ed-tpl__label">
     2175                                                                                { __( '비율', 'editnday' ) }
     2176                                                                        </span>
     2177                                                                        <span className="ed-chips">
     2178                                                                                { TPL_ASPECTS.map( ( [ k, l ] ) => (
     2179                                                                                        <Chip
     2180                                                                                                key={ k }
     2181                                                                                                on={ tplOpts.aspect === k }
     2182                                                                                                onClick={ () => setTplOpts( { aspect: k } ) }
     2183                                                                                        >
     2184                                                                                                { l }
     2185                                                                                        </Chip>
     2186                                                                                ) ) }
     2187                                                                        </span>
     2188                                                                </div>
     2189                                                                { tplPreview ? (
     2190                                                                        <img
     2191                                                                                className="ed-tpl__preview"
     2192                                                                                src={ tplPreview }
     2193                                                                                alt={ __( '배경 틀 미리보기', 'editnday' ) }
     2194                                                                        />
     2195                                                                ) : (
     2196                                                                        <span className="ed-muted">
     2197                                                                                { __(
     2198                                                                                        '제목을 쓰면 여기에 미리보기가 나와요.',
     2199                                                                                        'editnday'
     2200                                                                                ) }
     2201                                                                        </span>
     2202                                                                ) }
    18892203                                                                <Ghost
    18902204                                                                        disabled={
    18912205                                                                                !! busy ||
    1892                                                                                 ! ( onImage.trim() || st.title?.trim() )
     2206                                                                                ! tplText ||
     2207                                                                                ( tpl === 'custom' &&
     2208                                                                                        ! /^#[0-9a-f]{6}$/i.test( tplOpts.color ) )
    18932209                                                                        }
    18942210                                                                        onClick={ () =>
    … …  
    18962212                                                                                        'featured',
    18972213                                                                                        async () => (
    1898                                                                                                 await templateFeatured(
    1899                                                                                                         onImage.trim() || st.title,
    1900                                                                                                         tpl
    1901                                                                                                 ),
     2214                                                                                                await templateFeatured( tplText, tpl, {
     2215                                                                                                        color: tplOpts.color,
     2216                                                                                                        layout: tplOpts.layout,
     2217                                                                                                        aspect: tplOpts.aspect,
     2218                                                                                                } ),
    19022219                                                                                                setRedo( false )
    19032220                                                                                        )
    … …  
    19092226                                                                <span className="ed-muted">
    19102227                                                                        { __(
    1911                                                                                 '위 "그림에 넣을 제목"을, 비워 두면 글 제목을 1200×630 그림 가운데에 넣어요.',
     2228                                                                                '위 "그림에 넣을 제목"을, 비워 두면 글 제목을 넣어요. AI·서버 없이 이 컴퓨터에서 바로 그려요.',
    19122229                                                                                'editnday'
    1913                                                                         ) }{ ' ' }
    1914                                                                         가운데에 넣어요.
     2230                                                                        ) }
    19152231                                                                </span>
    19162232                                                        </div>
  • editnday/trunk/src/style.scss

    r3742866 r3747744  
    764764        .ed-tpl__swatches {
    765765                display: flex;
     766                flex-wrap: wrap;
    766767                gap: 6px;
     768        }
     769        // 배경 틀 줄: 왼쪽 이름 + 오른쪽 고르기 (10-15)
     770        .ed-tpl__row {
     771                display: grid;
     772                grid-template-columns: 34px 1fr;
     773                column-gap: 8px;
     774                align-items: start;
     775        }
     776        .ed-tpl__label {
     777                font-size: 11px;
     778                font-weight: 600;
     779                color: #50575e;
     780                line-height: 26px;
     781        }
     782        .ed-tpl__sw--custom {
     783                background: #fff;
     784                border-style: dashed;
     785                color: #50575e;
     786                font-size: 16px;
     787                font-weight: 500;
     788        }
     789        .ed-tpl__color {
     790                display: inline-flex;
     791                align-items: center;
     792                gap: 6px;
     793                input[type="color"] {
     794                        width: 28px;
     795                        height: 26px;
     796                        padding: 2px;
     797                        border: 1px solid #c3c4c7;
     798                        border-radius: 4px;
     799                        background: #fff;
     800                        cursor: pointer;
     801                }
     802                input[type="text"] {
     803                        width: 88px;
     804                        height: 26px;
     805                        min-height: 26px;
     806                        padding: 0 8px;
     807                        font-size: 12px;
     808                        font-family: ui-monospace, Menlo, monospace;
     809                        text-transform: uppercase;
     810                        border: 1px solid #c3c4c7;
     811                        border-radius: 4px;
     812                }
     813        }
     814        .ed-tpl__preview {
     815                display: block;
     816                max-width: 100%;
     817                max-height: 220px;
     818                margin: 2px auto 0;
     819                border-radius: 6px;
     820                border: 1px solid rgba(0, 0, 0, 0.1);
    767821        }
    768822        .ed-tpl__sw {
Note: See TracChangeset for help on using the changeset viewer.