wysimark-lite 0.25.9 → 0.25.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +5 -5
- package/dist/index.mjs +259 -475
- package/dist/index.mjs.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/package.json +2 -3
package/dist/index.js
CHANGED
|
@@ -968,7 +968,7 @@
|
|
|
968
968
|
`;import{jsx as Wl,jsxs as fh}from"react/jsx-runtime";function Gl({attributes:e,children:t,element:o}){return fh(Kl,{...e,contentEditable:!1,children:[Wl(_l,{children:"HTML"}),Wl("div",{children:ot(o.html)}),t]})}import{jsx as gh}from"react/jsx-runtime";var ql=k((e,t,{createPolicy:o})=>{function r(){let{selection:n}=e;if(!me(n))return!1;let i=E(e,"html-block");return i==null?!1:(hh.removeNodes(e,{at:i[1]}),!0)}return o({name:"html-block",editor:{deleteBackward:r,deleteForward:r,isInline(n){if(n.type==="html-block")return!1},isVoid(n){if(n.type==="html-block")return!0},isMaster(n){if(n.type==="html-block")return!0}},editableProps:{renderElement:({element:n,attributes:i,children:a})=>{if(n.type==="html-block")return gh(Gl,{element:n,attributes:i,children:a})}}})});import{Editor as ts}from"slate";import{Element as kh}from"slate";import{Element as bh,Transforms as Eh}from"slate";function Ql(e){return bh.isElement(e)&&e.type==="paragraph"}function Xl(e,t){return be(e,t,(o,r)=>!Ql(o[0])||!Ql(r[0])?!1:o[0].__collapsible&&r[0].__collapsible?(Eh.removeNodes(e,{at:o[1]}),!0):!1)}import{Element as xh,Transforms as yh}from"slate";function tr(e,t){return xh.isElement(t)?e.isVoid(t)||e.isMaster(t):!1}function jl(e,t){return tr(e,t[0])?be(e,t,(o,r)=>!tr(e,o[0])||!tr(e,r[0])?!1:(yh.insertNodes(e,{type:"paragraph",__collapsible:!0,children:[{text:""}]},{at:r[1]}),!0)):!1}function Yl(e,t){let[o,r]=t;return kh.isElement(o)?!!(jl(e,[o,r])||Xl(e,[o,r])):!1}import{clsx as wh}from"clsx";import{useSelected as Ih}from"slate-react";import vh from"@emotion/styled";var Jl=vh("p")`
|
|
969
969
|
padding: 0;
|
|
970
970
|
margin: 0;
|
|
971
|
-
&:first-
|
|
971
|
+
&:first-of-type {
|
|
972
972
|
margin-top: 0;
|
|
973
973
|
}
|
|
974
974
|
|
|
@@ -997,7 +997,7 @@
|
|
|
997
997
|
}
|
|
998
998
|
`;import{Node as Th}from"slate";function Zl(e){return e.children.length===1&&Th.string(e.children[0]).length===0}import{jsx as Mh}from"react/jsx-runtime";function es({element:e,attributes:t,children:o}){let r=Ih(),n=Zl(e);return Mh(Jl,{...t,className:wh({"--selected":r,"--empty":n,"--collapsible":!!e.__collapsible}),children:o})}import{jsx as Ph}from"react/jsx-runtime";var os=k(e=>{let{insertBreak:t}=e;if(e.insertBreak=()=>{let{selection:o}=e;if(o&&o.anchor.path[0]===o.focus.path[0]){let r=[o.anchor.path[0]],n=ts.start(e,r);ts.string(e,{anchor:n,focus:o.anchor}).endsWith(`
|
|
999
999
|
`)?t():e.insertText(`
|
|
1000
|
-
`)}else t()},e.convertElement.addConvertElementType("paragraph"),e.collapsibleParagraph={convertParagraph:()=>{e.convertElement.convertElements(()=>!1,{type:"paragraph"},!1)}},!e.normalizeAfterDelete)throw new Error("The collapsible-paragraph-plugin has a dependency on the normalize-after-delete plugin. Please add that plugin before this one.");return{name:"collapsible-paragraph",editor:{normalizeNode:f(Yl,e)},editableProps:{renderElement:({element:o,attributes:r,children:n})=>{
|
|
1000
|
+
`)}else t()},e.convertElement.addConvertElementType("paragraph"),e.collapsibleParagraph={convertParagraph:()=>{e.convertElement.convertElements(()=>!1,{type:"paragraph"},!1)}},!e.normalizeAfterDelete)throw new Error("The collapsible-paragraph-plugin has a dependency on the normalize-after-delete plugin. Please add that plugin before this one.");return{name:"collapsible-paragraph",editor:{normalizeNode:f(Yl,e)},editableProps:{renderElement:({element:o,attributes:r,children:n})=>{if(o.type==="paragraph")return Ph(es,{element:o,attributes:r,children:n})},onKeyDown:N({"super+0":e.collapsibleParagraph.convertParagraph})}}});function rs(e,t){Array.isArray(t)?e.convertElement.convertElementTypes.push(...t):e.convertElement.convertElementTypes.push(t)}import{Editor as _,Element as to,Node as ne,Point as _e,Range as Ch,Transforms as Ce}from"slate";function ns(e,t,o){try{let r=_.start(e,o),n=_.end(e,o);if(_e.isBefore(t,r)||_e.isAfter(t,n))return-1;let i={anchor:r,focus:t};return _.string(e,i).length}catch{return-1}}function is(e,t,o){try{let r=ne.get(e,t);if(!to.isElement(r))return;let n=ne.string(r),i=Math.min(o,n.length),a=_.start(e,t),l=0,s=a.path,m=0;for(let[d,p]of ne.texts(r)){let u=d.text.length;if(l+u>=i){s=[...t,...p],m=i-l;break}l+=u}let c={path:s,offset:m};Ce.select(e,{anchor:c,focus:c})}catch{}}function Sh(e){return ne.string(e).includes(`
|
|
1001
1001
|
`)}function Rh(e,t,o,r){let n=ne.string(t),i=n.split(`
|
|
1002
1002
|
`),a=_.start(e,o),l=_.end(e,o),s=_e.isBefore(r.anchor,a)?a:_e.isAfter(r.anchor,l)?l:r.anchor,m=_e.isBefore(r.focus,a)?a:_e.isAfter(r.focus,l)?l:r.focus,c=Math.min(_.string(e,{anchor:a,focus:s}).length,n.length),d=Math.min(_.string(e,{anchor:a,focus:m}).length,n.length),p=Math.min(c,d),u=Math.max(c,d),h=0,v=0,S=i.length-1;for(let P=0;P<i.length;P++){let M=h+i[P].length;if(h<=p&&p<=M&&(v=P),h<=u&&u<=M){S=P;break}h=M+1}return{startLineIndex:v,endLineIndex:S}}function Lh(e,t,o,r){let n=ne.string(t);if(!n.includes(`
|
|
1003
1003
|
`))return o;let i=n.split(`
|
|
@@ -1007,7 +1007,7 @@
|
|
|
1007
1007
|
`)}]};Ce.insertNodes(e,v,{at:[...d,p+1]})}else Ce.insertNodes(e,{text:m.join(`
|
|
1008
1008
|
`)},{at:[...o,0]})}),s.length>0?[...o.slice(0,-1),o[o.length-1]+1]:o)}function as(e,t,o,r){let{selection:n}=e;if(!n)return!1;let i=-1,a=-1,l=Ch.isCollapsed(n),s=Array.from(_.nodes(e,{match:p=>to.isElement(p)&&e.convertElement.isConvertibleElement(p)}));if(s.length>0){let[,p]=s[0];i=ns(e,n.anchor,p),a=ns(e,n.focus,p)}if(s.length===0)return!1;let m=[];_.withoutNormalizing(e,()=>{for(let p=s.length-1;p>=0;p--){let[u,h]=s[p];if(Sh(u)){let v=Lh(e,u,h,n);m.unshift(v)}else m.unshift(h)}});let c=m.map(p=>{try{let u=ne.get(e,p);return to.isElement(u)?[u,p]:null}catch{return null}}).filter(p=>p!==null);if(c.length===0)return!1;if(r&&c.every(p=>t(p[0]))?_.withoutNormalizing(e,()=>{for(let p of c)ct(e,{type:"paragraph"},p[1])}):_.withoutNormalizing(e,()=>{for(let p of c)ct(e,o,p[1])}),c.length>0&&i>=0){let[,p]=c[0];if(l)is(e,p,i);else if(a>=0)try{let u=ne.get(e,p);if(to.isElement(u)){let h=ne.string(u),v=Math.min(i,h.length),S=Math.min(a,h.length),P=_.start(e,p),M=P.path,B=v,C=0;for(let[x,I]of ne.texts(u)){let w=x.text.length;if(C+w>=v){M=[...p,...I],B=v-C;break}C+=w}let D=P.path,T=S;C=0;for(let[x,I]of ne.texts(u)){let w=x.text.length;if(C+w>=S){D=[...p,...I],T=S-C;break}C+=w}Ce.select(e,{anchor:{path:M,offset:B},focus:{path:D,offset:T}})}}catch{is(e,p,i)}}return!0}function ls(e,t){return e.convertElement.convertElementTypes.includes(t.type)}function ss(e){return{convertElementTypes:[],addConvertElementType:f(rs,e),isConvertibleElement:f(ls,e),convertElements:f(as,e)}}var ms=k(e=>(e.convertElement=ss(e),{name:"convert-element"}));import{Editor as or,Path as zh,Range as Bh,Transforms as cs}from"slate";function ps(e){let t=E(e,"heading");if(!t||!e.selection||Bh.isExpanded(e.selection)||!or.isEnd(e,e.selection.anchor,t[1]))return!1;let o=zh.next(t[1]);return cs.insertNodes(e,{type:"paragraph",children:[{text:""}]},{at:o}),cs.select(e,{anchor:or.start(e,o),focus:or.start(e,o)}),!0}import{Editor as Dh}from"slate";function Nh(e,t,o){e.convertElement.convertElements(r=>r.type==="heading"&&r.level==t,{type:"heading",level:t},o)}function $h(e,t){let[o]=Dh.nodes(e,{match:r=>"type"in r&&"level"in r&&r.type==="heading"&&r.level===t});return!!o}function ds(e){return{convertHeading:f(Nh,e),isHeadingActive:f($h,e)}}import{css as Hh}from"@emotion/react";import We from"@emotion/styled";var Ge=Hh`
|
|
1009
1009
|
margin-top: 1em;
|
|
1010
|
-
&:first-
|
|
1010
|
+
&:first-of-type {
|
|
1011
1011
|
margin-top: 0;
|
|
1012
1012
|
}
|
|
1013
1013
|
font-weight: bold;
|
|
@@ -1111,7 +1111,7 @@
|
|
|
1111
1111
|
* if isDebug is true, then show a highlight on list items that are marked
|
|
1112
1112
|
* as the first at a given depth.
|
|
1113
1113
|
*/
|
|
1114
|
-
background: ${
|
|
1114
|
+
background: ${"inherit"};
|
|
1115
1115
|
}
|
|
1116
1116
|
|
|
1117
1117
|
&:before {
|
|
@@ -1439,7 +1439,7 @@
|
|
|
1439
1439
|
width: 18em;
|
|
1440
1440
|
padding: 0;
|
|
1441
1441
|
overflow: hidden;
|
|
1442
|
-
`;import{Fragment as Eb,jsx as F,jsxs as X}from"react/jsx-runtime";function Qc({dest:e,close:t}){let o=bb(),r=qc(null),n=qc(null),[i,a]=de({x:0,y:0}),l=Mr(($,U)=>{a(ue=>({x:ue.x+$,y:ue.y+U}))},[]),s=o.wysimark?.imageDialogState,m=!!o.wysimark?.onImageChange,[c,d]=de(s?.url??""),[p,u]=de(s?.alt??""),[h,v]=de(s?.title??""),[S,P]=de(!1),[M,B]=de(s?.imageSource??(m?"file":"url")),[C,D]=de(!1),[T,x]=de(s?.uploadedUrl??""),[I,w]=de(""),O=Mr($=>{let U=$.target.value;u(U),S||v(U)},[S]),Te=Mr($=>{v($.target.value),P(!0)},[]);gb(()=>{o.wysimark&&(o.wysimark.imageDialogState={url:c,alt:p,title:h,imageSource:M,uploadedUrl:T})},[c,p,h,M,T]);let $r=()=>{o.wysimark&&(o.wysimark.imageDialogState=void 0)},xo=j({src:r,dest:e},({src:$,dest:U},ue)=>$t($,ue,{left:U.left-16,top:U.top+U.height},{margin:16})),Ip={...xo,left:xo.left+i.x,top:xo.top+i.y};function Mp($){$.preventDefault();let U=M==="file"?T:c;U.trim()!==""&&(o.image.insertImageFromUrl(U,p,h),$r(),t())}function Pp(){$r(),t()}async function Cp($){let U=$.target.files?.[0];if(!(!U||!o.wysimark?.onImageChange)){w(U.name),D(!0);try{let ue=await o.wysimark.onImageChange(U);x(ue)}catch(ue){}finally{D(!1)}}}function Sp(){n.current?.click()}let yo=M==="file"?T.trim()===""||C:c.trim()==="";return X(Eb,{children:[F(Ee,{close:t}),X(Gc,{ref:r,style:Ip,children:[F(ye,{onDrag:l}),X("form",{onSubmit:$=>
|
|
1442
|
+
`;import{Fragment as Eb,jsx as F,jsxs as X}from"react/jsx-runtime";function Qc({dest:e,close:t}){let o=bb(),r=qc(null),n=qc(null),[i,a]=de({x:0,y:0}),l=Mr(($,U)=>{a(ue=>({x:ue.x+$,y:ue.y+U}))},[]),s=o.wysimark?.imageDialogState,m=!!o.wysimark?.onImageChange,[c,d]=de(s?.url??""),[p,u]=de(s?.alt??""),[h,v]=de(s?.title??""),[S,P]=de(!1),[M,B]=de(s?.imageSource??(m?"file":"url")),[C,D]=de(!1),[T,x]=de(s?.uploadedUrl??""),[I,w]=de(""),O=Mr($=>{let U=$.target.value;u(U),S||v(U)},[S]),Te=Mr($=>{v($.target.value),P(!0)},[]);gb(()=>{o.wysimark&&(o.wysimark.imageDialogState={url:c,alt:p,title:h,imageSource:M,uploadedUrl:T})},[c,p,h,M,T]);let $r=()=>{o.wysimark&&(o.wysimark.imageDialogState=void 0)},xo=j({src:r,dest:e},({src:$,dest:U},ue)=>$t($,ue,{left:U.left-16,top:U.top+U.height},{margin:16})),Ip={...xo,left:xo.left+i.x,top:xo.top+i.y};function Mp($){$.preventDefault();let U=M==="file"?T:c;U.trim()!==""&&(o.image.insertImageFromUrl(U,p,h),$r(),t())}function Pp(){$r(),t()}async function Cp($){let U=$.target.files?.[0];if(!(!U||!o.wysimark?.onImageChange)){w(U.name),D(!0);try{let ue=await o.wysimark.onImageChange(U);x(ue)}catch(ue){}finally{D(!1)}}}function Sp(){n.current?.click()}let yo=M==="file"?T.trim()===""||C:c.trim()==="";return X(Eb,{children:[F(Ee,{close:t}),X(Gc,{ref:r,style:Ip,children:[F(ye,{onDrag:l}),X("form",{onSubmit:$=>{Mp($)},style:{padding:"8px"},children:[m&&X("div",{style:{marginBottom:"12px"},children:[X("label",{style:{display:"inline-flex",alignItems:"center",marginRight:"16px",cursor:"pointer"},children:[F("input",{type:"radio",name:"imageSource",value:"file",checked:M==="file",onChange:()=>B("file"),style:{marginRight:"4px"}}),g("imageSourceFile")]}),X("label",{style:{display:"inline-flex",alignItems:"center",cursor:"pointer"},children:[F("input",{type:"radio",name:"imageSource",value:"url",checked:M==="url",onChange:()=>B("url"),style:{marginRight:"4px"}}),g("imageSourceUrl")]})]}),M==="url"?X("div",{style:{marginBottom:"8px"},children:[F("label",{style:{display:"block",marginBottom:"4px"},children:g("imageUrlRequired")}),F("input",{type:"text",value:c,onChange:$=>d($.target.value),style:{width:"100%",padding:"6px",boxSizing:"border-box",border:"1px solid var(--shade-300)",borderRadius:"4px",backgroundColor:"var(--shade-50)",color:"var(--shade-700)"},placeholder:"https://example.com/image.jpg"})]}):X("div",{style:{marginBottom:"8px"},children:[F("input",{ref:n,type:"file",accept:"image/*",onChange:$=>{Cp($)},style:{display:"none"}}),F("button",{type:"button",onClick:Sp,disabled:C,style:{padding:"8px 16px",backgroundColor:C?"#ccc":"#0078d4",color:C?"#666":"white",border:"none",borderRadius:"4px",cursor:C?"not-allowed":"pointer",marginBottom:"8px",fontWeight:"bold"},children:C?g("uploading"):g("selectFile")}),T&&X("div",{style:{marginTop:"8px",padding:"8px",backgroundColor:"var(--shade-100)",borderRadius:"4px"},children:[X("div",{style:{color:"green",marginBottom:"4px"},children:["\u2713 ",g("uploadComplete")]}),I&&F("div",{style:{fontSize:"12px",color:"var(--shade-500)"},children:I})]})]}),X("div",{style:{marginBottom:"8px"},children:[F("label",{style:{display:"block",marginBottom:"4px"},children:g("altText")}),F("input",{type:"text",value:p,onChange:O,style:{width:"100%",padding:"6px",boxSizing:"border-box",border:"1px solid var(--shade-300)",borderRadius:"4px",backgroundColor:"var(--shade-50)",color:"var(--shade-700)"},placeholder:g("imageDescription")})]}),X("div",{style:{marginBottom:"8px"},children:[F("label",{style:{display:"block",marginBottom:"4px"},children:g("title")}),F("input",{type:"text",value:h,onChange:Te,style:{width:"100%",padding:"6px",boxSizing:"border-box",border:"1px solid var(--shade-300)",borderRadius:"4px",backgroundColor:"var(--shade-50)",color:"var(--shade-700)"},placeholder:g("imageTitle")})]}),X("div",{style:{display:"flex",gap:"8px"},children:[F("button",{type:"submit",disabled:yo,style:{display:"flex",alignItems:"center",padding:"8px 16px",backgroundColor:yo?"#ccc":"#0078d4",color:"white",border:"none",borderRadius:"4px",cursor:yo?"not-allowed":"pointer",fontWeight:"bold"},children:g("register")}),F("button",{type:"button",onClick:Pp,style:{padding:"8px 16px",backgroundColor:"var(--shade-100)",color:"var(--shade-700)",border:"1px solid var(--shade-300)",borderRadius:"4px",cursor:"pointer"},children:g("cancel")})]})]})]})]})}import{isHotkey as xb}from"is-hotkey";import{useCallback as go,useMemo as yb,useRef as kb,useState as xt}from"react";import{Editor as vb,Range as Tb}from"slate";import{ReactEditor as wb,useSlateStatic as Ib}from"slate-react";import Xc from"@emotion/styled";var Pr=Xc("div")`
|
|
1443
1443
|
/* Center vertically and horizontally */
|
|
1444
1444
|
display: flex;
|
|
1445
1445
|
align-items: center;
|