@bloklabs/vue 1.2.6 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +62 -52
- package/package.json +2 -2
- package/src/BlokEditor.ts +1 -1
- package/src/block-portal-registry.ts +1 -1
- package/src/createVueBlock.ts +1 -1
- package/src/provide-blok.ts +1 -1
- package/src/useBlok.ts +21 -2
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`vue`),t=require(`@bloklabs/core`),n=require(`@bloklabs/core/adapters`);var r=new WeakMap;function i(e,t){r.set(e,t)}function a(e){return r.get(e)}function o(e){r.delete(e)}function s(e){"@babel/helpers - typeof";return s=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},s(e)}function c(e,t){if(s(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(s(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e){var t=c(e,`string`);return s(t)==`symbol`?t:t+``}function u(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?d(Object(n),!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var p=Symbol(`BLOK_DEFAULT_CONFIG`);function m(t){(0,e.provide)(p,t)}function h(){return(0,e.inject)(p,{})}function g(e,t){if(Object.keys(e).length===0)return t;let n=f({},e);for(let e of Object.keys(t)){let r=t[e];r!==void 0&&(n[e]=r)}return(e.tools!==void 0||t.tools!==void 0)&&(n.tools=f(f({},e.tools),t.tools)),n}var _=`__blokPortalRegistry`,v=()=>{let t=(0,e.reactive)(new Map);return{entries:t,register(n,r){t.set(n,(0,e.markRaw)(r))},unregister(e){t.delete(e)},setProps(e,n){let r=t.get(e);r!==void 0&&Object.assign(r.props,n)}}},y=new WeakMap;function b(e,t){y.set(e,t)}function x(e){return y.get(e)}function S(e){y.delete(e)}var C=(e,t)=>{if(typeof e!=`object`||!e)return e;let n={};for(let[i,a]of Object.entries(e)){var r;let e=typeof a==`function`?a:a==null?void 0:a.class;if(!(typeof e==`function`&&e.__isBlokVueBlock===!0)){n[i]=a;continue}let o=typeof a==`function`?{class:a}:f({},a);o.config=f(f({},(r=o.config)==null?{}:r),{},{[_]:t}),n[i]=o}return n};function w(r,a){let s=(0,e.shallowRef)(null),c=(0,e.inject)(p,{}),l=()=>g(c,(0,e.toValue)(r)),u={current:null,holder:null,lastRenderedData:l().data,seededEditor:null,renderChain:Promise.resolve()},d=()=>{let t=f({},g((0,e.toRaw)(c),(0,e.toRaw)((0,e.toValue)(r))));return delete t.holder,t.data!==void 0&&(t.data=(0,e.toRaw)(t.data)),t},m=()=>{if(u.current!==null){o(u.current),S(u.current);try{u.current.destroy()}catch(e){}}u.current=null,u.holder=null,s.value=null},h=()=>{let e=document.createElement(`div`);u.holder=e;let n=d(),r=v();n.tools!==void 0&&(n.tools=C(n.tools,r)),typeof n.onSave==`function`&&(n.onSave=(...e)=>{var t,n;u.lastRenderedData=e[0],(t=(n=l()).onSave)==null||t.call(n,...e)});let a=new t.Blok(f(f({},n),{},{holder:e}));u.current=a,i(a,e),b(a,r),a.isReady.then(()=>{u.current===a&&(s.value=a)}).catch(()=>{u.current===a&&m()})};return(0,e.watch)([s,()=>(0,n.normalizeReadOnlyConfig)(l().readOnly).enabled],([e,t])=>{e&&e.readOnly.set(t)},{immediate:!0}),(0,e.watch)([s,()=>l().theme],([e,t])=>{e&&t!==void 0&&e.theme.set(t)},{immediate:!0}),(0,e.watch)([s,()=>l().width],([e,t])=>{e&&t!==void 0&&e.width.set(t)},{immediate:!0}),(0,e.watch)([s,()=>l().placeholder],([e,t])=>{e&&t!==void 0&&e.placeholder.set(t)},{immediate:!0}),(0,e.watch)([s,()=>l().autofocus],([e,t])=>{e&&t&&e.focus()},{immediate:!0}),(0,e.watch)([s,()=>l().data],([t,r])=>{if(!(!t||r===void 0)){if(u.seededEditor!==t){u.seededEditor=t,u.lastRenderedData=r;return}(0,n.deepEqual)(r,u.lastRenderedData)||(u.lastRenderedData=r,u.renderChain=u.renderChain.catch(()=>void 0).then(()=>t.render((0,e.toRaw)(r))))}},{immediate:!0}),a!==void 0&&(0,e.watch)(()=>(0,e.toValue)(a),()=>{m(),h()}),(0,e.onMounted)(h),(0,e.onBeforeUnmount)(m),s}var T=`block changed`;function E(t){let r=(0,e.shallowRef)(0),i=()=>{let n=(0,e.toValue)(t);return n===null?null:(0,e.toRaw)(n)},a=()=>{r.value},o=(0,e.shallowRef)(n.EMPTY_API),s={editor:null,handler:null},c=()=>{s.editor!==null&&s.handler!==null&&s.editor.off(T,s.handler),s.editor=null,s.handler=null};return(0,e.watch)(()=>i(),e=>{if(c(),r.value+=1,e===null){o.value=n.EMPTY_API;return}let t=()=>{r.value+=1};e.on(T,t),s.editor=e,s.handler=t,o.value=(0,n.createBlocksApiForEditor)(e,a)},{immediate:!0}),(0,e.onScopeDispose)(c),{getById:e=>o.value.getById(e),getChildren:e=>o.value.getChildren(e),insert:e=>o.value.insert(e),insertMany:e=>o.value.insertMany(e),insertTree:e=>o.value.insertTree(e),insertMarkdown:(e,t)=>o.value.insertMarkdown(e,t),exportMarkdown:()=>o.value.exportMarkdown(),move:(e,t)=>o.value.move(e,t),nest:(e,t)=>o.value.nest(e,t),unnest:e=>o.value.unnest(e),remove:e=>o.value.remove(e),update:(e,t,n)=>o.value.update(e,t,n),convert:(e,t,n,r)=>o.value.convert(e,t,n,r),transact:e=>o.value.transact(e),transactWithoutCapture:e=>o.value.transactWithoutCapture(e),getBlocksCount:()=>o.value.getBlocksCount(),getCurrentBlockIndex:()=>o.value.getCurrentBlockIndex(),getBlockByIndex:e=>o.value.getBlockByIndex(e),getBlockByElement:e=>o.value.getBlockByElement(e),getBlockData:e=>o.value.getBlockData(e),getBlockIndex:e=>o.value.getBlockIndex(e),composeBlockData:e=>o.value.composeBlockData(e),renderFromHTML:e=>o.value.renderFromHTML(e),insertOutputData:(e,t)=>o.value.insertOutputData(e,t),splitBlock:(e,t,n,r,i)=>o.value.splitBlock(e,t,n,r,i),insertInsideParent:(e,t,n)=>o.value.insertInsideParent(e,t,n),render:e=>o.value.render(e),clear:()=>o.value.clear(),isSyncingFromYjs:()=>o.value.isSyncingFromYjs()}}var D=(0,e.defineComponent)({name:`BlockErrorBoundary`,setup(t,{slots:n}){return(0,e.onErrorCaptured)(()=>!1),()=>{var e;return(e=n.default)==null?void 0:e.call(n)}}}),O=(0,e.defineComponent)({name:`BlockPortalHost`,props:{registry:{type:Object,required:!0}},setup(t){return()=>(0,e.h)(e.Fragment,Array.from(t.registry.entries.entries()).map(([t,n])=>(0,e.h)(e.Teleport,{key:t,to:n.hostEl},[(0,e.h)(D,null,{default:()=>(0,e.h)(n.component,n.props)})])))}}),k=(0,e.defineComponent)({name:`BlokContent`,props:{editor:{type:Object,default:null}},setup(t){let n=(0,e.ref)(null),r=t=>{if(n.value===null||t===null)return;let r=a((0,e.toRaw)(t));r!==void 0&&n.value.appendChild(r)},i=t=>{var n;t!==null&&((n=a((0,e.toRaw)(t)))==null||n.remove())};return(0,e.onMounted)(()=>{r(t.editor)}),(0,e.watch)(()=>t.editor,(e,t)=>{i(t==null?null:t),r(e)}),(0,e.onBeforeUnmount)(()=>{i(t.editor)}),()=>{let r=t.editor,i=r===null?void 0:x((0,e.toRaw)(r));return(0,e.h)(`div`,{ref:n},i===void 0?[]:[(0,e.h)(O,{registry:i})])}}}),A=`autofocus.defaultBlock.dataModel.placeholder.sanitizer.hideToolbar.maxHistoryLength.historyDebounceTime.newGroupDelay.globalUndoRedo.tools.data.minHeight.logLevel.readOnly.i18n.link.linkPaste.inlineToolbar.tunes.style.theme.scrollToBlock.user.resolveUser.notifierPosition.notifier.width.onBeforeRender.onBeforePaste.onEnter`.split(`.`),j=(0,e.defineComponent)({name:`BlokEditor`,inheritAttrs:!1,props:{autofocus:{type:Boolean,default:void 0},defaultBlock:{type:String,default:void 0},dataModel:{type:String,default:void 0},placeholder:{type:[String,Boolean],default:void 0},sanitizer:{type:Object,default:void 0},hideToolbar:{type:Boolean,default:void 0},maxHistoryLength:{type:Number,default:void 0},historyDebounceTime:{type:Number,default:void 0},newGroupDelay:{type:Number,default:void 0},globalUndoRedo:{type:Boolean,default:void 0},tools:{type:Object,default:void 0},data:{type:Object,default:void 0},minHeight:{type:Number,default:void 0},logLevel:{type:String,default:void 0},readOnly:{type:Boolean,default:void 0},i18n:{type:Object,default:void 0},link:{type:Object,default:void 0},linkPaste:{type:Object,default:void 0},inlineToolbar:{type:[Array,Boolean],default:void 0},tunes:{type:Array,default:void 0},style:{type:Object,default:void 0},theme:{type:String,default:void 0},scrollToBlock:{type:Object,default:void 0},user:{type:Object,default:void 0},resolveUser:{type:Function,default:void 0},notifierPosition:{type:String,default:void 0},notifier:{type:Function,default:void 0},width:{type:String,default:void 0},onBeforeRender:{type:Function,default:void 0},onBeforePaste:{type:Function,default:void 0},onEnter:{type:Function,default:void 0},recreateKey:{type:null}},emits:{ready:e=>!0,change:e=>!0,save:e=>!0,"update:data":e=>!0,"after-render":e=>!0,"theme-change":e=>!0,"blocks-rendered":e=>!0,"block-rendered":e=>!0},setup(t,{emit:n,expose:r,attrs:i}){let a=(0,e.getCurrentInstance)(),o=e=>{let t=a==null?void 0:a.vnode.props;return t!=null&&e in t},s=()=>{let e={};for(let n of A){let r=t[n];r!==void 0&&(e[n]=r)}return o(`onChange`)&&(e.onChange=(e,t)=>{n(`change`,{api:e,event:t})}),(o(`onSave`)||o(`onUpdate:data`))&&(e.onSave=e=>{n(`update:data`,e),n(`save`,e)}),o(`onAfterRender`)&&(e.onAfterRender=e=>{n(`after-render`,e)}),o(`onThemeChange`)&&(e.onThemeChange=e=>{n(`theme-change`,e)}),e},c=w(()=>s(),()=>t.recreateKey);(0,e.watch)(c,(e,t,r)=>{if(e===null)return;let i=[];if(o(`onBlocksRendered`)){let t=e=>n(`blocks-rendered`,e);e.on(`blocks:rendered`,t),i.push([`blocks:rendered`,t])}if(o(`onBlockRendered`)){let t=e=>n(`block-rendered`,e);e.on(`block:rendered`,t),i.push([`block:rendered`,t])}r(()=>{for(let[t,n]of i)e.off(t,n)})});let l={last:null};return(0,e.watch)(c,e=>{e!==null&&e!==l.last&&(l.last=e,n(`ready`,e))}),r({instance:(0,e.computed)(()=>c.value),save:()=>{var e;return(e=c.value)==null?void 0:e.save()},focus:e=>{var t;(t=c.value)==null||t.focus(e)},render:e=>{var t;return(t=c.value)==null?void 0:t.render(e)}}),()=>(0,e.h)(k,f({editor:c.value},i))}});function M(t){var r;let i=(0,e.defineComponent)({name:`VueBlock(${t.type})`,props:{ctx:{type:Object,required:!0}},setup(e){return t.setup(e.ctx)}});return r=class{static get toolbox(){return t.toolbox}static get isReadOnlySupported(){return!0}constructor(r){var i,a;this.hostEl=null,this.pendingDispatch=!1,this.commit=e=>{let r=(0,n.fillDefaults)(t.propSchema,f(f({},this.mirror),e));(0,n.deepEqual)(r,this.mirror)||(this.mirror=r,this.lastRendered=r,this.dataRef.value=r,this.flushDispatch())},this.blockApi=r.block;let o=(i=r.config)==null?{}:i;this.registry=o[_];let s=r.api;this.pointerDrag=()=>{var e;return(s==null||(e=s.blocks)==null?void 0:e.isPointerDragActive)===!0},this.mirror=(0,n.fillDefaults)(t.propSchema,(0,e.toRaw)((a=r.data)==null?{}:a)),this.lastRendered=this.mirror,this.dataRef=(0,e.shallowRef)(this.mirror),this.readOnlyRef=(0,e.shallowRef)(r.readOnly);let c=this.blockApi;this.childrenComponent=(0,e.defineComponent)({name:`VueBlockChildren(${t.type})`,setup(){let t=(0,e.ref)(null),r=()=>{t.value!==null&&(0,n.mountChildBlocks)(t.value,c.getChildren())};return(0,e.onMounted)(r),(0,e.onUpdated)(r),()=>(0,e.h)(`div`,{ref:t,[n.DATA_ATTR.nestedBlocks]:``})}})}render(){var e;let t=document.createElement(`div`);t.setAttribute(`data-blok-mutation-free`,`true`),this.hostEl=t;let n={data:this.dataRef,commit:this.commit,block:this.blockApi,readOnly:this.readOnlyRef,BlockChildren:this.childrenComponent};return(e=this.registry)==null||e.register(this.blockApi.id,{hostEl:t,component:i,props:{ctx:n}}),t}rendered(){var e;(e=t.onRendered)==null||e.call(t,this.blockApi)}save(){return this.mirror}async setData(r){var i=this;let a=(0,n.fillDefaults)(t.propSchema,(0,e.toRaw)(r==null?{}:r));return(0,n.deepEqual)(a,i.lastRendered)?!0:(i.mirror=a,i.lastRendered=a,i.dataRef.value=a,await(0,e.nextTick)(),!0)}setReadOnly(e){this.readOnlyRef.value=e}moved(){var e;(e=t.onMoved)==null||e.call(t,this.blockApi)}removed(){var e,n;(e=this.registry)==null||e.unregister(this.blockApi.id),(n=t.onRemoved)==null||n.call(t,this.blockApi)}destroy(){var e;(e=this.registry)==null||e.unregister(this.blockApi.id)}flushDispatch(){if(!this.pointerDrag()){this.pendingDispatch=!1,this.blockApi.dispatchChange();return}if(this.pendingDispatch)return;this.pendingDispatch=!0;let e=()=>{if(this.pointerDrag()){requestAnimationFrame(e);return}this.pendingDispatch=!1,this.blockApi.dispatchChange()};requestAnimationFrame(e)}},r.__isBlokVueBlock=!0,r}exports.BLOK_DEFAULT_CONFIG=p,exports.BlokContent=k,exports.BlokEditor=j,exports.createVueBlock=M,exports.provideBlok=m,exports.useBlocks=E,exports.useBlok=w,exports.useBlokDefaults=h;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("vue"),t=require("@bloklabs/core"),n=require("@bloklabs/core/adapters");var r=new WeakMap;function i(e,t){r.set(e,t)}function a(e){return r.get(e)}function o(e){r.delete(e)}function s(e){"@babel/helpers - typeof";return s=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},s(e)}function c(e,t){if(s(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(s(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e){var t=c(e,`string`);return s(t)==`symbol`?t:t+``}function u(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?d(Object(n),!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var p=Symbol(`BLOK_DEFAULT_CONFIG`);function m(t){(0,e.provide)(p,t)}function h(){return(0,e.inject)(p,{})}function g(e,t){if(Object.keys(e).length===0)return t;let n=f({},e);for(let e of Object.keys(t)){let r=t[e];r!==void 0&&(n[e]=r)}return(e.tools!==void 0||t.tools!==void 0)&&(n.tools=f(f({},e.tools),t.tools)),n}var _=`__blokPortalRegistry`,v=()=>{let t=(0,e.reactive)(new Map);return{entries:t,register(n,r){t.set(n,(0,e.markRaw)(r))},unregister(e){t.delete(e)},setProps(e,n){let r=t.get(e);r!==void 0&&Object.assign(r.props,n)}}},y=new WeakMap;function b(e,t){y.set(e,t)}function x(e){return y.get(e)}function S(e){y.delete(e)}var C=(e,t)=>{if(typeof e!=`object`||!e)return e;let n={};for(let[i,a]of Object.entries(e)){var r;let e=typeof a==`function`?a:a==null?void 0:a.class;if(!(typeof e==`function`&&e.__isBlokVueBlock===!0)){n[i]=a;continue}let o=typeof a==`function`?{class:a}:f({},a);o.config=f(f({},(r=o.config)==null?{}:r),{},{[_]:t}),n[i]=o}return n};function w(r,a){let s=(0,e.shallowRef)(null),c=(0,e.inject)(p,{}),l=()=>g(c,(0,e.toValue)(r)),u={current:null,holder:null,lastRenderedData:l().data,seededEditor:null,renderChain:Promise.resolve()},d=()=>{let t=f({},g((0,e.toRaw)(c),(0,e.toRaw)((0,e.toValue)(r))));return delete t.holder,t.data!==void 0&&(t.data=(0,e.toRaw)(t.data)),t},m=()=>{if(u.current!==null){o(u.current),S(u.current);try{u.current.destroy()}catch(e){}}u.current=null,u.holder=null,s.value=null},h=()=>{let e=document.createElement(`div`);u.holder=e;let n=d(),r=v();n.tools!==void 0&&(n.tools=C(n.tools,r)),typeof n.onSave==`function`&&(n.onSave=(...e)=>{var t,n;u.lastRenderedData=e[0],(t=(n=l()).onSave)==null||t.call(n,...e)});let a=new t.Blok(f(f({},n),{},{holder:e}));u.current=a,i(a,e),b(a,r),a.isReady.then(()=>{u.current===a&&(s.value=a)}).catch(()=>{u.current===a&&m()})};(0,e.watch)([s,()=>(0,n.normalizeReadOnlyConfig)(l().readOnly).enabled],([e,t])=>{e&&e.readOnly.set(t)},{immediate:!0}),(0,e.watch)([s,()=>l().theme],([e,t])=>{e&&t!==void 0&&e.theme.set(t)},{immediate:!0}),(0,e.watch)([s,()=>l().width],([e,t])=>{e&&t!==void 0&&e.width.set(t)},{immediate:!0}),(0,e.watch)([s,()=>l().placeholder],([e,t])=>{e&&t!==void 0&&e.placeholder.set(t)},{immediate:!0});let _={value:void 0};return(0,e.watch)([s,()=>{var e;return(e=l().style)==null?void 0:e.tokens}],([e,t])=>{!e||t===void 0||(0,n.deepEqual)(t,_.value)||(_.value=f({},t),e.tokens.set(t))},{immediate:!0,deep:!0}),(0,e.watch)([s,()=>l().autofocus],([e,t])=>{e&&t&&e.focus()},{immediate:!0}),(0,e.watch)([s,()=>l().data],([t,r])=>{if(!(!t||r===void 0)){if(u.seededEditor!==t){u.seededEditor=t,u.lastRenderedData=r;return}(0,n.deepEqual)(r,u.lastRenderedData)||(u.lastRenderedData=r,u.renderChain=u.renderChain.catch(()=>void 0).then(()=>t.render((0,e.toRaw)(r))))}},{immediate:!0}),a!==void 0&&(0,e.watch)(()=>(0,e.toValue)(a),()=>{m(),h()}),(0,e.onMounted)(h),(0,e.onBeforeUnmount)(m),s}var T=`block changed`;function E(t){let r=(0,e.shallowRef)(0),i=()=>{let n=(0,e.toValue)(t);return n===null?null:(0,e.toRaw)(n)},a=()=>{r.value},o=(0,e.shallowRef)(n.EMPTY_API),s={editor:null,handler:null},c=()=>{s.editor!==null&&s.handler!==null&&s.editor.off(T,s.handler),s.editor=null,s.handler=null};return(0,e.watch)(()=>i(),e=>{if(c(),r.value+=1,e===null){o.value=n.EMPTY_API;return}let t=()=>{r.value+=1};e.on(T,t),s.editor=e,s.handler=t,o.value=(0,n.createBlocksApiForEditor)(e,a)},{immediate:!0}),(0,e.onScopeDispose)(c),{getById:e=>o.value.getById(e),getChildren:e=>o.value.getChildren(e),insert:e=>o.value.insert(e),insertMany:e=>o.value.insertMany(e),insertTree:e=>o.value.insertTree(e),insertMarkdown:(e,t)=>o.value.insertMarkdown(e,t),exportMarkdown:()=>o.value.exportMarkdown(),move:(e,t)=>o.value.move(e,t),nest:(e,t)=>o.value.nest(e,t),unnest:e=>o.value.unnest(e),remove:e=>o.value.remove(e),update:(e,t,n)=>o.value.update(e,t,n),convert:(e,t,n,r)=>o.value.convert(e,t,n,r),transact:e=>o.value.transact(e),transactWithoutCapture:e=>o.value.transactWithoutCapture(e),getBlocksCount:()=>o.value.getBlocksCount(),getCurrentBlockIndex:()=>o.value.getCurrentBlockIndex(),getBlockByIndex:e=>o.value.getBlockByIndex(e),getBlockByElement:e=>o.value.getBlockByElement(e),getBlockData:e=>o.value.getBlockData(e),getBlockIndex:e=>o.value.getBlockIndex(e),composeBlockData:e=>o.value.composeBlockData(e),renderFromHTML:e=>o.value.renderFromHTML(e),insertOutputData:(e,t)=>o.value.insertOutputData(e,t),splitBlock:(e,t,n,r,i)=>o.value.splitBlock(e,t,n,r,i),insertInsideParent:(e,t,n)=>o.value.insertInsideParent(e,t,n),render:e=>o.value.render(e),clear:()=>o.value.clear(),isSyncingFromYjs:()=>o.value.isSyncingFromYjs()}}var D=(0,e.defineComponent)({name:`BlockErrorBoundary`,setup(t,{slots:n}){return(0,e.onErrorCaptured)(()=>!1),()=>{var e;return(e=n.default)==null?void 0:e.call(n)}}}),O=(0,e.defineComponent)({name:`BlockPortalHost`,props:{registry:{type:Object,required:!0}},setup(t){return()=>(0,e.h)(e.Fragment,Array.from(t.registry.entries.entries()).map(([t,n])=>(0,e.h)(e.Teleport,{key:t,to:n.hostEl},[(0,e.h)(D,null,{default:()=>(0,e.h)(n.component,n.props)})])))}}),k=(0,e.defineComponent)({name:`BlokContent`,props:{editor:{type:Object,default:null}},setup(t){let n=(0,e.ref)(null),r=t=>{if(n.value===null||t===null)return;let r=a((0,e.toRaw)(t));r!==void 0&&n.value.appendChild(r)},i=t=>{var n;t!==null&&((n=a((0,e.toRaw)(t)))==null||n.remove())};return(0,e.onMounted)(()=>{r(t.editor)}),(0,e.watch)(()=>t.editor,(e,t)=>{i(t==null?null:t),r(e)}),(0,e.onBeforeUnmount)(()=>{i(t.editor)}),()=>{let r=t.editor,i=r===null?void 0:x((0,e.toRaw)(r));return(0,e.h)(`div`,{ref:n},i===void 0?[]:[(0,e.h)(O,{registry:i})])}}}),A=`autofocus.defaultBlock.dataModel.placeholder.sanitizer.hideToolbar.maxHistoryLength.historyDebounceTime.newGroupDelay.globalUndoRedo.tools.data.minHeight.logLevel.readOnly.i18n.link.linkPaste.inlineToolbar.tunes.style.theme.scrollToBlock.user.resolveUser.notifierPosition.notifier.width.onBeforeRender.onBeforePaste.onEnter`.split(`.`),j=(0,e.defineComponent)({name:`BlokEditor`,inheritAttrs:!1,props:{autofocus:{type:Boolean,default:void 0},defaultBlock:{type:String,default:void 0},dataModel:{type:String,default:void 0},placeholder:{type:[String,Boolean],default:void 0},sanitizer:{type:Object,default:void 0},hideToolbar:{type:Boolean,default:void 0},maxHistoryLength:{type:Number,default:void 0},historyDebounceTime:{type:Number,default:void 0},newGroupDelay:{type:Number,default:void 0},globalUndoRedo:{type:Boolean,default:void 0},tools:{type:Object,default:void 0},data:{type:Object,default:void 0},minHeight:{type:Number,default:void 0},logLevel:{type:String,default:void 0},readOnly:{type:Boolean,default:void 0},i18n:{type:Object,default:void 0},link:{type:Object,default:void 0},linkPaste:{type:Object,default:void 0},inlineToolbar:{type:[Array,Boolean],default:void 0},tunes:{type:Array,default:void 0},style:{type:Object,default:void 0},theme:{type:String,default:void 0},scrollToBlock:{type:Object,default:void 0},user:{type:Object,default:void 0},resolveUser:{type:Function,default:void 0},notifierPosition:{type:String,default:void 0},notifier:{type:Function,default:void 0},width:{type:String,default:void 0},onBeforeRender:{type:Function,default:void 0},onBeforePaste:{type:Function,default:void 0},onEnter:{type:Function,default:void 0},recreateKey:{type:null}},emits:{ready:e=>!0,change:e=>!0,save:e=>!0,"update:data":e=>!0,"after-render":e=>!0,"theme-change":e=>!0,"blocks-rendered":e=>!0,"block-rendered":e=>!0},setup(t,{emit:n,expose:r,attrs:i}){let a=(0,e.getCurrentInstance)(),o=e=>{let t=a==null?void 0:a.vnode.props;return t!=null&&e in t},s=()=>{let e={};for(let n of A){let r=t[n];r!==void 0&&(e[n]=r)}return o(`onChange`)&&(e.onChange=(e,t)=>{n(`change`,{api:e,event:t})}),(o(`onSave`)||o(`onUpdate:data`))&&(e.onSave=e=>{n(`update:data`,e),n(`save`,e)}),o(`onAfterRender`)&&(e.onAfterRender=e=>{n(`after-render`,e)}),o(`onThemeChange`)&&(e.onThemeChange=e=>{n(`theme-change`,e)}),e},c=w(()=>s(),()=>t.recreateKey);(0,e.watch)(c,(e,t,r)=>{if(e===null)return;let i=[];if(o(`onBlocksRendered`)){let t=e=>n(`blocks-rendered`,e);e.on(`blocks:rendered`,t),i.push([`blocks:rendered`,t])}if(o(`onBlockRendered`)){let t=e=>n(`block-rendered`,e);e.on(`block:rendered`,t),i.push([`block:rendered`,t])}r(()=>{for(let[t,n]of i)e.off(t,n)})});let l={last:null};return(0,e.watch)(c,e=>{e!==null&&e!==l.last&&(l.last=e,n(`ready`,e))}),r({instance:(0,e.computed)(()=>c.value),save:()=>{var e;return(e=c.value)==null?void 0:e.save()},focus:e=>{var t;(t=c.value)==null||t.focus(e)},render:e=>{var t;return(t=c.value)==null?void 0:t.render(e)}}),()=>(0,e.h)(k,f({editor:c.value},i))}});function M(t){var r;let i=(0,e.defineComponent)({name:`VueBlock(${t.type})`,props:{ctx:{type:Object,required:!0}},setup(e){return t.setup(e.ctx)}});return r=class{static get toolbox(){return t.toolbox}static get isReadOnlySupported(){return!0}constructor(r){var i,a;this.hostEl=null,this.pendingDispatch=!1,this.commit=e=>{let r=(0,n.fillDefaults)(t.propSchema,f(f({},this.mirror),e));(0,n.deepEqual)(r,this.mirror)||(this.mirror=r,this.lastRendered=r,this.dataRef.value=r,this.flushDispatch())},this.blockApi=r.block;let o=(i=r.config)==null?{}:i;this.registry=o[_];let s=r.api;this.pointerDrag=()=>{var e;return(s==null||(e=s.blocks)==null?void 0:e.isPointerDragActive)===!0},this.mirror=(0,n.fillDefaults)(t.propSchema,(0,e.toRaw)((a=r.data)==null?{}:a)),this.lastRendered=this.mirror,this.dataRef=(0,e.shallowRef)(this.mirror),this.readOnlyRef=(0,e.shallowRef)(r.readOnly);let c=this.blockApi;this.childrenComponent=(0,e.defineComponent)({name:`VueBlockChildren(${t.type})`,setup(){let t=(0,e.ref)(null),r=()=>{t.value!==null&&(0,n.mountChildBlocks)(t.value,c.getChildren())};return(0,e.onMounted)(r),(0,e.onUpdated)(r),()=>(0,e.h)(`div`,{ref:t,[n.DATA_ATTR.nestedBlocks]:``})}})}render(){var e;let t=document.createElement(`div`);t.setAttribute(`data-blok-mutation-free`,`true`),this.hostEl=t;let n={data:this.dataRef,commit:this.commit,block:this.blockApi,readOnly:this.readOnlyRef,BlockChildren:this.childrenComponent};return(e=this.registry)==null||e.register(this.blockApi.id,{hostEl:t,component:i,props:{ctx:n}}),t}rendered(){var e;(e=t.onRendered)==null||e.call(t,this.blockApi)}save(){return this.mirror}async setData(r){var i=this;let a=(0,n.fillDefaults)(t.propSchema,(0,e.toRaw)(r==null?{}:r));return(0,n.deepEqual)(a,i.lastRendered)?!0:(i.mirror=a,i.lastRendered=a,i.dataRef.value=a,await(0,e.nextTick)(),!0)}setReadOnly(e){this.readOnlyRef.value=e}moved(){var e;(e=t.onMoved)==null||e.call(t,this.blockApi)}removed(){var e,n;(e=this.registry)==null||e.unregister(this.blockApi.id),(n=t.onRemoved)==null||n.call(t,this.blockApi)}destroy(){var e;(e=this.registry)==null||e.unregister(this.blockApi.id)}flushDispatch(){if(!this.pointerDrag()){this.pendingDispatch=!1,this.blockApi.dispatchChange();return}if(this.pendingDispatch)return;this.pendingDispatch=!0;let e=()=>{if(this.pointerDrag()){requestAnimationFrame(e);return}this.pendingDispatch=!1,this.blockApi.dispatchChange()};requestAnimationFrame(e)}},r.__isBlokVueBlock=!0,r}exports.BLOK_DEFAULT_CONFIG=p,exports.BlokContent=k,exports.BlokEditor=j,exports.createVueBlock=M,exports.provideBlok=m,exports.useBlocks=E,exports.useBlok=w,exports.useBlokDefaults=h;
|
package/dist/index.mjs
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Fragment as e, Teleport as t, computed as n, defineComponent as r, getCurrentInstance as i, h as a, inject as o, markRaw as s, nextTick as c, onBeforeUnmount as l, onErrorCaptured as u, onMounted as d, onScopeDispose as f, onUpdated as p, provide as m, reactive as
|
|
2
|
-
import { Blok as
|
|
3
|
-
import { DATA_ATTR as
|
|
1
|
+
import { Fragment as e, Teleport as t, computed as n, defineComponent as r, getCurrentInstance as i, h as a, inject as o, markRaw as s, nextTick as c, onBeforeUnmount as l, onErrorCaptured as u, onMounted as d, onScopeDispose as f, onUpdated as p, provide as m, reactive as ee, ref as h, shallowRef as g, toRaw as _, toValue as v, watch as y } from "vue";
|
|
2
|
+
import { Blok as b } from "@bloklabs/core";
|
|
3
|
+
import { DATA_ATTR as x, EMPTY_API as S, createBlocksApiForEditor as C, deepEqual as w, fillDefaults as T, mountChildBlocks as E, normalizeReadOnlyConfig as D } from "@bloklabs/core/adapters";
|
|
4
4
|
//#region src/holder-map.ts
|
|
5
|
-
var
|
|
6
|
-
function
|
|
7
|
-
|
|
5
|
+
var O = /* @__PURE__ */ new WeakMap();
|
|
6
|
+
function k(e, t) {
|
|
7
|
+
O.set(e, t);
|
|
8
8
|
}
|
|
9
|
-
function
|
|
10
|
-
return
|
|
9
|
+
function A(e) {
|
|
10
|
+
return O.get(e);
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
12
|
+
function j(e) {
|
|
13
|
+
O.delete(e);
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
16
|
-
//#region \0@oxc-project+runtime@0.
|
|
16
|
+
//#region \0@oxc-project+runtime@0.139.0/helpers/esm/typeof.js
|
|
17
17
|
function M(e) {
|
|
18
18
|
"@babel/helpers - typeof";
|
|
19
19
|
return M = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
|
|
@@ -23,7 +23,7 @@ function M(e) {
|
|
|
23
23
|
}, M(e);
|
|
24
24
|
}
|
|
25
25
|
//#endregion
|
|
26
|
-
//#region \0@oxc-project+runtime@0.
|
|
26
|
+
//#region \0@oxc-project+runtime@0.139.0/helpers/esm/toPrimitive.js
|
|
27
27
|
function N(e, t) {
|
|
28
28
|
if (M(e) != "object" || !e) return e;
|
|
29
29
|
var n = e[Symbol.toPrimitive];
|
|
@@ -35,13 +35,13 @@ function N(e, t) {
|
|
|
35
35
|
return (t === "string" ? String : Number)(e);
|
|
36
36
|
}
|
|
37
37
|
//#endregion
|
|
38
|
-
//#region \0@oxc-project+runtime@0.
|
|
38
|
+
//#region \0@oxc-project+runtime@0.139.0/helpers/esm/toPropertyKey.js
|
|
39
39
|
function P(e) {
|
|
40
40
|
var t = N(e, "string");
|
|
41
41
|
return M(t) == "symbol" ? t : t + "";
|
|
42
42
|
}
|
|
43
43
|
//#endregion
|
|
44
|
-
//#region \0@oxc-project+runtime@0.
|
|
44
|
+
//#region \0@oxc-project+runtime@0.139.0/helpers/esm/defineProperty.js
|
|
45
45
|
function F(e, t, n) {
|
|
46
46
|
return (t = P(t)) in e ? Object.defineProperty(e, t, {
|
|
47
47
|
value: n,
|
|
@@ -51,7 +51,7 @@ function F(e, t, n) {
|
|
|
51
51
|
}) : e[t] = n, e;
|
|
52
52
|
}
|
|
53
53
|
//#endregion
|
|
54
|
-
//#region \0@oxc-project+runtime@0.
|
|
54
|
+
//#region \0@oxc-project+runtime@0.139.0/helpers/esm/objectSpread2.js
|
|
55
55
|
function I(e, t) {
|
|
56
56
|
var n = Object.keys(e);
|
|
57
57
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -94,7 +94,7 @@ function V(e, t) {
|
|
|
94
94
|
//#endregion
|
|
95
95
|
//#region src/block-portal-registry.ts
|
|
96
96
|
var H = "__blokPortalRegistry", U = () => {
|
|
97
|
-
let e =
|
|
97
|
+
let e = ee(/* @__PURE__ */ new Map());
|
|
98
98
|
return {
|
|
99
99
|
entries: e,
|
|
100
100
|
register(t, n) {
|
|
@@ -136,18 +136,18 @@ var J = (e, t) => {
|
|
|
136
136
|
return n;
|
|
137
137
|
};
|
|
138
138
|
function Y(e, t) {
|
|
139
|
-
let n =
|
|
139
|
+
let n = g(null), r = o(R, {}), i = () => V(r, v(e)), a = {
|
|
140
140
|
current: null,
|
|
141
141
|
holder: null,
|
|
142
142
|
lastRenderedData: i().data,
|
|
143
143
|
seededEditor: null,
|
|
144
144
|
renderChain: Promise.resolve()
|
|
145
145
|
}, s = () => {
|
|
146
|
-
let t = L({}, V(
|
|
147
|
-
return delete t.holder, t.data !== void 0 && (t.data =
|
|
146
|
+
let t = L({}, V(_(r), _(v(e))));
|
|
147
|
+
return delete t.holder, t.data !== void 0 && (t.data = _(t.data)), t;
|
|
148
148
|
}, c = () => {
|
|
149
149
|
if (a.current !== null) {
|
|
150
|
-
|
|
150
|
+
j(a.current), q(a.current);
|
|
151
151
|
try {
|
|
152
152
|
a.current.destroy();
|
|
153
153
|
} catch (e) {}
|
|
@@ -161,32 +161,42 @@ function Y(e, t) {
|
|
|
161
161
|
var t, n;
|
|
162
162
|
a.lastRenderedData = e[0], (t = (n = i()).onSave) == null || t.call(n, ...e);
|
|
163
163
|
});
|
|
164
|
-
let o = new
|
|
165
|
-
a.current = o,
|
|
164
|
+
let o = new b(L(L({}, t), {}, { holder: e }));
|
|
165
|
+
a.current = o, k(o, e), G(o, r), o.isReady.then(() => {
|
|
166
166
|
a.current === o && (n.value = o);
|
|
167
167
|
}).catch(() => {
|
|
168
168
|
a.current === o && c();
|
|
169
169
|
});
|
|
170
170
|
};
|
|
171
|
-
|
|
171
|
+
y([n, () => D(i().readOnly).enabled], ([e, t]) => {
|
|
172
172
|
e && e.readOnly.set(t);
|
|
173
|
-
}, { immediate: !0 }),
|
|
173
|
+
}, { immediate: !0 }), y([n, () => i().theme], ([e, t]) => {
|
|
174
174
|
e && t !== void 0 && e.theme.set(t);
|
|
175
|
-
}, { immediate: !0 }),
|
|
175
|
+
}, { immediate: !0 }), y([n, () => i().width], ([e, t]) => {
|
|
176
176
|
e && t !== void 0 && e.width.set(t);
|
|
177
|
-
}, { immediate: !0 }),
|
|
177
|
+
}, { immediate: !0 }), y([n, () => i().placeholder], ([e, t]) => {
|
|
178
178
|
e && t !== void 0 && e.placeholder.set(t);
|
|
179
|
-
}, { immediate: !0 })
|
|
179
|
+
}, { immediate: !0 });
|
|
180
|
+
let f = { value: void 0 };
|
|
181
|
+
return y([n, () => {
|
|
182
|
+
var e;
|
|
183
|
+
return (e = i().style) == null ? void 0 : e.tokens;
|
|
184
|
+
}], ([e, t]) => {
|
|
185
|
+
!e || t === void 0 || w(t, f.value) || (f.value = L({}, t), e.tokens.set(t));
|
|
186
|
+
}, {
|
|
187
|
+
immediate: !0,
|
|
188
|
+
deep: !0
|
|
189
|
+
}), y([n, () => i().autofocus], ([e, t]) => {
|
|
180
190
|
e && t && e.focus();
|
|
181
|
-
}, { immediate: !0 }),
|
|
191
|
+
}, { immediate: !0 }), y([n, () => i().data], ([e, t]) => {
|
|
182
192
|
if (!(!e || t === void 0)) {
|
|
183
193
|
if (a.seededEditor !== e) {
|
|
184
194
|
a.seededEditor = e, a.lastRenderedData = t;
|
|
185
195
|
return;
|
|
186
196
|
}
|
|
187
|
-
|
|
197
|
+
w(t, a.lastRenderedData) || (a.lastRenderedData = t, a.renderChain = a.renderChain.catch(() => void 0).then(() => e.render(_(t))));
|
|
188
198
|
}
|
|
189
|
-
}, { immediate: !0 }), t !== void 0 &&
|
|
199
|
+
}, { immediate: !0 }), t !== void 0 && y(() => v(t), () => {
|
|
190
200
|
c(), u();
|
|
191
201
|
}), d(u), l(c), n;
|
|
192
202
|
}
|
|
@@ -194,26 +204,26 @@ function Y(e, t) {
|
|
|
194
204
|
//#region src/useBlocks.ts
|
|
195
205
|
var X = "block changed";
|
|
196
206
|
function Z(e) {
|
|
197
|
-
let t =
|
|
198
|
-
let t =
|
|
199
|
-
return t === null ? null :
|
|
207
|
+
let t = g(0), n = () => {
|
|
208
|
+
let t = v(e);
|
|
209
|
+
return t === null ? null : _(t);
|
|
200
210
|
}, r = () => {
|
|
201
211
|
t.value;
|
|
202
|
-
}, i =
|
|
212
|
+
}, i = g(S), a = {
|
|
203
213
|
editor: null,
|
|
204
214
|
handler: null
|
|
205
215
|
}, o = () => {
|
|
206
216
|
a.editor !== null && a.handler !== null && a.editor.off(X, a.handler), a.editor = null, a.handler = null;
|
|
207
217
|
};
|
|
208
|
-
return
|
|
218
|
+
return y(() => n(), (e) => {
|
|
209
219
|
if (o(), t.value += 1, e === null) {
|
|
210
|
-
i.value =
|
|
220
|
+
i.value = S;
|
|
211
221
|
return;
|
|
212
222
|
}
|
|
213
223
|
let n = () => {
|
|
214
224
|
t.value += 1;
|
|
215
225
|
};
|
|
216
|
-
e.on(X, n), a.editor = e, a.handler = n, i.value =
|
|
226
|
+
e.on(X, n), a.editor = e, a.handler = n, i.value = C(e, r);
|
|
217
227
|
}, { immediate: !0 }), f(o), {
|
|
218
228
|
getById: (e) => i.value.getById(e),
|
|
219
229
|
getChildren: (e) => i.value.getChildren(e),
|
|
@@ -275,22 +285,22 @@ var Q = r({
|
|
|
275
285
|
default: null
|
|
276
286
|
} },
|
|
277
287
|
setup(e) {
|
|
278
|
-
let t =
|
|
288
|
+
let t = h(null), n = (e) => {
|
|
279
289
|
if (t.value === null || e === null) return;
|
|
280
|
-
let n =
|
|
290
|
+
let n = A(_(e));
|
|
281
291
|
n !== void 0 && t.value.appendChild(n);
|
|
282
292
|
}, r = (e) => {
|
|
283
293
|
var t;
|
|
284
|
-
e !== null && ((t =
|
|
294
|
+
e !== null && ((t = A(_(e))) == null || t.remove());
|
|
285
295
|
};
|
|
286
296
|
return d(() => {
|
|
287
297
|
n(e.editor);
|
|
288
|
-
}),
|
|
298
|
+
}), y(() => e.editor, (e, t) => {
|
|
289
299
|
r(t == null ? null : t), n(e);
|
|
290
300
|
}), l(() => {
|
|
291
301
|
r(e.editor);
|
|
292
302
|
}), () => {
|
|
293
|
-
let n = e.editor, r = n === null ? void 0 : K(
|
|
303
|
+
let n = e.editor, r = n === null ? void 0 : K(_(n));
|
|
294
304
|
return a("div", { ref: t }, r === void 0 ? [] : [a(te, { registry: r })]);
|
|
295
305
|
};
|
|
296
306
|
}
|
|
@@ -457,7 +467,7 @@ var Q = r({
|
|
|
457
467
|
t("theme-change", e);
|
|
458
468
|
}), n;
|
|
459
469
|
}, u = Y(() => l(), () => e.recreateKey);
|
|
460
|
-
|
|
470
|
+
y(u, (e, n, r) => {
|
|
461
471
|
if (e === null) return;
|
|
462
472
|
let i = [];
|
|
463
473
|
if (c("onBlocksRendered")) {
|
|
@@ -473,7 +483,7 @@ var Q = r({
|
|
|
473
483
|
});
|
|
474
484
|
});
|
|
475
485
|
let d = { last: null };
|
|
476
|
-
return
|
|
486
|
+
return y(u, (e) => {
|
|
477
487
|
e !== null && e !== d.last && (d.last = e, t("ready", e));
|
|
478
488
|
}), r({
|
|
479
489
|
instance: n(() => u.value),
|
|
@@ -516,8 +526,8 @@ function ie(e) {
|
|
|
516
526
|
constructor(t) {
|
|
517
527
|
var n, i;
|
|
518
528
|
this.hostEl = null, this.pendingDispatch = !1, this.commit = (t) => {
|
|
519
|
-
let n =
|
|
520
|
-
|
|
529
|
+
let n = T(e.propSchema, L(L({}, this.mirror), t));
|
|
530
|
+
w(n, this.mirror) || (this.mirror = n, this.lastRendered = n, this.dataRef.value = n, this.flushDispatch());
|
|
521
531
|
}, this.blockApi = t.block;
|
|
522
532
|
let o = (n = t.config) == null ? {} : n;
|
|
523
533
|
this.registry = o[H];
|
|
@@ -525,17 +535,17 @@ function ie(e) {
|
|
|
525
535
|
this.pointerDrag = () => {
|
|
526
536
|
var e;
|
|
527
537
|
return (s == null || (e = s.blocks) == null ? void 0 : e.isPointerDragActive) === !0;
|
|
528
|
-
}, this.mirror =
|
|
538
|
+
}, this.mirror = T(e.propSchema, _((i = t.data) == null ? {} : i)), this.lastRendered = this.mirror, this.dataRef = g(this.mirror), this.readOnlyRef = g(t.readOnly);
|
|
529
539
|
let c = this.blockApi;
|
|
530
540
|
this.childrenComponent = r({
|
|
531
541
|
name: `VueBlockChildren(${e.type})`,
|
|
532
542
|
setup() {
|
|
533
|
-
let e =
|
|
534
|
-
e.value !== null &&
|
|
543
|
+
let e = h(null), t = () => {
|
|
544
|
+
e.value !== null && E(e.value, c.getChildren());
|
|
535
545
|
};
|
|
536
546
|
return d(t), p(t), () => a("div", {
|
|
537
547
|
ref: e,
|
|
538
|
-
[
|
|
548
|
+
[x.nestedBlocks]: ""
|
|
539
549
|
});
|
|
540
550
|
}
|
|
541
551
|
});
|
|
@@ -566,8 +576,8 @@ function ie(e) {
|
|
|
566
576
|
}
|
|
567
577
|
async setData(t) {
|
|
568
578
|
var n = this;
|
|
569
|
-
let r =
|
|
570
|
-
return
|
|
579
|
+
let r = T(e.propSchema, _(t == null ? {} : t));
|
|
580
|
+
return w(r, n.lastRendered) ? !0 : (n.mirror = r, n.lastRendered = r, n.dataRef.value = r, await c(), !0);
|
|
571
581
|
}
|
|
572
582
|
setReadOnly(e) {
|
|
573
583
|
this.readOnlyRef.value = e;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bloklabs/vue",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Vue 3 bindings for the Blok editor",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "JackUait",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"build": "yarn run -T vite build --mode production"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@bloklabs/core": "^1.
|
|
36
|
+
"@bloklabs/core": "^1.3.0",
|
|
37
37
|
"vue": "^3.5.0"
|
|
38
38
|
}
|
|
39
39
|
}
|
package/src/BlokEditor.ts
CHANGED
|
@@ -52,7 +52,7 @@ export const createBlockPortalRegistry = (): BlockPortalRegistry => {
|
|
|
52
52
|
const entries = reactive(new Map<string, BlockPortalEntry>());
|
|
53
53
|
|
|
54
54
|
return {
|
|
55
|
-
entries: entries
|
|
55
|
+
entries: entries,
|
|
56
56
|
register(id: string, entry: BlockPortalEntry): void {
|
|
57
57
|
// markRaw so the reactive Map (which must still track add/delete) does NOT
|
|
58
58
|
// deep-proxy the entry — a proxied component DEFINITION or DOM host would
|
package/src/createVueBlock.ts
CHANGED
|
@@ -218,7 +218,7 @@ export function createVueBlock<Data = BlockToolData>(
|
|
|
218
218
|
|
|
219
219
|
public save(): BlockToolData {
|
|
220
220
|
// The complete, frozen, toRaw-clean mirror — never the DOM, never partial.
|
|
221
|
-
return this.mirror
|
|
221
|
+
return this.mirror;
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
public async setData(newData: BlockToolData): Promise<boolean> {
|
package/src/provide-blok.ts
CHANGED
package/src/useBlok.ts
CHANGED
|
@@ -51,7 +51,7 @@ const injectPortalRegistry = (tools: unknown, registry: BlockPortalRegistry): un
|
|
|
51
51
|
typeof entry === 'function' ? { class: entry } : { ...(entry as Record<string, unknown>) };
|
|
52
52
|
|
|
53
53
|
base.config = {
|
|
54
|
-
...((base.config
|
|
54
|
+
...((base.config) ?? {}),
|
|
55
55
|
[BLOK_PORTAL_REGISTRY_CONFIG_KEY]: registry,
|
|
56
56
|
};
|
|
57
57
|
result[name] = base;
|
|
@@ -176,7 +176,7 @@ export function useBlok(
|
|
|
176
176
|
};
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
const blok = new BlokRuntime({ ...snapshot, holder })
|
|
179
|
+
const blok = new BlokRuntime({ ...snapshot, holder });
|
|
180
180
|
|
|
181
181
|
state.current = blok;
|
|
182
182
|
setHolder(blok, holder);
|
|
@@ -239,6 +239,25 @@ export function useBlok(
|
|
|
239
239
|
{ immediate: true }
|
|
240
240
|
);
|
|
241
241
|
|
|
242
|
+
// Theme tokens were construction-only, so a host with a live light/dark
|
|
243
|
+
// toggle had to recreate the editor or hand-write the global stylesheet Blok
|
|
244
|
+
// already injects. Deep-equal-deduped because `tokens` is typically a fresh
|
|
245
|
+
// object literal; `deep: true` so mutating the same object still propagates.
|
|
246
|
+
const appliedTokens: { value: Record<string, string> | undefined } = { value: undefined };
|
|
247
|
+
|
|
248
|
+
watch(
|
|
249
|
+
[editor, () => mergedConfig().style?.tokens],
|
|
250
|
+
([ed, tokens]) => {
|
|
251
|
+
if (!ed || tokens === undefined || deepEqual(tokens, appliedTokens.value)) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
appliedTokens.value = { ...tokens };
|
|
256
|
+
ed.tokens.set(tokens);
|
|
257
|
+
},
|
|
258
|
+
{ immediate: true, deep: true }
|
|
259
|
+
);
|
|
260
|
+
|
|
242
261
|
watch(
|
|
243
262
|
[editor, () => mergedConfig().autofocus],
|
|
244
263
|
([ed, autofocus]) => {
|