@mrakomor/core 0.0.10 → 0.0.12
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/blockChrome.mjs +2 -2
- package/dist/blockInsertMenu.mjs +1 -1
- package/dist/chunk-2C6UDFD4.mjs +1 -0
- package/dist/chunk-5HWTMPF4.mjs +2 -0
- package/dist/chunk-6CG6EGQM.mjs +2 -0
- package/dist/{chunk-K2DMHAUD.mjs → chunk-7CJLTNHZ.mjs} +1 -1
- package/dist/chunk-ERNLRJPB.mjs +1 -0
- package/dist/chunk-EXDY5TZH.mjs +1 -0
- package/dist/chunk-FAXIFXQK.mjs +4 -0
- package/dist/chunk-GDDVUIEH.mjs +1 -0
- package/dist/{chunk-GDID5DFL.mjs → chunk-JVQ2YGII.mjs} +1 -1
- package/dist/chunk-P7TUN2KD.mjs +1 -0
- package/dist/chunk-S2W6LYHT.mjs +1 -0
- package/dist/chunk-TL5BHWDU.mjs +2 -0
- package/dist/chunk-ZHOZPQZH.mjs +1 -0
- package/dist/clipboard.cjs +4 -4
- package/dist/clipboard.mjs +3 -3
- package/dist/footer.cjs +4 -1
- package/dist/footer.mjs +2 -2
- package/dist/headline.cjs +3 -2
- package/dist/headline.mjs +1 -1
- package/dist/help.mjs +2 -2
- package/dist/index.cjs +6 -5
- package/dist/index.mjs +4 -4
- package/dist/link.cjs +3 -3
- package/dist/link.mjs +2 -2
- package/dist/list.cjs +3 -3
- package/dist/list.mjs +1 -1
- package/dist/paragraph.cjs +3 -2
- package/dist/paragraph.mjs +1 -1
- package/dist/slashCommand.cjs +2 -2
- package/dist/slashCommand.mjs +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.mjs +2 -2
- package/dist/tts.cjs +8 -8
- package/dist/tts.mjs +3 -3
- package/dist/types/Mrakomor.d.mts +230 -0
- package/dist/types/component/AbstractComponent.d.mts +69 -0
- package/dist/types/component/Editor.d.mts +8 -0
- package/dist/types/component/block/BlockComponent.d.mts +105 -0
- package/dist/types/component/block/BlockRegister.d.mts +29 -0
- package/dist/types/component/block/ExternalComponent.d.mts +42 -0
- package/dist/types/component/block/UnknownComponent.d.mts +3 -0
- package/dist/types/component/block/blockItemEquals.d.mts +6 -0
- package/dist/types/component/block/helpers.d.mts +319 -0
- package/dist/types/component/editorContext.d.mts +4 -0
- package/dist/types/component/entityRange/EntityRangeElement.d.mts +15 -0
- package/dist/types/component/inlineStyle/Bold.d.mts +4 -0
- package/dist/types/component/inlineStyle/InlineElement.d.mts +10 -0
- package/dist/types/component/inlineStyle/Italic.d.mts +4 -0
- package/dist/types/component/inlineStyle/Subscript.d.mts +4 -0
- package/dist/types/component/inlineStyle/Superscript.d.mts +4 -0
- package/dist/types/component/inlineStyle/Underline.d.mts +4 -0
- package/dist/types/component/inlineStyle/index.d.mts +5 -0
- package/dist/types/component/overlayMount.d.mts +46 -0
- package/dist/types/dom.d.mts +161 -0
- package/dist/types/emitter.d.mts +38 -0
- package/dist/types/index.d.mts +7 -0
- package/dist/types/namespaces.d.mts +17 -0
- package/dist/types/plugin/blockChrome/BlockChrome.d.mts +11 -0
- package/dist/types/plugin/blockChrome/index.d.mts +1 -0
- package/dist/types/plugin/blockInsertMenu/BlockInsertMenu.d.mts +6 -0
- package/dist/types/plugin/blockInsertMenu/index.d.mts +1 -0
- package/dist/types/plugin/clipboard/clipboardHelpers.d.mts +151 -0
- package/dist/types/plugin/clipboard/clipboardPlugin.d.mts +6 -0
- package/dist/types/plugin/clipboard/index.d.mts +1 -0
- package/dist/types/plugin/default/defaultMrakomorPlugin.d.mts +21 -0
- package/dist/types/plugin/dialog/Dialog.d.mts +23 -0
- package/dist/types/plugin/footer/footerPlugin.d.mts +7 -0
- package/dist/types/plugin/footer/index.d.mts +1 -0
- package/dist/types/plugin/headline/Headline.d.mts +29 -0
- package/dist/types/plugin/headline/index.d.mts +1 -0
- package/dist/types/plugin/help/HelpRegister.d.mts +15 -0
- package/dist/types/plugin/help/helpPlugin.d.mts +26 -0
- package/dist/types/plugin/help/helpSchema.d.mts +11 -0
- package/dist/types/plugin/help/index.d.mts +1 -0
- package/dist/types/plugin/linkEntity/LinkEntity.d.mts +37 -0
- package/dist/types/plugin/linkEntity/index.d.mts +1 -0
- package/dist/types/plugin/list/List.d.mts +61 -0
- package/dist/types/plugin/list/index.d.mts +1 -0
- package/dist/types/plugin/list/listHelpers.d.mts +166 -0
- package/dist/types/plugin/menu/Menu.d.mts +22 -0
- package/dist/types/plugin/menu/menuPlugin.d.mts +6 -0
- package/dist/types/plugin/paragraph/Paragraph.d.mts +16 -0
- package/dist/types/plugin/paragraph/index.d.mts +1 -0
- package/dist/types/plugin/slashCommand/SlashActionRegister.d.mts +12 -0
- package/dist/types/plugin/slashCommand/index.d.mts +1 -0
- package/dist/types/plugin/slashCommand/slashActionSchema.d.mts +29 -0
- package/dist/types/plugin/slashCommand/slashCommandHelpers.d.mts +77 -0
- package/dist/types/plugin/slashCommand/slashCommandPlugin.d.mts +11 -0
- package/dist/types/plugin/slashCommand/slashHelp.d.mts +12 -0
- package/dist/types/plugin/tooltip/Tooltip.d.mts +16 -0
- package/dist/types/plugin/tooltip/index.d.mts +1 -0
- package/dist/types/plugin/tts/TtsHeadline.d.mts +27 -0
- package/dist/types/plugin/tts/TtsList.d.mts +19 -0
- package/dist/types/plugin/tts/TtsParagraph.d.mts +9 -0
- package/dist/types/plugin/tts/TtsVoice.d.mts +52 -0
- package/dist/types/plugin/tts/index.d.mts +4 -0
- package/dist/types/register/Register.d.mts +50 -0
- package/dist/types/register/sortRegisterEntries.d.mts +7 -0
- package/dist/types/schema/blockContent.d.mts +34 -0
- package/dist/types/schema/blockRegister.d.mts +14 -0
- package/dist/types/schema/config.d.mts +6 -0
- package/dist/types/types.d.mts +636 -0
- package/package.json +35 -23
- package/dist/chunk-5VPYPKGA.mjs +0 -1
- package/dist/chunk-G2QV4GOO.mjs +0 -1
- package/dist/chunk-N4I2WZWF.mjs +0 -1
- package/dist/chunk-Q7RMVYZR.mjs +0 -1
- package/dist/chunk-T7OO472O.mjs +0 -1
- package/dist/chunk-TX4RCFPO.mjs +0 -3
- package/dist/chunk-U3MSKB3R.mjs +0 -2
- package/dist/chunk-UC7W4JIH.mjs +0 -2
- package/dist/chunk-WBTDWVEC.mjs +0 -3
- package/dist/chunk-WQWE5UCN.mjs +0 -1
- package/dist/chunk-YHWQV2DB.mjs +0 -1
package/dist/tts.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
'use strict';var Jn={abortEarly:true};function st(e,t){if(t===void 0)return e;let n=e?.cause?.key?`${t}.${e.cause.key}`:`${t}`;return {message:`Error parsing key "${n}": ${e.message}`,cause:{key:n}}}function Qn(e,t,n){if(e.errors?.length)for(let r=0;r<e.errors.length;r++)t.push(st(e.errors[r],n));}function Gt(e,t,n,r){if(n!==false){let o=st(e.error,t);return {success:false,error:o,errors:[o]}}Qn(e,r,t);}function xe(e){return e?.abortEarly!==void 0?e:Jn}function tt(e,t){b(e,"_parse",(n,r,o)=>{let s=n(r,o);return !s.success&&t(r)?{success:true,data:r}:s});}var ie=e=>typeof e=="string"||e instanceof String,nt=e=>(typeof e=="number"||e instanceof Number)&&!Number.isNaN(e),rt=e=>e===true||e===false,Zn=e=>e instanceof Date&&!Number.isNaN(e.getTime()),er=e=>typeof e=="function",tr=e=>Array.isArray(e),ot=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function Yt(e,t){let n=R(ot,{...t,type:"object"});n._getDescription=()=>`object({ ${Object.entries(e).map(([o,s])=>`${o}: ${s._getDescription()}`).join(", ")} })`,n._getDefinition=()=>e;let r=n;return r.derive=function(o,{when:s="always"}={}){return b(this,"_parse",(i,a,c)=>{let l=i(a,c);if(!l.success)return l;let u=o(l.data,{context:c?.context});if(!ot(u)){let p={message:`derive() callback must return a plain object of overrides, got ${u===null?"null":typeof u}`};return {success:false,error:p,errors:[p]}}if(s==="missing"){let p={...l.data};for(let m in u)p[m]===void 0&&(p[m]=u[m]);return {success:true,data:p}}return {success:true,data:{...l.data,...u}}}),this},b(n,"_parse",(o,s,i)=>{let a=o(s,i),{abortEarly:c}=xe(i);if(a.success===false)return a;let l={},u=[];for(let p in e){let m=e[p]._parse(a.data[p],i);if(m.success)l[p]=m.data;else {let d=Gt(m,p,c,u);if(d)return d}}return u.length>0?{success:false,error:u[0],errors:u}:{success:true,data:l}}),r}function it(e){return R(ie,{...e,type:"string"})}function at(e){return R(nt,{...e,type:"number"})}function ct(e){return R(rt,{...e,type:"boolean"})}function lt(e){return R(Zn,{...e,type:"date"})}function Wt(e){return R(er,{...e,type:"function"})}function zt(e,t){let n=i=>e.includes(i),r=i=>`Invalid ${o} value. Expected ${e.map(a=>`"${a}"`).join(" | ")}, received "${i}".`,o="enum",s=R(n,{message:r,...t,type:o});return s._getDescription=()=>`enum(${e.map(i=>`"${i}"`).join(" | ")})`,s._getDefinition=()=>e,s}function Xt(e,t){let n=R(tr,{...t,type:"array"});return n._getDescription=()=>`array(${e._getDescription()})`,n._getDefinition=()=>e,b(n,"_parse",(r,o,s)=>{let i=r(o,s),{abortEarly:a}=xe(s);if(i.success===false)return i;let c=[],l=[],u=s;for(let p=0;p<i.data.length;p++){let m={...u,context:{...u?.context,index:p}},d=e._parse(i.data[p],m);if(d.success)c.push(d.data);else {let S=Gt(d,p,a,l);if(S)return S}}return l.length>0?{success:false,error:l[0],errors:l}:{success:true,data:c}}),n}function Jt(){return R(()=>true)}function Z(e,t){return b(t,"_parse",(n,r,o)=>(r=e(r),n(r,o))),t}function Qt(e,t){let n=o=>`Invalid union value. Expected the value to match one of the schemas:${e.map((s,i)=>` ${i+1}. ${s._getDescription()}`).join(",")} but received "${typeof o}" with value: ${ot(o)?JSON.stringify(o):`"${o}"`}`,r=R(()=>false,{message:n,...t,type:"union"});return r._getDefinition=()=>e,b(r,"_parse",(o,s,i)=>{let a=i,c=[];for(let m=0;m<e.length;m++){let d=e[m]._parse(s,a);if(d.success)return d;c.push(d);}let{abortEarly:l}=xe(a),u={message:typeof n=="function"?n(s):n};if(l!==false)return {success:false,error:u,errors:[u]};let p=[];for(let m=0;m<c.length;m++){let d=c[m].errors;if(d?.length)for(let S=0;S<d.length;S++)d[S].cause?.key&&p.push(st(d[S],`branch ${m}`));}return p.length===0&&p.push(u),{success:false,error:p[0],errors:p}}),r}function Zt(e,t){let n=R(r=>r===e,{message:r=>t?.message?typeof t.message=="function"?t.message(r):t.message:`Expected literal value "${e}", received "${r}"`,name:t?.name,type:"literal"});return n._getDescription=()=>`literal("${e}")`,n._getDefinition=()=>e,n}function en(e){let t=R(()=>true,{type:"contextRef"});return t._getDescription=()=>`contextRef("${e}")`,b(t,"_parse",(n,r,o)=>({success:true,data:o?.context?.[e]})),t}function tn(e,t){return {parse(n,r){let o=e.parse(r?.context??{},r);return t(o).parse(n,r)},safeParse(n,r){let o=e.safeParse(r?.context??{},r);return o.success?t(o.data).safeParse(n,r):o}}}var nn={boolean(e){let t=e?.message??(n=>`Cannot cast "${n}" to boolean. Accepted: true/false, 1/0, yes/no, on/off.`);return Z(n=>{let r;return ie(n)&&(r=n.toLowerCase()),r==="true"||r==="yes"||r==="on"||r==="1"||n===1?true:r==="false"||r==="no"||r==="off"||r==="0"||n===0?false:n},ct({...e,message:t}))},number(e){let t=e?.message??(n=>`Cannot cast "${n}" to a number. Expected a numeric string or number.`);return Z(n=>{if(rt(n))return Number(n);if(ie(n)){let r=n.trim();if(r==="")return n;let o=Number(r);if(Number.isFinite(o))return o}return n},at({...e,message:t}))},string(e){let t=e?.message??(n=>`Cannot cast "${n}" to string. Expected a string, number, or boolean.`);return Z(n=>rt(n)||nt(n)&&Number.isFinite(n)?String(n):n,it({...e,message:t}))},date(e){let t=e?.message??(n=>`Cannot cast "${n}" to a valid date.`);return Z(n=>{let r;return ie(n)&&(r=n.trim()),nt(n)&&Number.isFinite(n)||r?new Date(r??n):n},lt({...e,message:t}))},json(e,t){let n=t?.message??(r=>`Cannot parse "${r}" as JSON.`);return b(e,"_parse",(r,o,s)=>{if(ie(o))try{o=JSON.parse(o);}catch{let i={message:typeof n=="function"?n(o):n};return {success:false,error:i,errors:[i]}}return r(o,s)}),e}},rn={},f={object:Yt,string:it,number:at,boolean:ct,date:lt,function:Wt,enum:zt,array:Xt,any:Jt,preprocess:Z,union:Qt,literal:Zt,contextRef:en,withContext:tn,coerce:rn,cast:nn};function qt(e){return t=>`The value "${t}" must be type of ${e} but is type of "${typeof t}".`}function b(e,t,n){let r=e[t];e[t]=(...o)=>n(r,...o);}function R(e,{type:t="any",name:n,message:r}={}){r=r||qt(t);let o={name:n,message:r,type:t},s={_getName(){return n},_getType(){return t},_getDescription(){return this._getName()??this._getType()},_parse(i,a){let c=e(i);if(c===true)return {success:true,data:i};if(typeof c=="object"&&c?.success===true)return c;let l={message:typeof r=="function"?r(i):r};return {success:false,error:l,errors:[l]}},parse(i,a){let c=this._parse(i,a);if(!c.success)throw c=c,new Error(c.error.message,{cause:c.error.cause});return c.data},safeParse(i,a){return this._parse(i,a)},transform(i){return b(this,"_parse",(a,c,l)=>{let u=a(c,l);return u.success&&(u.data=i(u.data)),u}),this},optional(){return tt(this,i=>i===void 0),this},nullable(){return tt(this,i=>i===null),this},nullish(){return tt(this,i=>i==null),this},default(i){return b(this,"_parse",(a,c,l)=>(c===void 0&&(c=typeof i=="function"?i({context:l?.context}):i),a(c,l))),this},catch(i){return b(this,"_parse",(a,c,l)=>{let u=a(c,l);return u.success?u:{success:true,data:typeof i=="function"?i({input:c,error:u.error}):i}}),this},pipe(i){return b(this,"_parse",(a,c,l)=>{let u=a(c,l);return u.success?i._parse(u.data,l):u}),this},refine(i,{message:a,type:c,jsonSchema:l}={}){if(c&&(a=a||qt(c),t=c),l){let u=[...this._getJsonSchemaHints?.()??[],l];this._getJsonSchemaHints=()=>u;}return b(this,"_parse",(u,p,m)=>{let d=u(p,m),{abortEarly:S}=xe(m);if(!d.success)return d;let _=i(d.data);if(_===true||typeof _=="object"&&_?.success===true)return d;let x={message:typeof a=="function"?a(p):a};return {success:false,error:x,errors:[x]}}),this},clone(){return {...this}}};return Kt.length>0?Kt.reduce((i,a)=>a(i,e,o)??i,s):s}var Kt=[];var on=class{next(...e){}error(...e){}complete(...e){}},ut=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var be=Symbol("@esmj/signals:type"),ae=Symbol("@esmj/signals:name");var N=null,ft=false,pt=[];function A(e){let t=N;N=null;let n=e();return N=t,n}function or(){ft=false;let e=ln();for(let n of e)n.get();let t=pt;pt=[];for(let n of t)n();}function sn(){ft||(ft=true,queueMicrotask(or));}function mt(e){pt.push(e),sn();}var an=Symbol("@esmj/signals:internal observable"),T=Symbol("@esmj/signals:original function"),sr=class extends ut{#e=new Set;#r=null;constructor(e){super(),this.#r=e,this.pipe(t=>{let n=t.subscribe.bind(t),r=t.unsubscribe.bind(t);return t.subscribe=o=>{n(o),this.#e.add(o);},t.unsubscribe=o=>{r(o),this.#e.delete(o);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>A(()=>{this.#e.add(e),this.#r();}),e.next[T]=void 0),e instanceof pn&&e.next[T]===void 0){let t=e.next.bind(e);e.next=()=>A(()=>{this.#e.add(e),t(),this.#r();}),e.next[T]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[T]){let n=t.get,r=n.bind(t);t.get=()=>A(()=>(this.#e.delete(t),r())),t.get[T]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[T]?e.next[T]:e.next,e.get=e.get[T]?e.get[T]:e.get,this.#e.delete(e),this.unsubscribe(e)}},Ce=null;function cn(e){Ce=new sr(e);}cn(()=>{sn();});function ln(){return Ce.getPending()}function un(e){return Ce.watch(e)}function fn(e){return Ce.unwatch(e)}var P=Symbol("@esmj/signals:no error"),pn=class mn extends on{#e=true;#r=false;#t=null;#o=this.#p();#l=null;#c=null;#i=0;#s=new Map;#n=P;constructor(t,n){super(),this.#l=t,this.#c=n,this.debug=n?.debug,this[be]="computed",this[ae]=n?.debug??null,this.get=this.get.bind(this);}#u(){for(let{unsubscribe:t}of this.#o.dependencies.values())t();this.#o.dependencies.clear();}#p(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[ae],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof mn&&A(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#t[an].next();}get(){if(this.#r)throw new Error("Cycle detected in computed signal");if(this.#t||(this.#t=G(this.#a(),this.#c)),(this.#e||this.#n!==P)&&(this.#s.size===0||this.#f()?this.#a():this.#e=false),N&&N.sourceRevisions.set(this,this.#i),this.#n!==P)throw this.#n;return this.#t.get()}peek(){if(this.#t||(this.#t=G(this.#a(),this.#c)),(this.#e||this.#n!==P)&&(this.#s.size===0||this.#f()?this.#a():this.#e=false),this.#n!==P)throw this.#n;return this.#t.peek()}#a(){this.#r=true,this.#e=false,this.#n=P,this.#u(),this.#o.sourceRevisions.clear();let t=N;N=this.#o;let n;try{n=this.#l();}catch(r){this.#n=r;}return N=t,this.#s=this.#o.sourceRevisions,this.#o.sourceRevisions=new Map,this.#r=false,n instanceof Promise&&(n=n.then(r=>{this.#n=P,this.#t.set(r);}).catch(r=>{this.#n=r;})),this.#n===P&&this.#t&&this.#t.set(n),this.#i++,n}destroy(){this.#u(),this.#s.clear(),this.#e=true,this.#n=P;}};function Y(e,t){return new pn(e,t)}function k(e,t){let n,{debug:r,...o}={},s=Y(()=>{n?.(),n=e();},{equals:()=>false,...o});s.get(),un(s);let i=()=>{n?.(),s.destroy(),fn(s);};return i[Symbol.dispose]=i,i[be]="effect",i[ae]=r??null,i.__RX_COMPUTED__=s,i}function G(e,t={}){let n=t?.equals??Object.is,r=0,o=new ut;function s(){return N&&(N.dependencies.set(o,o.subscribe(N.observer)),N.sourceRevisions.set(l,r)),e}function i(){return e}function a(u){if(!n(e,u)){e=u,r++,o.next();}return e}function c(){return r}let l={get:s,set:a,peek:i,getRevision:c,[an]:o,[be]:"signal",[ae]:t?.debug??null};return l}function Ae(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var Cn=Symbol("node-component"),Re=Symbol("node-internal"),ir=Symbol("keep-literal"),ve=Symbol("raw-props");function yt(e){return typeof e=="function"?e:e!=null&&typeof e.get=="function"?()=>e.get():()=>e}function St(e,t){let n=e.children!==void 0?e.children:t;return Array.isArray(n)?n[0]:n}var ar=new Set(["template","script"]);function cr(e,t){let n=(e==null?"span":String(e)).trim(),r=n;ar.has(n.toLowerCase())&&(console.warn(`[esmj-dom] tagName "${e}" cannot render children in normal flow and is not supported as a reconciliation wrapper; falling back to "span".`),r="span");let o=document.createElement(r);return r==="span"&&(o.style.display="contents"),o.setAttribute(t,Ae()),o}function xt(e,t,n){let r=cr(e,t);return n?.id&&r.setAttribute("id",n.id),r}function bt(e){let t=null,n=()=>t,r=s=>(t=s??null,t),o={get:n,set:r,[Symbol.toPrimitive](){return t?String(t):""}};return Object.defineProperty(o,"current",{get(){return t},set(s){r(s);},enumerable:true,configurable:false}),new Proxy(o,{get(s,i,a){if(Reflect.has(s,i))return Reflect.get(s,i,a);if(!t)return;let c=t[i];return typeof c=="function"?c.bind(t):c},set(s,i,a,c){return Reflect.has(s,i)||!t?Reflect.set(s,i,a,c):(t[i]=a,true)},has(s,i){return Reflect.has(s,i)||!!t&&i in t}})}var An=null;function W(){return An}function Ne(e){An=e;}function Le(e){return e?.[Cn]||null}function dn(e,t){e[Cn]=t;}function ke(e,t={disposers:[],id:Ae()}){return e?.[Re]?e[Re]:(e&&(e[Re]=t),t)}function lr(e){return e[Re]}function B(e,t){let n=lr(e);n||(n=ke(e)),n.disposers.push(t);}function gt(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function H(e,t){let n=W();Ne(e);try{return t()}finally{Ne(n);}}var ht=new Map,_e=new Map,gn=new Map;function Rn(e,t){let n=typeof t=="function"?t:o=>!!t?.includes(o),r=Object.create(null);for(let o of Object.keys(e)){let s=e[o];o==="children"||n(o)?r[o]=s:s?.[ir]?r[o]=s():s!=null&&typeof s.get=="function"?r[o]=s:typeof s=="function"?r[o]=Y(s):r[o]=G(s);}return r}function Ie(e,t){if(e===t)return true;if(e==null||t==null||typeof e!="object"||typeof t!="object")return false;let n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?false:n.every(o=>{let s=Object.getOwnPropertyDescriptor(e,o),i=Object.getOwnPropertyDescriptor(t,o);if(!s||!i)return false;let a="value"in s?s.value:s.get?.call(e),c="value"in i?i.value:i.get?.call(t);return Ie(a,c)})}function Ct(e){return {id:Symbol("context-id"),defaultValue:e}}function ue(e){let t=W();return t?.contexts?.has(e.id)?t.contexts.get(e.id):e.defaultValue}function O(e){mt(()=>{setTimeout(e,0);});}function fe(e){let t=e.componentId,n=ht.get(t);if(n){ht.delete(t);for(let r of n){let o=r();typeof o=="function"&>(_e,t,o);}}}function ur(e){let t=_e.get(e);if(t){_e.delete(e);for(let n of t)n();}}function fr(e){let t=gn.get(e);if(t){gn.delete(e);for(let n of t)n();}}function Me(e){if(!e)return;let t=ke(e);if(t?.disposers?.length){for(let r of t.disposers)try{r();}catch(o){console.error("[esmj-dom] cleanupTree: disposer threw, cleanup continues",o);}t.disposers=[];}let n=Le(e);if(n&&(ur(n.componentId),fr(n.componentId)),e.childNodes){let r=e.firstChild;for(;r;){let o=r.nextSibling;Me(r),r=o;}}}function z(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function hn(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function pr(e,t,n){let r=Ae(),o={componentId:r,$children:n,element:null,classInstance:null,$constructor(){let s=hn(e)?void 0:e[ve],i={...Rn(t??{},s),children:n},a=W(),c={disposers:[],id:r,contexts:new Map(a?.contexts)};Ne(c);let l;if(hn(e)){o.ClassConstructor=e;let p=new e(i);o.classInstance=p,typeof p.onMount=="function"&>(ht,r,()=>{p.onMount?.();}),typeof p.onUnmount=="function"&>(_e,r,()=>{p.onUnmount?.();}),l=p.render();}else l=e(i);Ne(a);let u=mr(l);if(o.element=u,u instanceof DocumentFragment&&u.childNodes.length)for(let p of u.childNodes)ke(p,c),dn(p,o);else ke(u,c),u instanceof Node&&dn(u,o);return u}};return o}function At(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{fe(t);});}function mr(e){return e instanceof Node?e:z(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var En={className:"class",htmlFor:"for"},yn=new Set(["value","defaultValue","checked","selected","indeterminate"]),dr=new Set(["srcdoc"]),gr=new Set(["href","src","action","formaction","xlink:href"]),hr=new Set(["securitypolicyviolation"]),Er=new Set(["contenteditable","draggable","spellcheck"]);function le(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var Nn=Symbol("Fragment");function E(e,t,n){if(e===Nn){let o=document.createDocumentFragment();return Et(o,xn(n)),o}if(typeof e=="function")return pr(e,t||{},n);typeof e!="string"&&(n=t,t=e,e="div"),t=t||{};let r=document.createElement(e);return t.id&&r.setAttribute("id",t.id),we(r,t),Et(r,xn(n)),r}function dt(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function yr(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function Sr(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return dr.has(n)?true:gr.has(n)&&t!==null&&t!==void 0&&yr(String(t))}function kn(e){return typeof e!="string"?e:En[e]?En[e]:e}function xr(e,t){let n=kn(e),r=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return Er.has(r)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function Sn(e,t,n){let r=xr(t,n);if(r===null){e.removeAttribute(t);return}if(Sr(t,r)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,r);}function we(e,t){let n=W();for(let[r,o]of Reflect.ownKeys(t).map(s=>[s,t[s]]))if(r!=="id"){if(r=kn(r),r==="$ref"){typeof o=="function"?o(e):typeof o=="object"&&o!==null&&(o.current=e);continue}if(r==="$dangerouslySetInnerHTML"){if(le(o)){let s=k(()=>{H(n,()=>{dt(e,o.get());});});B(e,s);}else if(typeof o=="function"){let s=k(()=>{H(n,()=>{dt(e,o());});});B(e,s);}else dt(e,o);continue}if(r==="style"){if(le(o)){let s=k(()=>{H(n,()=>{Object.assign(e.style,o.get());});});B(e,s);}else typeof o=="object"&&o!==null?Object.assign(e.style,o):e.setAttribute("style",o);continue}if(typeof r=="string"&&r.startsWith("on")&&typeof o=="function"){let s=r.slice(2).toLowerCase();if(hr.has(s)){console.warn(`[esmj-dom] Blocked unsafe event binding "${r}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(s,o);continue}if(le(o)||typeof o=="function"){let s=r,i=k(()=>{H(n,()=>{let a=typeof o=="function"?o():o.get();yn.has(s)?e[s]=a??"":Sn(e,s,a);});});B(e,i);continue}yn.has(r)||typeof r=="symbol"?e[r]=o??"":Sn(e,r,o);}}function xn(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function Et(e,t){for(let n of t)_n(e,n);}function _n(e,t){if(!(t==null||t===false||t===true)){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"||typeof t=="number"){e.appendChild(document.createTextNode(String(t)));return}if(typeof t=="function"){bn(e,t);return}if(z(t)){At(e,t);return}if(le(t)){bn(e,()=>t.get());return}if(Array.isArray(t)){Et(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function ee(e){let t=null,n=e;return z(e)&&(t=e,n=e.$constructor()),n instanceof DocumentFragment?{nodes:Array.from(n.childNodes),instance:t}:n instanceof Node?{nodes:[n],instance:t}:n==null||n===false||n===true?{nodes:[],instance:t}:{nodes:[document.createTextNode(String(n))],instance:t}}function Te(e,t=true){for(let n of e)t&&Me(n),n.remove();}function bn(e,t){let n=W(),r=document.createComment("");e.appendChild(r);let o=[],s=k(()=>{H(n,()=>{let i=t(),{nodes:a,instance:c}=ee(i);Te(o),a.length&&r.after(...a),c&&queueMicrotask(()=>fe(c)),o=a;});});B(e,s);}var Pe=class{constructor(e){this.props=e;}};function vn(e,t,n,r){let{equals:o=Ie,tagName:s="span",...i}=r??{},a=xt(s,"data-for",i);we(a,i);let c=W(),l=[],u=new Map,p=Y(()=>e()),m=k(()=>{let d=p.get(),S=Array.isArray(d)?d:[],_=[],x=[],q=new Set;for(let h=0;h<S.length;h++){let C=S[h],v=t(C,h);if(q.has(v)){console.error(`For: duplicate key "${String(v)}" detected; ignoring later item at index ${h}`);continue}q.add(v),_.push(C),x.push(v);}let Q=new Map(l.map(h=>[h.key,h])),D=[];for(let h=0;h<_.length;h++){let C=x[h],v=_[h],K=Q.get(C);if(K)u.get(C).set(v),D.push(K),Q.delete(C);else {let Ft=G(v,{equals:o});u.set(C,Ft);let Wn={...Ft,set(){}},Vt={key:C,nodes:[]};H(c,()=>{let zn=n(Wn,h),{nodes:Xn,instance:Ut}=ee(zn);Vt.nodes=Xn,Ut&&queueMicrotask(()=>fe(Ut));}),D.push(Vt);}}for(let[h,C]of Q)Te(C.nodes),u.delete(h);let w=null;for(let h=D.length-1;h>=0;h--){let C=D[h].nodes;for(let v=C.length-1;v>=0;v--){let K=C[v];(K.parentNode!==a||K.nextSibling!==w)&&a.insertBefore(K,w),w=K;}}l=D;});return B(a,m),a}function Rt(e,t,n,r){if(typeof e=="function")return vn(e,t,n,r);let{each:o,keyFn:s,equals:i,tagName:a,children:c,...l}=e??{};if(typeof s!="function")throw new Error('For: "keyFn" prop is required and must be a function');let u=yt(o),p=St(e??{},t);return vn(u,s,p,{...l,equals:i,tagName:a})}Rt[ve]=e=>e!=="each";function In(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(Me(e),e.innerHTML=""),z(t)?At(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}var Nt=_t(),kt=_t(),Mn=_t(),Cr=Array.from({length:256},(e,t)=>(t<=15?"0":"")+t.toString(16));function _t(){return Math.floor(Math.random()*16777215)}function Ar(){return kt=(kt+1)%16777215,kt}function y(){let e=Math.floor(Date.now()/1e3);e=parseInt(e,10)%4294967295;let t=Ar(),n=String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,e&255,Nt>>16&255,Nt>>8&255,Nt&255,Mn>>8&255,Mn&255,t>>16&255,t>>8&255,t&255),r="";for(let o=0;o<n.length;o++)r+=Cr[n.charCodeAt(o)];return r}var vt=Symbol("block-element"),Rr=Symbol("block-element-body"),X=Symbol("selectable-element");function Lt(e,t){let n=e;for(n?.nodeType===Node.TEXT_NODE&&(n=n.parentElement);n&&n[t]===void 0;)n=n.parentElement;return n??null}function Nr(e){return e?Lt(e.startContainer,vt):null}function $(e){return Lt(e,vt)}function kr(e){return e?Lt(e.startContainer,X):null}function wn(){return window.getSelection()}function M(){let e=wn();return e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function Tn(){let e=M();if(!e)return 0;e.collapse(true);let t=kr(e),n=Nr(e),r=t??De(n);return Oe(r,e.startContainer,e.startOffset)}function Oe(e,t,n){if(!e)return 0;if(t===e){if(t.nodeType===Node.TEXT_NODE)return n;let i=0,a=e.childNodes,c=Math.min(n,a.length);for(let l=0;l<c;l++)i+=a[l].textContent.length;return i}if(t.nodeType===Node.ELEMENT_NODE&&!e.contains(t))return 0;let r=0,o=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),s=o.nextNode();for(;s;){if(s===t)return r+n;r+=s.textContent.length,s=o.nextNode();}return r}function _r(e,t){let n=document.createRange();if(!e)return n;if(t<=0)return n.setStart(e,0),n.collapse(true),n;let r=0,o=[e];for(;o.length>0;){let s=o.pop();if(s.nodeType===Node.TEXT_NODE){let i=s.textContent.length;if(r+i>=t)return n.setEnd(s,t-r),n.setStart(s,t-r),n;r+=i;}else if(s.childNodes&&s.childNodes.length>0)for(let i=s.childNodes.length-1;i>=0;i--)o.push(s.childNodes[i]);}return n.setEnd(e,e.childNodes.length),n.setStart(e,e.childNodes.length),n}function j(e,t){let n=_r(e,t),r=wn();r.removeAllRanges(),r.addRange(n);}function De(e){if(!e)return null;let t=vr(e);return t?.firstElementChild??t?.firstChild}function It(e){if(!e?.[vt])return null;let t=De(e);return t?Le(t)?.classInstance:null}function vr(e){if(!e)return null;for(let t of e.children)if(t[Rr])return t;return null}var L="molecule.paragraph.Paragraph",Be="molecule.list.List";var Mt="molecule.headline.H1",wt="molecule.headline.H2",Tt="molecule.headline.H3",Pt="molecule.headline.H4",Ot="molecule.headline.H5",Pn="molecule.headline.";function g(e){return e===`
|
|
1
|
+
'use strict';var nr={abortEarly:true};function it(e,t){if(t===void 0)return e;let n=e?.cause?.key?`${t}.${e.cause.key}`:`${t}`;return {message:`Error parsing key "${n}": ${e.message}`,cause:{key:n}}}function rr(e,t,n){if(e.errors?.length)for(let r=0;r<e.errors.length;r++)t.push(it(e.errors[r],n));}function zt(e,t,n,r){if(n!==false){let o=it(e.error,t);return {success:false,error:o,errors:[o]}}rr(e,r,t);}function Ae(e){return e?.abortEarly!==void 0?e:nr}function nt(e,t){b(e,"_parse",(n,r,o)=>{let s=n(r,o);return !s.success&&t(r)?{success:true,data:r}:s});}var ue=e=>typeof e=="string"||e instanceof String,rt=e=>(typeof e=="number"||e instanceof Number)&&!Number.isNaN(e),ot=e=>e===true||e===false,or=e=>e instanceof Date&&!Number.isNaN(e.getTime()),sr=e=>typeof e=="function",ir=e=>Array.isArray(e),st=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function Wt(e,t){let n=A(st,{...t,type:"object"});n._getDescription=()=>`object({ ${Object.entries(e).map(([o,s])=>`${o}: ${s._getDescription()}`).join(", ")} })`,n._getDefinition=()=>e;let r=n;return r.derive=function(o,{when:s="always"}={}){return b(this,"_parse",(i,c,a)=>{let l=i(c,a);if(!l.success)return l;let u=o(l.data,{context:a?.context});if(!st(u)){let p={message:`derive() callback must return a plain object of overrides, got ${u===null?"null":typeof u}`};return {success:false,error:p,errors:[p]}}if(s==="missing"){let p={...l.data};for(let m in u)p[m]===void 0&&(p[m]=u[m]);return {success:true,data:p}}return {success:true,data:{...l.data,...u}}}),this},b(n,"_parse",(o,s,i)=>{let c=o(s,i),{abortEarly:a}=Ae(i);if(c.success===false)return c;let l={},u=[];for(let p in e){let m=e[p]._parse(c.data[p],i);if(m.success)l[p]=m.data;else {let d=zt(m,p,a,u);if(d)return d}}return u.length>0?{success:false,error:u[0],errors:u}:{success:true,data:l}}),r}function ct(e){return A(ue,{...e,type:"string"})}function at(e){return A(rt,{...e,type:"number"})}function lt(e){return A(ot,{...e,type:"boolean"})}function ut(e){return A(or,{...e,type:"date"})}function Xt(e){return A(sr,{...e,type:"function"})}function Jt(e,t){let n=i=>e.includes(i),r=i=>`Invalid ${o} value. Expected ${e.map(c=>`"${c}"`).join(" | ")}, received "${i}".`,o="enum",s=A(n,{message:r,...t,type:o});return s._getDescription=()=>`enum(${e.map(i=>`"${i}"`).join(" | ")})`,s._getDefinition=()=>e,s}function Qt(e,t){let n=A(ir,{...t,type:"array"});return n._getDescription=()=>`array(${e._getDescription()})`,n._getDefinition=()=>e,b(n,"_parse",(r,o,s)=>{let i=r(o,s),{abortEarly:c}=Ae(s);if(i.success===false)return i;let a=[],l=[],u=s;for(let p=0;p<i.data.length;p++){let m={...u,context:{...u?.context,index:p}},d=e._parse(i.data[p],m);if(d.success)a.push(d.data);else {let E=zt(d,p,c,l);if(E)return E}}return l.length>0?{success:false,error:l[0],errors:l}:{success:true,data:a}}),n}function Zt(){return A(()=>true)}function te(e,t){return b(t,"_parse",(n,r,o)=>(r=e(r),n(r,o))),t}function en(e,t){let n=o=>`Invalid union value. Expected the value to match one of the schemas:${e.map((s,i)=>` ${i+1}. ${s._getDescription()}`).join(",")} but received "${typeof o}" with value: ${st(o)?JSON.stringify(o):`"${o}"`}`,r=A(()=>false,{message:n,...t,type:"union"});return r._getDefinition=()=>e,b(r,"_parse",(o,s,i)=>{let c=i,a=[];for(let m=0;m<e.length;m++){let d=e[m]._parse(s,c);if(d.success)return d;a.push(d);}let{abortEarly:l}=Ae(c),u={message:typeof n=="function"?n(s):n};if(l!==false)return {success:false,error:u,errors:[u]};let p=[];for(let m=0;m<a.length;m++){let d=a[m].errors;if(d?.length)for(let E=0;E<d.length;E++)d[E].cause?.key&&p.push(it(d[E],`branch ${m}`));}return p.length===0&&p.push(u),{success:false,error:p[0],errors:p}}),r}function tn(e,t){let n=A(r=>r===e,{message:r=>t?.message?typeof t.message=="function"?t.message(r):t.message:`Expected literal value "${e}", received "${r}"`,name:t?.name,type:"literal"});return n._getDescription=()=>`literal("${e}")`,n._getDefinition=()=>e,n}function nn(e){let t=A(()=>true,{type:"contextRef"});return t._getDescription=()=>`contextRef("${e}")`,b(t,"_parse",(n,r,o)=>({success:true,data:o?.context?.[e]})),t}function rn(e,t){return {parse(n,r){let o=e.parse(r?.context??{},r);return t(o).parse(n,r)},safeParse(n,r){let o=e.safeParse(r?.context??{},r);return o.success?t(o.data).safeParse(n,r):o}}}var on={boolean(e){let t=e?.message??(n=>`Cannot cast "${n}" to boolean. Accepted: true/false, 1/0, yes/no, on/off.`);return te(n=>{let r;return ue(n)&&(r=n.toLowerCase()),r==="true"||r==="yes"||r==="on"||r==="1"||n===1?true:r==="false"||r==="no"||r==="off"||r==="0"||n===0?false:n},lt({...e,message:t}))},number(e){let t=e?.message??(n=>`Cannot cast "${n}" to a number. Expected a numeric string or number.`);return te(n=>{if(ot(n))return Number(n);if(ue(n)){let r=n.trim();if(r==="")return n;let o=Number(r);if(Number.isFinite(o))return o}return n},at({...e,message:t}))},string(e){let t=e?.message??(n=>`Cannot cast "${n}" to string. Expected a string, number, or boolean.`);return te(n=>ot(n)||rt(n)&&Number.isFinite(n)?String(n):n,ct({...e,message:t}))},date(e){let t=e?.message??(n=>`Cannot cast "${n}" to a valid date.`);return te(n=>{let r;return ue(n)&&(r=n.trim()),rt(n)&&Number.isFinite(n)||r?new Date(r??n):n},ut({...e,message:t}))},json(e,t){let n=t?.message??(r=>`Cannot parse "${r}" as JSON.`);return b(e,"_parse",(r,o,s)=>{if(ue(o))try{o=JSON.parse(o);}catch{let i={message:typeof n=="function"?n(o):n};return {success:false,error:i,errors:[i]}}return r(o,s)}),e}},sn={},f={object:Wt,string:ct,number:at,boolean:lt,date:ut,function:Xt,enum:Jt,array:Qt,any:Zt,preprocess:te,union:en,literal:tn,contextRef:nn,withContext:rn,coerce:sn,cast:on};function Gt(e){return t=>`The value "${t}" must be type of ${e} but is type of "${typeof t}".`}function b(e,t,n){let r=e[t];e[t]=(...o)=>n(r,...o);}function A(e,{type:t="any",name:n,message:r}={}){r=r||Gt(t);let o={name:n,message:r,type:t},s={_getName(){return n},_getType(){return t},_getDescription(){return this._getName()??this._getType()},_parse(i,c){let a=e(i);if(a===true)return {success:true,data:i};if(typeof a=="object"&&a?.success===true)return a;let l={message:typeof r=="function"?r(i):r};return {success:false,error:l,errors:[l]}},parse(i,c){let a=this._parse(i,c);if(!a.success)throw a=a,new Error(a.error.message,{cause:a.error.cause});return a.data},safeParse(i,c){return this._parse(i,c)},transform(i){return b(this,"_parse",(c,a,l)=>{let u=c(a,l);return u.success&&(u.data=i(u.data)),u}),this},optional(){return nt(this,i=>i===void 0),this},nullable(){return nt(this,i=>i===null),this},nullish(){return nt(this,i=>i==null),this},default(i){return b(this,"_parse",(c,a,l)=>(a===void 0&&(a=typeof i=="function"?i({context:l?.context}):i),c(a,l))),this},catch(i){return b(this,"_parse",(c,a,l)=>{let u=c(a,l);return u.success?u:{success:true,data:typeof i=="function"?i({input:a,error:u.error}):i}}),this},pipe(i){return b(this,"_parse",(c,a,l)=>{let u=c(a,l);return u.success?i._parse(u.data,l):u}),this},refine(i,{message:c,type:a,jsonSchema:l}={}){if(a&&(c=c||Gt(a),t=a),l){let u=[...this._getJsonSchemaHints?.()??[],l];this._getJsonSchemaHints=()=>u;}return b(this,"_parse",(u,p,m)=>{let d=u(p,m),{abortEarly:E}=Ae(m);if(!d.success)return d;let C=i(d.data);if(C===true||typeof C=="object"&&C?.success===true)return d;let y={message:typeof c=="function"?c(p):c};return {success:false,error:y,errors:[y]}}),this},clone(){return {...this}}};return Yt.length>0?Yt.reduce((i,c)=>c(i,e,o)??i,s):s}var Yt=[];var cn=class{next(...e){}error(...e){}complete(...e){}},ft=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var _e=Symbol("@esmj/signals:type"),fe=Symbol("@esmj/signals:name");var _=null,pt=false,mt=[];function R(e){let t=_;_=null;let n=e();return _=t,n}function lr(){pt=false;let e=fn();for(let n of e)n.get();let t=mt;mt=[];for(let n of t)n();}function an(){pt||(pt=true,queueMicrotask(lr));}function dt(e){mt.push(e),an();}var ln=Symbol("@esmj/signals:internal observable"),w=Symbol("@esmj/signals:original function"),ur=class extends ft{#e=new Set;#r=null;constructor(e){super(),this.#r=e,this.pipe(t=>{let n=t.subscribe.bind(t),r=t.unsubscribe.bind(t);return t.subscribe=o=>{n(o),this.#e.add(o);},t.unsubscribe=o=>{r(o),this.#e.delete(o);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>R(()=>{this.#e.add(e),this.#r();}),e.next[w]=void 0),e instanceof dn&&e.next[w]===void 0){let t=e.next.bind(e);e.next=()=>R(()=>{this.#e.add(e),t(),this.#r();}),e.next[w]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[w]){let n=t.get,r=n.bind(t);t.get=()=>R(()=>(this.#e.delete(t),r())),t.get[w]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[w]?e.next[w]:e.next,e.get=e.get[w]?e.get[w]:e.get,this.#e.delete(e),this.unsubscribe(e)}},Ne=null;function un(e){Ne=new ur(e);}un(()=>{an();});function fn(){return Ne.getPending()}function pn(e){return Ne.watch(e)}function mn(e){return Ne.unwatch(e)}var P=Symbol("@esmj/signals:no error"),dn=class gn extends cn{#e=true;#r=false;#t=null;#o=this.#p();#l=null;#a=null;#i=0;#s=new Map;#n=P;constructor(t,n){super(),this.#l=t,this.#a=n,this.debug=n?.debug,this[_e]="computed",this[fe]=n?.debug??null,this.get=this.get.bind(this);}#u(){for(let{unsubscribe:t}of this.#o.dependencies.values())t();this.#o.dependencies.clear();}#p(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[fe],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof gn&&R(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#t[ln].next();}get(){if(this.#r)throw new Error("Cycle detected in computed signal");if(this.#t||(this.#t=z(this.#c(),this.#a)),(this.#e||this.#n!==P)&&(this.#s.size===0||this.#f()?this.#c():this.#e=false),_&&_.sourceRevisions.set(this,this.#i),this.#n!==P)throw this.#n;return this.#t.get()}peek(){if(this.#t||(this.#t=z(this.#c(),this.#a)),(this.#e||this.#n!==P)&&(this.#s.size===0||this.#f()?this.#c():this.#e=false),this.#n!==P)throw this.#n;return this.#t.peek()}#c(){this.#r=true,this.#e=false,this.#n=P,this.#u(),this.#o.sourceRevisions.clear();let t=_;_=this.#o;let n;try{n=this.#l();}catch(r){this.#n=r;}return _=t,this.#s=this.#o.sourceRevisions,this.#o.sourceRevisions=new Map,this.#r=false,n instanceof Promise&&(n=n.then(r=>{this.#n=P,this.#t.set(r);}).catch(r=>{this.#n=r;})),this.#n===P&&this.#t&&this.#t.set(n),this.#i++,n}destroy(){this.#u(),this.#s.clear(),this.#e=true,this.#n=P;}};function W(e,t){return new dn(e,t)}function N(e,t){let n,{debug:r,...o}={},s=W(()=>{n?.(),n=e();},{equals:()=>false,...o});s.get(),pn(s);let i=()=>{n?.(),s.destroy(),mn(s);};return i[Symbol.dispose]=i,i[_e]="effect",i[fe]=r??null,i.__RX_COMPUTED__=s,i}function z(e,t={}){let n=t?.equals??Object.is,r=0,o=new ft;function s(){return _&&(_.dependencies.set(o,o.subscribe(_.observer)),_.sourceRevisions.set(l,r)),e}function i(){return e}function c(u){if(!n(e,u)){e=u,r++,o.next();}return e}function a(){return r}let l={get:s,set:c,peek:i,getRevision:a,[ln]:o,[_e]:"signal",[fe]:t?.debug??null};return l}function ve(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var Rn=Symbol("node-component"),Ie=Symbol("node-internal"),fr=Symbol("keep-literal"),Te=Symbol("raw-props");function St(e){return typeof e=="function"?e:e!=null&&typeof e.get=="function"?()=>e.get():()=>e}function xt(e,t){let n=e.children!==void 0?e.children:t;return Array.isArray(n)?n[0]:n}var pr=new Set(["template","script"]);function mr(e,t){let n=(e==null?"span":String(e)).trim(),r=n;pr.has(n.toLowerCase())&&(console.warn(`[esmj-dom] tagName "${e}" cannot render children in normal flow and is not supported as a reconciliation wrapper; falling back to "span".`),r="span");let o=document.createElement(r);return r==="span"&&(o.style.display="contents"),o.setAttribute(t,ve()),o}function Ct(e,t,n){let r=mr(e,t);return n?.id&&r.setAttribute("id",n.id),r}function bt(e){let t=null,n=()=>t,r=s=>(t=s??null,t),o={get:n,set:r,[Symbol.toPrimitive](){return t?String(t):""}};return Object.defineProperty(o,"current",{get(){return t},set(s){r(s);},enumerable:true,configurable:false}),new Proxy(o,{get(s,i,c){if(Reflect.has(s,i))return Reflect.get(s,i,c);if(!t)return;let a=t[i];return typeof a=="function"?a.bind(t):a},set(s,i,c,a){return Reflect.has(s,i)||!t?Reflect.set(s,i,c,a):(t[i]=c,true)},has(s,i){return Reflect.has(s,i)||!!t&&i in t}})}var An=null;function X(){return An}function Le(e){An=e;}function we(e){return e?.[Rn]||null}function hn(e,t){e[Rn]=t;}function Be(e,t={disposers:[],id:ve()}){return e?.[Ie]?e[Ie]:(e&&(e[Ie]=t),t)}function dr(e){return e[Ie]}function H(e,t){let n=dr(e);n||(n=Be(e)),n.disposers.push(t);}function ht(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function $(e,t){let n=X();Le(e);try{return t()}finally{Le(n);}}var Et=new Map,Me=new Map,En=new Map;function _n(e,t){let n=typeof t=="function"?t:o=>!!t?.includes(o),r=Object.create(null);for(let o of Object.keys(e)){let s=e[o];o==="children"||n(o)?r[o]=s:s?.[fr]?r[o]=s():s!=null&&typeof s.get=="function"?r[o]=s:typeof s=="function"?r[o]=W(s):r[o]=z(s);}return r}function Pe(e,t){if(e===t)return true;if(e==null||t==null||typeof e!="object"||typeof t!="object")return false;let n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?false:n.every(o=>{let s=Object.getOwnPropertyDescriptor(e,o),i=Object.getOwnPropertyDescriptor(t,o);if(!s||!i)return false;let c="value"in s?s.value:s.get?.call(e),a="value"in i?i.value:i.get?.call(t);return Pe(c,a)})}function kt(e){return {id:Symbol("context-id"),defaultValue:e}}function de(e){let t=X();return t?.contexts?.has(e.id)?t.contexts.get(e.id):e.defaultValue}function v(e){dt(()=>{setTimeout(e,0);});}function ge(e){let t=e.componentId,n=Et.get(t);if(n){Et.delete(t);for(let r of n){let o=r();typeof o=="function"&&ht(Me,t,o);}}}function gr(e){let t=Me.get(e);if(t){Me.delete(e);for(let n of t)n();}}function hr(e){let t=En.get(e);if(t){En.delete(e);for(let n of t)n();}}function Oe(e){if(!e)return;let t=Be(e);if(t?.disposers?.length){for(let r of t.disposers)try{r();}catch(o){console.error("[esmj-dom] cleanupTree: disposer threw, cleanup continues",o);}t.disposers=[];}let n=we(e);if(n&&(gr(n.componentId),hr(n.componentId)),e.childNodes){let r=e.firstChild;for(;r;){let o=r.nextSibling;Oe(r),r=o;}}}function J(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function yn(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function Er(e,t,n){let r=ve(),o={componentId:r,$children:n,element:null,classInstance:null,$constructor(){let s=yn(e)?void 0:e[Te],i={..._n(t??{},s),children:n},c=X(),a={disposers:[],id:r,contexts:new Map(c?.contexts)};Le(a);let l;if(yn(e)){o.ClassConstructor=e;let p=new e(i);o.classInstance=p,typeof p.onMount=="function"&&ht(Et,r,()=>{p.onMount?.();}),typeof p.onUnmount=="function"&&ht(Me,r,()=>{p.onUnmount?.();}),l=p.render();}else l=e(i);Le(c);let u=yr(l);if(o.element=u,u instanceof DocumentFragment&&u.childNodes.length)for(let p of u.childNodes)Be(p,a),hn(p,o);else Be(u,a),u instanceof Node&&hn(u,o);return u}};return o}function Rt(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{ge(t);});}function yr(e){return e instanceof Node?e:J(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var Sn={className:"class",htmlFor:"for"},xn=new Set(["value","defaultValue","checked","selected","indeterminate"]),Sr=new Set(["srcdoc"]),xr=new Set(["href","src","action","formaction","xlink:href"]),Cr=new Set(["securitypolicyviolation"]),br=new Set(["contenteditable","draggable","spellcheck"]);function me(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var Nn=Symbol("Fragment");function S(e,t,n){if(e===Nn){let o=document.createDocumentFragment();return yt(o,bn(n)),o}if(typeof e=="function")return Er(e,t||{},n);typeof e!="string"&&(n=t,t=e,e="div"),t=t||{};let r=document.createElement(e);return t.id&&r.setAttribute("id",t.id),De(r,t),yt(r,bn(n)),r}function gt(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function kr(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function Rr(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return Sr.has(n)?true:xr.has(n)&&t!==null&&t!==void 0&&kr(String(t))}function vn(e){return typeof e!="string"?e:Sn[e]?Sn[e]:e}function Ar(e,t){let n=vn(e),r=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return br.has(r)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function Cn(e,t,n){let r=Ar(t,n);if(r===null){e.removeAttribute(t);return}if(Rr(t,r)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,r);}function De(e,t){let n=X();for(let[r,o]of Reflect.ownKeys(t).map(s=>[s,t[s]]))if(r!=="id"){if(r=vn(r),r==="$ref"){typeof o=="function"?o(e):typeof o=="object"&&o!==null&&(o.current=e);continue}if(r==="$dangerouslySetInnerHTML"){if(me(o)){let s=N(()=>{$(n,()=>{gt(e,o.get());});});H(e,s);}else if(typeof o=="function"){let s=N(()=>{$(n,()=>{gt(e,o());});});H(e,s);}else gt(e,o);continue}if(r==="style"){if(me(o)){let s=N(()=>{$(n,()=>{Object.assign(e.style,o.get());});});H(e,s);}else typeof o=="object"&&o!==null?Object.assign(e.style,o):e.setAttribute("style",o);continue}if(typeof r=="string"&&r.startsWith("on")&&typeof o=="function"){let s=r.slice(2).toLowerCase();if(Cr.has(s)){console.warn(`[esmj-dom] Blocked unsafe event binding "${r}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(s,o);continue}if(me(o)||typeof o=="function"){let s=r,i=N(()=>{$(n,()=>{let c=typeof o=="function"?o():o.get();xn.has(s)?e[s]=c??"":Cn(e,s,c);});});H(e,i);continue}xn.has(r)||typeof r=="symbol"?e[r]=o??"":Cn(e,r,o);}}function bn(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function yt(e,t){for(let n of t)In(e,n);}function In(e,t){if(!(t==null||t===false||t===true)){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"||typeof t=="number"){e.appendChild(document.createTextNode(String(t)));return}if(typeof t=="function"){kn(e,t);return}if(J(t)){Rt(e,t);return}if(me(t)){kn(e,()=>t.get());return}if(Array.isArray(t)){yt(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function ne(e){let t=null,n=e;return J(e)&&(t=e,n=e.$constructor()),n instanceof DocumentFragment?{nodes:Array.from(n.childNodes),instance:t}:n instanceof Node?{nodes:[n],instance:t}:n==null||n===false||n===true?{nodes:[],instance:t}:{nodes:[document.createTextNode(String(n))],instance:t}}function je(e,t=true){for(let n of e)t&&Oe(n),n.remove();}function kn(e,t){let n=X(),r=document.createComment("");e.appendChild(r);let o=[],s=N(()=>{$(n,()=>{let i=t(),{nodes:c,instance:a}=ne(i);je(o),c.length&&r.after(...c),a&&queueMicrotask(()=>ge(a)),o=c;});});H(e,s);}var He=class{constructor(e){this.props=e;}};function Ln(e,t,n,r){let{equals:o=Pe,tagName:s="span",...i}=r??{},c=Ct(s,"data-for",i);De(c,i);let a=X(),l=[],u=new Map,p=W(()=>e()),m=N(()=>{let d=p.get(),E=Array.isArray(d)?d:[],C=[],y=[],G=new Set;for(let h=0;h<E.length;h++){let k=E[h],I=t(k,h);if(G.has(I)){console.error(`For: duplicate key "${String(I)}" detected; ignoring later item at index ${h}`);continue}G.add(I),C.push(k),y.push(I);}let ee=new Map(l.map(h=>[h.key,h])),j=[];for(let h=0;h<C.length;h++){let k=y[h],I=C[h],Y=ee.get(k);if(Y)u.get(k).set(I),j.push(Y),ee.delete(k);else {let Vt=z(I,{equals:o});u.set(k,Vt);let Zn={...Vt,set(){}},Ut={key:k,nodes:[]};$(a,()=>{let er=n(Zn,h),{nodes:tr,instance:qt}=ne(er);Ut.nodes=tr,qt&&queueMicrotask(()=>ge(qt));}),j.push(Ut);}}for(let[h,k]of ee)je(k.nodes),u.delete(h);let T=null;for(let h=j.length-1;h>=0;h--){let k=j[h].nodes;for(let I=k.length-1;I>=0;I--){let Y=k[I];(Y.parentNode!==c||Y.nextSibling!==T)&&c.insertBefore(Y,T),T=Y;}}l=j;});return H(c,m),c}function At(e,t,n,r){if(typeof e=="function")return Ln(e,t,n,r);let{each:o,keyFn:s,equals:i,tagName:c,children:a,...l}=e??{};if(typeof s!="function")throw new Error('For: "keyFn" prop is required and must be a function');let u=St(o),p=xt(e??{},t);return Ln(u,s,p,{...l,equals:i,tagName:c})}At[Te]=e=>e!=="each";function Mn(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(Oe(e),e.innerHTML=""),J(t)?Rt(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}var _t=vt(),Nt=vt(),Tn=vt(),Nr=Array.from({length:256},(e,t)=>(t<=15?"0":"")+t.toString(16));function vt(){return Math.floor(Math.random()*16777215)}function vr(){return Nt=(Nt+1)%16777215,Nt}function x(){let e=Math.floor(Date.now()/1e3);e=parseInt(e,10)%4294967295;let t=vr(),n=String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,e&255,_t>>16&255,_t>>8&255,_t&255,Tn>>8&255,Tn&255,t>>16&255,t>>8&255,t&255),r="";for(let o=0;o<n.length;o++)r+=Nr[n.charCodeAt(o)];return r}var It=Symbol("block-element"),Ir=Symbol("block-element-body"),O=Symbol("selectable-element");function Lt(e,t){let n=e;for(n?.nodeType===Node.TEXT_NODE&&(n=n.parentElement);n&&n[t]===void 0;)n=n.parentElement;return n??null}function Bt(e){return e?Lt(e.startContainer,It):null}function F(e){return Lt(e,It)}function wn(e){return e?Lt(e.startContainer,O):null}function Lr(e){return e?e[O]!==void 0?[e]:[...e.children].filter(t=>t[O]!==void 0):[]}function Br(e,t){return t?Lr(e).indexOf(t):-1}function he(e,t){let n=wn(t);return !n||!e?.contains(n)?null:{element:n,index:Br(e,n)}}function Pn(){return window.getSelection()}function B(){let e=Pn();return e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function $e(){let e=B();if(!e)return 0;e.collapse(true);let t=wn(e),n=Bt(e),r=t??K(n);return Fe(r,e.startContainer,e.startOffset)}function Fe(e,t,n){if(!e)return 0;if(t===e){if(t.nodeType===Node.TEXT_NODE)return n;let i=0,c=e.childNodes,a=Math.min(n,c.length);for(let l=0;l<a;l++)i+=c[l].textContent.length;return i}if(t.nodeType===Node.ELEMENT_NODE&&!e.contains(t))return 0;let r=0,o=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),s=o.nextNode();for(;s;){if(s===t)return r+n;r+=s.textContent.length,s=o.nextNode();}return r}function Mr(e,t){let n=document.createRange();if(!e)return n;if(t<=0)return n.setStart(e,0),n.collapse(true),n;let r=0,o=[e];for(;o.length>0;){let s=o.pop();if(s.nodeType===Node.TEXT_NODE){let i=s.textContent.length;if(r+i>=t)return n.setEnd(s,t-r),n.setStart(s,t-r),n;r+=i;}else if(s.childNodes&&s.childNodes.length>0)for(let i=s.childNodes.length-1;i>=0;i--)o.push(s.childNodes[i]);}return n.setEnd(e,e.childNodes.length),n.setStart(e,e.childNodes.length),n}function M(e,t){let n=Mr(e,t),r=Pn();r.removeAllRanges(),r.addRange(n);}function K(e){if(!e)return null;let t=Tr(e);return t?.firstElementChild??t?.firstChild}function Ee(e){if(!e?.[It])return null;let t=K(e);return t?we(t)?.classInstance:null}function Tr(e){if(!e)return null;for(let t of e.children)if(t[Ir])return t;return null}var L="molecule.paragraph.Paragraph",ye="molecule.list.List";var Mt="molecule.headline.H1",Tt="molecule.headline.H2",wt="molecule.headline.H3",Pt="molecule.headline.H4",Ot="molecule.headline.H5",On="molecule.headline.";function g(e){return e===`
|
|
2
2
|
`||e===`\r
|
|
3
|
-
`?"":e??""}function
|
|
4
|
-
|
|
5
|
-
`,document.head.appendChild(n);}}})();
|
|
6
|
-
`),o=n.map(s=>({text:g(s?.text),inlineStyleRanges:s?.inlineStyleRanges??[],entityRanges:s?.entityRanges??[],depth:s?.depth??0}));return I({originComponent:this.NAMESPACE,properties:{text:r,items:o},settings:t?.settings})}static fromExchangeState(t){return Fn(t,{style:t?.settings?.style})}static appendExchangeState(t,n){return Un(t,n)}parseFromHTML(t){if(!t)return this.constructor.getStateSchema(t).parse();let n=structuredClone(this.constructor.getStateSchema(t).parse()),r={inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()},o=Bt(t);if(o.length)n.properties.items=o.map(s=>Xe(s).parse(Kn(s,r)));else {let s=this.state?.peek?.()?.properties?.items;n.properties.items=s?.length?structuredClone(s):[Xe().parse()];}return n.settings={...n.settings,style:t.nodeName==="OL"?"ORDERED":t.nodeName==="UL"?"UNORDERED":this.state?.peek()?.settings?.style??n.settings?.style??"UNORDERED"},n}getFormattingTarget(t){let n=t??M(),r=Ee(this.element,n);if(!r)return null;let o=ye(this.element,r);return o<0?null:{element:r,read(s){let i=s.properties?.items?.[o];return {inlineStyleRanges:i?.inlineStyleRanges,entityRanges:i?.entityRanges}},write(s,{inlineStyleRanges:i,entityRanges:a}){let c=s.properties?.items?.[o];c&&(i!==void 0&&(c.inlineStyleRanges=i),a!==void 0&&(c.entityRanges=a));}}}_commitState(t){let n=$(this.element)??this.mrakomor._getBlockElementByComponentId(t.componentId),r=this.mrakomor._getBlockElementIndex(n);if(r===-1)return;let o=this.mrakomor.getContent();o.splice(r,1,t),this.mrakomor.setContent(o);}_buildItemContent(t){return qn(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-"),n=this.state.peek(),r=n.settings?.style==="ORDERED"?"ol":"ul",o=Rt(()=>this.state.get().properties?.items??[],(s,i)=>s.componentId??String(i),(s,i)=>E("li",{contentEditable:true,[X]:true,"data-componentid":()=>s.get().componentId,"data-item-index":()=>{let a=s.get()?.componentId,l=(this.state.get().properties?.items??[]).findIndex(u=>u.componentId===a);return String(l>=0?l:i)},"data-depth":()=>String(s.get()?.depth??0),$dangerouslySetInnerHTML:()=>{let a=s.get(),c=a?.text??"";return g(c)?A(()=>this._buildItemContent(a)):"<br>"}}),{tagName:r});return o.className=t,n.componentId&&o.setAttribute("data-componentid",n.componentId),this.element=o,o}onKeydown(t){if(t.key==="Enter"){this.#r(t);return}t.key==="Backspace"&&this.#t(t);}setCursor(t){let n=this.getState()?.properties?.items??[],r=n.length-1;if(r<0)return;let o=typeof t=="number"?t:g(n[r]?.text).length,s=()=>{let i=this.element?.querySelector(`li[data-item-index="${r}"]`);i?.isConnected&&j(i,o);};s(),O(s);}#e(t){let n=this.getState(),r=[...n.properties.items??[]],o=r[t];if(!o)return;if((o.depth??0)>0){r[t]={...o,depth:o.depth-1},this._commitState({...n,properties:{...n.properties,items:r}});let p=()=>{let m=this.element?.querySelector(`li[data-item-index="${t}"]`);m?.isConnected&&j(m,0);};p(),O(p);return}let s=$(this.element),i=this.mrakomor._getBlockElementIndex(s),a=s?.previousElementSibling??null,c=a?this.mrakomor._getBlockElementIndex(a):-1;if(t===0&&c>=0&&i===c+1){let p=this.mrakomor.getContent(),m=Vn(p,c,i);if(m){this.mrakomor._setContentState(m.content.map(d=>this.mrakomor.normalizeComponentState(d))),It(a)?.setCursor?.(m.cursor);return}}let{blocks:l,paragraphIndex:u}=$t(n,t,{Constructor:this.mrakomor.register.blocks.getByNamespace(L)});this.mrakomor.command.replaceBlockElement({blockElement:$(this.element),blocks:l,cursor:0,cursorBlockIndex:u});}#r(t){t.preventDefault();let n=M(),r=Ee(this.element,n);if(!r)return;let o=ye(this.element,r),s=Ht(r,n),i=this.getState(),a=[...i.properties.items??[]],c=a[o];if(!c)return;if(!g(c.text)){this.#e(o);return}let{before:l,after:u}=jn(c,s);a.splice(o,1,l,u),this._commitState({...i,properties:{...i.properties,items:a}}),O(()=>{let p=this.element?.querySelector(`li[data-item-index="${o+1}"]`);p&&j(p,0);});}#t(t){let n=M();if(!n?.collapsed)return;let r=Ee(this.element,n);if(!r){let i=n.startContainer;if(!(i===this.element||this.element?.contains?.(i)))return;t.preventDefault(),this.#e(0);return}let o=ye(this.element,r);Ht(r,n)===0&&(t.preventDefault(),this.#e(o));}};function Tr(e){let{mrakomor:t,blockElement:n,namespace:r}=e;if(!t||!n||!r)return;let o=t._getBlockElementState(n);if(!o||!Hn({component:r})||!He(o))return;e.preventDefault();let i=It(n)?.element,a=e.range??M(),c=i?Ee(i,a):null,l=ye(i,c);if(l<0)return;let{blocks:u,paragraphIndex:p}=$t(o,l,{namespace:r,Constructor:t.register.blocks.getByNamespace(r)});t.command.replaceBlockElement({blockElement:n,blocks:u,cursor:0,cursorBlockIndex:p});}function Gn(e){return {resolveConfig:t=>(t.blockComponents.push({component:e,label:"UL",keywords:["ul","unordered","bullet"],order:100,settings:{style:"UNORDERED"}},{component:e,label:"OL",keywords:["ol","ordered","number"],order:101,settings:{style:"ORDERED"}}),t),resolveComponent:t=>{if(t===e.NAMESPACE)return e},registerCommands(t){t.emitter.on(Ve.TRANSFORM_BLOCK_ELEMENT,Tr);}}}var Yn=e=>f.object({componentId:f.string().default(()=>y()),depth:f.number().default(0),text:f.string().default(""),entityRanges:re()}).default({}),Qe=class e extends Je{static getStateSchema(t){let n=ze(t);return f.object({component:f.string().default(e.NAMESPACE),componentId:f.string().default(t?.getAttribute("data-componentid")||y()),properties:f.object({items:f.array(Yn()).default([Yn().parse()]).transform(he)}).default({}),settings:f.object({style:f.enum(["ORDERED","UNORDERED"]).default(n??"UNORDERED")}).default({})}).default({})}getInlineStyleComponents(){return []}parseFromHTML(t){return this.constructor.getStateSchema(t).parse(super.parseFromHTML(t))}};function Pr(){return Gn(Qe)}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/paragraph/Paragraph.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===e});if(!t){var n=document.createElement("style");n.setAttribute("data-mrakomor-css",""),n.setAttribute("data-mrakomor-css-path",e),n.textContent=`.mrakomor-content p{margin-top:0}
|
|
7
|
-
`,document.head.appendChild(n);}}})();var
|
|
8
|
-
`,document.head.appendChild(n);}}})();var
|
|
9
|
-
exports.TtsHeadlineComponent=
|
|
3
|
+
`?"":e??""}function Q({component:e,originComponent:t,properties:n,settings:r}={}){let o=n??{},s=Array.isArray(o.items)?o.items:[{text:o.text??"",inlineStyleRanges:o.inlineStyleRanges??[],entityRanges:o.entityRanges??[]}];return {...e?{component:e}:{},...t?{originComponent:t}:{},properties:{items:s},...r?{settings:r}:{}}}function $n(e){let t="",n=[],r=[];return (e??[]).forEach((o,s)=>{s>0&&(t+=`
|
|
4
|
+
`);let i=t.length;t+=g(o?.text);for(let c of o?.inlineStyleRanges??[])n.push({...c,offset:c.offset+i});for(let c of o?.entityRanges??[])r.push({...c,offset:c.offset+i});}),{text:t,inlineStyleRanges:n,entityRanges:r}}function D(e){return {properties:{text:e?.text??"",inlineStyleRanges:e?.inlineStyleRanges??[],entityRanges:e?.entityRanges??[]}}}function Fn({mrakomor:e,resultIndex:t,cursor:n,fallbackBlockElement:r,itemIndex:o}){let s=()=>{if(typeof n!="number")return;let i=e._getBlockElements()[t]??r,c=Ee(i);if(c?.setCursor){c.setCursor({cursor:n,itemIndex:o});return}let a=K(i);a?.isConnected&&M(a,n);};s(),v(s);}function Dt(e){let t=e?.component??"";return t===L||t.startsWith(On)}function Ke(e){return Array.isArray(e?.properties?.items)}function wr(e,t){let n=new Set([0,t]);for(let r of e)n.add(r.offset),n.add(r.offset+r.length);return [...n].sort((r,o)=>r-o)}function Dn(e,t,n){return e.filter(r=>r.offset<=t&&r.offset+r.length>=n)}function Pr(e,t,n,{inlineStyleComponents:r,entityRangeComponents:o}){let s=e;for(let i of t){let c=r.find(a=>a.match(i));c&&(s=S(c,{},s));}for(let i of n){let c=o.find(a=>a.match(i));c&&(s=S(c,i,s));}return s}function oe(e,{inlineStyleComponents:t,entityRangeComponents:n}){let r=document.createDocumentFragment(),o=g(e.properties.text),s=e.properties.inlineStyleRanges??[],i=e.properties.entityRanges??[];if(!o)return r;let c=wr([...s,...i],o.length);for(let a=0;a<c.length-1;a+=1){let l=c[a],u=c[a+1];if(l>=u)continue;let p=o.slice(l,u),m=Pr(p,Dn(s,l,u),Dn(i,l,u),{inlineStyleComponents:t,entityRangeComponents:n});Mn(r,m);}return r}function re(e,t,n,{inlineStyleComponents:r,entityRangeComponents:o}){let s=n;for(let i of e){if(i.nodeType===Node.TEXT_NODE){s+=i.textContent.length;continue}if(i.nodeType!==Node.ELEMENT_NODE||i.nodeName==="BR")continue;let c=r.find(l=>l.match(i));if(c){let l=i.textContent.length;t.properties.inlineStyleRanges.push({style:c.style,offset:s,length:l}),s=re(i.childNodes,t,s,{inlineStyleComponents:r,entityRangeComponents:o});continue}let a=o.find(l=>l.match(i));if(a){let l=i.textContent.length;t.properties.entityRanges.push({...a.getStateSchema(i).parse(),offset:s,length:l}),s=re(i.childNodes,t,s,{inlineStyleComponents:r,entityRangeComponents:o});continue}s=re(i.childNodes,t,s,{inlineStyleComponents:r,entityRangeComponents:o});}return s}function Se(e,t){let n=g(e.properties.text),r=g(t.properties.text);return {state:{...e,properties:{...t.properties,...e.properties,text:n+r,inlineStyleRanges:[...e.properties.inlineStyleRanges??[],...(t.properties.inlineStyleRanges??[]).map(o=>({...o,offset:o.offset+n.length}))],entityRanges:[...e.properties.entityRanges??[],...(t.properties.entityRanges??[]).map(o=>({...o,offset:o.offset+n.length}))]},settings:{...t.settings,...e.settings}},cursor:n.length}}function jn(e,t){return (e??[]).filter(n=>n.offset<t).map(n=>({...n,length:Math.min(n.length,t-n.offset)}))}function Hn(e,t){return (e??[]).filter(n=>n.offset+n.length>t).map(n=>({...n,offset:Math.max(0,n.offset-t),length:n.offset+n.length-Math.max(n.offset,t)}))}function jt(e,t){let n=structuredClone(e),r=structuredClone(e);return n.properties.text=e.properties.text.slice(0,t),r.properties.text=e.properties.text.slice(t),n.properties.inlineStyleRanges=jn(e.properties.inlineStyleRanges,t),r.properties.inlineStyleRanges=Hn(e.properties.inlineStyleRanges,t),n.properties.entityRanges=jn(e.properties.entityRanges,t),r.properties.entityRanges=Hn(e.properties.entityRanges,t),r.componentId=x(),{originalLineState:n,newLineState:r}}function Ve(e,t,{namespace:n=e.constructor.NAMESPACE}={}){if(t.key!=="Enter")return false;t.preventDefault();let{originalLineState:r,newLineState:o}=jt(e.getState(),$e(e.element));return e.mrakomor.command.insertBlockElement({range:B(),cursor:0,newLineState:o,originalLineState:r,namespace:n}),true}function Ue(e,t){let n=e.constructor;if(!t)return n.getStateSchema(t).parse();let r=structuredClone(n.getStateSchema(t).parse());return re(t.childNodes,r,0,{inlineStyleComponents:e.getInlineStyleComponents(),entityRangeComponents:e.getEntityRangeComponents()}),r.properties.text=g(r.properties.text),r}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/headline/Headline.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===e});if(!t){var n=document.createElement("style");n.setAttribute("data-mrakomor-css",""),n.setAttribute("data-mrakomor-css-path",e),n.textContent=`.mrakomor-content h1,.mrakomor-content h2,.mrakomor-content h3,.mrakomor-content h4,.mrakomor-content h5{margin-top:0}
|
|
5
|
+
`,document.head.appendChild(n);}}})();var xe={KEYDOWN:"mrakomor:keydown",INPUT:"mrakomor:input",TRANSFORM_BLOCK_ELEMENT:"mrakomor:transform-block-element"};var qe=kt();var Ge=class extends He{state;element;mrakomor;constructor(t){super(t);let{state:n,observeDOMChanges:r=true}=t??{};this.state=n,this.element=null,this.mrakomor=de(qe),this._stale=false,this._observer=null,this._offInputStale=null,this._onInputMarkStale=null,this._observeDOMChanges=r;}static get NAMESPACE(){return "namespace.AbstractComponent"}static getStateSchema(){return f.object({component:f.string().default(this.NAMESPACE),properties:f.object().default({}),settings:f.object().default({})}).default({})}static getPropsSchema(){return f.object({state:this.getStateSchema(),observeDOMChanges:f.boolean().default(true)}).default({})}parseFromHTML(t){return this.constructor.getStateSchema(t).parse()}getState(){if(this._stale){let t=this.element;return this.parseFromHTML(t)}return this.state.peek()}isStale(){return this._stale}#e(){this._stale=true;}onMount(){!this.element||!this._observeDOMChanges||(this._observer=new MutationObserver(()=>{this.#e();}),this._observer.observe(this.element,{subtree:true,characterData:true,characterDataOldValue:true,childList:true,attributes:true,attributeOldValue:true}),this._onInputMarkStale=t=>{let n=t.target;n instanceof Node&&this.element?.contains(n)&&this.#e();},this.mrakomor?.emitter&&(this._offInputStale=this.mrakomor.emitter.on(xe.INPUT,this._onInputMarkStale)));}onUnmount(){this._observer&&(this._observer.disconnect(),this._observer=null),this._offInputStale?.(),this._offInputStale=null,this._onInputMarkStale=null,this._stale=false;}};var V=class extends Ge{static get NAMESPACE(){return "namespace.block.BlockComponent"}static get LABEL(){return ""}static get KEYWORDS(){return []}static get GROUP(){return "blocks"}isAtomic(){return false}setCursor({cursor:t}={}){let n=()=>{if(!this.element?.isConnected)return;let r=typeof t=="number"?t:g(this.getState()?.properties?.text).length;M(this.element,r);};n(),v(n);}onKeydown(t){}static toExchangeState(t){let n=t?.properties,r={text:g(n?.text)};return n?.inlineStyleRanges!==void 0&&(r.inlineStyleRanges=n.inlineStyleRanges),n?.entityRanges!==void 0&&(r.entityRanges=n.entityRanges),Q({originComponent:this.NAMESPACE,properties:{items:[r]},settings:t?.settings})}static fromExchangeState(t){let n=t?.properties?.items?.[0];return {properties:{text:n?.text??"",inlineStyleRanges:n?.inlineStyleRanges??[],entityRanges:n?.entityRanges??[]},settings:t?.settings}}static appendExchangeState(t,n){let r=$n(n?.properties?.items);return Se(t,D(r))}};function Ye(){return f.object({length:f.number(),offset:f.number(),style:f.string()})}function Z({type:e,data:t=f.any(),length:n,offset:r}={}){let o=e!=null,s=f.object({type:o?f.string().default(e):f.string(),data:t}),i=n??(o?0:void 0),c=r??(o?0:void 0);return f.object({entity:o?s.default({}):s,length:i==null?f.number():f.number().default(i),offset:c==null?f.number():f.number().default(c)})}function se(){return f.array(Z()).transform(e=>e.filter(t=>t.entity.type==="atom.tts.Voice")).default([])}function U(e,{component:t,properties:n,settings:r=f.object({}).default({})}){return f.object({component:f.string().default(t),componentId:f.string().default(e?.getAttribute("data-componentid")||x()),properties:f.object(n).default({}),settings:r}).default({})}var ze=class extends V{constructor(t){super(t),this._level=1;}static getStateSchema(t){return U(t,{component:this.NAMESPACE,properties:{text:f.string().default(t?.textContent??t?.innerText??"")}})}parseFromHTML(t){if(!t)return this.constructor.getStateSchema(t).parse();let n=structuredClone(this.constructor.getStateSchema(t).parse());return n.properties.text=g(n.properties.text),n}_buildContent(t){return t.properties?.text??""}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return S(`h${this._level}`,{className:t,"data-componentid":this.state.peek().componentId,contentEditable:true,[O]:true,$ref:n=>{this.element=n;},$dangerouslySetInnerHTML:()=>{let n=this.state.get(),r=n.properties?.text??"";return g(r)?R(()=>this._buildContent(n)):"<br>"}})}onKeydown(t){if(t.key==="Backspace"){this.#e(t);return}Ve(this,t,{namespace:L});}#e(t){if(!B()?.collapsed)return;let r=F(this.element);if(r?.previousElementSibling||g(this.getState()?.properties?.text))return;t.preventDefault(),this.mrakomor.command.transformBlockElement({blockElement:r,namespace:L});let o=()=>{let s=this.mrakomor.getRoot()?.querySelector(".mrakomor-content .mrakomor-block-element"),i=K(s);i?.isConnected&&M(i,0);};o(),v(o);}};var q=class extends ze{static getStateSchema(t){return U(t,{component:this.NAMESPACE,properties:{text:f.string().default(t?.textContent??t?.innerText??""),entityRanges:se()}})}getInlineStyleComponents(){return []}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}parseFromHTML(t){return Ue(this,t)}_buildContent(t){return oe(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}},We=class extends q{static get NAMESPACE(){return Mt}static get LABEL(){return "H1"}constructor(t){super(t),this._level=1;}},Ce=class extends q{static get NAMESPACE(){return Tt}static get LABEL(){return "H2"}constructor(t){super(t),this._level=2;}},be=class extends q{static get NAMESPACE(){return wt}static get LABEL(){return "H3"}constructor(t){super(t),this._level=3;}},ke=class extends q{static get NAMESPACE(){return Pt}static get LABEL(){return "H4"}constructor(t){super(t),this._level=4;}},Xe=class extends q{static get NAMESPACE(){return Ot}static get LABEL(){return "H5"}constructor(t){super(t),this._level=5;}};function Or(){return {resolveConfig:e=>(e.blockComponents.push(Ce,be,ke),e),resolveComponent:e=>{if(e===We.NAMESPACE)return We;if(e===Ce.NAMESPACE)return Ce;if(e===be.NAMESPACE)return be;if(e===ke.NAMESPACE)return ke;if(e===Xe.NAMESPACE)return Xe}}}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/list/List.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===e});if(!t){var n=document.createElement("style");n.setAttribute("data-mrakomor-css",""),n.setAttribute("data-mrakomor-css-path",e),n.textContent=`.molecule-list-list{margin:0 0 1em;padding-inline-start:1.5em}.molecule-list-list li{margin:.25em 0;outline:none}.molecule-list-list li:focus{outline:none}.molecule-list-list li[data-depth="1"]{margin-inline-start:1.5em}.molecule-list-list li[data-depth="2"]{margin-inline-start:3em}.molecule-list-list li[data-depth="3"]{margin-inline-start:4.5em}
|
|
6
|
+
`,document.head.appendChild(n);}}})();function Kn(e,t,n){let r=e._getBlockElementIndex(t);if(r===-1)return false;let o=e.getContent();return o.splice(r,1,e.normalizeComponentState(n)),e._setContentState(o),true}function Je(e){if(e?.nodeName==="OL")return "ORDERED";if(e?.nodeName==="UL")return "UNORDERED"}function ie(e=[]){let t=new Set;return e.map(n=>{if(n?.componentId&&!t.has(n.componentId))return t.add(n.componentId),n;let r=x();return t.add(r),{...n,componentId:r}})}function Un(e){return e?[...e.children].filter(t=>t.nodeName==="LI"):[]}function Ht(e,t){return !e||!t?0:Fe(e,t.startContainer,t.startOffset)}function qn(e,t){let n=D(e),{originalLineState:r,newLineState:o}=jt(n,t);return {before:{componentId:e.componentId,depth:e.depth??0,text:r.properties.text,inlineStyleRanges:r.properties.inlineStyleRanges??[],entityRanges:r.properties.entityRanges??[]},after:{componentId:x(),depth:e.depth??0,text:o.properties.text,inlineStyleRanges:o.properties.inlineStyleRanges??[],entityRanges:o.properties.entityRanges??[]}}}function Gn(e,{style:t="UNORDERED"}={}){let n=e?.properties?.items,r=Array.isArray(n)&&n.length?n.map(o=>({componentId:o?.componentId??x(),depth:o?.depth??0,text:g(o?.text??""),inlineStyleRanges:[...o?.inlineStyleRanges??[]],entityRanges:[...o?.entityRanges??[]]})):[{componentId:x(),depth:0,text:g(e?.properties?.text??""),inlineStyleRanges:[...e?.properties?.inlineStyleRanges??[]],entityRanges:[...e?.properties?.entityRanges??[]]}];return {component:ye,componentId:x(),properties:{items:r},settings:{style:t==="ORDERED"?"ORDERED":"UNORDERED"}}}function $t(e,t,{namespace:n=L,Constructor:r}={}){let o=e.properties?.items??[],s=o[t];if(!s)return {blocks:[e],paragraphIndex:0};let i=o.slice(0,t),c=o.slice(t+1),a=Q({properties:{text:s.text,inlineStyleRanges:s.inlineStyleRanges,entityRanges:s.entityRanges}}),l={component:n,componentId:x(),settings:{},...r?.fromExchangeState(a)??D(s)},u=[];return i.length&&u.push({...e,properties:{...e.properties,items:i}}),u.push(l),c.length&&u.push({...e,componentId:i.length?x():e.componentId,properties:{...e.properties,items:c}}),{blocks:u,paragraphIndex:i.length?1:0}}function Vn(e){return Ke(e)?e.settings?.style==="ORDERED"?"ORDERED":"UNORDERED":null}function Ft(e,t){let n=Vn(e),r=Vn(t);return n!=null&&n===r}function Yn(e,t,n){if(t<0||n!==t+1||n>=e.length)return null;let r=e[t],o=e[n];if(!Ft(r,o))return null;let s=[...r.properties?.items??[]],i=[...o.properties?.items??[]];if(i.length===0){let m=[...e];m.splice(n,1);let d=s.length-1,E=d>=0?g(s[d]?.text).length:0;return {content:m,listIndex:t,cursor:E}}let[c,...a]=i,l=0;if(s.length===0)s.push(c,...a),l=0;else {let m=s.length-1,d=s[m],E=D(d),C=D(c),{state:y,cursor:G}=Se(E,C);s[m]={...d,text:y.properties.text,inlineStyleRanges:y.properties.inlineStyleRanges,entityRanges:y.properties.entityRanges},a.length&&s.push(...a),l=G;}let u={...r,properties:{...r.properties,items:ie(s)}},p=[...e];return p[t]=u,p.splice(n,1),{content:p,listIndex:t,cursor:l}}function zn(e,t){let n=e.properties?.items??[],r=n.length-1;if(r<0)return null;let o=Q({properties:t?.properties}).properties.items,[s,...i]=o,c=n[r],a=D(c),l=D(s),{state:u,cursor:p}=Se(a,l),m=n.map((d,E)=>E===r?{...d,text:u.properties.text,inlineStyleRanges:u.properties.inlineStyleRanges,entityRanges:u.properties.entityRanges}:d);return i.length&&m.push(...i.map(d=>({componentId:d?.componentId??x(),depth:d?.depth??0,text:g(d?.text??""),inlineStyleRanges:d?.inlineStyleRanges??[],entityRanges:d?.entityRanges??[]}))),{state:{...e,properties:{...e.properties,items:ie(m)}},cursor:p,itemIndex:r}}function Wn(e,t){return oe({properties:{text:e?.text??"",inlineStyleRanges:e?.inlineStyleRanges??[],entityRanges:e?.entityRanges??[]}},t)}function Xn(e,t){let n=Number(e.getAttribute("data-depth")??0)||0,r={properties:{text:g(e.innerText??e.textContent??""),inlineStyleRanges:[],entityRanges:[]}};return re(e.childNodes,r,0,t),{componentId:e.getAttribute("data-componentid")||void 0,depth:n,text:g(r.properties.text),inlineStyleRanges:r.properties.inlineStyleRanges,entityRanges:r.properties.entityRanges}}var Qe=e=>f.object({componentId:f.string().default(()=>e?.getAttribute?.("data-componentid")||x()),depth:f.number().default(0),text:f.string().default(""),inlineStyleRanges:f.array(Ye()).default([]),entityRanges:f.array(Z()).default([])}).default({}),Re=class e extends V{static get NAMESPACE(){return ye}static get LABEL(){return "List"}static get GROUP(){return "lists"}getInlineStyleComponents(){return this.props?.inlineStyles?.get()??this.mrakomor.getConfig()?.inlineStyles??[]}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}static getStateSchema(t){let n=Je(t);return f.object({component:f.string().default(e.NAMESPACE),componentId:f.string().default(t?.getAttribute("data-componentid")||x()),properties:f.object({items:f.array(Qe()).default([Qe().parse()]).transform(ie)}).default({}),settings:f.object({style:f.enum(["ORDERED","UNORDERED"]).default(n??"UNORDERED")}).default({})}).default({})}static toExchangeState(t){let r=(t?.properties?.items??[]).map(o=>{let s={componentId:o?.componentId,text:g(o?.text),depth:o?.depth??0};return o?.inlineStyleRanges!==void 0&&(s.inlineStyleRanges=o.inlineStyleRanges),o?.entityRanges!==void 0&&(s.entityRanges=o.entityRanges),s});return Q({originComponent:this.NAMESPACE,properties:{items:r},settings:t?.settings})}static fromExchangeState(t){return Gn(t,{style:t?.settings?.style})}static appendExchangeState(t,n){return zn(t,n)}parseFromHTML(t){if(!t)return this.constructor.getStateSchema(t).parse();let n=structuredClone(this.constructor.getStateSchema(t).parse()),r={inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()},o=Un(t);if(o.length)n.properties.items=o.map(s=>Qe(s).parse(Xn(s,r)));else {let s=this.state?.peek?.()?.properties?.items;n.properties.items=s?.length?structuredClone(s):[Qe().parse()];}return n.settings={...n.settings,style:t.nodeName==="OL"?"ORDERED":t.nodeName==="UL"?"UNORDERED":this.state?.peek()?.settings?.style??n.settings?.style??"UNORDERED"},n}_commitState(t){let n=F(this.element)??this.mrakomor._getBlockElementByComponentId(t.componentId);Kn(this.mrakomor,n,t);}_buildItemContent(t){return Wn(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-"),n=this.state.peek(),r=n.settings?.style==="ORDERED"?"ol":"ul",o=At(()=>this.state.get().properties?.items??[],(s,i)=>s.componentId??String(i),(s,i)=>S("li",{contentEditable:true,[O]:true,"data-componentid":()=>s.get().componentId,"data-item-index":()=>{let c=s.get()?.componentId,l=(this.state.get().properties?.items??[]).findIndex(u=>u.componentId===c);return String(l>=0?l:i)},"data-depth":()=>String(s.get()?.depth??0),$dangerouslySetInnerHTML:()=>{let c=s.get(),a=c?.text??"";return g(a)?R(()=>this._buildItemContent(c)):"<br>"}}),{tagName:r});return o.className=t,n.componentId&&o.setAttribute("data-componentid",n.componentId),this.element=o,o}onKeydown(t){if(t.key==="Enter"){this.#r(t);return}t.key==="Backspace"&&this.#t(t);}setCursor({cursor:t,itemIndex:n}={}){let r=this.getState()?.properties?.items??[],o=r.length-1;if(o<0)return;let s=typeof n=="number"&&n>=0&&n<=o?n:o,i=typeof t=="number"?t:g(r[s]?.text).length,c=()=>{let a=this.element?.querySelector(`li[data-item-index="${s}"]`);a?.isConnected&&M(a,i);};c(),v(c);}#e(t){let n=this.getState(),r=[...n.properties.items??[]],o=r[t];if(!o)return;if((o.depth??0)>0){r[t]={...o,depth:o.depth-1},this._commitState({...n,properties:{...n.properties,items:r}});let p=()=>{let m=this.element?.querySelector(`li[data-item-index="${t}"]`);m?.isConnected&&M(m,0);};p(),v(p);return}let s=F(this.element),i=this.mrakomor._getBlockElementIndex(s),c=s?.previousElementSibling??null,a=c?this.mrakomor._getBlockElementIndex(c):-1;if(t===0&&a>=0&&i===a+1){let p=this.mrakomor.getContent(),m=Yn(p,a,i);if(m){let d=m.content.map((E,C)=>C===m.listIndex?this.mrakomor.normalizeComponentState(E):E);this.mrakomor._setContentState(d),Ee(c)?.setCursor?.({cursor:m.cursor});return}}let{blocks:l,paragraphIndex:u}=$t(n,t,{Constructor:this.mrakomor.register.blocks.getByNamespace(L)});this.mrakomor.command.replaceBlockElement({blockElement:F(this.element),blocks:l,cursor:0,cursorBlockIndex:u});}#r(t){t.preventDefault();let n=B(),r=he(this.element,n);if(!r)return;let{element:o,index:s}=r,i=Ht(o,n),c=this.getState(),a=[...c.properties.items??[]],l=a[s];if(!l)return;if(!g(l.text)){this.#e(s);return}let{before:u,after:p}=qn(l,i);a.splice(s,1,u,p),this._commitState({...c,properties:{...c.properties,items:a}}),v(()=>{let m=this.element?.querySelector(`li[data-item-index="${s+1}"]`);m&&M(m,0);});}#t(t){let n=B();if(!n?.collapsed)return;let r=he(this.element,n);if(!r){let c=n.startContainer;if(!(c===this.element||this.element?.contains?.(c)))return;t.preventDefault(),this.#e(0);return}let{element:o,index:s}=r;Ht(o,n)===0&&(t.preventDefault(),this.#e(s));}};function Dr(e){let{mrakomor:t,blockElement:n,namespace:r}=e;if(!t||!n||!r)return;let o=t._getBlockElementState(n);if(!o||!Dt({component:r})||!Ke(o))return;e.preventDefault();let i=Ee(n)?.element,c=e.range??B(),a=he(i,c);if(!a)return;let{index:l}=a,{blocks:u,paragraphIndex:p}=$t(o,l,{namespace:r,Constructor:t.register.blocks.getByNamespace(r)});t.command.replaceBlockElement({blockElement:n,blocks:u,cursor:0,cursorBlockIndex:p});}function jr(e){if(e.key!=="Backspace")return;let t=B();if(!t?.collapsed)return;let n=Bt(t);if(!n)return;let r=K(n),o=!g(r?.textContent),s=t.startOffset===0||$e()===0||o;if(!o||!s)return;let i=n.previousSibling;if(!i)return;let{mrakomor:c}=e,a=c._getBlockElementIndex(n),l=c._getBlockElementIndex(i);if(a<0||l<0)return;let u=c._getBlockElementState(n),p=c._getBlockElementState(i);if(!u||!Dt(u)||!p||p.component!==ye)return;let m=c.getContent(),d=m[a+1];if(!Ft(p,d))return;let C=c.register.blocks.getByNamespace(d.component)?.toExchangeState?.(d),y=C&&Re.appendExchangeState(p,C);y&&(e.preventDefault(),m.splice(a,1),m.splice(l,2,c.normalizeComponentState(y.state)),c._setContentState(m),Fn({mrakomor:c,resultIndex:l,cursor:y.cursor,fallbackBlockElement:i,itemIndex:y.itemIndex}));}function Jn(e){return {resolveConfig:t=>(t.blockComponents.push({component:e,label:"UL",keywords:["ul","unordered","bullet"],order:100,settings:{style:"UNORDERED"}},{component:e,label:"OL",keywords:["ol","ordered","number"],order:101,settings:{style:"ORDERED"}}),t),resolveComponent:t=>{if(t===e.NAMESPACE)return e},registerCommands(t){t.emitter.on(xe.TRANSFORM_BLOCK_ELEMENT,Dr),t.emitter.on(xe.KEYDOWN,jr);}}}var Qn=e=>f.object({componentId:f.string().default(()=>x()),depth:f.number().default(0),text:f.string().default(""),entityRanges:se()}).default({}),Ze=class e extends Re{static getStateSchema(t){let n=Je(t);return f.object({component:f.string().default(e.NAMESPACE),componentId:f.string().default(t?.getAttribute("data-componentid")||x()),properties:f.object({items:f.array(Qn()).default([Qn().parse()]).transform(ie)}).default({}),settings:f.object({style:f.enum(["ORDERED","UNORDERED"]).default(n??"UNORDERED")}).default({})}).default({})}getInlineStyleComponents(){return []}parseFromHTML(t){return this.constructor.getStateSchema(t).parse(super.parseFromHTML(t))}};function Hr(){return Jn(Ze)}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/paragraph/Paragraph.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===e});if(!t){var n=document.createElement("style");n.setAttribute("data-mrakomor-css",""),n.setAttribute("data-mrakomor-css-path",e),n.textContent=`.mrakomor-content p{margin-top:0}
|
|
7
|
+
`,document.head.appendChild(n);}}})();var et=class e extends V{static get NAMESPACE(){return L}static get LABEL(){return "P"}static get KEYWORDS(){return ["p","paragraph","text"]}getInlineStyleComponents(){return this.props?.inlineStyles?.get()??this.mrakomor.getConfig()?.inlineStyles??[]}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}static getStateSchema(t){return U(t,{component:e.NAMESPACE,properties:{entityRanges:f.array(Z()).default([]),inlineStyleRanges:f.array(Ye()).default([]),text:f.string().default(t?.innerText??t?.textContent??"")}})}parseFromHTML(t){return Ue(this,t)}_buildContent(t){return oe(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return S("p",{className:t,"data-componentid":this.state.peek().componentId,contentEditable:true,[O]:true,$ref:n=>{this.element=n;},$dangerouslySetInnerHTML:()=>{let n=this.state.get(),r=n.properties?.text??"";return g(r)?R(()=>this._buildContent(n)):"<br>"}})}onKeydown(t){Ve(this,t);}};var ce=class e extends et{static getStateSchema(t){return U(t,{component:e.NAMESPACE,properties:{entityRanges:se(),text:f.string().default(t?.innerText??t?.textContent??"")}})}getInlineStyleComponents(){return []}};function $r(){return {resolveConfig:e=>(e.blockComponents.push(ce),e),resolveComponent:e=>{if(e===ce.NAMESPACE)return ce}}}var tt=class extends He{static get nodeName(){return "span"}static get NAMESPACE(){return "namespace.EntityRangeElement"}static match(t){return t?.nodeName===this.nodeName.toUpperCase()||t?.entity?.type===this.NAMESPACE}static getStateSchema(t){return f.any()}constructor(t){super(t),this.mrakomor=de(qe),this.element=bt();}render(){return S(this.constructor.nodeName,{},this.props.children)}};(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/tts/TtsVoice.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===e});if(!t){var n=document.createElement("style");n.setAttribute("data-mrakomor-css",""),n.setAttribute("data-mrakomor-css-path",e),n.textContent=`.atom-tts-voice{position:relative;border-radius:2px;display:inline-block}.atom-tts-voice:before{content:attr(data-voice-label);position:absolute;top:-1.1em;left:0;font-size:10px;line-height:1;white-space:nowrap;padding:1px 4px;border-radius:3px;pointer-events:none;font-weight:600}.tts-voice--man,.tts-voice--woman{background:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 14%,white);color:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 75%,black)}.tts-voice--man:before,.tts-voice--woman:before{background:var(--tts-voice-color, #1a73e8);color:#fff}.tts-voice-toolbar{display:flex;flex-direction:column;gap:6px}.tts-voice-toolbar__row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}.tts-voice-toolbar__voice{flex-shrink:0;border:1px solid #dadce0;border-radius:4px;padding:4px 8px;font-size:12px;background:#fff;color:#333}.tts-voice-toolbar__voice--man,.tts-voice-toolbar__voice--woman{border-color:var(--tts-voice-color, #1a73e8);color:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 75%,black)}.tts-voice-toolbar__voice--active{font-weight:600}.tts-voice-toolbar__voice--man.tts-voice-toolbar__voice--active,.tts-voice-toolbar__voice--woman.tts-voice-toolbar__voice--active{background:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 16%,white)}.tts-voice-toolbar__sep{width:1px;height:18px;background:#e0e0e0;flex-shrink:0;margin:0 2px}.tts-voice-toolbar__btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#555}.tts-voice-toolbar__btn:hover{background:#f0f0f0;color:#222}.tts-voice-toolbar__btn--danger:hover{color:#d32f2f;background:#fdecea}
|
|
8
|
+
`,document.head.appendChild(n);}}})();var le=[{id:"Jarda",label:"Voice Jarda",gender:"man",color:"#1a73e8"},{id:"Pavel",label:"Voice Pavel",gender:"man",color:"#1e8e3e"},{id:"Radek",label:"Voice Radek",gender:"man",color:"#00838f"},{id:"Magda",label:"Voice Magda",gender:"woman",color:"#7b1fa2"},{id:"Marketa",label:"Voice Marketa",gender:"woman",color:"#d81b60"},{id:"Silva",label:"Voice Silva",gender:"woman",color:"#c62828"}],Fr='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/></svg>';function Kt(e){return le.find(t=>t.id===e)??le[0]}function Kr(e){let t=le.find(o=>o.id===e);if(t)return t.color;let n=0;for(let o=0;o<e.length;o++)n=n*31+e.charCodeAt(o)|0;return `hsl(${Math.abs(n)%360}, 65%, 45%)`}var ae=class e extends tt{#e;static get NAMESPACE(){return "atom.tts.Voice"}static get LABEL(){return "VOICE"}static match(t){return t?.entity?.type===e.NAMESPACE||t?.nodeName==="SPAN"&&t?.getAttribute?.("data-entity-type")===e.NAMESPACE}static getStateSchema(t){let n;if(t?.getAttribute?.("data-state"))try{n=JSON.parse(t.getAttribute("data-state"));}catch{}let r=n?.entity?.data?.voice??t?.getAttribute?.("data-voice")??"";return Z({type:e.NAMESPACE,data:f.object({voice:f.string().default(r)}).default({}),length:n?.length??0,offset:n?.offset??0}).default({})}#r({entity:t,length:n,offset:r}){let o=t.peek()?.data?.voice??"";return S("div",{className:"tts-voice-toolbar"},[S("div",{className:"tts-voice-toolbar__row"},[...le.map(s=>S("button",{type:"button",className:`tts-voice-toolbar__voice tts-voice-toolbar__voice--${s.gender}${o===s.id?" tts-voice-toolbar__voice--active":""}`,$ref:i=>i?.style.setProperty("--tts-voice-color",s.color),title:s.label,onClick:()=>{t.set({...t.peek(),data:{voice:s.id}}),this.mrakomor.command.closeDialog();}},s.label)),S("span",{className:"tts-voice-toolbar__sep"}),S("button",{type:"button",className:"tts-voice-toolbar__btn tts-voice-toolbar__btn--danger",title:"Remove TTS voice",$dangerouslySetInnerHTML:Fr,onClick:()=>{this.mrakomor.command.removeEntityRange?.({state:{entity:t.peek(),length:n.peek(),offset:r.peek()},blockElement:F(this.element)});}})])])}#t(t){this.mrakomor.command.openDialog({element:this.element,children:this.#r(t)});}onMount(){let{entity:t}=this.props;t.peek()?.data?.voice||(t.set({...t.peek(),data:{voice:le[0].id}}),this.#t(this.props)),this.#e=N(()=>{let n=t.get()?.data?.voice??"";this.element.current?.style.setProperty("--tts-voice-color",Kr(n));});}onUnmount(){this.#e?.();}render(){let{entity:t,length:n,offset:r,children:o}=this.props;return S("span",{className:()=>{let s=t.get()?.data?.voice??"";return `atom-tts-voice tts-voice--${Kt(s||"man1").gender}`},"data-entity-type":this.constructor.NAMESPACE,"data-voice":()=>t.get()?.data?.voice??"","data-voice-label":()=>{let s=t.get()?.data?.voice??"";return s?Kt(s).label:""},$ref:this.element,onClick:s=>{s.preventDefault(),this.#t({entity:t,length:n,offset:r});},"data-state":()=>JSON.stringify({entity:t.get(),length:n.get(),offset:r.get()})},o)}};function Vr(){return {resolveConfig:e=>(e.entityRanges.push(ae),e),resolveComponent:e=>{if(e===ae.NAMESPACE)return ae}}}
|
|
9
|
+
exports.TtsHeadlineComponent=q;exports.TtsList=Ze;exports.TtsParagraph=ce;exports.TtsVoice=ae;exports.VOICES=le;exports.getVoice=Kt;exports.ttsHeadlinePlugin=Or;exports.ttsListPlugin=Hr;exports.ttsParagraphPlugin=$r;exports.ttsVoicePlugin=Vr;
|
package/dist/tts.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {a as a$
|
|
2
|
-
`,document.head.appendChild(o);}}})();var
|
|
3
|
-
export{s as TtsHeadlineComponent,E as TtsList,
|
|
1
|
+
import {a as a$4}from'./chunk-6CG6EGQM.mjs';import {a}from'./chunk-TL5BHWDU.mjs';import {c as c$1,a as a$2,b as b$1,d as d$2}from'./chunk-5HWTMPF4.mjs';import'./chunk-S2W6LYHT.mjs';import'./chunk-GDDVUIEH.mjs';import {a as a$5}from'./chunk-2C6UDFD4.mjs';import {d as d$1,c,b as b$2}from'./chunk-JVQ2YGII.mjs';import'./chunk-ZHOZPQZH.mjs';import {a as a$1}from'./chunk-P7IKAZYZ.mjs';import {A,t,e,f as f$2,g as g$1,h as h$1,i}from'./chunk-FAXIFXQK.mjs';import'./chunk-B6JJAATK.mjs';import {a as a$3,f as f$1}from'./chunk-P7TUN2KD.mjs';import {p as p$1,d as d$3}from'./chunk-7CJLTNHZ.mjs';var s=class extends a{static getStateSchema(t){return d$1(t,{component:this.NAMESPACE,properties:{text:a$1.string().default(t?.textContent??t?.innerText??""),entityRanges:c()}})}getInlineStyleComponents(){return []}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}parseFromHTML(t){return A(this,t)}_buildContent(t$1){return t(t$1,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}},h=class extends s{static get NAMESPACE(){return e}static get LABEL(){return "H1"}constructor(t){super(t),this._level=1;}},d=class extends s{static get NAMESPACE(){return f$2}static get LABEL(){return "H2"}constructor(t){super(t),this._level=2;}},g=class extends s{static get NAMESPACE(){return g$1}static get LABEL(){return "H3"}constructor(t){super(t),this._level=3;}},f=class extends s{static get NAMESPACE(){return h$1}static get LABEL(){return "H4"}constructor(t){super(t),this._level=4;}},b=class extends s{static get NAMESPACE(){return i}static get LABEL(){return "H5"}constructor(t){super(t),this._level=5;}};function $(){return {resolveConfig:e=>(e.blockComponents.push(d,g,f),e),resolveComponent:e=>{if(e===h.NAMESPACE)return h;if(e===d.NAMESPACE)return d;if(e===g.NAMESPACE)return g;if(e===f.NAMESPACE)return f;if(e===b.NAMESPACE)return b}}}var j=e=>a$1.object({componentId:a$1.string().default(()=>a$3()),depth:a$1.number().default(0),text:a$1.string().default(""),entityRanges:c()}).default({}),E=class e extends c$1{static getStateSchema(t){let o=a$2(t);return a$1.object({component:a$1.string().default(e.NAMESPACE),componentId:a$1.string().default(t?.getAttribute("data-componentid")||a$3()),properties:a$1.object({items:a$1.array(j()).default([j().parse()]).transform(b$1)}).default({}),settings:a$1.object({style:a$1.enum(["ORDERED","UNORDERED"]).default(o??"UNORDERED")}).default({})}).default({})}getInlineStyleComponents(){return []}parseFromHTML(t){return this.constructor.getStateSchema(t).parse(super.parseFromHTML(t))}};function F(){return d$2(E)}var p=class e extends a$4{static getStateSchema(t){return d$1(t,{component:e.NAMESPACE,properties:{entityRanges:c(),text:a$1.string().default(t?.innerText??t?.textContent??"")}})}getInlineStyleComponents(){return []}};function J(){return {resolveConfig:e=>(e.blockComponents.push(p),e),resolveComponent:e=>{if(e===p.NAMESPACE)return p}}}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/tts/TtsVoice.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(i){return i.getAttribute("data-mrakomor-css-path")===e});if(!t){var o=document.createElement("style");o.setAttribute("data-mrakomor-css",""),o.setAttribute("data-mrakomor-css-path",e),o.textContent=`.atom-tts-voice{position:relative;border-radius:2px;display:inline-block}.atom-tts-voice:before{content:attr(data-voice-label);position:absolute;top:-1.1em;left:0;font-size:10px;line-height:1;white-space:nowrap;padding:1px 4px;border-radius:3px;pointer-events:none;font-weight:600}.tts-voice--man,.tts-voice--woman{background:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 14%,white);color:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 75%,black)}.tts-voice--man:before,.tts-voice--woman:before{background:var(--tts-voice-color, #1a73e8);color:#fff}.tts-voice-toolbar{display:flex;flex-direction:column;gap:6px}.tts-voice-toolbar__row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}.tts-voice-toolbar__voice{flex-shrink:0;border:1px solid #dadce0;border-radius:4px;padding:4px 8px;font-size:12px;background:#fff;color:#333}.tts-voice-toolbar__voice--man,.tts-voice-toolbar__voice--woman{border-color:var(--tts-voice-color, #1a73e8);color:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 75%,black)}.tts-voice-toolbar__voice--active{font-weight:600}.tts-voice-toolbar__voice--man.tts-voice-toolbar__voice--active,.tts-voice-toolbar__voice--woman.tts-voice-toolbar__voice--active{background:color-mix(in srgb,var(--tts-voice-color, #1a73e8) 16%,white)}.tts-voice-toolbar__sep{width:1px;height:18px;background:#e0e0e0;flex-shrink:0;margin:0 2px}.tts-voice-toolbar__btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#555}.tts-voice-toolbar__btn:hover{background:#f0f0f0;color:#222}.tts-voice-toolbar__btn--danger:hover{color:#d32f2f;background:#fdecea}
|
|
2
|
+
`,document.head.appendChild(o);}}})();var u=[{id:"Jarda",label:"Voice Jarda",gender:"man",color:"#1a73e8"},{id:"Pavel",label:"Voice Pavel",gender:"man",color:"#1e8e3e"},{id:"Radek",label:"Voice Radek",gender:"man",color:"#00838f"},{id:"Magda",label:"Voice Magda",gender:"woman",color:"#7b1fa2"},{id:"Marketa",label:"Voice Marketa",gender:"woman",color:"#d81b60"},{id:"Silva",label:"Voice Silva",gender:"woman",color:"#c62828"}],U='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/></svg>';function x(e){return u.find(t=>t.id===e)??u[0]}function q(e){let t=u.find(a=>a.id===e);if(t)return t.color;let o=0;for(let a=0;a<e.length;a++)o=o*31+e.charCodeAt(a)|0;return `hsl(${Math.abs(o)%360}, 65%, 45%)`}var m=class e extends a$5{#t;static get NAMESPACE(){return "atom.tts.Voice"}static get LABEL(){return "VOICE"}static match(t){return t?.entity?.type===e.NAMESPACE||t?.nodeName==="SPAN"&&t?.getAttribute?.("data-entity-type")===e.NAMESPACE}static getStateSchema(t){let o;if(t?.getAttribute?.("data-state"))try{o=JSON.parse(t.getAttribute("data-state"));}catch{}let i=o?.entity?.data?.voice??t?.getAttribute?.("data-voice")??"";return b$2({type:e.NAMESPACE,data:a$1.object({voice:a$1.string().default(i)}).default({}),length:o?.length??0,offset:o?.offset??0}).default({})}#o({entity:t,length:o,offset:i}){let a=t.peek()?.data?.voice??"";return p$1("div",{className:"tts-voice-toolbar"},[p$1("div",{className:"tts-voice-toolbar__row"},[...u.map(n=>p$1("button",{type:"button",className:`tts-voice-toolbar__voice tts-voice-toolbar__voice--${n.gender}${a===n.id?" tts-voice-toolbar__voice--active":""}`,$ref:S=>S?.style.setProperty("--tts-voice-color",n.color),title:n.label,onClick:()=>{t.set({...t.peek(),data:{voice:n.id}}),this.mrakomor.command.closeDialog();}},n.label)),p$1("span",{className:"tts-voice-toolbar__sep"}),p$1("button",{type:"button",className:"tts-voice-toolbar__btn tts-voice-toolbar__btn--danger",title:"Remove TTS voice",$dangerouslySetInnerHTML:U,onClick:()=>{this.mrakomor.command.removeEntityRange?.({state:{entity:t.peek(),length:o.peek(),offset:i.peek()},blockElement:f$1(this.element)});}})])])}#e(t){this.mrakomor.command.openDialog({element:this.element,children:this.#o(t)});}onMount(){let{entity:t}=this.props;t.peek()?.data?.voice||(t.set({...t.peek(),data:{voice:u[0].id}}),this.#e(this.props)),this.#t=d$3(()=>{let o=t.get()?.data?.voice??"";this.element.current?.style.setProperty("--tts-voice-color",q(o));});}onUnmount(){this.#t?.();}render(){let{entity:t,length:o,offset:i,children:a}=this.props;return p$1("span",{className:()=>{let n=t.get()?.data?.voice??"";return `atom-tts-voice tts-voice--${x(n||"man1").gender}`},"data-entity-type":this.constructor.NAMESPACE,"data-voice":()=>t.get()?.data?.voice??"","data-voice-label":()=>{let n=t.get()?.data?.voice??"";return n?x(n).label:""},$ref:this.element,onClick:n=>{n.preventDefault(),this.#e({entity:t,length:o,offset:i});},"data-state":()=>JSON.stringify({entity:t.get(),length:o.get(),offset:i.get()})},a)}};function z(){return {resolveConfig:e=>(e.entityRanges.push(m),e),resolveComponent:e=>{if(e===m.NAMESPACE)return m}}}
|
|
3
|
+
export{s as TtsHeadlineComponent,E as TtsList,p as TtsParagraph,m as TtsVoice,u as VOICES,x as getVoice,$ as ttsHeadlinePlugin,F as ttsListPlugin,J as ttsParagraphPlugin,z as ttsVoicePlugin};
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create and boot a Mrakomor editor. Validates `config` with
|
|
3
|
+
* `createMrakomorConfigSchema`, then always ensures `dialogPlugin`,
|
|
4
|
+
* `menuPlugin`, and `defaultMrakomorPlugin` (last).
|
|
5
|
+
* CSS is loaded via side-effect stylesheet imports on core / plugin modules.
|
|
6
|
+
* @public
|
|
7
|
+
* @param {import('#src/types.mjs').CreateMrakomorConfig} config
|
|
8
|
+
* @returns {import('#src/types.mjs').Mrakomor}
|
|
9
|
+
*/
|
|
10
|
+
export function createMrakomor(config: import("#src/types.mjs").CreateMrakomorConfig): import("#src/types.mjs").Mrakomor;
|
|
11
|
+
export class Mrakomor {
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
* @param {import('#src/types.mjs').MrakomorConfig} config
|
|
15
|
+
*/
|
|
16
|
+
constructor(config: import("#src/types.mjs").MrakomorConfig);
|
|
17
|
+
listenerAbortController: AbortController;
|
|
18
|
+
/** @type {import('#src/types.mjs').MrakomorCommand} */
|
|
19
|
+
command: import("#src/types.mjs").MrakomorCommand;
|
|
20
|
+
/** @type {import('@esmj/emitter').Emitter} */
|
|
21
|
+
emitter: import("@esmj/emitter").Emitter;
|
|
22
|
+
/** @type {import('#src/types.mjs').MrakomorRegister} */
|
|
23
|
+
register: import("#src/types.mjs").MrakomorRegister;
|
|
24
|
+
/**
|
|
25
|
+
* Boot plugins and the content signal.
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
_init(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Emit on the editor bus with `event.mrakomor` set. Always use this, not `emitter.emit`.
|
|
31
|
+
* @public
|
|
32
|
+
* @param {string} eventName
|
|
33
|
+
* @param {object} [payload] event-specific fields
|
|
34
|
+
* @returns {import('#src/types.mjs').EmitterEvent}
|
|
35
|
+
*/
|
|
36
|
+
public emit(eventName: string, payload?: object): import("#src/types.mjs").EmitterEvent;
|
|
37
|
+
/**
|
|
38
|
+
* Subscribe to an editor bus event. Same as `emitter.on`; prefer this from host code.
|
|
39
|
+
* @public
|
|
40
|
+
* @param {string} eventName
|
|
41
|
+
* @param {function(import('#src/types.mjs').EmitterEvent): void} handler
|
|
42
|
+
* @returns {function(): void} unsubscribe
|
|
43
|
+
*/
|
|
44
|
+
public on(eventName: string, handler: (arg0: import("#src/types.mjs").EmitterEvent) => void): () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Subscribe to `EVENT.CONTENT_CHANGE`. Same as `on(EVENT.CONTENT_CHANGE, handler)`.
|
|
47
|
+
* @public
|
|
48
|
+
* @param {function(import('#src/types.mjs').EmitterEvent): void} handler
|
|
49
|
+
* @returns {function(): void} unsubscribe
|
|
50
|
+
*/
|
|
51
|
+
public onChangeContent(handler: (arg0: import("#src/types.mjs").EmitterEvent) => void): () => void;
|
|
52
|
+
/**
|
|
53
|
+
* Bridge a native DOM event onto the emitter; sync `preventDefault` back to the native event.
|
|
54
|
+
* @public
|
|
55
|
+
* @param {string} eventName
|
|
56
|
+
* @param {Event} event
|
|
57
|
+
* @returns {boolean} whether the emitter event was `defaultPrevented`
|
|
58
|
+
*/
|
|
59
|
+
public emitDomEvent(eventName: string, event: Event): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Resolved editor config after plugin `resolveConfig`.
|
|
62
|
+
* @public
|
|
63
|
+
* @returns {import('#src/types.mjs').MrakomorConfig}
|
|
64
|
+
*/
|
|
65
|
+
public getConfig(): import("#src/types.mjs").MrakomorConfig;
|
|
66
|
+
/**
|
|
67
|
+
* Let plugins wrap a block vnode (gutter chrome). First non-null wrapper wins.
|
|
68
|
+
* @public
|
|
69
|
+
* @param {*} blockComponent
|
|
70
|
+
* @returns {*}
|
|
71
|
+
*/
|
|
72
|
+
public wrapBlockElement(blockComponent: any): any;
|
|
73
|
+
/**
|
|
74
|
+
* Mount root element.
|
|
75
|
+
* @public
|
|
76
|
+
* @returns {Element | null}
|
|
77
|
+
*/
|
|
78
|
+
public getRoot(): Element | null;
|
|
79
|
+
/**
|
|
80
|
+
* `.mrakomor-content` element (the contenteditable block-list container),
|
|
81
|
+
* set once by `Editor`'s `$ref` on mount. Prefer this over
|
|
82
|
+
* `getRoot().querySelector('.mrakomor-content')` for anything internal.
|
|
83
|
+
* @internal
|
|
84
|
+
* @returns {Element | null}
|
|
85
|
+
*/
|
|
86
|
+
_getContentRoot(): Element | null;
|
|
87
|
+
/**
|
|
88
|
+
* Store the `.mrakomor-content` element. Called by `Editor`'s `$ref`;
|
|
89
|
+
* not for plugin/host use.
|
|
90
|
+
* @internal
|
|
91
|
+
* @param {Element | null} element
|
|
92
|
+
*/
|
|
93
|
+
_setContentRoot(element: Element | null): void;
|
|
94
|
+
/**
|
|
95
|
+
* Generated editor DOM id used by the Editor component.
|
|
96
|
+
* @internal
|
|
97
|
+
* @returns {string}
|
|
98
|
+
*/
|
|
99
|
+
get _id(): string;
|
|
100
|
+
/**
|
|
101
|
+
* Live block states from the DOM (`getState()` per block).
|
|
102
|
+
* @public
|
|
103
|
+
* @returns {import('#src/types.mjs').BlockState[]}
|
|
104
|
+
*/
|
|
105
|
+
public getContent(): import("#src/types.mjs").BlockState[];
|
|
106
|
+
/**
|
|
107
|
+
* Replace editor content (normalized through each block schema).
|
|
108
|
+
* @public
|
|
109
|
+
* @param {import('#src/types.mjs').BlockStateInput[]} [content]
|
|
110
|
+
*/
|
|
111
|
+
public setContent(content?: import("#src/types.mjs").BlockStateInput[]): void;
|
|
112
|
+
/**
|
|
113
|
+
* Re-read `.mrakomor-block-element` nodes after render. Do not treat as source of truth.
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
_syncBlockElementsFromDom(): void;
|
|
117
|
+
/**
|
|
118
|
+
* Live block wrapper nodes (parallel to content). Not source of truth.
|
|
119
|
+
* @internal
|
|
120
|
+
* @returns {Element[]}
|
|
121
|
+
*/
|
|
122
|
+
_getBlockElements(): Element[];
|
|
123
|
+
/**
|
|
124
|
+
* Content signal (subscribes in render).
|
|
125
|
+
* @internal
|
|
126
|
+
* @returns {import('#src/types.mjs').BlockState[]}
|
|
127
|
+
*/
|
|
128
|
+
_getContentState(): import("#src/types.mjs").BlockState[];
|
|
129
|
+
/**
|
|
130
|
+
* Write the content signal, emit `CONTENT_CHANGE`, then sync `#blockElements` in `afterRender`.
|
|
131
|
+
* Listeners must use `event.content`; `getContent()` can still see old block nodes until after render.
|
|
132
|
+
* @internal
|
|
133
|
+
* @param {import('#src/types.mjs').BlockState[]} [content]
|
|
134
|
+
*/
|
|
135
|
+
_setContentState(content?: import("#src/types.mjs").BlockState[]): void;
|
|
136
|
+
/**
|
|
137
|
+
* Schema-parse every block (clone). Drops entries that fail to normalize
|
|
138
|
+
* (e.g. a stale/unresolvable read) instead of leaving an `undefined` hole.
|
|
139
|
+
* @internal
|
|
140
|
+
* @param {import('#src/types.mjs').BlockStateInput[]} [content]
|
|
141
|
+
* @returns {import('#src/types.mjs').BlockState[]}
|
|
142
|
+
*/
|
|
143
|
+
_normalizeContentState(content?: import("#src/types.mjs").BlockStateInput[]): import("#src/types.mjs").BlockState[];
|
|
144
|
+
/**
|
|
145
|
+
* Register a block wrapper node (Editor Each `onMount`).
|
|
146
|
+
* @internal
|
|
147
|
+
* @param {Element} blockElement
|
|
148
|
+
* @param {number} [index]
|
|
149
|
+
*/
|
|
150
|
+
_setBlockElement(blockElement: Element, index?: number): void;
|
|
151
|
+
/**
|
|
152
|
+
* Drop a block wrapper (Editor Each `onUnmount`).
|
|
153
|
+
* @internal
|
|
154
|
+
* @param {Element} blockElement
|
|
155
|
+
*/
|
|
156
|
+
_removeBlockElement(blockElement: Element): void;
|
|
157
|
+
/**
|
|
158
|
+
* Index of a block wrapper in `#blockElements`. Identity first; if the node is
|
|
159
|
+
* not in the map (stale ref after re-render), match by `componentId`.
|
|
160
|
+
* @internal
|
|
161
|
+
* @param {Element | null | undefined} blockElement
|
|
162
|
+
* @returns {number}
|
|
163
|
+
*/
|
|
164
|
+
_getBlockElementIndex(blockElement: Element | null | undefined): number;
|
|
165
|
+
/**
|
|
166
|
+
* Mounted wrapper for a stable `componentId`, or `null`.
|
|
167
|
+
* @internal
|
|
168
|
+
* @param {string | null | undefined} componentId
|
|
169
|
+
* @returns {Element | null}
|
|
170
|
+
*/
|
|
171
|
+
_getBlockElementByComponentId(componentId: string | null | undefined): Element | null;
|
|
172
|
+
/**
|
|
173
|
+
* Live `getState()` for one mounted wrapper (parses DOM when stale).
|
|
174
|
+
* Resolves a stale wrapper ref via `componentId`. Prefer this over
|
|
175
|
+
* `_getBlockElementIndex` + `getContent()[i]`.
|
|
176
|
+
* @internal
|
|
177
|
+
* @param {Element | null | undefined} blockElement
|
|
178
|
+
* @returns {import('#src/types.mjs').BlockState | undefined}
|
|
179
|
+
*/
|
|
180
|
+
_getBlockElementState(blockElement: Element | null | undefined): import("#src/types.mjs").BlockState | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* Mount the editor into `#root`.
|
|
183
|
+
* @public
|
|
184
|
+
* @returns {*}
|
|
185
|
+
*/
|
|
186
|
+
public mount(): any;
|
|
187
|
+
/**
|
|
188
|
+
* Unmount the editor tree.
|
|
189
|
+
* @public
|
|
190
|
+
*/
|
|
191
|
+
public unmount(): void;
|
|
192
|
+
/**
|
|
193
|
+
* Abort DOM listeners, plugin `onUnmount`, and clear the emitter.
|
|
194
|
+
* @internal
|
|
195
|
+
*/
|
|
196
|
+
_onUnmount(): void;
|
|
197
|
+
/**
|
|
198
|
+
* Plugin `onMount`, then sync `#blockElements` in `afterRender`.
|
|
199
|
+
* @internal
|
|
200
|
+
*/
|
|
201
|
+
_onMount(): void;
|
|
202
|
+
/**
|
|
203
|
+
* Vnode for a content block (`UnknownComponent` if the namespace is missing).
|
|
204
|
+
* @public
|
|
205
|
+
* @param {string} namespace
|
|
206
|
+
* @param {import('#src/types.mjs').Signal<import('#src/types.mjs').BlockState>} stateSignal
|
|
207
|
+
* @returns {*}
|
|
208
|
+
*/
|
|
209
|
+
public resolveComponent(namespace: string, stateSignal: import("#src/types.mjs").Signal<import("#src/types.mjs").BlockState>): any;
|
|
210
|
+
/**
|
|
211
|
+
* Component constructor for a namespace (`register.blocks.byNamespace()`, then plugins).
|
|
212
|
+
* @public
|
|
213
|
+
* @param {string} namespace
|
|
214
|
+
* @returns {import('#src/types.mjs').ComponentConstructor | undefined}
|
|
215
|
+
*/
|
|
216
|
+
public resolveComponentConstructor(namespace: string): import("#src/types.mjs").ComponentConstructor | undefined;
|
|
217
|
+
/**
|
|
218
|
+
* `Constructor.getStateSchema().parse(state)` for a block or entity namespace.
|
|
219
|
+
* Returns `undefined` (with a `console.warn`) for a nullish `state` instead of
|
|
220
|
+
* throwing — a defensive guard against a stale/unresolvable block read (e.g.
|
|
221
|
+
* `getContent()` producing a hole when a wrapper's live instance isn't resolvable
|
|
222
|
+
* yet, see `agents/domains/content-sync.md`), so one bad entry can't crash an
|
|
223
|
+
* otherwise-valid `_normalizeContentState()` pass over the rest of the content.
|
|
224
|
+
* @public
|
|
225
|
+
* @param {import('#src/types.mjs').ComponentStateInput} state
|
|
226
|
+
* @returns {import('#src/types.mjs').ComponentState | undefined}
|
|
227
|
+
*/
|
|
228
|
+
public normalizeComponentState(state: import("#src/types.mjs").ComponentStateInput): import("#src/types.mjs").ComponentState | undefined;
|
|
229
|
+
#private;
|
|
230
|
+
}
|