| @@ -1,2 +1,2 @@ | ||
| 1 | -(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.plugins,r=window.wp.data,n="betterdocs/ai-edit",o={isOpen:!1,selectionType:null,selectionText:"",selectionHtml:"",blockClientId:null,inlineContext:null,result:"",status:"idle",error:""},a=(0,r.createReduxStore)(n,{reducer:(e=o,t)=>{switch(t.type){case"OPEN_MODAL":return{...o,isOpen:!0,...t.payload};case"CLOSE_MODAL":return o;case"SET_STATUS":return{...e,status:t.status,error:t.error};case"SET_RESULT":return{...e,result:t.result,status:"done",error:""};case"RESET_RESULT":return{...e,result:"",status:"idle",error:""};default:return e}},actions:{openModal:e=>({type:"OPEN_MODAL",payload:e}),closeModal:()=>({type:"CLOSE_MODAL"}),setStatus:(e,t="")=>({type:"SET_STATUS",status:e,error:t}),setResult:e=>({type:"SET_RESULT",result:e}),resetResult:()=>({type:"RESET_RESULT"})},selectors:{getState:e=>e,isOpen:e=>e.isOpen}});(0,r.register)(a);const l=window.React,i=window.wp.i18n,s=window.wp.richText,c=window.wp.blockEditor,d="betterdocs/ai-edit",m=(0,l.createElement)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},(0,l.createElement)("path",{d:"M12 3l1.9 4.6L18.5 9.5 13.9 11.4 12 16l-1.9-4.6L5.5 9.5l4.6-1.9L12 3zm7 10l.95 2.3L22.25 16.25l-2.3.95L19 19.5l-.95-2.3L15.75 16.25l2.3-.95L19 13zM5 15l.7 1.7 1.7.7-1.7.7L5 19.8l-.7-1.7L2.6 17.4l1.7-.7L5 15z",fill:"currentColor"}));(0,s.registerFormatType)(d,{title:(0,i.__)("BetterDocs AI","betterdocs"),tagName:"span",className:"betterdocs-ai-edit-marker",edit:({value:e,isActive:t,onChange:o})=>(0,l.createElement)(c.RichTextToolbarButton,{icon:m,title:(0,i.__)("Edit with BetterDocs AI","betterdocs"),onClick:()=>{const t="number"==typeof e.start?e.start:0,o="number"==typeof e.end?e.end:t;if(o<=t)return;const a=(0,s.slice)(e,t,o),l=a.text||"",i=(0,s.toHTMLString)({value:a}),c=(0,r.select)("core/block-editor").getSelectedBlock();(0,r.dispatch)(n).openModal({selectionType:"inline",selectionText:l,selectionHtml:i,blockClientId:c?c.clientId:null,inlineContext:{start:t,end:o,formatName:d}})},isActive:t})});const p="betterdocs/highlight",u=(0,l.createElement)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},(0,l.createElement)("path",{d:"M5 18l3.5-3.5 6-6L18 12l-7 7H5v-1zm10.5-13.5l3 3-2 2-3-3 2-2z",fill:"currentColor"}));(0,s.registerFormatType)(p,{title:(0,i.__)("Highlight","betterdocs"),tagName:"span",className:"highlight",edit:({isActive:e,value:t,onChange:r})=>(0,l.createElement)(c.RichTextToolbarButton,{icon:u,title:(0,i.__)("Highlight","betterdocs"),onClick:()=>r((0,s.toggleFormat)(t,{type:p})),isActive:e})});const g=window.wp.compose,b=window.wp.hooks,h=window.wp.components,f=window.wp.blocks,y=window.wp.element,v=["core/paragraph","core/heading","core/list","core/list-item","core/quote","core/pullquote","core/preformatted","core/verse","core/code","core/details","core/group","core/columns","core/column"],E=(0,l.createElement)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},(0,l.createElement)("path",{d:"M12 3l1.9 4.6L18.5 9.5 13.9 11.4 12 16l-1.9-4.6L5.5 9.5l4.6-1.9L12 3zm7 10l.95 2.3L22.25 16.25l-2.3.95L19 19.5l-.95-2.3L15.75 16.25l2.3-.95L19 13zM5 15l.7 1.7 1.7.7-1.7.7L5 19.8l-.7-1.7L2.6 17.4l1.7-.7L5 15z",fill:"currentColor"})),w=(0,g.createHigherOrderComponent)((e=>t=>{const{name:o,isSelected:a,clientId:s}=t;return a&&(e=>-1!==v.indexOf(e))(o)?(0,l.createElement)(y.Fragment,null,(0,l.createElement)(e,{...t}),(0,l.createElement)(c.BlockControls,{group:"other"},(0,l.createElement)(h.ToolbarGroup,null,(0,l.createElement)(h.ToolbarButton,{icon:E,label:(0,i.__)("Edit with BetterDocs AI","betterdocs"),onClick:()=>{const e=(0,r.select)("core/block-editor").getBlock(s);if(!e)return;const t=(0,f.serialize)([e]),o=document.createElement("div");o.innerHTML=t;const a=(o.textContent||o.innerText||"").replace(/\r\n?/g,"\n").replace(/[ \t]+/g," ").replace(/[ \t]*\n[ \t]*/g,"\n").replace(/\n{2,}/g,"\n\n").trim();(0,r.dispatch)(n).openModal({selectionType:"block",selectionText:a,selectionHtml:t,blockClientId:s,inlineContext:null})}})))):(0,l.createElement)(e,{...t})}),"withAIBlockControl");(0,b.addFilter)("editor.BlockEdit","betterdocs/ai-edit-block-control",w);const x=window.wp.apiFetch;var _=e.n(x);const k=[{id:"improve",label:(0,i.__)("Improve Writing","betterdocs"),prompt:(0,i.__)("Improve the writing quality, clarity, grammar, and structure of the content below while preserving its original meaning and intent.","betterdocs")},{id:"shorten",label:(0,i.__)("Make Shorter","betterdocs"),prompt:(0,i.__)("Make the content below more concise. Preserve all essential information; remove redundancy and filler.","betterdocs")},{id:"expand",label:(0,i.__)("Make Longer","betterdocs"),prompt:(0,i.__)("Expand the content below with more detail, examples, and clear explanations. Keep the original voice.","betterdocs")},{id:"simplify",label:(0,i.__)("Simplify","betterdocs"),prompt:(0,i.__)("Rewrite the content below in simpler language so it is easy to understand for a non-technical reader.","betterdocs")},{id:"fix_grammar",label:(0,i.__)("Fix Grammar","betterdocs"),prompt:(0,i.__)("Fix only the grammar, spelling, and punctuation in the content below. Do not rewrite or change the meaning or style.","betterdocs")},{id:"change_tone",label:(0,i.__)("Change Tone","betterdocs"),needsOption:"tone",prompt:(0,i.__)("Rewrite the content below in a {option} tone while preserving its meaning.","betterdocs")},{id:"translate",label:(0,i.__)("Translate","betterdocs"),needsOption:"language",prompt:(0,i.__)("Translate the content below into {option}. Preserve meaning, tone, and any HTML structure.","betterdocs")},{id:"summarize",label:(0,i.__)("Summarize","betterdocs"),prompt:(0,i.__)("Summarize the content below into 2 to 3 clear sentences.","betterdocs")},{id:"create_table",label:(0,i.__)("Create Table","betterdocs"),structural:!0,prompt:(0,i.__)("Extract the statistics, figures, or comparable data from the content below and represent them as a single HTML table. Infer clear column headers. Include every distinct data point. If no tabular data can be reasonably inferred, return the best possible structured representation.","betterdocs")}],C=[{value:"Formal",label:(0,i.__)("Formal","betterdocs")},{value:"Casual",label:(0,i.__)("Casual","betterdocs")},{value:"Professional",label:(0,i.__)("Professional","betterdocs")},{value:"Friendly",label:(0,i.__)("Friendly","betterdocs")},{value:"Technical",label:(0,i.__)("Technical","betterdocs")},{value:"Confident",label:(0,i.__)("Confident","betterdocs")}],S=[{value:"English",label:"English"},{value:"Spanish",label:"Spanish"},{value:"French",label:"French"},{value:"German",label:"German"},{value:"Portuguese",label:"Portuguese"},{value:"Italian",label:"Italian"},{value:"Dutch",label:"Dutch"},{value:"Arabic",label:"Arabic"},{value:"Bengali",label:"Bengali"},{value:"Hindi",label:"Hindi"},{value:"Japanese",label:"Japanese"},{value:"Chinese (Simplified)",label:"Chinese (Simplified)"},{value:"Korean",label:"Korean"},{value:"Russian",label:"Russian"},{value:"Turkish",label:"Turkish"}],T=e=>{const t=document.createElement("div");return t.innerHTML=e,t.textContent||t.innerText||""},L=({d:e,size:t=16,fill:r="none",stroke:n="currentColor",sw:o=1.7,children:a,...i})=>(0,l.createElement)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:r,stroke:n,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round",...i},e&&(0,l.createElement)("path",{d:e}),a),z=e=>(0,l.createElement)(L,{...e,d:"m6 9 6 6 6-6"}),M=e=>(0,l.createElement)(L,{...e,d:"M12 5v14M5 12h14"}),I=e=>(0,l.createElement)(L,{...e,d:"M5 12l5 5L20 7"}),R=e=>(0,l.createElement)(L,{...e,d:"M5 12h14M13 5l7 7-7 7"}),B=e=>(0,l.createElement)(L,{...e,d:"M21 12a9 9 0 1 1-3.51-7.13M21 4v5h-5"}),O=e=>(0,l.createElement)(L,{...e},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"10"}),(0,l.createElement)("path",{d:"M12 8v5M12 16.5h.01"})),A=e=>(0,l.createElement)(L,{...e,d:"M4 6h16M4 10h10M4 14h16M4 18h7"}),H=({size:e=16})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round"},(0,l.createElement)("path",{d:"M12 20h9"}),(0,l.createElement)("path",{d:"M16.5 3.5a2.121 2.121 0 1 1 3 3L7 19l-4 1 1-4 12.5-12.5z"})),W=({size:e=14})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"},(0,l.createElement)("path",{d:"M12 2l1.9 5.1L19 9l-5.1 1.9L12 16l-1.9-5.1L5 9l5.1-1.9z"}),(0,l.createElement)("path",{d:"M19 14l.9 2.4L22 17l-2.1.6L19 20l-.9-2.4L16 17l2.1-.6z"})),F=({children:e,icon:t,onClick:r,disabled:n,style:o})=>(0,l.createElement)("button",{type:"button",onClick:n?void 0:r,disabled:n,style:{display:"inline-flex",alignItems:"center",gap:8,background:n?"#cbd5e1":"var(--green)",color:"white",padding:"11px 20px",borderRadius:8,border:"none",fontSize:14,fontWeight:600,whiteSpace:"nowrap",cursor:n?"not-allowed":"pointer",boxShadow:n?"none":"0 1px 0 rgba(0,0,0,.04), inset 0 -1px 0 rgba(0,0,0,.06)",transition:"background .15s, transform .05s",...o},onMouseEnter:e=>{n||(e.currentTarget.style.background="var(--green-600)")},onMouseLeave:e=>{n||(e.currentTarget.style.background="var(--green)")}},t,e),D=({children:e,icon:t,onClick:r,style:n,disabled:o})=>(0,l.createElement)("button",{type:"button",onClick:o?void 0:r,disabled:o,style:{display:"inline-flex",alignItems:"center",gap:8,background:"white",color:o?"var(--muted-2)":"var(--ink-2)",padding:"10px 16px",borderRadius:8,border:"1px solid var(--border)",fontSize:14,fontWeight:600,whiteSpace:"nowrap",cursor:o?"not-allowed":"pointer",opacity:o?.7:1,transition:"background .15s, border-color .15s",...n},onMouseEnter:e=>{o||(e.currentTarget.style.background="#f8fafc",e.currentTarget.style.borderColor="#d8dde3")},onMouseLeave:e=>{o||(e.currentTarget.style.background="white",e.currentTarget.style.borderColor="var(--border)")}},t,e),P=({children:e,onClick:t,tone:r="muted",style:n})=>{const o="danger"===r?"#dc2626":"var(--muted)";return(0,l.createElement)("button",{type:"button",onClick:t,style:{display:"inline-flex",alignItems:"center",gap:6,background:"transparent",color:o,padding:"10px 12px",border:"none",borderRadius:8,fontSize:13.5,fontWeight:600,cursor:"pointer",transition:"background .12s, color .12s",...n},onMouseEnter:e=>{e.currentTarget.style.background="danger"===r?"#fef2f2":"#f4f6f8",e.currentTarget.style.color="danger"===r?"#dc2626":"var(--ink-2)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color=o}},e)},j=({children:e="AI generated",style:t})=>(0,l.createElement)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,background:"var(--text-color-50, #f9fafb)",color:"var(--text-color-600, #667085)",padding:"5px 11px 5px 9px",borderRadius:999,fontSize:11.5,fontWeight:700,letterSpacing:.1,whiteSpace:"nowrap",flexShrink:0,border:"1px solid var(--text-color-200, #eaecf0)",...t}},(0,l.createElement)("span",{style:{color:"var(--ai)",display:"flex"}},(0,l.createElement)(W,{size:13})),e),N=({tone:e="error",children:t,style:r})=>{const n="error"===e?{bg:"var(--wp-red-50)",bar:"var(--wp-red)",fg:"#8a1f20",icon:"var(--wp-red)"}:{bg:"#fef6e0",bar:"#d9a406",fg:"#8a6400",icon:"#d9a406"};return(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,background:n.bg,color:n.fg,borderRadius:8,padding:"12px 14px",fontSize:13,fontWeight:500,lineHeight:1.5,...r}},(0,l.createElement)("span",{style:{color:n.icon,flexShrink:0,display:"flex"}},(0,l.createElement)(O,{size:17,sw:2})),(0,l.createElement)("span",{style:{flex:1}},t))},q=({size:e=18,color:t="var(--ai)",sw:r=2.4})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",style:{animation:"bd-ai-spin .8s linear infinite",flexShrink:0}},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeOpacity:".18",strokeWidth:r,style:{color:t}}),(0,l.createElement)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:t,strokeWidth:r,strokeLinecap:"round"})),G=({color:e="var(--ai)"})=>(0,l.createElement)("span",{style:{display:"inline-flex",gap:3,marginLeft:1}},[0,1,2].map((t=>(0,l.createElement)("span",{key:t,style:{width:4,height:4,borderRadius:"50%",background:e,animation:"bd-ai-dotPulse 1.1s ease-in-out infinite",animationDelay:.16*t+"s"}})))),U=({value:e,onChange:t,placeholder:r,rows:n=4,disabled:o})=>{const[a,i]=(0,y.useState)(!1);return(0,l.createElement)("textarea",{rows:n,value:e,placeholder:r,disabled:o,onChange:e=>t(e.target.value),onFocus:()=>i(!0),onBlur:()=>i(!1),style:{width:"100%",resize:"vertical",border:"1px solid "+(a?"var(--green)":"var(--border)"),background:a?"white":"#fcfcfd",boxShadow:a?"0 0 0 3px rgba(0,184,132,.14)":"none",borderRadius:10,padding:"12px 14px",fontSize:14,color:"var(--ink-2)",outline:"none",fontFamily:"inherit",lineHeight:1.55,transition:"border-color .15s, box-shadow .15s, background .15s"}})},K=({value:e,onChange:t,options:r,style:n,disabled:o})=>(0,l.createElement)("div",{style:{position:"relative",...n}},(0,l.createElement)("select",{className:"bd-ai-select",value:e,disabled:o,onChange:e=>t(e.target.value)},r.map((e=>(0,l.createElement)("option",{key:e.value,value:e.value},e.label)))),(0,l.createElement)("span",{style:{position:"absolute",right:12,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",color:"var(--muted)",display:"flex"}},(0,l.createElement)(z,{size:16}))),Y=({open:e,onClose:t,width:r=600,children:n,labelledBy:o})=>((0,y.useEffect)((()=>{if(!e)return;const r=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)}),[e,t]),e?(0,y.createPortal)((0,l.createElement)("div",{className:"bd-ai-scope",style:{position:"fixed",inset:0,zIndex:100050},role:"dialog","aria-modal":"true","aria-labelledby":o},(0,l.createElement)("div",{onClick:t,style:{position:"absolute",inset:0,background:"rgba(15,23,42,.4)",animation:"bd-ai-fadeIn .15s ease"}}),(0,l.createElement)("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:r,maxWidth:"calc(100vw - 48px)",maxHeight:"calc(100vh - 48px)",background:"white",borderRadius:16,boxShadow:"var(--shadow-lg)",display:"flex",flexDirection:"column",overflow:"hidden",animation:"bd-ai-modalIn .2s cubic-bezier(.2,.7,.3,1)"}},n,(0,l.createElement)("button",{type:"button",onClick:t,title:"Close","aria-label":"Close",style:{position:"absolute",top:16,right:22,zIndex:2,width:32,height:32,borderRadius:9,border:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",color:"var(--muted)",background:"#f2f4f7",cursor:"pointer",boxShadow:"none",transition:"all .2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.background="#eaecf0",e.currentTarget.style.color="var(--ink)"},onMouseLeave:e=>{e.currentTarget.style.background="#f2f4f7",e.currentTarget.style.color="var(--muted)"}},(0,l.createElement)("svg",{width:"15",height:"14",viewBox:"0 0 15 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,l.createElement)("path",{d:"M1.69687 14L0.296875 12.6L5.89687 7L0.296875 1.4L1.69687 0L7.29688 5.6L12.8969 0L14.2969 1.4L8.69688 7L14.2969 12.6L12.8969 14L7.29688 8.4L1.69687 14Z",fill:"currentColor"}))))),document.body):null),V={rate_limit:(0,i.__)("Rate limited","betterdocs"),timeout:(0,i.__)("Request timed out","betterdocs"),empty:(0,i.__)("Empty result","betterdocs"),missing_key:(0,i.__)("API key required","betterdocs")},$=({rows:e=[92,100,78,0,64,100,88,70]})=>(0,l.createElement)("div",{style:{marginTop:4}},e.map(((e,t)=>0===e?(0,l.createElement)("div",{key:t,style:{height:12}}):(0,l.createElement)("div",{key:t,style:{height:12,width:`${e}%`,margin:"11px 0",borderRadius:6,background:"linear-gradient(90deg,#EEF1F5 25%,#F6F8FA 37%,#EEF1F5 63%)",backgroundSize:"480px 100%",animation:"bd-ai-shimmer 1.3s linear infinite"}})))),J=({label:e=(0,i.__)("Generating","betterdocs")})=>{const t="var(--text-color-500, #98a2b3)";return(0,l.createElement)("div",{style:{padding:"6px 2px 2px"}},(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,color:t,fontWeight:700,fontSize:13.5,marginBottom:14}},(0,l.createElement)(q,{size:18,color:t})," ",(0,l.createElement)("span",null,e,(0,l.createElement)(G,{color:t}))),(0,l.createElement)($,null))},X=({html:e})=>(0,l.createElement)("div",{className:"bd-ai-doc-preview",style:{fontSize:14,lineHeight:1.7,color:"var(--ink-2)",animation:"bd-ai-blockIn .4s ease both"},dangerouslySetInnerHTML:{__html:e}}),Z=({mode:e="doc",html:t,original:r,suggestion:n,status:o="ready",loadingLabel:a=(0,i.__)("Generating","betterdocs"),error:s,onKeep:c,onRegenerate:d,onDiscard:m,actions:p,keepLabel:u=(0,i.__)("Keep","betterdocs"),maxHeight:g=360})=>{const b="ready"===o&&"doc"===e?(e=>{if(!e)return{words:0,sections:0};const t=document.createElement("div");t.innerHTML=e;const r=(t.textContent||"").trim();return{words:r?r.split(/\s+/).length:0,sections:t.querySelectorAll("h2").length}})(t):null;return(0,l.createElement)("div",null,"ready"===o&&(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,marginBottom:12}},(0,l.createElement)(j,null),"doc"===e&&b&&(0,l.createElement)("span",{style:{fontSize:12,color:"var(--muted)",fontWeight:600,whiteSpace:"nowrap"}},"≈ ",b.words," ",(0,i.__)("words","betterdocs")," · ",b.sections," ",(0,i.__)("sections","betterdocs")),"replace"===e&&(0,l.createElement)("span",{style:{fontSize:12,color:"var(--muted)",fontWeight:600,whiteSpace:"nowrap"}},(0,i.__)("Replaces your selection","betterdocs"))),(0,l.createElement)("div",{style:{border:"1px solid var(--border)",borderRadius:12,background:"error"===o?"white":"#fcfcfd",padding:"loading"===o?"18px 18px 22px":"18px 20px",maxHeight:g,overflowY:"auto"}},"loading"===o&&(0,l.createElement)(J,{label:a}),"error"===o&&(0,l.createElement)("div",{style:{padding:"4px 0"}},(0,l.createElement)(N,{tone:"error"},(0,l.createElement)("strong",{style:{fontWeight:700}},V[s?.code]||(0,i.__)("Something went wrong","betterdocs"),".")," ",s?.message)),"ready"===o&&"doc"===e&&(0,l.createElement)(X,{html:t}),"ready"===o&&"replace"===e&&(0,l.createElement)("div",{style:{display:"flex",flexDirection:"column",gap:14}},null!=r&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",null,(0,l.createElement)("div",{style:{fontSize:11,fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--muted-2)",marginBottom:6}},(0,i.__)("Current selection","betterdocs")),(0,l.createElement)("div",{style:{fontSize:13.5,color:"var(--muted)",lineHeight:1.6,textDecoration:"line-through",textDecorationColor:"rgba(107,114,128,.35)"}},r)),(0,l.createElement)("div",{style:{height:1,background:"var(--border-soft)"}})),(0,l.createElement)("div",null,(0,l.createElement)("div",{style:{fontSize:11,fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--text-color-700, #344054)",marginBottom:6}},(0,i.__)("Suggested replacement","betterdocs")),(0,l.createElement)("div",{className:"bd-ai-doc-preview",style:{fontSize:14.5,color:"var(--ink-2)",lineHeight:1.7,animation:"bd-ai-blockIn .4s ease both"},dangerouslySetInnerHTML:{__html:n}})))),p?(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:18}},p):(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:18}},(0,l.createElement)(P,{onClick:m,style:{marginRight:"auto"}},(0,i.__)("Discard","betterdocs")),d&&(0,l.createElement)(D,{icon:(0,l.createElement)(B,{size:15}),onClick:d,style:{opacity:"loading"===o?.5:1,pointerEvents:"loading"===o?"none":"auto"}},(0,i.__)("Regenerate","betterdocs")),(0,l.createElement)(F,{icon:(0,l.createElement)(I,{size:16,sw:2.4}),onClick:c,disabled:"ready"!==o},u)))},Q=(0,i.__)("Instructions","betterdocs"),ee=(0,i.__)("Optional — saved instructions that steer the AI","betterdocs"),te=e=>(0,l.createElement)(L,{sw:1.7,...e},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"9"}),(0,l.createElement)("path",{d:"M15.5 8.5l-2 5-5 2 2-5z"})),re={fontSize:13,fontWeight:700,textTransform:"capitalize",color:"var(--ink-2)"},ne={fontSize:12,fontWeight:500,color:"var(--muted)"},oe=(e,t)=>e.includes(t)?e.filter((e=>e!==t)):[...e,t],ae=({items:e,selected:t,onChange:r,disabled:n,leadingIcon:o})=>(0,l.createElement)("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},e.map((e=>{const a=t.includes(e.id);return(0,l.createElement)("button",{key:e.id,type:"button",disabled:n,onClick:()=>r(oe(t,e.id)),title:e.title,style:{display:"inline-flex",alignItems:"center",gap:7,maxWidth:240,padding:"8px 14px",borderRadius:8,cursor:n?"not-allowed":"pointer",fontSize:12.5,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:a?"var(--ai-50)":"white",color:a?"var(--ai)":"var(--ink-2)",border:"1px solid "+(a?"var(--ai-100)":"var(--border)"),opacity:n?.55:1,transition:"background .12s, border-color .12s, color .12s"}},o?(0,l.createElement)("span",{style:{display:"flex",flexShrink:0}},o):a&&(0,l.createElement)(I,{size:14,sw:2.6}),(0,l.createElement)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"}},e.title))}))),le=({items:e,selected:t,onChange:r,disabled:n})=>{const[o,a]=(0,y.useState)(!1),s=(0,y.useRef)(null);(0,y.useEffect)((()=>{if(!o)return;const e=e=>{s.current&&!s.current.contains(e.target)&&a(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[o]);const c=t.length,d=0===c?(0,i.__)("Select instructions…","betterdocs"):(0,i.sprintf)(/* translators: %d: number of selected instruction sets. */ /* translators: %d: number of selected instruction sets. */ | |
| 2 | -(0,i.__)("%d selected","betterdocs"),c);return(0,l.createElement)("div",{ref:s,style:{position:"relative"}},(0,l.createElement)("button",{type:"button",disabled:n,onClick:()=>a((e=>!e)),"aria-expanded":o,style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,border:"1px solid var(--border)",background:"#fcfcfd",borderRadius:9,padding:"9px 12px",fontSize:13,fontWeight:600,color:c?"var(--ink-2)":"var(--muted)",cursor:n?"not-allowed":"pointer",opacity:n?.55:1}},(0,l.createElement)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},d),(0,l.createElement)("span",{style:{display:"flex",color:"var(--muted)",transform:o?"rotate(180deg)":"none",transition:"transform .15s"}},(0,l.createElement)(z,{size:15}))),o&&(0,l.createElement)("div",{style:{position:"absolute",zIndex:10,top:"calc(100% + 6px)",left:0,right:0,maxHeight:240,overflowY:"auto",background:"white",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 24px rgba(15,23,42,.12)",padding:6}},e.map((e=>{const n=t.includes(e.id);return(0,l.createElement)("button",{key:e.id,type:"button",onClick:()=>r(oe(t,e.id)),style:{width:"100%",display:"flex",alignItems:"center",gap:10,padding:"8px 10px",borderRadius:7,border:"none",background:n?"var(--ai-50)":"transparent",cursor:"pointer",textAlign:"left",fontSize:13,fontWeight:600,color:"var(--ink-2)"}},(0,l.createElement)("span",{style:{width:18,height:18,flexShrink:0,borderRadius:5,display:"flex",alignItems:"center",justifyContent:"center",background:n?"var(--ai)":"white",border:"1px solid "+(n?"var(--ai)":"var(--border)"),color:"white"}},n&&(0,l.createElement)(I,{size:12,sw:3})),(0,l.createElement)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},e.title))}))))},ie=({instructions:e,selected:t=[],onChange:r,disabled:n=!1,label:o,hint:a,hideLabel:i=!1,leadingIcon:s,style:c})=>{const d=Array.isArray(e)?e.filter((e=>e&&e.id)):[];if(0===d.length)return null;const m=o||Q,p=void 0===a?ee:a,u=s||(0,l.createElement)(te,{size:14});return(0,l.createElement)("div",{style:c},!i&&(0,l.createElement)("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,marginBottom:8}},(0,l.createElement)("span",{style:re},m),p&&(0,l.createElement)("span",{style:ne},p)),d.length<=4?(0,l.createElement)(ae,{items:d,selected:t,onChange:r,disabled:n,leadingIcon:u}):(0,l.createElement)(le,{items:d,selected:t,onChange:r,disabled:n}))},se=()=>"undefined"!=typeof window&&window.betterdocsAIEdit||{},ce=e=>(0,l.createElement)(L,{sw:1.8,...e}),de={improve:e=>(0,l.createElement)(W,{size:e.size}),shorten:e=>(0,l.createElement)(ce,{...e},(0,l.createElement)("path",{d:"M20 4l-5 5m0 0V5m0 4h4"}),(0,l.createElement)("path",{d:"M4 20l5-5m0 0v4m0-4H5"})),expand:e=>(0,l.createElement)(ce,{...e},(0,l.createElement)("path",{d:"M15 9l5-5m0 0h-4m4 0v4"}),(0,l.createElement)("path",{d:"M9 15l-5 5m0 0h4m-4 0v-4"})),simplify:e=>(0,l.createElement)(ce,{...e},(0,l.createElement)("path",{d:"M3 21l9-9"}),(0,l.createElement)("path",{d:"M15 3l1.3 2.7L19 7l-2.7 1.3L15 11l-1.3-2.7L11 7z"})),change_tone:e=>(0,l.createElement)(ce,{...e},(0,l.createElement)("path",{d:"M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1"}),(0,l.createElement)("circle",{cx:"15",cy:"6",r:"2"}),(0,l.createElement)("circle",{cx:"9",cy:"12",r:"2"}),(0,l.createElement)("circle",{cx:"17",cy:"18",r:"2"})),translate:e=>(0,l.createElement)(ce,{...e},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"9"}),(0,l.createElement)("path",{d:"M3 12h18M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"})),summarize:e=>(0,l.createElement)(A,{size:e.size,sw:1.8}),create_table:e=>(0,l.createElement)(ce,{...e},(0,l.createElement)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,l.createElement)("path",{d:"M3 9h18M3 14h18M9 4v16M15 4v16"}))},me=(e,t=16)=>(de[e]||(e=>(0,l.createElement)(W,{size:e.size})))({size:t}),pe=({size:e=16})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",xmlns:"http://www.w3.org/2000/svg"},(0,l.createElement)("path",{d:"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"})),ue=({children:e,style:t})=>(0,l.createElement)("div",{style:{fontSize:13,fontWeight:700,textTransform:"capitalize",color:"var(--ink-2)",...t}},e),ge=({children:e})=>(0,l.createElement)("span",{style:{fontSize:12,fontWeight:500,color:"var(--muted)"}},e),be=({active:e,children:t})=>(0,l.createElement)("span",{style:{width:30,height:30,borderRadius:8,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",background:e?"var(--green)":"#f1f3f5",color:e?"#fff":"var(--ink-2)",transition:"background .12s, color .12s"}},t),he=({active:e,disabled:t,onClick:r,icon:n,children:o,style:a})=>(0,l.createElement)("button",{type:"button",onClick:t?void 0:r,disabled:t,style:{display:"flex",alignItems:"center",gap:10,textAlign:"left",padding:"11px 12px",borderRadius:12,width:"100%",cursor:t?"not-allowed":"pointer",background:e?"var(--text-color-50, #f9fafb)":"#fff",border:"1.5px solid "+(e?"var(--ai)":"var(--border)"),color:"var(--ink-2)",fontSize:13,fontWeight:600,opacity:t?.55:1,transition:"background .12s, border-color .12s, color .12s",...a}},(0,l.createElement)(be,{active:e},n),o);(0,t.registerPlugin)("betterdocs-ai-edit",{render:()=>{const e=(0,r.useSelect)((e=>e(n).getState()),[]),{closeModal:t,setStatus:o,setResult:a,resetResult:c}=(0,r.useDispatch)(n),[d,m]=(0,y.useState)("__custom"),[p,u]=(0,y.useState)(""),[g,b]=(0,y.useState)(C[0].value),[h,v]=(0,y.useState)(""),[E,w]=(0,y.useState)([]),x=(0,y.useMemo)((()=>{const e=se().instructions;return Array.isArray(e)?e:[]}),[]),L=(0,y.useMemo)((()=>{const e=se().actions;return Array.isArray(e)&&e.length?e:k}),[]),z=(0,y.useMemo)((()=>L.find((e=>e.id===d))),[L,d]),B=(0,y.useCallback)((e=>{m(e.id);let t="";"tone"===e.needsOption?t=C[0].value:"language"===e.needsOption&&(t=S[0].value),e.needsOption&&b(t),u(((e,t)=>e&&e.prompt?e.needsOption&&t?e.prompt.split("{option}").join(t):e.prompt:"")(e,t)),v(e.needsOption?t:"")}),[]),O=(0,y.useCallback)((()=>{m("__custom"),u(""),v("")}),[]),A=(0,y.useCallback)((e=>{b(e),h&&e!==h&&u((t=>t?t.split(h).join(e):t)),v(e)}),[h]),W=(0,y.useCallback)((async()=>{const t=se();if(!t.rest_url)return void o("error",(0,i.__)("AI Edit is not properly initialized.","betterdocs"));const r={post_id:t.post_id,action:"__custom"===d?"custom":d,selection:e.selectionHtml||e.selectionText||"",selection_type:e.selectionType||"block",instruction:p,option:"",instruction_ids:E};o("loading");try{const e=await _()({url:t.rest_url,method:"POST",headers:{"X-WP-Nonce":t.rest_nonce},data:r});e&&e.success&&e.data&&e.data.content?a(e.data.content):e&&e.message?o("error",e.message):o("error",(0,i.__)("Unexpected response from the server.","betterdocs"))}catch(e){const t=e&&e.message||(0,i.__)("Failed to reach the AI service. Please try again.","betterdocs");o("error",t)}}),[e,d,z,p,g,E,o,a]),j=(0,y.useCallback)((()=>{e.result&&("inline"===e.selectionType?((e,t,n)=>{if(!e||!t)return!1;const o=(0,r.select)("core/block-editor").getBlock(e);if(!o||!o.attributes)return!1;const a="core/heading"===o.name||"core/paragraph"===o.name||"core/list-item"===o.name?"content":null;if(!a||"string"!=typeof o.attributes[a])return!1;const l=(0,s.create)({html:o.attributes[a]}),i=(0,s.create)({text:T(n).replace(/\n+/g," ")}),{start:c,end:d}=t,m=Math.min(Math.max(0,c),l.text.length),p=Math.min(Math.max(m,d),l.text.length),u=(0,s.insert)(l,i,m,p),g=(0,s.toHTMLString)({value:u});(0,r.dispatch)("core/block-editor").updateBlockAttributes(e,{[a]:g})})(e.blockClientId,e.inlineContext,e.result):((e,t)=>{if(!e||!t)return!1;const n=(0,f.rawHandler)({HTML:t});!n||!n.length||(0,r.dispatch)("core/block-editor").replaceBlock(e,n)})(e.blockClientId,e.result),t())}),[e,t]),G=(0,y.useCallback)((()=>{e.result&&(((e,t)=>{if(!t)return!1;const n=(0,f.rawHandler)({HTML:t});if(!n||!n.length)return!1;const o=e&&(0,r.select)("core/block-editor").getBlockRootClientId(e)||"",a=e?(0,r.select)("core/block-editor").getBlockIndex(e,o)+1:(0,r.select)("core/block-editor").getBlockCount();(0,r.dispatch)("core/block-editor").insertBlocks(n,a,o)})(e.blockClientId,e.result),t())}),[e,t]),V=(0,y.useCallback)((()=>{c()}),[c]);if((0,y.useEffect)((()=>{e.isOpen&&w([])}),[e.isOpen]),(0,y.useEffect)((()=>{if(!e.isOpen||!e.blockClientId)return;const t="betterdocs-ai-edit-highlight",r="betterdocs-ai-edit-highlight-style",n=`\n .${t} {\n outline: 2px solid #00B884 !important;\n outline-offset: 2px;\n border-radius: 2px;\n box-shadow: 0 0 0 4px rgba(0, 184, 132, 0.15);\n transition: outline 0.15s ease-out, box-shadow 0.15s ease-out;\n }\n `,o=`[data-block="${e.blockClientId}"]`,a=[],l=new Set,i=e=>{try{e.querySelectorAll(o).forEach((e=>{e.classList.add(t),a.push(e),e.ownerDocument&&l.add(e.ownerDocument)}))}catch(e){}};return i(document),document.querySelectorAll('iframe[name="editor-canvas"]').forEach((e=>{try{e.contentDocument&&i(e.contentDocument)}catch(e){}})),l.forEach((e=>{if(!e.getElementById(r)&&e.head){const t=e.createElement("style");t.id=r,t.textContent=n,e.head.appendChild(t)}})),()=>{a.forEach((e=>e.classList.remove(t)))}}),[e.isOpen,e.blockClientId]),!e.isOpen)return null;const $=z&&"tone"===z.needsOption?C:z&&"language"===z.needsOption?S:null,J=z&&"tone"===z.needsOption?(0,i.__)("Tone","betterdocs"):z&&"language"===z.needsOption?(0,i.__)("Language","betterdocs"):"",X=!(z&&z.structural&&"inline"===e.selectionType),Q=e.selectionText||(0,i.__)("(No text)","betterdocs"),ee=Q.length>300?Q.slice(0,300)+"…":Q,te="loading"===e.status,re="done"===e.status&&e.result,ne="__custom"===d?(0,i.__)("Custom Prompt","betterdocs"):z?z.label:"";return(0,l.createElement)(Y,{open:e.isOpen,onClose:t,width:600,labelledBy:"bd-ai-edit-title"},(0,l.createElement)("div",{style:{padding:"22px 26px 0"}},(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:13}},(0,l.createElement)("span",{style:{width:46,height:46,borderRadius:13,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--green)",boxShadow:"0 2px 6px rgba(0,184,132,.35)"}},(0,l.createElement)(H,{size:22})),(0,l.createElement)("div",{style:{paddingRight:30}},(0,l.createElement)("div",{id:"bd-ai-edit-title",style:{fontSize:18,fontWeight:800,color:"var(--ink)",letterSpacing:-.3}},(0,i.__)("Edit with BetterDocs AI","betterdocs")),(0,l.createElement)("div",{style:{fontSize:13,color:"var(--muted)",marginTop:2}},(0,i.__)("Refine your selected content","betterdocs"))))),(0,l.createElement)("div",{style:{padding:"18px 26px 24px",overflowY:"auto"}},!re&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)(ue,{style:{marginBottom:8}},(0,i.__)("Selected content","betterdocs")),(0,l.createElement)("div",{style:{display:"flex",gap:11,alignItems:"flex-start",background:"var(--text-color-50, #f9fafb)",border:"1px solid var(--text-color-200, #eaecf0)",borderRadius:10,padding:"13px 15px",marginBottom:20}},(0,l.createElement)("span",{style:{flexShrink:0,marginTop:1,color:"var(--muted-2)",display:"flex"}},(0,l.createElement)(pe,{size:16})),(0,l.createElement)("div",{style:{flex:1,minWidth:0,fontSize:13,lineHeight:1.6,color:"var(--ink-2)",maxHeight:120,overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"}},ee)),(0,l.createElement)("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,marginBottom:10}},(0,l.createElement)(ue,null,(0,i.__)("Choose an action","betterdocs")),ne&&(0,l.createElement)(ge,null,(0,i.sprintf)(/* translators: %s: selected action name. */ /* translators: %s: selected action name. */(0,i.__)("Selected: %s","betterdocs"),ne))),(0,l.createElement)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:10}},L.map((e=>(0,l.createElement)(he,{key:e.id,active:d===e.id,disabled:te,onClick:()=>B(e),icon:me(e.id)},e.label)))),(0,l.createElement)(he,{active:"__custom"===d,disabled:te,onClick:O,icon:(0,l.createElement)(M,{size:16,sw:2}),style:{marginTop:10}},(0,l.createElement)("span",{style:{flex:1}},(0,i.__)("Custom Prompt","betterdocs")),(0,l.createElement)("span",{style:{fontSize:12,fontWeight:500,color:"var(--muted)"}},(0,i.__)("Tell AI exactly what you want","betterdocs"))),$&&(0,l.createElement)("div",{style:{marginTop:18}},(0,l.createElement)(ue,{style:{marginBottom:8}},J),(0,l.createElement)(K,{value:g,onChange:A,disabled:te,options:$,style:{width:"100%"}})),(0,l.createElement)(ue,{style:{marginTop:20,marginBottom:8}},(0,i.__)("Prompt","betterdocs")),(0,l.createElement)(U,{value:p,onChange:u,rows:5,disabled:te,placeholder:(0,i.__)("Describe exactly what you want the AI to do.","betterdocs")}),(0,l.createElement)("div",{style:{fontSize:12.5,color:"var(--muted)",marginTop:8,lineHeight:1.5}},"__custom"===d?(0,i.__)("Describe exactly what you want the AI to do.","betterdocs"):(0,i.__)("Review and edit the prompt before generating.","betterdocs")),x.length>0&&(0,l.createElement)(ie,{instructions:x,selected:E,onChange:w,disabled:te,style:{marginTop:20}}),"error"===e.status&&e.error&&(0,l.createElement)(N,{tone:"error",style:{marginTop:18}},e.error),(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,marginTop:22,paddingTop:18,borderTop:"1px solid var(--border-soft)"}},(0,l.createElement)(P,{onClick:t},(0,i.__)("Close","betterdocs")),(0,l.createElement)(F,{icon:te?(0,l.createElement)(q,{size:15,color:"#fff"}):(0,l.createElement)(H,{size:16}),onClick:W,disabled:te||!p.trim()},te?(0,i.__)("Generating…","betterdocs"):(0,i.__)("Generate","betterdocs")))),re&&(0,l.createElement)(Z,{mode:"replace",status:"ready",suggestion:e.result,actions:(0,l.createElement)(l.Fragment,null,(0,l.createElement)(P,{onClick:V,style:{marginRight:"auto"}},(0,i.__)("Discard & Retry","betterdocs")),(0,l.createElement)(D,{icon:(0,l.createElement)(R,{size:15}),onClick:G},(0,i.__)("Insert After","betterdocs")),X&&(0,l.createElement)(F,{icon:(0,l.createElement)(I,{size:16,sw:2.4}),onClick:j},(0,i.__)("Replace Selection","betterdocs")))})))}})})(); | |
| 1 | +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.plugins,r=window.wp.data,n="betterdocs/ai-edit",a={isOpen:!1,selectionType:null,selectionText:"",selectionHtml:"",blockClientId:null,inlineContext:null,result:"",status:"idle",error:""},o=(0,r.createReduxStore)(n,{reducer:(e=a,t)=>{switch(t.type){case"OPEN_MODAL":return{...a,isOpen:!0,...t.payload};case"CLOSE_MODAL":return a;case"SET_STATUS":return{...e,status:t.status,error:t.error};case"SET_RESULT":return{...e,result:t.result,status:"done",error:""};case"RESET_RESULT":return{...e,result:"",status:"idle",error:""};default:return e}},actions:{openModal:e=>({type:"OPEN_MODAL",payload:e}),closeModal:()=>({type:"CLOSE_MODAL"}),setStatus:(e,t="")=>({type:"SET_STATUS",status:e,error:t}),setResult:e=>({type:"SET_RESULT",result:e}),resetResult:()=>({type:"RESET_RESULT"})},selectors:{getState:e=>e,isOpen:e=>e.isOpen}});(0,r.register)(o);const l=window.React,i=window.wp.i18n,s=window.wp.richText,c=window.wp.blockEditor,d="betterdocs/ai-edit",m=(0,l.createElement)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},(0,l.createElement)("path",{d:"M12 3l1.9 4.6L18.5 9.5 13.9 11.4 12 16l-1.9-4.6L5.5 9.5l4.6-1.9L12 3zm7 10l.95 2.3L22.25 16.25l-2.3.95L19 19.5l-.95-2.3L15.75 16.25l2.3-.95L19 13zM5 15l.7 1.7 1.7.7-1.7.7L5 19.8l-.7-1.7L2.6 17.4l1.7-.7L5 15z",fill:"currentColor"}));(0,s.registerFormatType)(d,{title:(0,i.__)("BetterDocs AI","betterdocs"),tagName:"span",className:"betterdocs-ai-edit-marker",edit:({value:e,isActive:t,onChange:a})=>(0,l.createElement)(c.RichTextToolbarButton,{icon:m,title:(0,i.__)("Edit with BetterDocs AI","betterdocs"),onClick:()=>{const t="number"==typeof e.start?e.start:0,a="number"==typeof e.end?e.end:t;if(a<=t)return;const o=(0,s.slice)(e,t,a),l=o.text||"",i=(0,s.toHTMLString)({value:o}),c=(0,r.select)("core/block-editor").getSelectedBlock();(0,r.dispatch)(n).openModal({selectionType:"inline",selectionText:l,selectionHtml:i,blockClientId:c?c.clientId:null,inlineContext:{start:t,end:a,formatName:d}})},isActive:t})});const p="betterdocs/highlight",u=(0,l.createElement)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},(0,l.createElement)("path",{d:"M5 18l3.5-3.5 6-6L18 12l-7 7H5v-1zm10.5-13.5l3 3-2 2-3-3 2-2z",fill:"currentColor"}));(0,s.registerFormatType)(p,{title:(0,i.__)("Highlight","betterdocs"),tagName:"span",className:"highlight",edit:({isActive:e,value:t,onChange:r})=>(0,l.createElement)(c.RichTextToolbarButton,{icon:u,title:(0,i.__)("Highlight","betterdocs"),onClick:()=>r((0,s.toggleFormat)(t,{type:p})),isActive:e})});const g=window.wp.compose,b=window.wp.hooks,h=window.wp.components,f=window.wp.blocks,y=window.wp.element,v=["core/paragraph","core/heading","core/list","core/list-item","core/quote","core/pullquote","core/preformatted","core/verse","core/code","core/details","core/group","core/columns","core/column"],E=(0,l.createElement)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},(0,l.createElement)("path",{d:"M12 3l1.9 4.6L18.5 9.5 13.9 11.4 12 16l-1.9-4.6L5.5 9.5l4.6-1.9L12 3zm7 10l.95 2.3L22.25 16.25l-2.3.95L19 19.5l-.95-2.3L15.75 16.25l2.3-.95L19 13zM5 15l.7 1.7 1.7.7-1.7.7L5 19.8l-.7-1.7L2.6 17.4l1.7-.7L5 15z",fill:"currentColor"})),w=(0,g.createHigherOrderComponent)((e=>t=>{const{name:a,isSelected:o,clientId:s}=t;return o&&(e=>-1!==v.indexOf(e))(a)?(0,l.createElement)(y.Fragment,null,(0,l.createElement)(e,{...t}),(0,l.createElement)(c.BlockControls,{group:"other"},(0,l.createElement)(h.ToolbarGroup,null,(0,l.createElement)(h.ToolbarButton,{icon:E,label:(0,i.__)("Edit with BetterDocs AI","betterdocs"),onClick:()=>{const e=(0,r.select)("core/block-editor").getBlock(s);if(!e)return;const t=(0,f.serialize)([e]),a=document.createElement("div");a.innerHTML=t;const o=(a.textContent||a.innerText||"").replace(/\r\n?/g,"\n").replace(/[ \t]+/g," ").replace(/[ \t]*\n[ \t]*/g,"\n").replace(/\n{2,}/g,"\n\n").trim();(0,r.dispatch)(n).openModal({selectionType:"block",selectionText:o,selectionHtml:t,blockClientId:s,inlineContext:null})}})))):(0,l.createElement)(e,{...t})}),"withAIBlockControl");(0,b.addFilter)("editor.BlockEdit","betterdocs/ai-edit-block-control",w);const x=window.wp.htmlEntities,_=(e,t)=>{const r=t||(0,i.__)("Something went wrong. Please try again.","betterdocs");if(!e)return r;if("string"==typeof e)return e;const n=e.code||e.data&&e.data.code||"",a=null!=(e.data&&e.data.status)?e.data.status:e.status,o=e.data&&e.data.message||e.message||e.responseJSON&&e.responseJSON.message||"",l="string"==typeof o?o:"";return 401===a||403===a||"invalid_api_key"===n||"incorrect_api_key"===n||"missing_key"===n||/incorrect api key|invalid api key|unauthor|api key/i.test(l)?(0,i.__)("Incorrect or missing API key. Check your key in Settings → AI Content Suite.","betterdocs"):l?(0,x.decodeEntities)(l):r},k=window.wp.apiFetch;var S=e.n(k);const C=[{id:"improve",label:(0,i.__)("Improve Writing","betterdocs"),prompt:(0,i.__)("Improve the writing quality, clarity, grammar, and structure of the content below while preserving its original meaning and intent.","betterdocs")},{id:"shorten",label:(0,i.__)("Make Shorter","betterdocs"),prompt:(0,i.__)("Make the content below more concise. Preserve all essential information; remove redundancy and filler.","betterdocs")},{id:"expand",label:(0,i.__)("Make Longer","betterdocs"),prompt:(0,i.__)("Expand the content below with more detail, examples, and clear explanations. Keep the original voice.","betterdocs")},{id:"simplify",label:(0,i.__)("Simplify","betterdocs"),prompt:(0,i.__)("Rewrite the content below in simpler language so it is easy to understand for a non-technical reader.","betterdocs")},{id:"fix_grammar",label:(0,i.__)("Fix Grammar","betterdocs"),prompt:(0,i.__)("Fix only the grammar, spelling, and punctuation in the content below. Do not rewrite or change the meaning or style.","betterdocs")},{id:"change_tone",label:(0,i.__)("Change Tone","betterdocs"),needsOption:"tone",prompt:(0,i.__)("Rewrite the content below in a {option} tone while preserving its meaning.","betterdocs")},{id:"translate",label:(0,i.__)("Translate","betterdocs"),needsOption:"language",prompt:(0,i.__)("Translate the content below into {option}. Preserve meaning, tone, and any HTML structure.","betterdocs")},{id:"summarize",label:(0,i.__)("Summarize","betterdocs"),prompt:(0,i.__)("Summarize the content below into 2 to 3 clear sentences.","betterdocs")},{id:"create_table",label:(0,i.__)("Create Table","betterdocs"),structural:!0,prompt:(0,i.__)("Extract the statistics, figures, or comparable data from the content below and represent them as a single HTML table. Infer clear column headers. Include every distinct data point. If no tabular data can be reasonably inferred, return the best possible structured representation.","betterdocs")}],T=[{value:"Formal",label:(0,i.__)("Formal","betterdocs")},{value:"Casual",label:(0,i.__)("Casual","betterdocs")},{value:"Professional",label:(0,i.__)("Professional","betterdocs")},{value:"Friendly",label:(0,i.__)("Friendly","betterdocs")},{value:"Technical",label:(0,i.__)("Technical","betterdocs")},{value:"Confident",label:(0,i.__)("Confident","betterdocs")}],L=[{value:"English",label:"English"},{value:"Spanish",label:"Spanish"},{value:"French",label:"French"},{value:"German",label:"German"},{value:"Portuguese",label:"Portuguese"},{value:"Italian",label:"Italian"},{value:"Dutch",label:"Dutch"},{value:"Arabic",label:"Arabic"},{value:"Bengali",label:"Bengali"},{value:"Hindi",label:"Hindi"},{value:"Japanese",label:"Japanese"},{value:"Chinese (Simplified)",label:"Chinese (Simplified)"},{value:"Korean",label:"Korean"},{value:"Russian",label:"Russian"},{value:"Turkish",label:"Turkish"}],z=e=>{const t=document.createElement("div");return t.innerHTML=e,t.textContent||t.innerText||""},M=({d:e,size:t=16,fill:r="none",stroke:n="currentColor",sw:a=1.7,children:o,...i})=>(0,l.createElement)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:r,stroke:n,strokeWidth:a,strokeLinecap:"round",strokeLinejoin:"round",...i},e&&(0,l.createElement)("path",{d:e}),o),I=e=>(0,l.createElement)(M,{...e,d:"m6 9 6 6 6-6"}),R=e=>(0,l.createElement)(M,{...e,d:"M12 5v14M5 12h14"}),B=e=>(0,l.createElement)(M,{...e,d:"M5 12l5 5L20 7"}),O=e=>(0,l.createElement)(M,{...e,d:"M5 12h14M13 5l7 7-7 7"}),A=e=>(0,l.createElement)(M,{...e,d:"M21 12a9 9 0 1 1-3.51-7.13M21 4v5h-5"}),H=e=>(0,l.createElement)(M,{...e},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"10"}),(0,l.createElement)("path",{d:"M12 8v5M12 16.5h.01"})),W=e=>(0,l.createElement)(M,{...e,d:"M4 6h16M4 10h10M4 14h16M4 18h7"}),F=({size:e=16})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round"},(0,l.createElement)("path",{d:"M12 20h9"}),(0,l.createElement)("path",{d:"M16.5 3.5a2.121 2.121 0 1 1 3 3L7 19l-4 1 1-4 12.5-12.5z"})),D=({size:e=14})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"},(0,l.createElement)("path",{d:"M12 2l1.9 5.1L19 9l-5.1 1.9L12 16l-1.9-5.1L5 9l5.1-1.9z"}),(0,l.createElement)("path",{d:"M19 14l.9 2.4L22 17l-2.1.6L19 20l-.9-2.4L16 17l2.1-.6z"})),P=({children:e,icon:t,onClick:r,disabled:n,style:a})=>(0,l.createElement)("button",{type:"button",onClick:n?void 0:r,disabled:n,style:{display:"inline-flex",alignItems:"center",gap:8,background:n?"#cbd5e1":"var(--green)",color:"white",padding:"11px 20px",borderRadius:8,border:"none",fontSize:14,fontWeight:600,whiteSpace:"nowrap",cursor:n?"not-allowed":"pointer",boxShadow:n?"none":"0 1px 0 rgba(0,0,0,.04), inset 0 -1px 0 rgba(0,0,0,.06)",transition:"background .15s, transform .05s",...a},onMouseEnter:e=>{n||(e.currentTarget.style.background="var(--green-600)")},onMouseLeave:e=>{n||(e.currentTarget.style.background="var(--green)")}},t,e),j=({children:e,icon:t,onClick:r,style:n,disabled:a})=>(0,l.createElement)("button",{type:"button",onClick:a?void 0:r,disabled:a,style:{display:"inline-flex",alignItems:"center",gap:8,background:"white",color:a?"var(--muted-2)":"var(--ink-2)",padding:"10px 16px",borderRadius:8,border:"1px solid var(--border)",fontSize:14,fontWeight:600,whiteSpace:"nowrap",cursor:a?"not-allowed":"pointer",opacity:a?.7:1,transition:"background .15s, border-color .15s",...n},onMouseEnter:e=>{a||(e.currentTarget.style.background="#f8fafc",e.currentTarget.style.borderColor="#d8dde3")},onMouseLeave:e=>{a||(e.currentTarget.style.background="white",e.currentTarget.style.borderColor="var(--border)")}},t,e),N=({children:e,onClick:t,tone:r="muted",style:n})=>{const a="danger"===r?"#dc2626":"var(--muted)";return(0,l.createElement)("button",{type:"button",onClick:t,style:{display:"inline-flex",alignItems:"center",gap:6,background:"transparent",color:a,padding:"10px 12px",border:"none",borderRadius:8,fontSize:13.5,fontWeight:600,cursor:"pointer",transition:"background .12s, color .12s",...n},onMouseEnter:e=>{e.currentTarget.style.background="danger"===r?"#fef2f2":"#f4f6f8",e.currentTarget.style.color="danger"===r?"#dc2626":"var(--ink-2)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color=a}},e)},q=({children:e="AI generated",style:t})=>(0,l.createElement)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,background:"var(--text-color-50, #f9fafb)",color:"var(--text-color-600, #667085)",padding:"5px 11px 5px 9px",borderRadius:999,fontSize:11.5,fontWeight:700,letterSpacing:.1,whiteSpace:"nowrap",flexShrink:0,border:"1px solid var(--text-color-200, #eaecf0)",...t}},(0,l.createElement)("span",{style:{color:"var(--ai)",display:"flex"}},(0,l.createElement)(D,{size:13})),e),G=({tone:e="error",children:t,style:r})=>{const n="error"===e?{bg:"var(--wp-red-50)",bar:"var(--wp-red)",fg:"#8a1f20",icon:"var(--wp-red)"}:{bg:"#fef6e0",bar:"#d9a406",fg:"#8a6400",icon:"#d9a406"};return(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,background:n.bg,color:n.fg,borderRadius:8,padding:"12px 14px",fontSize:13,fontWeight:500,lineHeight:1.5,...r}},(0,l.createElement)("span",{style:{color:n.icon,flexShrink:0,display:"flex"}},(0,l.createElement)(H,{size:17,sw:2})),(0,l.createElement)("span",{style:{flex:1}},t))},U=({size:e=18,color:t="var(--ai)",sw:r=2.4})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",style:{animation:"bd-ai-spin .8s linear infinite",flexShrink:0}},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeOpacity:".18",strokeWidth:r,style:{color:t}}),(0,l.createElement)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:t,strokeWidth:r,strokeLinecap:"round"})),K=({color:e="var(--ai)"})=>(0,l.createElement)("span",{style:{display:"inline-flex",gap:3,marginLeft:1}},[0,1,2].map((t=>(0,l.createElement)("span",{key:t,style:{width:4,height:4,borderRadius:"50%",background:e,animation:"bd-ai-dotPulse 1.1s ease-in-out infinite",animationDelay:.16*t+"s"}})))),J=({value:e,onChange:t,placeholder:r,rows:n=4,disabled:a})=>{const[o,i]=(0,y.useState)(!1);return(0,l.createElement)("textarea",{rows:n,value:e,placeholder:r,disabled:a,onChange:e=>t(e.target.value),onFocus:()=>i(!0),onBlur:()=>i(!1),style:{width:"100%",resize:"vertical",border:"1px solid "+(o?"var(--green)":"var(--border)"),background:o?"white":"#fcfcfd",boxShadow:o?"0 0 0 3px rgba(0,184,132,.14)":"none",borderRadius:10,padding:"12px 14px",fontSize:14,color:"var(--ink-2)",outline:"none",fontFamily:"inherit",lineHeight:1.55,transition:"border-color .15s, box-shadow .15s, background .15s"}})},Y=({value:e,onChange:t,options:r,style:n,disabled:a})=>(0,l.createElement)("div",{style:{position:"relative",...n}},(0,l.createElement)("select",{className:"bd-ai-select",value:e,disabled:a,onChange:e=>t(e.target.value)},r.map((e=>(0,l.createElement)("option",{key:e.value,value:e.value},e.label)))),(0,l.createElement)("span",{style:{position:"absolute",right:12,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",color:"var(--muted)",display:"flex"}},(0,l.createElement)(I,{size:16}))),V=({open:e,onClose:t,width:r=600,children:n,labelledBy:a})=>((0,y.useEffect)((()=>{if(!e)return;const r=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)}),[e,t]),e?(0,y.createPortal)((0,l.createElement)("div",{className:"bd-ai-scope",style:{position:"fixed",inset:0,zIndex:100050},role:"dialog","aria-modal":"true","aria-labelledby":a},(0,l.createElement)("div",{onClick:t,style:{position:"absolute",inset:0,background:"rgba(15,23,42,.4)",animation:"bd-ai-fadeIn .15s ease"}}),(0,l.createElement)("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:r,maxWidth:"calc(100vw - 48px)",maxHeight:"calc(100vh - 48px)",background:"white",borderRadius:16,boxShadow:"var(--shadow-lg)",display:"flex",flexDirection:"column",overflow:"hidden",animation:"bd-ai-modalIn .2s cubic-bezier(.2,.7,.3,1)"}},n,(0,l.createElement)("button",{type:"button",onClick:t,title:"Close","aria-label":"Close",style:{position:"absolute",top:16,right:22,zIndex:2,width:32,height:32,borderRadius:9,border:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",color:"var(--muted)",background:"#f2f4f7",cursor:"pointer",boxShadow:"none",transition:"all .2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.background="#eaecf0",e.currentTarget.style.color="var(--ink)"},onMouseLeave:e=>{e.currentTarget.style.background="#f2f4f7",e.currentTarget.style.color="var(--muted)"}},(0,l.createElement)("svg",{width:"15",height:"14",viewBox:"0 0 15 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,l.createElement)("path",{d:"M1.69687 14L0.296875 12.6L5.89687 7L0.296875 1.4L1.69687 0L7.29688 5.6L12.8969 0L14.2969 1.4L8.69688 7L14.2969 12.6L12.8969 14L7.29688 8.4L1.69687 14Z",fill:"currentColor"}))))),document.body):null),$={rate_limit:(0,i.__)("Rate limited","betterdocs"),timeout:(0,i.__)("Request timed out","betterdocs"),empty:(0,i.__)("Empty result","betterdocs"),missing_key:(0,i.__)("API key required","betterdocs")},X=({rows:e=[92,100,78,0,64,100,88,70]})=>(0,l.createElement)("div",{style:{marginTop:4}},e.map(((e,t)=>0===e?(0,l.createElement)("div",{key:t,style:{height:12}}):(0,l.createElement)("div",{key:t,style:{height:12,width:`${e}%`,margin:"11px 0",borderRadius:6,background:"linear-gradient(90deg,#EEF1F5 25%,#F6F8FA 37%,#EEF1F5 63%)",backgroundSize:"480px 100%",animation:"bd-ai-shimmer 1.3s linear infinite"}})))),Z=({label:e=(0,i.__)("Generating","betterdocs")})=>{const t="var(--text-color-500, #98a2b3)";return(0,l.createElement)("div",{style:{padding:"6px 2px 2px"}},(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,color:t,fontWeight:700,fontSize:13.5,marginBottom:14}},(0,l.createElement)(U,{size:18,color:t})," ",(0,l.createElement)("span",null,e,(0,l.createElement)(K,{color:t}))),(0,l.createElement)(X,null))},Q=({html:e})=>(0,l.createElement)("div",{className:"bd-ai-doc-preview",style:{fontSize:14,lineHeight:1.7,color:"var(--ink-2)",animation:"bd-ai-blockIn .4s ease both"},dangerouslySetInnerHTML:{__html:e}}),ee=({mode:e="doc",html:t,original:r,suggestion:n,status:a="ready",loadingLabel:o=(0,i.__)("Generating","betterdocs"),error:s,onKeep:c,onRegenerate:d,onDiscard:m,actions:p,keepLabel:u=(0,i.__)("Keep","betterdocs"),maxHeight:g=360})=>{const b="ready"===a&&"doc"===e?(e=>{if(!e)return{words:0,sections:0};const t=document.createElement("div");t.innerHTML=e;const r=(t.textContent||"").trim();return{words:r?r.split(/\s+/).length:0,sections:t.querySelectorAll("h2").length}})(t):null;return(0,l.createElement)("div",null,"ready"===a&&(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,marginBottom:12}},(0,l.createElement)(q,null),"doc"===e&&b&&(0,l.createElement)("span",{style:{fontSize:12,color:"var(--muted)",fontWeight:600,whiteSpace:"nowrap"}},"≈ ",b.words," ",(0,i.__)("words","betterdocs")," · ",b.sections," ",(0,i.__)("sections","betterdocs")),"replace"===e&&(0,l.createElement)("span",{style:{fontSize:12,color:"var(--muted)",fontWeight:600,whiteSpace:"nowrap"}},(0,i.__)("Replaces your selection","betterdocs"))),(0,l.createElement)("div",{style:{border:"1px solid var(--border)",borderRadius:12,background:"error"===a?"white":"#fcfcfd",padding:"loading"===a?"18px 18px 22px":"18px 20px",maxHeight:g,overflowY:"auto"}},"loading"===a&&(0,l.createElement)(Z,{label:o}),"error"===a&&(0,l.createElement)("div",{style:{padding:"4px 0"}},(0,l.createElement)(G,{tone:"error"},(0,l.createElement)("strong",{style:{fontWeight:700}},$[s?.code]||(0,i.__)("Something went wrong","betterdocs"),".")," ",s?.message)),"ready"===a&&"doc"===e&&(0,l.createElement)(Q,{html:t}),"ready"===a&&"replace"===e&&(0,l.createElement)("div",{style:{display:"flex",flexDirection:"column",gap:14}},null!=r&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",null,(0,l.createElement)("div",{style:{fontSize:11,fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--muted-2)",marginBottom:6}},(0,i.__)("Current selection","betterdocs")),(0,l.createElement)("div",{style:{fontSize:13.5,color:"var(--muted)",lineHeight:1.6,textDecoration:"line-through",textDecorationColor:"rgba(107,114,128,.35)"}},r)),(0,l.createElement)("div",{style:{height:1,background:"var(--border-soft)"}})),(0,l.createElement)("div",null,(0,l.createElement)("div",{style:{fontSize:11,fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--text-color-700, #344054)",marginBottom:6}},(0,i.__)("Suggested replacement","betterdocs")),(0,l.createElement)("div",{className:"bd-ai-doc-preview",style:{fontSize:14.5,color:"var(--ink-2)",lineHeight:1.7,animation:"bd-ai-blockIn .4s ease both"},dangerouslySetInnerHTML:{__html:n}})))),p?(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:18}},p):(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:18}},(0,l.createElement)(N,{onClick:m,style:{marginRight:"auto"}},(0,i.__)("Discard","betterdocs")),d&&(0,l.createElement)(j,{icon:(0,l.createElement)(A,{size:15}),onClick:d,style:{opacity:"loading"===a?.5:1,pointerEvents:"loading"===a?"none":"auto"}},(0,i.__)("Regenerate","betterdocs")),(0,l.createElement)(P,{icon:(0,l.createElement)(B,{size:16,sw:2.4}),onClick:c,disabled:"ready"!==a},u)))},te=(0,i.__)("Instructions","betterdocs"),re=(0,i.__)("Optional — saved instructions that steer the AI","betterdocs"),ne=e=>(0,l.createElement)(M,{sw:1.7,...e},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"9"}),(0,l.createElement)("path",{d:"M15.5 8.5l-2 5-5 2 2-5z"})),ae={fontSize:13,fontWeight:700,textTransform:"capitalize",color:"var(--ink-2)"},oe={fontSize:12,fontWeight:500,color:"var(--muted)"},le=(e,t)=>e.includes(t)?e.filter((e=>e!==t)):[...e,t],ie=({items:e,selected:t,onChange:r,disabled:n,leadingIcon:a})=>(0,l.createElement)("div",{style:{display:"flex",flexWrap:"wrap",gap:8}},e.map((e=>{const o=t.includes(e.id);return(0,l.createElement)("button",{key:e.id,type:"button",disabled:n,onClick:()=>r(le(t,e.id)),title:e.title,style:{display:"inline-flex",alignItems:"center",gap:7,maxWidth:240,padding:"8px 14px",borderRadius:8,cursor:n?"not-allowed":"pointer",fontSize:12.5,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:o?"var(--ai-50)":"white",color:o?"var(--ai)":"var(--ink-2)",border:"1px solid "+(o?"var(--ai-100)":"var(--border)"),opacity:n?.55:1,transition:"background .12s, border-color .12s, color .12s"}},a?(0,l.createElement)("span",{style:{display:"flex",flexShrink:0}},a):o&&(0,l.createElement)(B,{size:14,sw:2.6}),(0,l.createElement)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"}},e.title))}))),se=({items:e,selected:t,onChange:r,disabled:n})=>{const[a,o]=(0,y.useState)(!1),s=(0,y.useRef)(null);(0,y.useEffect)((()=>{if(!a)return;const e=e=>{s.current&&!s.current.contains(e.target)&&o(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[a]);const c=t.length,d=0===c?(0,i.__)("Select instructions…","betterdocs"):(0,i.sprintf)(/* translators: %d: number of selected instruction sets. */ /* translators: %d: number of selected instruction sets. */ | |
| 2 | +(0,i.__)("%d selected","betterdocs"),c);return(0,l.createElement)("div",{ref:s,style:{position:"relative"}},(0,l.createElement)("button",{type:"button",disabled:n,onClick:()=>o((e=>!e)),"aria-expanded":a,style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,border:"1px solid var(--border)",background:"#fcfcfd",borderRadius:9,padding:"9px 12px",fontSize:13,fontWeight:600,color:c?"var(--ink-2)":"var(--muted)",cursor:n?"not-allowed":"pointer",opacity:n?.55:1}},(0,l.createElement)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},d),(0,l.createElement)("span",{style:{display:"flex",color:"var(--muted)",transform:a?"rotate(180deg)":"none",transition:"transform .15s"}},(0,l.createElement)(I,{size:15}))),a&&(0,l.createElement)("div",{style:{position:"absolute",zIndex:10,top:"calc(100% + 6px)",left:0,right:0,maxHeight:240,overflowY:"auto",background:"white",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 24px rgba(15,23,42,.12)",padding:6}},e.map((e=>{const n=t.includes(e.id);return(0,l.createElement)("button",{key:e.id,type:"button",onClick:()=>r(le(t,e.id)),style:{width:"100%",display:"flex",alignItems:"center",gap:10,padding:"8px 10px",borderRadius:7,border:"none",background:n?"var(--ai-50)":"transparent",cursor:"pointer",textAlign:"left",fontSize:13,fontWeight:600,color:"var(--ink-2)"}},(0,l.createElement)("span",{style:{width:18,height:18,flexShrink:0,borderRadius:5,display:"flex",alignItems:"center",justifyContent:"center",background:n?"var(--ai)":"white",border:"1px solid "+(n?"var(--ai)":"var(--border)"),color:"white"}},n&&(0,l.createElement)(B,{size:12,sw:3})),(0,l.createElement)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},e.title))}))))},ce=({instructions:e,selected:t=[],onChange:r,disabled:n=!1,label:a,hint:o,hideLabel:i=!1,leadingIcon:s,style:c})=>{const d=Array.isArray(e)?e.filter((e=>e&&e.id)):[];if(0===d.length)return null;const m=a||te,p=void 0===o?re:o,u=s||(0,l.createElement)(ne,{size:14});return(0,l.createElement)("div",{style:c},!i&&(0,l.createElement)("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,marginBottom:8}},(0,l.createElement)("span",{style:ae},m),p&&(0,l.createElement)("span",{style:oe},p)),d.length<=4?(0,l.createElement)(ie,{items:d,selected:t,onChange:r,disabled:n,leadingIcon:u}):(0,l.createElement)(se,{items:d,selected:t,onChange:r,disabled:n}))},de=()=>"undefined"!=typeof window&&window.betterdocsAIEdit||{},me=e=>(0,l.createElement)(M,{sw:1.8,...e}),pe={improve:e=>(0,l.createElement)(D,{size:e.size}),shorten:e=>(0,l.createElement)(me,{...e},(0,l.createElement)("path",{d:"M20 4l-5 5m0 0V5m0 4h4"}),(0,l.createElement)("path",{d:"M4 20l5-5m0 0v4m0-4H5"})),expand:e=>(0,l.createElement)(me,{...e},(0,l.createElement)("path",{d:"M15 9l5-5m0 0h-4m4 0v4"}),(0,l.createElement)("path",{d:"M9 15l-5 5m0 0h4m-4 0v-4"})),simplify:e=>(0,l.createElement)(me,{...e},(0,l.createElement)("path",{d:"M3 21l9-9"}),(0,l.createElement)("path",{d:"M15 3l1.3 2.7L19 7l-2.7 1.3L15 11l-1.3-2.7L11 7z"})),change_tone:e=>(0,l.createElement)(me,{...e},(0,l.createElement)("path",{d:"M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1"}),(0,l.createElement)("circle",{cx:"15",cy:"6",r:"2"}),(0,l.createElement)("circle",{cx:"9",cy:"12",r:"2"}),(0,l.createElement)("circle",{cx:"17",cy:"18",r:"2"})),translate:e=>(0,l.createElement)(me,{...e},(0,l.createElement)("circle",{cx:"12",cy:"12",r:"9"}),(0,l.createElement)("path",{d:"M3 12h18M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"})),summarize:e=>(0,l.createElement)(W,{size:e.size,sw:1.8}),create_table:e=>(0,l.createElement)(me,{...e},(0,l.createElement)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,l.createElement)("path",{d:"M3 9h18M3 14h18M9 4v16M15 4v16"}))},ue=(e,t=16)=>(pe[e]||(e=>(0,l.createElement)(D,{size:e.size})))({size:t}),ge=({size:e=16})=>(0,l.createElement)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",xmlns:"http://www.w3.org/2000/svg"},(0,l.createElement)("path",{d:"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"})),be=({children:e,style:t})=>(0,l.createElement)("div",{style:{fontSize:13,fontWeight:700,textTransform:"capitalize",color:"var(--ink-2)",...t}},e),he=({children:e})=>(0,l.createElement)("span",{style:{fontSize:12,fontWeight:500,color:"var(--muted)"}},e),fe=({active:e,children:t})=>(0,l.createElement)("span",{style:{width:30,height:30,borderRadius:8,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",background:e?"var(--green)":"#f1f3f5",color:e?"#fff":"var(--ink-2)",transition:"background .12s, color .12s"}},t),ye=({active:e,disabled:t,onClick:r,icon:n,children:a,style:o})=>(0,l.createElement)("button",{type:"button",onClick:t?void 0:r,disabled:t,style:{display:"flex",alignItems:"center",gap:10,textAlign:"left",padding:"11px 12px",borderRadius:12,width:"100%",cursor:t?"not-allowed":"pointer",background:e?"var(--text-color-50, #f9fafb)":"#fff",border:"1.5px solid "+(e?"var(--ai)":"var(--border)"),color:"var(--ink-2)",fontSize:13,fontWeight:600,opacity:t?.55:1,transition:"background .12s, border-color .12s, color .12s",...o}},(0,l.createElement)(fe,{active:e},n),a);(0,t.registerPlugin)("betterdocs-ai-edit",{render:()=>{const e=(0,r.useSelect)((e=>e(n).getState()),[]),{closeModal:t,setStatus:a,setResult:o,resetResult:c}=(0,r.useDispatch)(n),[d,m]=(0,y.useState)("__custom"),[p,u]=(0,y.useState)(""),[g,b]=(0,y.useState)(T[0].value),[h,v]=(0,y.useState)(""),[E,w]=(0,y.useState)([]),x=(0,y.useMemo)((()=>{const e=de().instructions;return Array.isArray(e)?e:[]}),[]),k=(0,y.useMemo)((()=>{const e=de().actions;return Array.isArray(e)&&e.length?e:C}),[]),M=(0,y.useMemo)((()=>k.find((e=>e.id===d))),[k,d]),I=(0,y.useCallback)((e=>{m(e.id);let t="";"tone"===e.needsOption?t=T[0].value:"language"===e.needsOption&&(t=L[0].value),e.needsOption&&b(t),u(((e,t)=>e&&e.prompt?e.needsOption&&t?e.prompt.split("{option}").join(t):e.prompt:"")(e,t)),v(e.needsOption?t:"")}),[]),A=(0,y.useCallback)((()=>{m("__custom"),u(""),v("")}),[]),H=(0,y.useCallback)((e=>{b(e),h&&e!==h&&u((t=>t?t.split(h).join(e):t)),v(e)}),[h]),W=(0,y.useCallback)((async()=>{const t=de();if(!t.rest_url)return void a("error",(0,i.__)("AI Edit is not properly initialized.","betterdocs"));const r={post_id:t.post_id,action:"__custom"===d?"custom":d,selection:e.selectionHtml||e.selectionText||"",selection_type:e.selectionType||"block",instruction:p,option:"",instruction_ids:E};a("loading");try{const e=await S()({url:t.rest_url,method:"POST",headers:{"X-WP-Nonce":t.rest_nonce},data:r});e&&e.success&&e.data&&e.data.content?o(e.data.content):e&&e.message?a("error",_(e)):a("error",(0,i.__)("Unexpected response from the server.","betterdocs"))}catch(e){const t=_(e,(0,i.__)("Failed to reach the AI service. Please try again.","betterdocs"));a("error",t)}}),[e,d,M,p,g,E,a,o]),D=(0,y.useCallback)((()=>{e.result&&("inline"===e.selectionType?((e,t,n)=>{if(!e||!t)return!1;const a=(0,r.select)("core/block-editor").getBlock(e);if(!a||!a.attributes)return!1;const o="core/heading"===a.name||"core/paragraph"===a.name||"core/list-item"===a.name?"content":null;if(!o||"string"!=typeof a.attributes[o])return!1;const l=(0,s.create)({html:a.attributes[o]}),i=(0,s.create)({text:z(n).replace(/\n+/g," ")}),{start:c,end:d}=t,m=Math.min(Math.max(0,c),l.text.length),p=Math.min(Math.max(m,d),l.text.length),u=(0,s.insert)(l,i,m,p),g=(0,s.toHTMLString)({value:u});(0,r.dispatch)("core/block-editor").updateBlockAttributes(e,{[o]:g})})(e.blockClientId,e.inlineContext,e.result):((e,t)=>{if(!e||!t)return!1;const n=(0,f.rawHandler)({HTML:t});!n||!n.length||(0,r.dispatch)("core/block-editor").replaceBlock(e,n)})(e.blockClientId,e.result),t())}),[e,t]),q=(0,y.useCallback)((()=>{e.result&&(((e,t)=>{if(!t)return!1;const n=(0,f.rawHandler)({HTML:t});if(!n||!n.length)return!1;const a=e&&(0,r.select)("core/block-editor").getBlockRootClientId(e)||"",o=e?(0,r.select)("core/block-editor").getBlockIndex(e,a)+1:(0,r.select)("core/block-editor").getBlockCount();(0,r.dispatch)("core/block-editor").insertBlocks(n,o,a)})(e.blockClientId,e.result),t())}),[e,t]),K=(0,y.useCallback)((()=>{c()}),[c]);if((0,y.useEffect)((()=>{e.isOpen&&w([])}),[e.isOpen]),(0,y.useEffect)((()=>{if(!e.isOpen||!e.blockClientId)return;const t="betterdocs-ai-edit-highlight",r="betterdocs-ai-edit-highlight-style",n=`\n .${t} {\n outline: 2px solid #00B884 !important;\n outline-offset: 2px;\n border-radius: 2px;\n box-shadow: 0 0 0 4px rgba(0, 184, 132, 0.15);\n transition: outline 0.15s ease-out, box-shadow 0.15s ease-out;\n }\n `,a=`[data-block="${e.blockClientId}"]`,o=[],l=new Set,i=e=>{try{e.querySelectorAll(a).forEach((e=>{e.classList.add(t),o.push(e),e.ownerDocument&&l.add(e.ownerDocument)}))}catch(e){}};return i(document),document.querySelectorAll('iframe[name="editor-canvas"]').forEach((e=>{try{e.contentDocument&&i(e.contentDocument)}catch(e){}})),l.forEach((e=>{if(!e.getElementById(r)&&e.head){const t=e.createElement("style");t.id=r,t.textContent=n,e.head.appendChild(t)}})),()=>{o.forEach((e=>e.classList.remove(t)))}}),[e.isOpen,e.blockClientId]),!e.isOpen)return null;const $=M&&"tone"===M.needsOption?T:M&&"language"===M.needsOption?L:null,X=M&&"tone"===M.needsOption?(0,i.__)("Tone","betterdocs"):M&&"language"===M.needsOption?(0,i.__)("Language","betterdocs"):"",Z=!(M&&M.structural&&"inline"===e.selectionType),Q=e.selectionText||(0,i.__)("(No text)","betterdocs"),te=Q.length>300?Q.slice(0,300)+"…":Q,re="loading"===e.status,ne="done"===e.status&&e.result,ae="__custom"===d?(0,i.__)("Custom Prompt","betterdocs"):M?M.label:"";return(0,l.createElement)(V,{open:e.isOpen,onClose:t,width:600,labelledBy:"bd-ai-edit-title"},(0,l.createElement)("div",{style:{padding:"22px 26px 0"}},(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",gap:13}},(0,l.createElement)("span",{style:{width:46,height:46,borderRadius:13,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--green)",boxShadow:"0 2px 6px rgba(0,184,132,.35)"}},(0,l.createElement)(F,{size:22})),(0,l.createElement)("div",{style:{paddingRight:30}},(0,l.createElement)("div",{id:"bd-ai-edit-title",style:{fontSize:18,fontWeight:800,color:"var(--ink)",letterSpacing:-.3}},(0,i.__)("Edit with BetterDocs AI","betterdocs")),(0,l.createElement)("div",{style:{fontSize:13,color:"var(--muted)",marginTop:2}},(0,i.__)("Refine your selected content","betterdocs"))))),(0,l.createElement)("div",{style:{padding:"18px 26px 24px",overflowY:"auto"}},!ne&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)(be,{style:{marginBottom:8}},(0,i.__)("Selected content","betterdocs")),(0,l.createElement)("div",{style:{display:"flex",gap:11,alignItems:"flex-start",background:"var(--text-color-50, #f9fafb)",border:"1px solid var(--text-color-200, #eaecf0)",borderRadius:10,padding:"13px 15px",marginBottom:20}},(0,l.createElement)("span",{style:{flexShrink:0,marginTop:1,color:"var(--muted-2)",display:"flex"}},(0,l.createElement)(ge,{size:16})),(0,l.createElement)("div",{style:{flex:1,minWidth:0,fontSize:13,lineHeight:1.6,color:"var(--ink-2)",maxHeight:120,overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"}},te)),(0,l.createElement)("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,marginBottom:10}},(0,l.createElement)(be,null,(0,i.__)("Choose an action","betterdocs")),ae&&(0,l.createElement)(he,null,(0,i.sprintf)(/* translators: %s: selected action name. */ /* translators: %s: selected action name. */(0,i.__)("Selected: %s","betterdocs"),ae))),(0,l.createElement)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:10}},k.map((e=>(0,l.createElement)(ye,{key:e.id,active:d===e.id,disabled:re,onClick:()=>I(e),icon:ue(e.id)},e.label)))),(0,l.createElement)(ye,{active:"__custom"===d,disabled:re,onClick:A,icon:(0,l.createElement)(R,{size:16,sw:2}),style:{marginTop:10}},(0,l.createElement)("span",{style:{flex:1}},(0,i.__)("Custom Prompt","betterdocs")),(0,l.createElement)("span",{style:{fontSize:12,fontWeight:500,color:"var(--muted)"}},(0,i.__)("Tell AI exactly what you want","betterdocs"))),$&&(0,l.createElement)("div",{style:{marginTop:18}},(0,l.createElement)(be,{style:{marginBottom:8}},X),(0,l.createElement)(Y,{value:g,onChange:H,disabled:re,options:$,style:{width:"100%"}})),(0,l.createElement)(be,{style:{marginTop:20,marginBottom:8}},(0,i.__)("Prompt","betterdocs")),(0,l.createElement)(J,{value:p,onChange:u,rows:5,disabled:re,placeholder:(0,i.__)("Describe exactly what you want the AI to do.","betterdocs")}),(0,l.createElement)("div",{style:{fontSize:12.5,color:"var(--muted)",marginTop:8,lineHeight:1.5}},"__custom"===d?(0,i.__)("Describe exactly what you want the AI to do.","betterdocs"):(0,i.__)("Review and edit the prompt before generating.","betterdocs")),x.length>0&&(0,l.createElement)(ce,{instructions:x,selected:E,onChange:w,disabled:re,style:{marginTop:20}}),"error"===e.status&&e.error&&(0,l.createElement)(G,{tone:"error",style:{marginTop:18}},e.error),(0,l.createElement)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,marginTop:22,paddingTop:18,borderTop:"1px solid var(--border-soft)"}},(0,l.createElement)(N,{onClick:t},(0,i.__)("Close","betterdocs")),(0,l.createElement)(P,{icon:re?(0,l.createElement)(U,{size:15,color:"#fff"}):(0,l.createElement)(F,{size:16}),onClick:W,disabled:re||!p.trim()},re?(0,i.__)("Generating…","betterdocs"):(0,i.__)("Generate","betterdocs")))),ne&&(0,l.createElement)(ee,{mode:"replace",status:"ready",suggestion:e.result,actions:(0,l.createElement)(l.Fragment,null,(0,l.createElement)(N,{onClick:K,style:{marginRight:"auto"}},(0,i.__)("Discard & Retry","betterdocs")),(0,l.createElement)(j,{icon:(0,l.createElement)(O,{size:15}),onClick:q},(0,i.__)("Insert After","betterdocs")),Z&&(0,l.createElement)(P,{icon:(0,l.createElement)(B,{size:16,sw:2.4}),onClick:D},(0,i.__)("Replace Selection","betterdocs")))})))}})})(); | |