@jackuait/blok 0.24.0 → 0.24.1

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.
@@ -1,4 +1,4 @@
1
- const e=require(`./chunk-BL1yB9zm.cjs`),t=require(`./constants-BJXlAaDV.cjs`),n=require(`./objectSpread2-iNkE6aJh.cjs`),r=require(`./dismissable-layer-Cls-dpim.cjs`),i=require(`./registry-5IYwlgsn.cjs`),a=require(`./lightweight-i18n-DfkyJMeq.cjs`),o=require(`./icons-9-ln41xa.cjs`),s=require(`./nested-blocks-Dg9WcNXO.cjs`),c=require(`./modal-dialog-DNeP_fpV.cjs`),l=require(`./lib-CUt_N_JU.cjs`);var u=new Set([`color`,`background-color`]),d={br:!0,strong:{},b:{},em:{},i:{},u:{},s:{},del:{},a:{href:!0,target:!0,rel:!0},code:{},mark:e=>{let t=e.style,n=Array.from({length:t.length},(e,n)=>t.item(n));for(let e of n)u.has(e)||t.removeProperty(e);return t.length>0?{style:!0}:{}},span:e=>e.getAttribute(`data-latex`)===null?!1:{"data-latex":!0}},f,p=e=>{let t=document.createElement(`div`);t.innerHTML=e.trim();let n=document.createDocumentFragment();return n.append(...Array.from(t.childNodes)),n},m=class e{static get DEFAULT_PLACEHOLDER(){return`tools.paragraph.placeholder`}constructor({data:t,config:n,api:r,readOnly:i,block:a}){var o,s,c;this.placeholderCleanup=null,this.api=r,this.readOnly=i,this.block=a,this.onKeyUp=this.onKeyUp.bind(this),this._placeholder=(o=n==null?void 0:n.placeholder)==null?e.DEFAULT_PLACEHOLDER:o,this._data=t==null?{text:``}:t,this._element=null,this._preserveBlank=(s=n==null?void 0:n.preserveBlank)==null?!1:s,this._styles=(c=n==null?void 0:n.styles)==null?{}:c}onKeyUp(e){if(e.code!==`Backspace`&&e.code!==`Delete`||!this._element)return;let{textContent:t}=this._element;t===``&&(this._element.innerHTML=``)}buildInlineStyles(){let e={};return this._styles.size&&(e.fontSize=this._styles.size),this._styles.lineHeight&&(e.lineHeight=this._styles.lineHeight),this._styles.marginTop&&(e.marginTop=this._styles.marginTop),this._styles.marginBottom&&(e.marginBottom=this._styles.marginBottom),e}drawView(){let n=document.createElement(`DIV`);n.className=r.l(this.api.styles.block,e.WRAPPER_CLASSES,t.Qn(`focus`)),n.setAttribute(t.yi.tool,`paragraph`),n.contentEditable=`false`;let i=this.buildInlineStyles();return Object.keys(i).length>0&&Object.assign(n.style,i),t._(n,this._data),this._data.text?n.innerHTML=this._data.text:this.readOnly&&(n.innerHTML=`<br>`),this.readOnly||(n.contentEditable=`true`,n.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(n,this.api.i18n.t(this._placeholder),`data-blok-placeholder-active`,`focus`)),n}render(){return this._element||(this._element=this.drawView()),this._element}setReadOnly(e){this._element&&(this.readOnly=e,e?(this._element.contentEditable=`false`,this._element.removeEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null),t.$n(this._element)&&(this._element.innerHTML=`<br>`)):(this._element.contentEditable=`true`,this._element.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(this._element,this.api.i18n.t(this._placeholder),`data-blok-placeholder-active`,`focus`),this._element.innerHTML===`<br>`&&(this._element.innerHTML=``)))}setPlaceholder(e){this._placeholder=e===!1?``:e,!(!this._element||this.readOnly)&&this._element.setAttribute(`data-blok-placeholder-active`,e===!1?``:this.api.i18n.t(this._placeholder))}merge(e){if(!this._element)return;this._data.text+=e.text;let t=p(e.text);this._element.appendChild(t),this._element.normalize()}validate(e){return!(e.text.trim()===``&&!this._preserveBlank)}save(e){let n={text:t.Wr(e.innerHTML)};return this._data.textColor&&(n.textColor=this._data.textColor),this._data.backgroundColor&&(n.backgroundColor=this._data.backgroundColor),n}renderSettings(){return t.v({data:this._data,labels:{textColor:this.api.i18n.t(`tools.marker.textColor`),background:this.api.i18n.t(`tools.marker.background`),default:this.api.i18n.t(`tools.marker.default`)},onPick:(e,n)=>{var r;this._data[e]=n,this._element&&t._(this._element,this._data),(r=this.block)==null||r.dispatchChange()}})}onPaste(e){let t=e.detail;if(!(`data`in t))return;let n={text:t.data.innerHTML};this._data=n,this._element&&(this._element.innerHTML=this._data.text||``)}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return n.t(n.t({},t.g),{},{text:n.t(n.t({},d),{},{img:{src:!0,style:!0},p:!0,ul:!0,li:!0})})}static get isReadOnlySupported(){return!0}static get pasteConfig(){return{tags:[`P`]}}static get toolbox(){return{icon:o.dn,titleKey:`text`,searchTerms:[`p`,`paragraph`,`plain`],searchTermKeys:[`paragraph`,`plain`]}}};f=m,f.WRAPPER_CLASSES=[`leading-[1.5]`,`outline-hidden`,`mt-px`,`mb-px`,`[&>p:first-of-type]:mt-0`,`[&>p:last-of-type]:mb-0`];var h=e=>{let{data:n,readOnly:r,isOpen:i,keydownHandler:a,onArrowClick:o,onBodyPlaceholderClick:s}=e,c=document.createElement(`div`);c.className=t.a,c.setAttribute(t.yi.tool,t.p),c.setAttribute(t.u.toggleOpen,String(i)),c.setAttribute(t.u.toggleEmpty,`true`);let l=document.createElement(`div`);l.className=t.f;let u=g(i,o,{},e.ariaLabels),d=v(n,r,a);l.appendChild(u),l.appendChild(d);let f=_(s,e.bodyPlaceholderText),p=document.createElement(`div`);return p.className=t.d,p.setAttribute(t.u.toggleChildren,``),p.setAttribute(t.yi.nestedBlocks,``),p.setAttribute(`data-blok-mutation-free`,`true`),p.id=`toggle-children-${Date.now()}-${Math.random().toString(36).slice(2)}`,u.setAttribute(`aria-controls`,p.id),c.appendChild(l),c.appendChild(f),c.appendChild(p),{wrapper:c,arrowElement:u,contentElement:d,bodyPlaceholderElement:f,childContainerElement:p}},g=(e,n,r={},i={collapse:`Collapse`,expand:`Expand`})=>{let a=document.createElement(`span`);a.className=t.i,a.setAttribute(t.u.toggleArrow,``),a.setAttribute(t.yi.mutationFree,`true`),a.setAttribute(`role`,`button`),a.setAttribute(`tabindex`,`0`),a.setAttribute(`aria-label`,e?i.collapse:i.expand),a.setAttribute(`aria-expanded`,String(e)),r.contentEditableFalse===!0&&(a.contentEditable=`false`),a.innerHTML=t.r;let o=a.querySelector(`svg`);return o&&(o.style.transition=`transform 200ms ease-in-out`,e&&(o.style.transform=`rotate(90deg)`)),n&&(a.addEventListener(`click`,e=>{e.stopPropagation(),n()}),a.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),n())})),a},_=(e,n)=>{let r=document.createElement(`div`);return r.className=t.s,r.setAttribute(t.u.toggleBodyPlaceholder,``),r.setAttribute(`data-blok-mutation-free`,`true`),r.textContent=n,e&&r.addEventListener(`click`,e),r},v=(e,n,i)=>{let a=document.createElement(`div`);return a.className=r.l(t.c,t.Qn(`always-active`)),a.setAttribute(t.u.toggleContent,``),a.contentEditable=n?`false`:`true`,a.innerHTML=e.text,i&&a.addEventListener(`keydown`,i),a},y=(e,n)=>{var r;if(e===null)return;let i=((r=n==null?void 0:n.textContent)==null?``:r).trim()===``;e.setAttribute(t.u.toggleEmpty,String(i))},b=e=>{let n=h(e);return n.contentElement&&t.er(n.contentElement,e.placeholder,`data-blok-placeholder-active`,`always-active`),n},x=(e,n,r,i={collapse:`Collapse`,expand:`Expand`})=>{let a=e.querySelector(`svg`);a&&(a.style.transform=r?`rotate(90deg)`:``),e.setAttribute(`aria-label`,r?i.collapse:i.expand),e.setAttribute(`aria-expanded`,String(r)),n.setAttribute(t.u.toggleOpen,String(r))},S=(e,t,n,r,i)=>{let a=e.blocks.getChildren(t);!n&&r&&i&&r.contains(document.activeElement)&&i.focus(),r&&s.t(r,a);for(let e of a)n?e.holder.classList.remove(`hidden`):e.holder.classList.add(`hidden`);r&&(n?r.removeAttribute(`aria-hidden`):r.setAttribute(`aria-hidden`,`true`))},C=(e,t,n,r,i)=>{if(e===null)return;if(i){e.classList.add(`hidden`);return}let a=t.blocks.getChildren(n);r&&a.length===0?e.classList.remove(`hidden`):e.classList.add(`hidden`)},w=async e=>{var n;let{api:r,blockId:i,data:a,getContentElement:o,syncContentFromDOM:s,isOpen:c}=e;if(s(),i===void 0)return;let l=o(),u=window.getSelection();if(!l||!u||u.rangeCount===0)return;let{beforeContent:d,afterContent:f}=D(l,u.getRangeAt(0)),p=(n=r.blocks.getBlockIndex(i))==null?r.blocks.getCurrentBlockIndex():n;if(c&&f===``){let e=E(r,i,p),t=r.blocks.insertInsideParent(i,e);r.caret.setToBlock(t.id,`start`);return}r.blocks.splitBlock(i,{text:d},t.p,{text:f},p+1),a.text=d},T=async(e,n)=>{let{api:r,blockId:i,data:a,getContentElement:o,syncContentFromDOM:s}=e;if(s(),i===void 0)return;let c=o();if(!c||!t.ar(c))return;let l=a.text;l===``&&(n.preventDefault(),await r.blocks.convert(i,`paragraph`,{text:l}))},E=(e,t,n)=>{var r;let i=e.blocks.getChildren(t);if(i.length===0)return n+1;let a=i[i.length-1],o=(r=e.blocks.getBlockIndex(a.id))==null?n:r;return E(e,a.id,o)},D=(e,t)=>{if(!e.lastChild)return{beforeContent:``,afterContent:``};let n=document.createRange();n.setStart(e,0),n.setEnd(t.startContainer,t.startOffset);let r=document.createRange();r.setStart(t.endContainer,t.endOffset),r.setEndAfter(e.lastChild);let i=document.createElement(`div`);i.appendChild(n.cloneContents());let a=document.createElement(`div`);return a.appendChild(r.cloneContents()),{beforeContent:i.innerHTML,afterContent:a.innerHTML}},O=async e=>{var t;let{api:n,blockId:r,getContentElement:i,syncContentFromDOM:a,isOpen:o,currentLevel:s}=e;if(a(),r===void 0)return;let c=i(),l=window.getSelection();if(!c||!l||l.rangeCount===0)return;let{beforeContent:u,afterContent:d}=D(c,l.getRangeAt(0)),f=(t=n.blocks.getBlockIndex(r))==null?n.blocks.getCurrentBlockIndex():t;if(o&&d===``){let e=E(n,r,f),t=n.blocks.insertInsideParent(r,e);n.caret.setToBlock(t.id,`start`);return}if(!o&&d===``){let e=E(n,r,f),t=n.blocks.insert(`paragraph`,void 0,void 0,e,!1);n.caret.setToBlock(t.id,`start`);return}n.blocks.splitBlock(r,{text:u,level:s,isToggleable:!0},`header`,{text:d,level:s,isToggleable:!0},f+1)},k=async(e,n)=>{let{api:r,blockId:i,getText:a,getContentElement:o,syncContentFromDOM:s,currentLevel:c}=e;if(s(),i===void 0)return;let l=o();if(!l||!t.ar(l))return;let u=a();u===``&&(n.preventDefault(),await r.blocks.convert(i,`header`,{text:u,level:c}))},A,j=class e{constructor({data:e,config:t,api:n,readOnly:r,block:i}){var a;this.placeholderCleanup=null,this._arrowElement=null,this._wrapper=null,this._headerRow=null,this._childContainerElement=null,this._bodyPlaceholderElement=null,this.handleChildContainerInput=()=>{y(this._wrapper,this._childContainerElement)},this.handleKeyDown=e=>{if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),this.handleEnter();return}e.key===`Backspace`&&k(this.createKeyboardContext(),e)},this.handleBlockChanged=e=>{this.isBlockChangedPayload(e)&&(e.event.type===`block-removed`||e.event.type===`block-added`)&&this.updateBodyPlaceholderVisibility()},this.api=n,this.readOnly=r,this._settings=t||{},this._data=this.normalizeData(e),this._isOpen=(a=this._data.isOpen)==null?!0:a,this._element=this.getTag(),i&&(this.blockId=i.id,this.block=i),!r&&this._data.isToggleable&&this.api.events.on(`block changed`,this.handleBlockChanged)}get _CSS(){return{block:this.api.styles.block,wrapper:``}}isHeaderData(e){return typeof e==`object`&&!!e&&`text`in e}normalizeData(e){if(!this.isHeaderData(e))return{text:``,level:this.defaultLevel.number};let n=parseInt(String(e.level)),r=e.level!==void 0&&!isNaN(n),i={text:e.text||``,level:r?n:this.defaultLevel.number};if(e.isToggleable===!0&&(i.isToggleable=!0),typeof e.isOpen==`boolean`&&(i.isOpen=e.isOpen),typeof e.textColor==`string`&&(i.textColor=e.textColor),typeof e.backgroundColor==`string`&&(i.backgroundColor=e.backgroundColor),i.text){let e=document.createElement(`div`);e.innerHTML=i.text;let n=e.querySelector(`[${t.u.toggleArrow}]`);n&&(n.remove(),i.text=e.innerHTML)}return i}render(){return this._data.isToggleable?(this._wrapper=this.buildWrapper(),this._wrapper):this._element}rendered(){this._data.isToggleable&&(this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility())}removed(){this.api.events.off(`block changed`,this.handleBlockChanged),this._element.removeEventListener(`keydown`,this.handleKeyDown)}setReadOnly(e){if(this._element)if(this.readOnly=e,e)this._element.contentEditable=`false`,this._data.isToggleable&&this._element.removeEventListener(`keydown`,this.handleKeyDown),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null);else{this._element.contentEditable=`true`,this._data.isToggleable&&this._element.addEventListener(`keydown`,this.handleKeyDown);let e=this.api.i18n.t(this.currentLevel.nameKey),n=this.resolvePlaceholderText(e);this.placeholderCleanup=t.er(this._element,n)}}expand(){!this._data.isToggleable||this._isOpen||(this._isOpen=!0,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),this.syncOpenState())}collapse(){!this._data.isToggleable||!this._isOpen||(this._isOpen=!1,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),this.syncOpenState())}renderSettings(){let e=this.levels.map(e=>{let t=this.api.i18n.t(e.nameKey),n=t===e.nameKey?e.name:t;return{icon:e.icon,title:n,onActivate:()=>this.setLevel(e.number),closeOnActivate:!0,isActive:this.currentLevel.number===e.number,dataset:{"blok-header-level":String(e.number)}}}),n=t.v({data:this._data,labels:{textColor:this.api.i18n.t(`tools.marker.textColor`),background:this.api.i18n.t(`tools.marker.background`),default:this.api.i18n.t(`tools.marker.default`)},onPick:(e,t)=>this.setBlockColor(e,t)}),r=Array.isArray(n)?n:[n];return[...e,this.buildToggleConvertEntry(),...r]}buildToggleConvertEntry(){var e;let t=this.currentLevel,n=this._data.isToggleable===!0;return{icon:(e={1:o.fn,2:o.pn,3:o.mn}[t.number])==null?o.mn:e,title:this.api.i18n.t(`tools.header.toggleHeading`),name:`header-toggle-convert`,closeOnActivate:!0,isActive:n,onActivate:()=>this.setToggleable(!n)}}setToggleable(e){this._data.isToggleable!==e&&(e?this.convertToToggle():this.convertToPlain(),this.syncOpenState())}convertToToggle(){this._data.isToggleable=!0,this._isOpen=!0,this._data.isOpen=!0,this._element.setAttribute(t.u.toggleOpen,String(this._isOpen)),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`),`pl-8`),this.readOnly||(this._element.addEventListener(`keydown`,this.handleKeyDown),this.api.events.on(`block changed`,this.handleBlockChanged));let n=this._element.parentNode,i=this._element.nextSibling;this._wrapper=this.buildWrapper(),n==null||n.insertBefore(this._wrapper,i),this.rendered()}convertToPlain(){if(this.releaseChildrenAsSiblings(),this._data.isToggleable=!1,delete this._data.isOpen,this._element.removeEventListener(`keydown`,this.handleKeyDown),this.api.events.off(`block changed`,this.handleBlockChanged),this._element.removeAttribute(t.u.toggleOpen),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`)),this._wrapper){let e=this._wrapper.parentNode;e==null||e.replaceChild(this._element,this._wrapper)}this._wrapper=null,this._headerRow=null,this._arrowElement=null,this._childContainerElement=null,this._bodyPlaceholderElement=null}releaseChildrenAsSiblings(){if(this.blockId===void 0)return;let e=[...this.api.blocks.getChildren(this.blockId)];for(let t of e)this.api.blocks.setBlockParent(t.id,null)}setBlockColor(e,n){var r;n===void 0?this._data[e]=void 0:this._data[e]=n,t._(this._element,this._data),(r=this.block)==null||r.dispatchChange()}setLevel(e){this.data={level:e,text:this.data.text,isToggleable:this._data.isToggleable,textColor:this._data.textColor,backgroundColor:this._data.backgroundColor}}merge(e){let n=document.createElement(`div`);n.innerHTML=e.text;let r=n.querySelector(`[${t.u.toggleArrow}]`);r&&r.remove(),this._element.insertAdjacentHTML(`beforeend`,n.innerHTML)}validate(e){return typeof e.text==`string`}setData(e){return this._data=this.normalizeData(e),typeof e.text==`string`&&(this._element.innerHTML=e.text),this._data.isToggleable&&typeof this._data.isOpen==`boolean`&&(this._isOpen=this._data.isOpen,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility()),!0}save(e){let t={text:this._element.innerHTML,level:this.currentLevel.number};return this._data.isToggleable===!0&&(t.isToggleable=!0,t.isOpen=this._isOpen),this._data.textColor&&(t.textColor=this._data.textColor),this._data.backgroundColor&&(t.backgroundColor=this._data.backgroundColor),t}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return n.t({level:!1,text:n.t({},d),isToggleable:!1,isOpen:!1},t.g)}static get isReadOnlySupported(){return!0}get data(){return this._data.text=this._element.innerHTML,this._data.level=this.currentLevel.number,this._data}set data(n){if(this._data=this.normalizeData(n),n.level!==void 0&&this._element.parentNode){this._element.removeEventListener(`keydown`,this.handleKeyDown);let e=this.getTag();e.innerHTML=this._element.innerHTML,this._element.parentNode.replaceChild(e,this._element),this._element=e}if(n.text!==void 0&&(this._element.innerHTML=this._data.text||``),this._data.isToggleable){if(this._element.setAttribute(t.u.toggleOpen,String(this._isOpen)),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`),`pl-8`),!this._wrapper)this.createToggleWrapper();else if(!this._wrapper.querySelector(`[${t.u.toggleArrow}]`)){var i;let e=this.buildArrow();this._arrowElement=e,((i=this._headerRow)==null?this._wrapper:i).prepend(e)}}else if(this._element.removeAttribute(t.u.toggleOpen),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`)),this._arrowElement=null,this._wrapper){let e=this._wrapper.parentNode;e&&e.replaceChild(this._element,this._wrapper),this._wrapper=null,this._headerRow=null}}resolvePlaceholderText(e){return this._settings.placeholder?this.api.i18n.t(this._settings.placeholder):e===this.currentLevel.nameKey?this.currentLevel.name:e}getTag(){let n=document.createElement(this.currentLevel.tag);n.innerHTML=this._data.text||``,n.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`),this._data.isToggleable?`pl-8`:``);let{inlineStyles:i}=this.currentLevel;i&&Object.assign(n.style,i),n.setAttribute(t.yi.tool,`header`),n.contentEditable=this.readOnly?`false`:`true`,this._data.isToggleable&&n.setAttribute(t.u.toggleOpen,String(this._isOpen));let a=this.api.i18n.t(this.currentLevel.nameKey),o=this.resolvePlaceholderText(a);return this.readOnly||(this.placeholderCleanup=t.er(n,o)),!this.readOnly&&this._data.isToggleable&&n.addEventListener(`keydown`,this.handleKeyDown),t._(n,this._data),n}buildArrow(){var e,t;let n=g(this._isOpen,()=>this.toggleOpen(),{},{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),i=(e=(t=this.currentLevel.styles.match(/\btext-(?:xs|sm|base|lg|xl|\dxl)\b/))==null?void 0:t[0])==null?``:e;return n.className=r.l(n.className,`absolute left-0 top-[calc(7px_+_0.65em)] -translate-y-1/2 mt-0`,i),n}buildWrapper(){let e=document.createElement(`div`);e.setAttribute(t.u.toggleEmpty,`true`);let n=document.createElement(`div`);n.className=`relative`,this._headerRow=n;let i=this.buildArrow();this._arrowElement=i,n.appendChild(i),n.appendChild(this._element),e.appendChild(n);let a=document.createElement(`div`);a.className=r.l(t.s,`pl-8`),a.setAttribute(t.u.toggleBodyPlaceholder,``),a.setAttribute(`data-blok-mutation-free`,`true`),a.textContent=this.api.i18n.t(`tools.toggle.bodyPlaceholder`),this.readOnly||a.addEventListener(`click`,()=>this.handleBodyPlaceholderClick()),this._bodyPlaceholderElement=a,e.appendChild(a);let o=document.createElement(`div`);return o.className=`pl-8`,o.setAttribute(t.u.toggleChildren,``),o.setAttribute(t.yi.nestedBlocks,``),o.setAttribute(`data-blok-mutation-free`,`true`),o.addEventListener(`input`,this.handleChildContainerInput),this._childContainerElement=o,e.appendChild(o),e}createToggleWrapper(){let e=this._element.parentNode;this._wrapper=document.createElement(`div`),this._wrapper.setAttribute(t.u.toggleEmpty,`true`);let n=document.createElement(`div`);n.className=`relative`,this._headerRow=n;let r=this.buildArrow();this._arrowElement=r,n.appendChild(r),e&&e.replaceChild(this._wrapper,this._element),n.appendChild(this._element),this._wrapper.appendChild(n)}createKeyboardContext(){return{api:this.api,blockId:this.blockId,getText:()=>this._element.innerHTML,getContentElement:()=>this._element,syncContentFromDOM:()=>{this._data.text=this._element.innerHTML},isOpen:this._isOpen,currentLevel:this.currentLevel.number}}async handleEnter(){var e=this;await O(e.createKeyboardContext()),e.updateChildrenVisibility(),e.updateBodyPlaceholderVisibility()}toggleOpen(){this._isOpen=!this._isOpen,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),this.syncOpenState()}syncOpenState(){if(!this.readOnly){var e;(e=this.block)==null||e.dispatchChange()}}updateChildrenVisibility(){this.blockId!==void 0&&S(this.api,this.blockId,this._isOpen,this._childContainerElement,this._arrowElement)}updateBodyPlaceholderVisibility(){this.blockId!==void 0&&(C(this._bodyPlaceholderElement,this.api,this.blockId,this._isOpen,this.readOnly),y(this._wrapper,this._childContainerElement))}handleBodyPlaceholderClick(){var e;if(this.blockId===void 0)return;let t=this.api.blocks.getBlockIndex(this.blockId);if(t===void 0)return;let n=this.api.blocks.insertInsideParent(this.blockId,t+1);this.api.caret.setToBlock(n.id,`start`),(e=this._bodyPlaceholderElement)==null||e.classList.add(`hidden`)}isBlockChangedPayload(e){return typeof e==`object`&&!!e&&`event`in e&&typeof e.event==`object`&&e.event!==null&&`type`in e.event&&typeof e.event.type==`string`}get currentLevel(){let e=this.levels.find(e=>e.number===this._data.level);return e==null?this.defaultLevel:e}get defaultLevel(){return this._settings.defaultLevel?this.levels.find(e=>e.number===this._settings.defaultLevel)||(console.warn(`(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels`),this.levels[1]):this.levels[1]}get levels(){let t=this._settings.levelOverrides||{},n=e.DEFAULT_LEVELS.map(e=>{var n;let r=t[e.number]||{},i={};return r.size&&(i.fontSize=r.size),r.marginTop&&(i.marginTop=r.marginTop),r.marginBottom&&(i.marginBottom=r.marginBottom),{number:e.number,tag:((n=r.tag)==null?void 0:n.toUpperCase())||e.tag,nameKey:e.nameKey,name:r.name||e.name,icon:e.icon,styles:e.styles,inlineStyles:i}}),r=this._settings.levels;return r?n.filter(e=>r.includes(e.number)):n}onPaste(e){var t;let n=e.detail;if(!(`data`in n))return;let r=n.data,i=(t={H1:1,H2:2,H3:3,H4:4,H5:5,H6:6}[r.tagName])==null?this.defaultLevel.number:t,a=this._settings.levels?this._settings.levels.reduce((e,t)=>Math.abs(t-i)<Math.abs(e-i)?t:e):i;this.data={level:a,text:r.innerHTML}}static get pasteConfig(){return{tags:[`H1`,`H2`,`H3`,`H4`,`H5`,`H6`]}}static get toolbox(){let t=e.DEFAULT_LEVELS.map(e=>({icon:e.icon,title:e.name,titleKey:e.nameKey,name:`header-${e.number}`,data:{level:e.number},searchTerms:[`h${e.number}`,`title`,`header`,`heading`],searchTermKeys:[`title`,`header`,`heading`],shortcut:`#`.repeat(e.number)})),n={1:o.fn,2:o.pn,3:o.mn},r=e.DEFAULT_LEVELS.filter(e=>e.number<=3).map(e=>({icon:n[e.number],title:`Toggle heading ${e.number}`,titleKey:`tools.header.toggleHeading${e.number}`,name:`toggle-header-${e.number}`,data:{level:e.number,isToggleable:!0},searchTerms:[`toggle`,`heading`,`h${e.number}`,`collapsible`],searchTermKeys:[`toggle`,`heading`,`collapsible`],shortcut:`>`+`#`.repeat(e.number)}));return[...t,...r]}};A=j,A.BASE_STYLES=`py-[7px] px-[2px] m-0 leading-[1.3]! outline-hidden [&_p]:p-0! [&_p]:m-0! [&_div]:p-0! [&_div]:m-0!`,A.DEFAULT_LEVELS=[{number:1,tag:`H1`,nameKey:`tools.header.heading1`,name:`Heading 1`,icon:o.Q,styles:`text-3xl font-semibold mt-8 mb-px`},{number:2,tag:`H2`,nameKey:`tools.header.heading2`,name:`Heading 2`,icon:o.$,styles:`text-2xl font-semibold mt-[26px] mb-px`},{number:3,tag:`H3`,nameKey:`tools.header.heading3`,name:`Heading 3`,icon:o.et,styles:`text-xl font-semibold mt-5 mb-px`},{number:4,tag:`H4`,nameKey:`tools.header.heading4`,name:`Heading 4`,icon:o.tt,styles:`text-lg font-semibold mt-3 mb-px`},{number:5,tag:`H5`,nameKey:`tools.header.heading5`,name:`Heading 5`,icon:o.nt,styles:`text-base font-semibold mt-3 mb-px`},{number:6,tag:`H6`,nameKey:`tools.header.heading6`,name:`Heading 6`,icon:o.rt,styles:`text-sm font-semibold mt-3 mb-px`}];var M=e=>{let{data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,element:c,setupItemPlaceholder:l,onCheckboxChange:u,keydownHandler:d}=e;if(!c)return null;let f=c.parentNode;if(!f)return null;let p=t.Xn({data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,keydownHandler:d});if(p.contentElement&&l(p.contentElement),p.checkboxElement&&!r){let e=p.checkboxElement;e.addEventListener(`change`,()=>{t.Yn(e,p.contentElement,e.checked),u(e.checked,p.contentElement)})}return f.replaceChild(p.wrapper,c),p.wrapper},N=(e,r,i,a)=>{var o;if(!r)return e;let s=i(),c=n.t({text:s?t.Wr(s.innerHTML):e.text,style:e.style},e.style===`checklist`?{checked:!!e.checked}:{});e.start!==void 0&&e.start!==1&&(c.start=e.start);let l=(o=a==null?e.depth:a)==null?0:o;return l>0&&(c.depth=l),c},P=(e,t,r,i,a)=>{var o,s;if(!r)return{newData:e,inPlace:!1};let c=(o=e.depth)==null?0:o,l=(s=t.depth)==null?0:s,u=e.style,d=t.style;if(u!==d)return{newData:e,inPlace:!1};let f=`depth`in t?t.depth:0,p=n.t(n.t(n.t({},e),t),{},{depth:f}),m=i();if(m&&typeof t.text==`string`&&(m.innerHTML=t.text),c!==l)return a.adjustDepthTo(l),a.updateMarkerForDepth(l,d),{newData:p,inPlace:!0};if(d===`checklist`){var h;a.updateCheckboxState((h=t.checked)==null?!1:h)}return{newData:p,inPlace:!0}},F=(e,t)=>{let{element:n,getContentElement:r,parseHTML:i,data:a}=e;if(!n)return;a.text+=t.text;let o=r();if(o&&t.text){let e=i(t.text);o.appendChild(e),o.normalize()}},I=(e,t,n,r)=>e.map(e=>({icon:e.icon,title:n(`toolNames.${e.titleKey}`),onActivate:()=>r(e.style),closeOnActivate:!0,isActive:t===e.style})),L=e=>{if(!e)return;let t=(e.getAttribute(`style`)||``).match(/margin-left:\s*(\d+)px/);if(!t)return;let n=parseInt(t[1],10);return n>0?{left:n}:void 0},R=e=>{let t=e.closest(`[data-list-depth]`);if(!t)return;let n=t.getAttribute(`data-list-depth`);if(n===null)return;let r=parseInt(n,10);return r>0?{left:r*27}:void 0},ee=e=>{let t=L(e.closest(`[role="listitem"]`)||e.querySelector(`[role="listitem"]`));return t===void 0?R(e):t},te=(e,t)=>{let n=document.createRange();if(n.setStart(e,0),n.setEnd(t.startContainer,t.startOffset),!e.lastChild)return{beforeContent:``,afterContent:``};let r=document.createRange();return r.setStart(t.endContainer,t.endOffset),r.setEndAfter(e.lastChild),{beforeContent:z(n.cloneContents()),afterContent:z(r.cloneContents())}},z=e=>{let t=document.createElement(`div`);return t.appendChild(e),t.innerHTML},B=e=>{let t=document.createElement(`div`);t.innerHTML=e.trim();let n=document.createDocumentFragment();return n.append(...Array.from(t.childNodes)),n},ne=(e,t)=>{let n=document.createRange();return n.selectNodeContents(e),n.setEnd(t.startContainer,t.startOffset),n.toString().length===0},re=(e,t)=>{let n=document.createRange();n.selectNodeContents(e),n.setEnd(t.startContainer,t.startOffset);let r=n.toString().length===0,i=document.createRange();i.selectNodeContents(e),i.setStart(t.endContainer,t.endOffset);let a=i.toString().length===0;return r&&a},ie=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.entries(e).find(([e])=>e===`items`);return t===void 0?!1:Array.isArray(t[1])},ae=e=>typeof e==`object`&&!!e,V=e=>typeof e==`string`?e:``,oe=(e,t)=>e===`unordered`||e===`ordered`||e===`checklist`?e:t,se=e=>!!e,ce=(e,t)=>typeof e==`number`?e:t,le=(e,t)=>{let r=t.defaultStyle||`unordered`;if(!e||typeof e!=`object`)return{text:``,style:r,checked:!1,depth:0};if(ie(e)){let{text:t,checked:i}=(e=>{if(typeof e==`string`)return{text:e,checked:!1};if(typeof e==`object`&&e){var t,n,r;return{text:(t=(n=e.content)==null?e.text:n)==null?``:t,checked:(r=e.checked)==null?!1:r}}return{text:``,checked:!1}})(e.items[0]);return n.t({text:t,style:e.style||r,checked:!!i,depth:0},e.start!==void 0&&e.start!==1?{start:e.start}:{})}if(ae(e)){let t=V(e.text),i=oe(e.style,r),a=se(e.checked),o=ce(e.depth,0),s=e.start,c=typeof s==`number`&&s!==void 0&&s!==1?s:void 0;return n.t({text:t,style:i,checked:a,depth:o},c===void 0?{}:{start:c})}return{text:``,style:r,checked:!1,depth:0}},ue=(e,t)=>{if(!e)return null;if(t===`checklist`){let t=e.querySelector(`[data-blok-testid="list-checklist-content"]`);return t instanceof HTMLElement?t:null}let n=e.querySelector(`[data-blok-testid="list-content-container"]`);return n instanceof HTMLElement?n:null},H=(e,t,n)=>{e&&e.setAttribute(`data-list-depth`,String(n));let r=e==null?void 0:e.querySelector(`[role="listitem"]`);r instanceof HTMLElement&&(r.style.marginLeft=n>0?`${n*27}px`:``),t.depth=n},de=(e,t)=>t.getBlockDepth(e),fe=(e,t)=>t.getBlockStyle(e),pe=(e,t)=>t.getBulletCharacter(e),me=(e,t,n,r,i)=>{var a;let o=e?(a=r.getBlockIndex(e))==null?r.getCurrentBlockIndex():a:r.getCurrentBlockIndex();return o<=0?0:i.getSiblingIndex(o,t,n)},he=(e,t,n,r,i,a)=>{var o;if(e===0){var s;return(s=r.start)==null?1:s}let c=n?(o=i.getBlockIndex(n))==null?i.getCurrentBlockIndex():o:i.getCurrentBlockIndex(),l=a.findFirstItemIndex(c-1,t,e,r.style);return l===null?1:a.getBlockStartValue(l)},ge=(e,t,n,r,i,a)=>{var o;let s=he(e,t,r,n,i,a)+e,c=r?(o=i.getBlockIndex(r))==null?i.getCurrentBlockIndex():o:i.getCurrentBlockIndex(),l=a.getVisualDepth(c,t);return a.formatNumber(s,l)},_e=(e,t,n,r)=>r.findGroupStart(e,t,n),ve=(e,t,n,r)=>{if(!e)return;let i=e.holder,a=i==null?void 0:i.querySelector(`[data-list-style="ordered"]`);if(!a)return;let o=a.querySelector(`[data-list-marker]`);if(!o)return;let s=t.getBlockIndex(e.id);if(s==null)return;let c=de(e,n),l=fe(e,r)||`ordered`,u=r.getSiblingIndex(s,c,l),d=r.getGroupStartValue(s,c,u,l)+u,f=r.getVisualDepth(s,c);o.textContent=r.formatNumber(d,f)},ye=(e,t,n,r,i,a,o,s)=>{let c=e=>{if(e>=t)return;if(e===n){c(e+1);return}let l=a.getBlockByIndex(e);if(!l||l.name!==`list`)return;let u=de(l,o);if(!(u<r)){if(u>r){c(e+1);return}fe(l,s)===i&&(ve(l,a,o,s),c(e+1))}};c(e)},be=(e,t,n)=>{let r=e.getBlocksCount();Array.from({length:r},(e,t)=>t).forEach(r=>{let i=e.getBlockByIndex(r);if(!i||i.name!==`list`)return;let a=i.holder;a!=null&&a.querySelector(`[data-list-style="ordered"]`)&&ve(i,e,t,n)})},U=(e,t,n=`end`)=>{let r=()=>{let r=t.holder;if(!r)return;let i=r.querySelector(`[contenteditable="true"]`);if(!(i instanceof HTMLElement)){e.caret.setToBlock(t,n),e.caret.updateLastCaretAfterPosition();return}i.focus();let a=window.getSelection();if(!a)return;let o=document.createRange();n===`start`?(o.setStart(i,0),o.collapse(!0)):(o.selectNodeContents(i),o.collapse(!1)),a.removeAllRanges(),a.addRange(o),e.caret.updateLastCaretAfterPosition()},i=t.holder;(i==null?void 0:i.querySelector(`[contenteditable="true"]`))instanceof HTMLElement?r():requestAnimationFrame(()=>r())},xe=e=>{if(!e)return null;let t=window.getSelection();if(!t||t.rangeCount===0)return null;let n=t.getRangeAt(0);if(!e.contains(n.endContainer))return null;let r=document.createRange();return r.selectNodeContents(e),r.setEnd(n.endContainer,n.endOffset),r.toString().length},Se=e=>e.nodeType===Node.TEXT_NODE?[e]:Array.from(e.childNodes).flatMap(Se),Ce=(e,t)=>{let n=Se(e),r=(t,i)=>{var a,o;if(t>=n.length){var s,c;let t=n[n.length-1];return t===void 0?{node:e,nodeOffset:0}:{node:t,nodeOffset:(s=(c=t.textContent)==null?void 0:c.length)==null?0:s}}let l=n[t],u=(a=(o=l.textContent)==null?void 0:o.length)==null?0:a;return i<=u?{node:l,nodeOffset:i}:r(t+1,i-u)};return r(0,t)},we=(e,t,n)=>{let r=()=>{let r=t.holder;if(!r)return;let i=r.querySelector(`[contenteditable="true"]`);if(!(i instanceof HTMLElement)){e.caret.setToBlock(t,`end`),e.caret.updateLastCaretAfterPosition();return}i.focus();let a=window.getSelection();if(!a)return;let{node:o,nodeOffset:s}=Ce(i,n),c=document.createRange();c.setStart(o,s),c.collapse(!0),a.removeAllRanges(),a.addRange(c),e.caret.updateLastCaretAfterPosition()},i=t.holder;(i==null?void 0:i.querySelector(`[contenteditable="true"]`))instanceof HTMLElement?r():requestAnimationFrame(()=>r())},Te=async(e,r)=>{var i;let{api:a,blockId:o,data:s,element:c,getContentElement:l}=e,u=window.getSelection();if(!u||!c)return;let d=l();if(!d)return;let f=d.innerHTML.trim();if(f===``||f===`<br>`){await Ee(e,r);return}let{beforeContent:p,afterContent:m}=te(d,u.getRangeAt(0)),h=o?(i=a.blocks.getBlockIndex(o))==null?a.blocks.getCurrentBlockIndex():i:a.blocks.getCurrentBlockIndex();if(!o){d.innerHTML=p,s.text=p,U(a,a.blocks.insert(t.nr,n.t(n.t({text:m,style:s.style},s.style===`checklist`?{checked:!1}:{}),{},{depth:s.depth}),void 0,h+1,!0),`start`);return}let g=a.blocks.splitBlock(o,{text:p},t.nr,n.t(n.t({text:m,style:s.style},s.style===`checklist`?{checked:!1}:{}),{},{depth:s.depth}),h+1);s.text=p,U(a,g,`start`)},W=(e,t)=>{var n;if(t===void 0)return null;let r=e.blocks.getById(t),i=(n=r==null?void 0:r.parentId)==null?null:n;if(i===null)return null;let a=e.blocks.getById(i);return a!==null&&a.name===`list`?i:null},Ee=async(e,t)=>{let{api:n,blockId:r,getDepth:i}=e,a=W(n,r);if(a!==null&&r!==void 0){var o,s;let e=(o=(s=n.blocks.getById(a))==null?void 0:s.parentId)==null?null:o;n.blocks.setBlockParent(r,e);let t=n.blocks.getById(r);t!==null&&U(n,t);return}if(i()>0){await Ae(e,t);return}r!==void 0&&U(n,await n.blocks.convert(r,`paragraph`,{text:``}),`start`)},De=async(e,t,n)=>{let{blockId:r,data:i,element:a,getContentElement:o,syncContentFromDOM:s,getDepth:c,api:l}=e,u=window.getSelection();if(!u||!a)return;let d=u.getRangeAt(0),f=o();if(!f)return;s();let p=i.text;if(re(f,d)&&!u.isCollapsed){t.preventDefault(),f.innerHTML=``,i.text=``;let e=document.createRange();e.setStart(f,0),e.collapse(!0),u.removeAllRanges(),u.addRange(e);return}if(!u.isCollapsed||!ne(f,d))return;if(t.metaKey||t.ctrlKey||t.altKey){t.preventDefault();return}if(t.preventDefault(),r===void 0)return;let m=W(l,r);if(m!==null){var h,g;let e=(h=(g=l.blocks.getById(m))==null?void 0:g.parentId)==null?null:h;l.blocks.setBlockParent(r,e);let t=l.blocks.getById(r);t!==null&&U(l,t,`start`);return}if(c()>0){await Ae(e,n);return}U(l,await l.blocks.convert(r,`paragraph`,{text:p}),`start`)},Oe=async(e,t,n,r)=>{var i;let a=t?(i=e.blocks.getBlockIndex(t))==null?e.blocks.getCurrentBlockIndex():i:e.blocks.getCurrentBlockIndex(),o=e.blocks.getBlocksCount(),s=async t=>{if(t>=o)return;let i=e.blocks.getBlockByIndex(t);if(!i||i.name!==`list`)return;let a=r.getBlockDepth(i);a<=n||(await e.blocks.update(i.id,{depth:a-1}),await s(t+1))};await s(a+1)},ke=async(e,t,n,r)=>{var i;let a=t?(i=e.blocks.getBlockIndex(t))==null?e.blocks.getCurrentBlockIndex():i:e.blocks.getCurrentBlockIndex(),o=e.blocks.getBlocksCount(),s=async t=>{if(t>=o)return;let i=e.blocks.getBlockByIndex(t);if(!i||i.name!==`list`)return;let a=r.getBlockDepth(i);a<=n||(await e.blocks.update(i.id,{depth:a+1}),await s(t+1))};await s(a+1)},Ae=async(e,t)=>{let{api:r,blockId:i,data:a,syncContentFromDOM:o,getDepth:s,getContentElement:c}=e,l=s();if(l===0)return;let u=xe(c());o();let d=l-1;a.depth=d;let f=await r.blocks.update(i||``,n.t(n.t({},a),{},{depth:d}));t&&await Oe(r,i,l,t),u===null?U(r,f):we(r,f,u)},je=async e=>{let{api:r,blockId:i,data:a,element:o,getContentElement:s}=e;if(a.style!==`checklist`)return!1;let c=!a.checked;a.checked=c;let l=o==null?void 0:o.querySelector(`input[type="checkbox"]`);return t.Yn(l instanceof HTMLInputElement?l:null,s(),c),i!==void 0&&await r.blocks.update(i,n.t(n.t({},a),{},{checked:c})),!0},Me=async(e,t)=>{var r;let{api:i,blockId:a,data:o,syncContentFromDOM:s,getDepth:c,getContentElement:l}=e,u=a===void 0||(r=i.blocks.getBlockIndex(a))==null?i.blocks.getCurrentBlockIndex():r,d=c(),f=u>0?i.blocks.getBlockByIndex(u-1):void 0;if(f===void 0||f.name!==`list`||d>=t.getMaxAllowedDepth(u))return;let p=xe(l());s();let m=d+1;o.depth=m;let h=await i.blocks.update(a||``,n.t(n.t({},o),{},{depth:m}));await ke(i,a,d,t),p===null?U(i,h):we(i,h,p)},Ne=e=>{let{data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,setupItemPlaceholder:c,onCheckboxChange:l,keydownHandler:u}=e,d=t.Xn({data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,keydownHandler:u});if(d.contentElement&&c(d.contentElement),d.checkboxElement&&!r){let e=d.checkboxElement;e.addEventListener(`change`,()=>{t.Yn(e,d.contentElement,e.checked),l(e.checked,d.contentElement)})}return d.wrapper},Pe=e=>{let t=e=>{if(e<=0)return``;let n=e-1;return t(Math.floor(n/26))+String.fromCharCode(97+n%26)};return t(e)},Fe=e=>{let t=[[1e3,`m`],[900,`cm`],[500,`d`],[400,`cd`],[100,`c`],[90,`xc`],[50,`l`],[40,`xl`],[10,`x`],[9,`ix`],[5,`v`],[4,`iv`],[1,`i`]],n=(e,r)=>{if(e<=0||r>=t.length)return``;let[i,a]=t[r];return e>=i?a+n(e-i,r):n(e,r+1)};return n(e,0)},Ie=class{constructor(e){this.blocks=e}getMarkerText(e){let{blockIndex:t,depth:n,style:r,start:i}=e;if(r!==`ordered`)return this.getBulletCharacter(n);let a=this.getSiblingIndex(t,n,r),o=(i==null?this.getGroupStartValue(t,n,a,r):i)+a;return this.formatNumber(o,n)}getBulletCharacter(e){let t=[`•`,`◦`,`▪`];return t[e%t.length]}getSiblingIndex(e,t,n){return e<=0?0:this.countPrecedingAtDepth(e-1,t,n)}findGroupStart(e,t,n){return this.findGroupStartRecursive(e-1,e,t,n)}formatNumber(e,t){let n=t%3;return n===1?`${Pe(e)}.`:n===2?`${Fe(e)}.`:`${e}.`}getGroupStartValue(e,t,n,r){if(n===0)return this.getBlockStartValue(e);let i=this.findFirstItemIndex(e-1,t,n,r);return i===null?1:this.getBlockStartValue(i)}getBlockStartValue(e){var t;let n=this.blocks.getBlockByIndex(e);if(!n)return 1;let r=(t=n.holder)==null?void 0:t.querySelector(`[data-list-style]`);if(!r)return 1;let i=r.getAttribute(`data-list-start`);return i?parseInt(i,10):1}findFirstItemIndex(e,t,n,r){if(e<0||n<=0)return e+1;let i=this.blocks.getBlockByIndex(e);if(!i||i.name!==`list`)return e+1;let a=this.getBlockDepth(i);if(a<t)return e+1;if(a>t)return this.findFirstItemIndex(e-1,t,n,r);let o=this.getBlockStyle(i);return r!==void 0&&o!==r?e+1:this.findFirstItemIndex(e-1,t,n-1,r)}getGroupBaseDepth(e){let t=e=>{if(e<=0)return 0;let n=this.blocks.getBlockByIndex(e-1);return!n||n.name!==`list`?e:t(e-1)},n=t(e),r=this.blocks.getBlockByIndex(n);return this.getBlockDepth(r)}getVisualDepth(e,t){return Math.max(0,t-this.getGroupBaseDepth(e))}getBlockDepth(e){var t;if(!e)return 0;let n=(t=e.holder)==null||(t=t.querySelector(`[role="listitem"]`))==null?void 0:t.getAttribute(`style`),r=n==null?void 0:n.match(/margin-left:\s*(\d+)px/);return r?Math.round(parseInt(r[1],10)/27):0}getBlockStyle(e){var t;if(!e)return null;let n=(t=e.holder)==null||(t=t.querySelector(`[data-list-style]`))==null?void 0:t.getAttribute(`data-list-style`);return this.isValidListItemStyle(n)?n:null}isValidListItemStyle(e){return e===`unordered`||e===`ordered`||e===`checklist`}countPrecedingAtDepth(e,t,n){if(e<0)return 0;let r=this.blocks.getBlockByIndex(e);if(!r||r.name!==`list`)return 0;let i=this.getBlockDepth(r);return i<t?0:i>t?this.countPrecedingAtDepth(e-1,t,n):this.getBlockStyle(r)===n?1+this.countPrecedingAtDepth(e-1,t,n):0}findGroupStartRecursive(e,t,n,r){if(e<0)return t;let i=this.blocks.getBlockByIndex(e);if(!i||i.name!==`list`)return t;let a=this.getBlockDepth(i);return a<n?t:a>n?this.findGroupStartRecursive(e-1,t,n,r):this.getBlockStyle(i)===r?this.findGroupStartRecursive(e-1,e,n,r):t}},Le={value:!1},Re=class{constructor(e){this.blocks=e,this.depthValidator=new t.Ln(e),this.markerCalculator=new Ie(e)}updateMarker(e,t,n){let r=e.querySelector(`[data-list-marker]`);if(!r)return;let i=this.markerCalculator.getSiblingIndex(t,n,`ordered`),a=this.markerCalculator.getGroupStartValue(t,n,i,`ordered`),o=(i===0&&a===1?(()=>{let t=e.getAttribute(`data-list-start`);if(!t)return a;let n=parseInt(t,10);return isNaN(n)?a:n})():a)+i,s=this.markerCalculator.getVisualDepth(t,n);r.textContent=this.markerCalculator.formatNumber(o,s)}updateSiblingMarkers(e,t){let n=this.blocks.getBlocksCount(),r=this.findListGroupStartIndex(e,t,`ordered`);this.updateMarkersInRange(r,n,e,t,`ordered`)}updateAllMarkers(){let e=this.blocks.getBlocksCount();for(let t of Array.from({length:e},(e,t)=>t)){let e=this.blocks.getBlockByIndex(t);if(!e||e.name!==`list`)continue;let n=e.holder;n!=null&&n.querySelector(`[data-list-style="ordered"]`)&&this.updateBlockMarker(e)}}scheduleUpdateAll(){Le.value||(Le.value=!0,requestAnimationFrame(()=>{Le.value=!1,this.updateAllMarkers()}))}findListGroupStartIndex(e,t,n){return this.markerCalculator.findGroupStart(e,t,n)}updateMarkersInRange(e,t,n,r,i){let a=Array.from({length:t-e},(t,n)=>e+n);for(let e of a){if(e===n)continue;let t=this.blocks.getBlockByIndex(e);if(!t||t.name!==`list`)return;let a=this.depthValidator.getBlockDepth(t);if(a<r)return;if(!(a>r)){if(this.getBlockStyle(t)!==i)return;this.updateBlockMarker(t)}}}getBlockStyle(e){return this.markerCalculator.getBlockStyle(e)}updateBlockMarker(e){if(!e)return;let t=e.holder,n=t==null?void 0:t.querySelector(`[data-list-style="ordered"]`);if(!n)return;let r=n.querySelector(`[data-list-marker]`);if(!r)return;let i=this.blocks.getBlockIndex(e.id);if(i==null)return;let a=this.depthValidator.getBlockDepth(e),o=this.getBlockStyle(e)||`ordered`,s=this.markerCalculator.getSiblingIndex(i,a,o),c=this.markerCalculator.getGroupStartValue(i,a,s,o),l=(s===0&&c===1?(()=>{let e=n.closest(`[data-list-start]`),t=e==null?void 0:e.getAttribute(`data-list-start`);if(!t)return c;let r=parseInt(t,10);return isNaN(r)?c:r})():c)+s,u=this.markerCalculator.getVisualDepth(i,a);r.textContent=this.markerCalculator.formatNumber(l,u)}},ze=()=>({text:{br:!0,a:{href:!0,target:`_blank`,rel:`nofollow`},b:!0,i:!0}}),Be=()=>({tags:[{li:{style:!0,"aria-level":!0,"data-list-style":!0}},{input:{type:!0,checked:!0}}]}),Ve=()=>({export:e=>e.text,import:e=>({text:e,style:`unordered`,checked:!1})}),He=[{name:`bulletedList`,titleKey:`bulletedList`,style:`unordered`,icon:o.St},{name:`numberedList`,titleKey:`numberedList`,style:`ordered`,icon:o.wt},{name:`todoList`,titleKey:`todoList`,style:`checklist`,icon:o.Ct}],Ue=()=>[{icon:o.St,titleKey:`bulletedList`,data:{style:`unordered`},name:`bulleted-list`,searchTerms:[`ul`,`bullet`,`unordered`,`list`],searchTermKeys:[`bullet`,`unordered`,`list`],shortcut:`CMD+SHIFT+5`},{icon:o.wt,titleKey:`numberedList`,data:{style:`ordered`},name:`numbered-list`,searchTerms:[`ol`,`ordered`,`number`,`list`],searchTermKeys:[`ordered`,`number`,`list`],shortcut:`CMD+SHIFT+6`},{icon:o.Ct,titleKey:`todoList`,data:{style:`checklist`},name:`check-list`,searchTerms:[`checkbox`,`task`,`todo`,`check`,`list`],searchTermKeys:[`checkbox`,`task`,`todo`,`check`,`list`],shortcut:`CMD+SHIFT+7`}],We=class{constructor({data:e,config:n,api:r,readOnly:i,block:a}){this._element=null,this.placeholderCleanup=null,this.boundHandleKeyDown=null,this.wasStructurallyNested=!1,this.handleBlockChanged=e=>{if(this.isBlockChangedEventPayload(e)&&(e.event.type===`block-removed`||e.event.type===`block-added`)){var t;(t=this.markerManager)==null||t.scheduleUpdateAll()}},this.api=r,this.readOnly=i,this._settings=n||{},this._data=this.normalizeData(e),this.depthValidator=new t.Ln(r.blocks),this.markerCalculator=new Ie(r.blocks),this.markerManager=this._data.style===`ordered`?new Re(r.blocks):null,a&&(this.blockId=a.id),this._data.style===`ordered`&&this.api.events.on(`block changed`,this.handleBlockChanged)}isBlockChangedEventPayload(e){return typeof e==`object`&&!!e&&`event`in e&&typeof e.event==`object`&&e.event!==null&&`type`in e.event&&typeof e.event.type==`string`}normalizeData(e){return le(e,this._settings)}get availableStyles(){let e=this._settings.styles;return!e||e.length===0?He:He.filter(t=>e.includes(t.style))}get itemColor(){return this._settings.itemColor}get itemSize(){return this._settings.itemSize}get placeholder(){return this.api.i18n.t(t.tr)}setupItemPlaceholder(e){this.readOnly||(this.placeholderCleanup=t.er(e,this.placeholder))}render(){var e,t;if(this._element)return this._element;this.reconcileDepthFromStructure();let n=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex(),r=(t=this._data.depth)==null?0:t,i=this.markerCalculator.getVisualDepth(n,r);return this.boundHandleKeyDown||(this.boundHandleKeyDown=this.handleKeyDown.bind(this)),this._element=Ne({data:this._data,readOnly:this.readOnly,placeholder:this.placeholder,itemColor:this.itemColor,itemSize:this.itemSize,markerDepth:i,setupItemPlaceholder:this.setupItemPlaceholder.bind(this),onCheckboxChange:e=>{this._data.checked=e},keydownHandler:this.readOnly?void 0:this.boundHandleKeyDown}),this._element}setReadOnly(e){if(!this._element)return;this.readOnly=e;let n=this.getContentElement();n&&(n.contentEditable=e?`false`:`true`);let r=this._element.querySelector(`input[type="checkbox"]`);r&&(r.disabled=e),e?(this.boundHandleKeyDown&&this._element.removeEventListener(`keydown`,this.boundHandleKeyDown),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null)):(this.boundHandleKeyDown&&this._element.addEventListener(`keydown`,this.boundHandleKeyDown),n&&(this.placeholderCleanup=t.er(n,this.placeholder)))}rendered(){var e;let t=this.getStructuralListDepth();this.wasStructurallyNested=t!==null,t!==null&&t!==((e=this._data.depth)==null?0:e)&&(this.adjustDepthTo(t),this.updateMarkerForDepth(t,this._data.style)),this.updateMarkersAfterPositionChange()}moved(e){var t;if(e.targetDepth!==void 0){var n;this.validateAndAdjustDepthAfterMove(e.toIndex,e.isGroupMove,e.targetDepth),this.wasStructurallyNested=this.getStructuralListDepth()!==null,this.updateMarkersAfterPositionChange(),(n=this.markerManager)==null||n.scheduleUpdateAll();return}let r=this.getStructuralListDepth();if(e.structural===!0||r!==null||this.wasStructurallyNested){let e=r==null?0:r;this.adjustDepthTo(e),this.updateMarkerForDepth(e,this._data.style),this.wasStructurallyNested=r!==null}else this.validateAndAdjustDepthAfterMove(e.toIndex,e.isGroupMove);this.updateMarkersAfterPositionChange(),(t=this.markerManager)==null||t.scheduleUpdateAll()}getStructuralListDepth(){if(this.blockId===void 0)return null;let e=(t,n)=>{var r;let i=this.api.blocks.getById(t),a=(r=i==null?void 0:i.parentId)==null?null:r;if(a===null)return n;let o=this.api.blocks.getById(a);return o===null||o.name!==`list`?n:e(a,n+1)},t=e(this.blockId,0);return t>0?t:null}reconcileDepthFromStructure(){var e;let t=this.getStructuralListDepth();t!==null&&t!==((e=this._data.depth)==null?0:e)&&(this._data.depth=t)}updateMarkersAfterPositionChange(){this._data.style!==`ordered`||!this._element||(this.updateMarker(),this.updateSiblingListMarkers())}validateAndAdjustDepthAfterMove(e,t,n){let r=this.getDepth(),i=this.depthValidator.getTargetDepthForMove({blockIndex:e,currentDepth:r,skipDepthPromotion:t,pointerDepth:n});r!==i&&(this.adjustDepthTo(i),this.updateMarkerForDepth(i,this._data.style))}adjustDepthTo(e){H(this._element,this._data,e)}removed(){var e;this._data.style===`ordered`&&(this.api.events.off(`block changed`,this.handleBlockChanged),(e=this.markerManager)==null||e.scheduleUpdateAll())}updateAllOrderedListMarkers(){be(this.api.blocks,this.depthValidator,this.markerCalculator)}updateMarker(){var e;let t=(e=this._element)==null?void 0:e.querySelector(`[data-list-marker]`);if(!t)return;let n=this.getDepth();t.textContent=ge(me(this.blockId,n,this._data.style,this.api.blocks,this.markerCalculator),n,this._data,this.blockId,this.api.blocks,this.markerCalculator)}updateSiblingListMarkers(){var e;let t=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex(),n=this.getDepth(),r=this._data.style,i=this.api.blocks.getBlocksCount();ye(_e(t,n,r,this.markerCalculator),i,t,n,r,this.api.blocks,this.depthValidator,this.markerCalculator)}updateMarkerForDepth(e,t){var n,r;let i=(n=this._element)==null?void 0:n.querySelector(`[aria-hidden="true"]`);if(!(i instanceof HTMLElement))return;let a=this.blockId?(r=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():r:this.api.blocks.getCurrentBlockIndex(),o=this.markerCalculator.getVisualDepth(a,e);t===`ordered`?i.textContent=ge(me(this.blockId,e,this._data.style,this.api.blocks,this.markerCalculator),e,this._data,this.blockId,this.api.blocks,this.markerCalculator):i.textContent=pe(o,this.markerCalculator)}updateCheckboxState(e){var n;let r=(n=this._element)==null?void 0:n.querySelector(`input[type="checkbox"]`);t.Yn(r instanceof HTMLInputElement?r:null,this.getContentElement(),e)}getDepth(){var e,t;return(e=(t=this.getStructuralListDepth())==null?this._data.depth:t)==null?0:e}handleKeyDown(e){if(e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&this._data.style===`checklist`){e.preventDefault(),this.toggleChecked();return}if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),this.handleEnter();return}if(e.key===`Backspace`){this.handleBackspace(e);return}if(e.key===`Tab`&&this.getStructuralListDepth()===null){var n;let r=((n=this.getPreviousBlock())==null?void 0:n.name)===t.nr;e.shiftKey&&this.getDepth()>0?(e.preventDefault(),this.handleOutdent()):!e.shiftKey&&r&&this.getDepth()>0&&(e.preventDefault(),this.handleIndent())}}getPreviousBlock(){var e;let t=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex();return t>0?this.api.blocks.getBlockByIndex(t-1):void 0}async toggleChecked(){var e=this;await je({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)})}async handleEnter(){var e=this;await Te({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)},e.depthValidator)}async handleBackspace(e){var t=this;await De({api:t.api,blockId:t.blockId,data:t._data,element:t._element,getContentElement:t.getContentElement.bind(t),syncContentFromDOM:t.syncContentFromDOM.bind(t),getDepth:t.getDepth.bind(t)},e,t.depthValidator)}async handleIndent(){var e=this;await Me({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)},e.depthValidator)}async handleOutdent(){var e=this;await Ae({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)},e.depthValidator)}syncContentFromDOM(){var e;let t=this.getContentElement();if(t&&(this._data.text=t.innerHTML),this._data.style!==`checklist`)return;let n=(e=this._element)==null?void 0:e.querySelector(`input[type="checkbox"]`);n instanceof HTMLInputElement&&(this._data.checked=n.checked)}getContentElement(){return ue(this._element,this._data.style)}renderSettings(){return I(this.availableStyles,this._data.style,this.api.i18n.t,e=>this.setStyle(e))}setStyle(e){let t=this._data.style;if(this._data.style=e,this.rerender(),t!==e){var n;(n=this.markerManager)==null||n.scheduleUpdateAll()}}rerender(){var e,t,n;this.reconcileDepthFromStructure();let r=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex(),i=(t=this._data.depth)==null?0:t,a=M({data:this._data,readOnly:this.readOnly,placeholder:this.placeholder,itemColor:this.itemColor,itemSize:this.itemSize,markerDepth:this.markerCalculator.getVisualDepth(r,i),element:this._element,setupItemPlaceholder:this.setupItemPlaceholder.bind(this),onCheckboxChange:e=>{this._data.checked=e},keydownHandler:this.readOnly||(n=this.boundHandleKeyDown)==null?void 0:n});a&&(this._element=a,this.updateMarkersAfterPositionChange())}validate(e){return typeof e.text==`string`}save(){return N(this._data,this._element,this.getContentElement.bind(this),this.getDepth())}setData(e){let t=P(this._data,e,this._element,this.getContentElement.bind(this),{adjustDepthTo:this.adjustDepthTo.bind(this),updateMarkerForDepth:this.updateMarkerForDepth.bind(this),updateCheckboxState:this.updateCheckboxState.bind(this)});return this._data=t.newData,t.inPlace}merge(e){F({data:this._data,element:this._element,getContentElement:this.getContentElement.bind(this),parseHTML:B},e)}static get conversionConfig(){return Ve()}static get sanitize(){return ze()}static get pasteConfig(){return Be()}onPaste(e){let n=e.detail;if(!(`data`in n))return;let r=n.data;if(!t.at(r))return;let{text:i,checked:a}=t.it(r),o=t.rt(r);this._data={text:i,style:t.nt(r,this._data.style),checked:a,depth:o},this.rerender()}static get isReadOnlySupported(){return!0}getContentOffset(e){return ee(e)}static get toolbox(){return Ue()}},Ge=e=>!!(/^#[0-9a-f]{3,4}$/i.test(e)||/^#[0-9a-f]{6}([0-9a-f]{2})?$/i.test(e)||/^rgba?\(\s*[\d.]+\s*,\s*[\d.]+\s*,\s*[\d.]+\s*(,\s*[\d.]+\s*)?\)$/i.test(e)||/^hsla?\(\s*[\d.]+\s*,\s*[\d.]+%\s*,\s*[\d.]+%\s*(,\s*[\d.]+\s*)?\)$/i.test(e)||e===`transparent`),Ke=class{constructor(e){var t,n,r;this.withHeadingsValue=(t=e==null?void 0:e.withHeadings)==null?!1:t,this.withHeadingColumnValue=(n=e==null?void 0:e.withHeadingColumn)==null?!1:n,this.stretchedValue=(r=e==null?void 0:e.stretched)==null?!1:r,this.colWidthsValue=e!=null&&e.colWidths?[...e.colWidths]:void 0,this.initialColWidthValue=e==null?void 0:e.initialColWidth,this.contentGrid=this.normalizeContent(e==null?void 0:e.content),this.blockCellMap=new Map,this.rebuildBlockCellMap()}get rows(){return this.contentGrid.length}get cols(){return this.contentGrid.length>0?this.contentGrid[0].length:0}get withHeadings(){return this.withHeadingsValue}get withHeadingColumn(){return this.withHeadingColumnValue}get stretched(){return this.stretchedValue}get colWidths(){return this.colWidthsValue?[...this.colWidthsValue]:void 0}get initialColWidth(){return this.initialColWidthValue}snapshot(){let e={withHeadings:this.withHeadingsValue,withHeadingColumn:this.withHeadingColumnValue,stretched:this.stretchedValue,content:this.contentGrid.map(e=>e.map(e=>{let t={blocks:[...e.blocks]};return e.color!==void 0&&(t.color=e.color),e.textColor!==void 0&&(t.textColor=e.textColor),e.placement!==void 0&&(t.placement=e.placement),e.colspan!==void 0&&e.colspan>1&&(t.colspan=e.colspan),e.rowspan!==void 0&&e.rowspan>1&&(t.rowspan=e.rowspan),e.mergedInto!==void 0&&(t.mergedInto=[...e.mergedInto]),t}))};return this.colWidthsValue!==void 0&&(e.colWidths=[...this.colWidthsValue]),this.initialColWidthValue!==void 0&&(e.initialColWidth=this.initialColWidthValue),e}findCellForBlock(e){var t;return(t=this.blockCellMap.get(e))==null?null:t}addBlockToCell(e,t,n){if(!this.isInBounds(e,t)||this.isSpannedCell(e,t))return;let r=this.blockCellMap.get(n);if(r){let e=this.contentGrid[r.row][r.col];e.blocks=e.blocks.filter(e=>e!==n)}this.contentGrid[e][t].blocks.push(n),this.blockCellMap.set(n,{row:e,col:t})}removeBlockFromCell(e,t,n){if(!this.isInBounds(e,t))return;let r=this.contentGrid[e][t],i=r.blocks.indexOf(n);i!==-1&&(r.blocks.splice(i,1),this.blockCellMap.delete(n))}setCellBlocks(e,t,n){if(this.isInBounds(e,t)&&!this.isSpannedCell(e,t)){for(let n of this.contentGrid[e][t].blocks)this.blockCellMap.delete(n);for(let r of n){let n=this.blockCellMap.get(r);if(n!==void 0&&(n.row!==e||n.col!==t)){let e=this.contentGrid[n.row][n.col];e.blocks=e.blocks.filter(e=>e!==r)}}this.contentGrid[e][t].blocks=[...n];for(let r of n)this.blockCellMap.set(r,{row:e,col:t})}}getCellBlocks(e,t){return this.isInBounds(e,t)?[...this.contentGrid[e][t].blocks]:[]}setCellColor(e,t,n){this.isInBounds(e,t)&&(this.isSpannedCell(e,t)||(n===void 0?delete this.contentGrid[e][t].color:Ge(n)&&(this.contentGrid[e][t].color=n)))}getCellColor(e,t){if(this.isInBounds(e,t))return this.contentGrid[e][t].color}setCellTextColor(e,t,n){this.isInBounds(e,t)&&(this.isSpannedCell(e,t)||(n===void 0?delete this.contentGrid[e][t].textColor:Ge(n)&&(this.contentGrid[e][t].textColor=n)))}getCellTextColor(e,t){if(this.isInBounds(e,t))return this.contentGrid[e][t].textColor}setCellPlacement(e,t,n){this.isInBounds(e,t)&&(this.isSpannedCell(e,t)||(n===void 0?delete this.contentGrid[e][t].placement:this.contentGrid[e][t].placement=n))}getCellPlacement(e,t){if(this.isInBounds(e,t))return this.contentGrid[e][t].placement}addRow(e){let t=e===void 0?this.contentGrid.length:Math.min(Math.max(0,e),this.contentGrid.length),n=this.cols,r=Array.from({length:n},()=>({blocks:[]}));return this.contentGrid.splice(t,0,r),this.shiftMergedIntoRows(t,1),this.expandSpansForInsertedRow(t),this.rebuildBlockCellMap(),{type:`add-row`,index:t,cellsToPopulate:n}}deleteRow(e){if(!this.isRowInBounds(e))return{type:`delete-row`,index:e,blocksToDelete:[]};this.contractSpansForDeletedRow(e);let t=this.collectBlocksInRow(e);this.contentGrid.splice(e,1);for(let e of t)this.blockCellMap.delete(e);return this.shiftMergedIntoRows(e,-1),this.rebuildBlockCellMap(),{type:`delete-row`,index:e,blocksToDelete:t}}moveRow(e,t){if(!this.isRowInBounds(e)||!this.isRowInBounds(t)||e===t||this.isRowInvolvedInMerge(e))return{type:`move-row`,index:e,toIndex:t};let[n]=this.contentGrid.splice(e,1);return this.contentGrid.splice(t,0,n),this.rebuildMergedIntoRowCoordinates(e,t),this.rebuildBlockCellMap(),{type:`move-row`,index:e,toIndex:t}}addColumn(e,t){let n=e===void 0?this.cols:Math.min(Math.max(0,e),this.cols),r=[];if(this.contentGrid.forEach((e,t)=>{e.splice(n,0,{blocks:[]}),r.push({row:t,col:n})}),this.colWidthsValue!==void 0){let e=t==null?0:t;this.colWidthsValue.splice(n,0,e)}return this.shiftMergedIntoCols(n,1),this.expandSpansForInsertedCol(n),this.rebuildBlockCellMap(),{type:`add-column`,index:n,cellsToPopulate:r}}deleteColumn(e){var t;if(!this.isColInBounds(e))return{type:`delete-column`,index:e,blocksToDelete:[]};this.contractSpansForDeletedCol(e);let n=this.collectBlocksInColumn(e);for(let t of this.contentGrid)t.splice(e,1);for(let e of n)this.blockCellMap.delete(e);return this.colWidthsValue!==void 0&&this.colWidthsValue.splice(e,1),((t=this.colWidthsValue)==null?void 0:t.length)===0&&(this.colWidthsValue=void 0),this.shiftMergedIntoCols(e,-1),this.rebuildBlockCellMap(),{type:`delete-column`,index:e,blocksToDelete:n}}moveColumn(e,t){if(!this.isColInBounds(e)||!this.isColInBounds(t)||e===t||this.isColInvolvedInMerge(e))return{type:`move-column`,index:e,toIndex:t};for(let n of this.contentGrid){let[r]=n.splice(e,1);n.splice(t,0,r)}if(this.colWidthsValue!==void 0){let[n]=this.colWidthsValue.splice(e,1);this.colWidthsValue.splice(t,0,n)}return this.rebuildMergedIntoColCoordinates(e,t),this.rebuildBlockCellMap(),{type:`move-column`,index:e,toIndex:t}}replaceAll(e){var t;this.withHeadingsValue=e.withHeadings,this.withHeadingColumnValue=e.withHeadingColumn,this.stretchedValue=(t=e.stretched)==null?!1:t,this.colWidthsValue=e.colWidths?[...e.colWidths]:void 0,this.initialColWidthValue=e.initialColWidth,this.contentGrid=this.normalizeContent(e.content),this.blockCellMap.clear(),this.rebuildBlockCellMap()}canMergeCells(e){let{minRow:t,maxRow:n,minCol:r,maxCol:i}=e;return t===n&&r===i||t<0||n>=this.rows||r<0||i>=this.cols?!1:this.contentGrid.slice(t,n+1).every((e,a)=>{let o=t+a;return e.slice(r,i+1).every((e,a)=>{var s,c;let l=r+a,u=(s=e.colspan)==null?1:s,d=(c=e.rowspan)==null?1:c;if((u>1||d>1)&&(o+d-1>n||l+u-1>i))return!1;if(e.mergedInto!==void 0){let[n,i]=e.mergedInto;if(n<t||i<r)return!1}return!0})})}mergeCells(e){var t,n;let{minRow:r,maxRow:i,minCol:a,maxCol:o}=e,s={blocksToRelocate:[]};if(!this.canMergeCells(e))return s;let c=this.contentGrid[r][a];this.contentGrid.slice(r,i+1).forEach((e,t)=>{let n=r+t;e.slice(a,o+1).forEach((e,t)=>{var i,o;let s=a+t;n===r&&s===a||(((i=e.colspan)==null?1:i)>1||((o=e.rowspan)==null?1:o)>1)&&this.splitCellInternal(n,s)})}),(((t=c.colspan)==null?1:t)>1||((n=c.rowspan)==null?1:n)>1)&&this.splitCellInternal(r,a);let l=[];return this.contentGrid.slice(r,i+1).forEach((e,t)=>{let n=r+t;this.contentGrid[n].slice(a,o+1).forEach((e,t)=>{let i=a+t,o=this.contentGrid[n][i];for(let e of o.blocks)l.push(e),(n!==r||i!==a)&&s.blocksToRelocate.push(e);(n!==r||i!==a)&&(o.blocks=[],o.mergedInto=[r,a],delete o.colspan,delete o.rowspan,delete o.color,delete o.textColor,delete o.placement)})}),c.blocks=l,c.colspan=o-a+1,c.rowspan=i-r+1,delete c.mergedInto,delete c.placement,c.colspan===1&&delete c.colspan,c.rowspan===1&&delete c.rowspan,this.rebuildBlockCellMap(),s}splitCell(e,t){var n,r;if(!this.isInBounds(e,t))return;let i=this.contentGrid[e][t];((n=i.colspan)==null?1:n)<=1&&((r=i.rowspan)==null?1:r)<=1||(this.splitCellInternal(e,t),this.rebuildBlockCellMap())}isMergedCell(e,t){var n,r;if(!this.isInBounds(e,t))return!1;let i=this.contentGrid[e][t];return((n=i.colspan)==null?1:n)>1||((r=i.rowspan)==null?1:r)>1}isSpannedCell(e,t){return this.isInBounds(e,t)?this.contentGrid[e][t].mergedInto!==void 0:!1}getMergeOrigin(e,t){var n,r;if(!this.isInBounds(e,t))return null;let i=this.contentGrid[e][t];return i.mergedInto===void 0?((n=i.colspan)==null?1:n)>1||((r=i.rowspan)==null?1:r)>1?[e,t]:null:[i.mergedInto[0],i.mergedInto[1]]}hasMerges(){return this.contentGrid.some(e=>e.some(e=>{var t,n;return((t=e.colspan)==null?1:t)>1||((n=e.rowspan)==null?1:n)>1||e.mergedInto!==void 0}))}getCellSpan(e,t){var n,r;if(!this.isInBounds(e,t))return{colspan:1,rowspan:1};let i=this.contentGrid[e][t];return{colspan:(n=i.colspan)==null?1:n,rowspan:(r=i.rowspan)==null?1:r}}splitCellInternal(e,t){var n,r;let i=this.contentGrid[e][t],a=(n=i.colspan)==null?1:n,o=(r=i.rowspan)==null?1:r;this.contentGrid.slice(e,Math.min(e+o,this.rows)).forEach((n,r)=>{let i=e+r;this.contentGrid[i].slice(t,Math.min(t+a,this.cols)).forEach((n,r)=>{let a=t+r;if(i===e&&a===t)return;let o=this.contentGrid[i][a];delete o.mergedInto,o.blocks=[],delete o.placement,delete o.color,delete o.textColor})}),delete i.colspan,delete i.rowspan,delete i.placement}setWithHeadings(e){this.withHeadingsValue=e}setWithHeadingColumn(e){this.withHeadingColumnValue=e}setStretched(e){this.stretchedValue=e}setColWidths(e){this.colWidthsValue=e?[...e]:void 0}setInitialColWidth(e){this.initialColWidthValue=e}validateInvariants(){if(this.contentGrid.length>0){let e=this.contentGrid[0].length;this.contentGrid.forEach((t,n)=>{if(t.length!==e)throw Error(`Invariant violation: row ${n} has ${t.length} columns, expected ${e}`)})}if(this.colWidthsValue!==void 0&&this.contentGrid.length>0&&this.colWidthsValue.length!==this.contentGrid[0].length)throw Error(`Invariant violation: colWidths has ${this.colWidthsValue.length} entries but grid has ${this.contentGrid[0].length} columns`);let e=new Set;if(this.contentGrid.forEach((t,n)=>{t.forEach((t,r)=>{for(let i of t.blocks){if(e.has(i))throw Error(`Invariant violation: block "${i}" appears in multiple cells`);e.add(i);let t=this.blockCellMap.get(i);if(!t)throw Error(`Invariant violation: block "${i}" at [${n},${r}] not in blockCellMap`);if(t.row!==n||t.col!==r)throw Error(`Invariant violation: block "${i}" at [${n},${r}] mapped to [${t.row},${t.col}]`)}})}),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{var r,i;let a=(r=e.colspan)==null?1:r,o=(i=e.rowspan)==null?1:i;if(a>1||o>1){var s,c;if(t+o>this.contentGrid.length||n+a>((s=(c=this.contentGrid[0])==null?void 0:c.length)==null?0:s)){var l,u;throw Error(`Invariant violation: origin [${t},${n}] span extends beyond grid bounds (colspan=${a}, rowspan=${o}, rows=${this.contentGrid.length}, cols=${(l=(u=this.contentGrid[0])==null?void 0:u.length)==null?0:l})`)}}})}),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{var r,i,a,o;if(e.mergedInto===void 0)return;let[s,c]=e.mergedInto;if(s<0||s>=this.contentGrid.length||c<0||c>=((r=(i=this.contentGrid[0])==null?void 0:i.length)==null?0:r))throw Error(`Invariant violation: mergedInto at [${t},${n}] points to out-of-bounds [${s},${c}]`);let l=this.contentGrid[s][c],u=(a=l.colspan)==null?1:a,d=(o=l.rowspan)==null?1:o;if(u<=1&&d<=1)throw Error(`Invariant violation: mergedInto at [${t},${n}] points to [${s},${c}] which is not a merge origin`);if(t<s||t>=s+d||n<c||n>=c+u)throw Error(`Invariant violation: mergedInto at [${t},${n}] is outside the span of origin [${s},${c}] (colspan=${u}, rowspan=${d})`)})}),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{var r,i;let a=(r=e.colspan)==null?1:r,o=(i=e.rowspan)==null?1:i;a<=1&&o<=1||this.contentGrid.slice(t,t+o).forEach((e,r)=>{let i=t+r;e.slice(n,n+a).forEach((e,r)=>{let a=n+r;if(!(i===t&&a===n)&&!(e!=null&&e.mergedInto))throw Error(`Invariant violation: cell [${i},${a}] is within span of origin [${t},${n}] but has no mergedInto`)})})})}),this.blockCellMap.size!==e.size)throw Error(`Invariant violation: blockCellMap has ${this.blockCellMap.size} entries but grid has ${e.size} blocks`)}shiftMergedIntoRows(e,t){this.contentGrid.forEach((n,r)=>{this.contentGrid[r].forEach((n,i)=>{let a=this.contentGrid[r][i];a.mergedInto!==void 0&&a.mergedInto[0]>=e&&(a.mergedInto=[a.mergedInto[0]+t,a.mergedInto[1]])})})}shiftMergedIntoCols(e,t){this.contentGrid.forEach((n,r)=>{this.contentGrid[r].forEach((n,i)=>{let a=this.contentGrid[r][i];a.mergedInto!==void 0&&a.mergedInto[1]>=e&&(a.mergedInto=[a.mergedInto[0],a.mergedInto[1]+t])})})}expandSpansForInsertedRow(e){this.contentGrid.forEach((t,n)=>{this.contentGrid[n].forEach((t,r)=>{var i,a;let o=this.contentGrid[n][r],s=(i=o.rowspan)==null?1:i,c=(a=o.colspan)==null?1:a;s<=1&&c<=1||n>=e||n+s<=e||(o.rowspan=s+1,this.markInsertedRowCells(e,n,r,c))})})}markInsertedRowCells(e,t,n,r){this.contentGrid[e].slice(n,n+r).forEach((r,i)=>{let a=n+i;if(a===n&&t===e)return;let o=this.contentGrid[e][a];o.mergedInto=[t,n],o.blocks=[]})}expandSpansForInsertedCol(e){this.contentGrid.forEach((t,n)=>{this.contentGrid[n].forEach((t,r)=>{var i,a;let o=this.contentGrid[n][r],s=(i=o.rowspan)==null?1:i,c=(a=o.colspan)==null?1:a;s<=1&&c<=1||r>=e||r+c<=e||(o.colspan=c+1,this.markInsertedColCells(e,n,r,s))})})}markInsertedColCells(e,t,n,r){this.contentGrid.slice(t,t+r).forEach((r,i)=>{let a=t+i;if(a===t&&e===n)return;let o=this.contentGrid[a][e];o.mergedInto=[t,n],o.blocks=[]})}contractSpansForDeletedRow(e){this.contentGrid[e].forEach((t,n)=>{var r,i;let a=this.contentGrid[e][n];((r=a.colspan)==null?1:r)>1||((i=a.rowspan)==null?1:i)>1?this.handleOriginInDeletedRow(e,n):a.mergedInto!==void 0&&this.handleCoveredInDeletedRow(e,n)})}handleOriginInDeletedRow(e,t){var n,r;let i=this.contentGrid[e][t],a=(n=i.rowspan)==null?1:n,o=(r=i.colspan)==null?1:r;if(a<=1)return;let s=a-1,c=e+1;c<this.contentGrid.length&&this.transferOriginToNextRow(e,t,c,a,o,s),delete i.colspan,delete i.rowspan}transferOriginToNextRow(e,t,n,r,i,a){let o=this.contentGrid[e][t],s=this.contentGrid[n][t];if(s.blocks=[...o.blocks],o.blocks=[],delete s.mergedInto,a===1&&i===1){delete s.colspan,delete s.rowspan,this.clearMergedIntoRefs(n,e+r,t,t+i,e,t,n,t,void 0);return}a>1?s.rowspan=a:delete s.rowspan,i>1?s.colspan=i:delete s.colspan,this.clearMergedIntoRefs(n,e+r,t,t+i,e,t,n,t,[n,t])}handleCoveredInDeletedRow(e,t){var n,r,i;let[a,o]=this.contentGrid[e][t].mergedInto;if(a===e)return;let s=(n=this.contentGrid[a])==null?void 0:n[o];if(!s)return;let c=(r=s.rowspan)==null?1:r,l=(i=s.colspan)==null?1:i,u=c-1;u===1&&l===1?(delete s.colspan,delete s.rowspan,this.clearMergedIntoRefsForDissolve(a,a+c,o,o+l,a,o,e)):u>1?s.rowspan=u:delete s.rowspan}clearMergedIntoRefs(e,t,n,r,i,a,o,s,c){this.contentGrid.slice(e,t).forEach((t,l)=>{let u=e+l;this.contentGrid[u].slice(n,r).forEach((e,t)=>{var r,l,d;let f=n+t;if(u===o&&f===s)return;let p=(r=this.contentGrid[u])==null?void 0:r[f];(p==null||(l=p.mergedInto)==null?void 0:l[0])===i&&(p==null||(d=p.mergedInto)==null?void 0:d[1])===a&&(c===void 0?delete p.mergedInto:p.mergedInto=c)})})}clearMergedIntoRefsForDissolve(e,t,n,r,i,a,o){this.contentGrid.slice(e,t).forEach((t,s)=>{let c=e+s;c!==o&&this.contentGrid[c].slice(n,r).forEach((e,t)=>{var r;let o=n+t;if(c===i&&o===a)return;let s=(r=this.contentGrid[c])==null?void 0:r[o];s!=null&&s.mergedInto&&delete s.mergedInto})})}contractSpansForDeletedCol(e){this.contentGrid.forEach((t,n)=>{var r,i;let a=this.contentGrid[n][e];((r=a.colspan)==null?1:r)>1||((i=a.rowspan)==null?1:i)>1?this.handleOriginInDeletedCol(e,n):a.mergedInto!==void 0&&this.handleCoveredInDeletedCol(e,n)})}handleOriginInDeletedCol(e,t){var n,r,i,a;let o=this.contentGrid[t][e],s=(n=o.rowspan)==null?1:n,c=(r=o.colspan)==null?1:r;if(c<=1)return;let l=c-1,u=e+1;u<((i=(a=this.contentGrid[t])==null?void 0:a.length)==null?0:i)&&this.transferOriginToNextCol(e,t,u,s,c,l),delete o.colspan,delete o.rowspan}transferOriginToNextCol(e,t,n,r,i,a){let o=this.contentGrid[t][e],s=this.contentGrid[t][n];if(s.blocks=[...o.blocks],o.blocks=[],delete s.mergedInto,a===1&&r===1){delete s.colspan,delete s.rowspan,this.clearMergedIntoRefs(t,t+r,n,e+i,t,e,t,n,void 0);return}a>1?s.colspan=a:delete s.colspan,r>1?s.rowspan=r:delete s.rowspan,this.clearMergedIntoRefs(t,t+r,n,e+i,t,e,t,n,[t,n])}handleCoveredInDeletedCol(e,t){var n,r,i;let[a,o]=this.contentGrid[t][e].mergedInto;if(o===e)return;let s=(n=this.contentGrid[a])==null?void 0:n[o];if(!s)return;let c=(r=s.colspan)==null?1:r,l=(i=s.rowspan)==null?1:i,u=c-1;u===1&&l===1?(delete s.colspan,delete s.rowspan,this.clearMergedIntoRefsForDissolveCol(a,a+l,o,o+c,a,o,e)):u>1?s.colspan=u:delete s.colspan}clearMergedIntoRefsForDissolveCol(e,t,n,r,i,a,o){this.contentGrid.slice(e,t).forEach((t,s)=>{let c=e+s;this.contentGrid[c].slice(n,r).forEach((e,t)=>{var r;let s=n+t;if(c===i&&s===a||s===o)return;let l=(r=this.contentGrid[c])==null?void 0:r[s];l!=null&&l.mergedInto&&delete l.mergedInto})})}isRowInvolvedInMerge(e){return this.contentGrid[e].some(t=>{var n;return((n=t.rowspan)==null?1:n)>1?!0:t.mergedInto!==void 0&&t.mergedInto[0]!==e})}isColInvolvedInMerge(e){return this.contentGrid.some(t=>{var n;let r=t[e];return((n=r.colspan)==null?1:n)>1?!0:r.mergedInto!==void 0&&r.mergedInto[1]!==e})}rebuildMergedIntoRowCoordinates(e,t){let n=this.contentGrid.length,r=this.buildMoveMapping(n,e,t);this.contentGrid.forEach((e,t)=>{this.contentGrid[t].forEach((e,n)=>{let i=this.contentGrid[t][n];i.mergedInto!==void 0&&(i.mergedInto=[r[i.mergedInto[0]],i.mergedInto[1]])})})}rebuildMergedIntoColCoordinates(e,t){let n=this.cols,r=this.buildMoveMapping(n,e,t);this.contentGrid.forEach((e,t)=>{this.contentGrid[t].forEach((e,n)=>{let i=this.contentGrid[t][n];if(i.mergedInto!==void 0){let e=i.mergedInto[1];i.mergedInto=[i.mergedInto[0],r[e]]}})})}buildMoveMapping(e,t,n){return Array.from({length:e},(e,r)=>{if(r===t)return n;let i=r>t?r-1:r;return i>=n?i+1:i})}normalizeContent(e){if(!e||!Array.isArray(e))return[];let t=new Set;return e.map(e=>(e==null?[]:e).map(e=>{let n=this.normalizeCell(e);return n.blocks=n.blocks.filter(e=>t.has(e)?!1:(t.add(e),!0)),n}))}normalizeCell(e){if(t.et(e)){let t={blocks:[...e.blocks]};return e.color!==void 0&&Ge(e.color)&&(t.color=e.color),e.textColor!==void 0&&Ge(e.textColor)&&(t.textColor=e.textColor),e.placement!==void 0&&(t.placement=e.placement),e.colspan!==void 0&&e.colspan>1&&(t.colspan=e.colspan),e.rowspan!==void 0&&e.rowspan>1&&(t.rowspan=e.rowspan),e.mergedInto!==void 0&&(t.mergedInto=[...e.mergedInto]),t}return{blocks:[]}}rebuildBlockCellMap(){this.blockCellMap.clear(),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{for(let r of e.blocks)this.blockCellMap.set(r,{row:t,col:n})})})}isInBounds(e,t){return e>=0&&e<this.contentGrid.length&&t>=0&&(this.contentGrid.length===0||t<this.contentGrid[e].length)}isRowInBounds(e){return e>=0&&e<this.contentGrid.length}isColInBounds(e){return e>=0&&this.contentGrid.length>0&&e<this.contentGrid[0].length}collectBlocksInRow(e){let t=[];for(let n of this.contentGrid[e])t.push(...n.blocks);return t}collectBlocksInColumn(e){let t=[];for(let n of this.contentGrid)e<n.length&&t.push(...n[e].blocks);return t}},qe=`data-blok-table-add-row`,Je=`data-blok-table-add-col`,Ye=150,Xe=5,G=40,Ze=[`flex`,`items-center`,`justify-center`,`transition-opacity`,`duration-150`],Qe=[`flex`,`items-center`,`justify-center`,`border`,`border-gray-300`,`rounded-sm`,`group-hover/add:bg-gray-50`],$e=`12`,et=class{constructor(e){this.rowHideTimeout=null,this.colHideTimeout=null,this.rowVisible=!1,this.colVisible=!1,this.interactive=!0,this.dragState=null,this.scrollContainer=null,this.boundScrollHandler=null,this.scrollContainerResizeObserver=null,this.wrapper=e.wrapper,this.grid=e.grid,this.i18n=e.i18n,this.boundAddRowClick=e.onAddRow,this.boundAddColClick=e.onAddColumn,this.onDragStart=e.onDragStart,this.onDragAddRow=e.onDragAddRow,this.onDragRemoveRow=e.onDragRemoveRow,this.onDragAddCol=e.onDragAddCol,this.onDragRemoveCol=e.onDragRemoveCol,this.onDragEnd=e.onDragEnd,this.getTableSize=e.getTableSize,this.getNewColumnWidth=e.getNewColumnWidth,this.boundMouseMove=this.handleMouseMove.bind(this),this.boundDocumentMouseMove=this.handleDocumentMouseMove.bind(this),this.boundMouseLeave=this.handleMouseLeave.bind(this),this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundRowPointerDown=e=>this.handlePointerDown(`row`,e),this.boundColPointerDown=e=>this.handlePointerDown(`col`,e),this.addRowBtn=this.createAddRowButton(),this.addColBtn=this.createAddColumnButton(),this.wrapper.appendChild(this.addRowBtn),this.wrapper.appendChild(this.addColBtn),this.syncRowButtonWidth(),this.wrapper.addEventListener(`mousemove`,this.boundMouseMove),this.wrapper.addEventListener(`mouseleave`,this.boundMouseLeave),document.addEventListener(`mousemove`,this.boundDocumentMouseMove),this.addRowBtn.addEventListener(`pointerdown`,this.boundRowPointerDown),this.addColBtn.addEventListener(`pointerdown`,this.boundColPointerDown)}computeVisibleWidth(e,t,n){if(!t||n===null)return e;let r=this.wrapper.getBoundingClientRect();if(r.width>0){let e=this.grid.getBoundingClientRect(),t=n.getBoundingClientRect();return Math.min(e.right,t.right)-r.left}return n.clientWidth>0?Math.min(e,n.clientWidth):e}syncRowButtonWidth(){let e=this.grid.style.width;if(e&&e.endsWith(`px`)){let t=parseFloat(e),n=this.grid.parentElement,r=n!==null&&n!==this.wrapper,i=this.computeVisibleWidth(t,r,n);this.addRowBtn.style.width=`${i}px`,this.addRowBtn.style.right=``,this.addRowBtn.style.left=`0px`,this.addRowBtn.style.transform=``,this.addColBtn.style.left=`${i+4}px`,this.addColBtn.style.right=``}else{this.addRowBtn.style.width=``,this.addRowBtn.style.left=`0px`,this.addRowBtn.style.transform=``;let e=parseFloat(getComputedStyle(this.wrapper).paddingRight)||0;this.addRowBtn.style.right=`${e}px`,this.addColBtn.style.left=``,this.addColBtn.style.right=`${e-36}px`}let t=this.grid.getBoundingClientRect(),n=this.wrapper.getBoundingClientRect(),r=t.height;if(r>0){this.addColBtn.style.height=`${r}px`,this.addColBtn.style.bottom=``;let e=t.bottom-n.top;this.addRowBtn.style.top=`${e+4}px`,this.addRowBtn.style.bottom=``}else this.addColBtn.style.height=``,this.addColBtn.style.bottom=`0px`,this.addRowBtn.style.top=``,this.addRowBtn.style.bottom=`-36px`}setDisplay(e){let t=e?``:`none`;this.addRowBtn.style.display=t,this.addColBtn.style.display=t}setInteractive(e){if(this.interactive=e,!e){this.addRowBtn.style.pointerEvents=`none`,this.addColBtn.style.pointerEvents=`none`;return}this.addRowBtn.style.pointerEvents=this.rowVisible?``:`none`,this.addColBtn.style.pointerEvents=this.colVisible?``:`none`}attachScrollContainer(e){var t;this.scrollContainer&&this.boundScrollHandler&&this.scrollContainer.removeEventListener(`scroll`,this.boundScrollHandler),(t=this.scrollContainerResizeObserver)==null||t.disconnect(),this.scrollContainer=e,this.boundScrollHandler=()=>{this.syncRowButtonWidth()},e.addEventListener(`scroll`,this.boundScrollHandler,{passive:!0}),this.scrollContainerResizeObserver=new ResizeObserver(()=>{this.syncRowButtonWidth()}),this.scrollContainerResizeObserver.observe(e)}destroy(){var e;if(this.scrollContainer&&this.boundScrollHandler&&(this.scrollContainer.removeEventListener(`scroll`,this.boundScrollHandler),this.scrollContainer=null,this.boundScrollHandler=null),(e=this.scrollContainerResizeObserver)==null||e.disconnect(),this.scrollContainerResizeObserver=null,this.wrapper.removeEventListener(`mousemove`,this.boundMouseMove),this.wrapper.removeEventListener(`mouseleave`,this.boundMouseLeave),document.removeEventListener(`mousemove`,this.boundDocumentMouseMove),this.addRowBtn.removeEventListener(`pointerdown`,this.boundRowPointerDown),this.addColBtn.removeEventListener(`pointerdown`,this.boundColPointerDown),this.dragState){let e=this.dragState.axis===`row`?this.addRowBtn:this.addColBtn;e.removeEventListener(`pointermove`,this.boundPointerMove),e.removeEventListener(`pointerup`,this.boundPointerUp),e.removeEventListener(`pointercancel`,this.boundPointerCancel),document.body.style.cursor=``,this.dragState=null}this.clearRowTimeout(),this.clearColTimeout(),this.addRowBtn.remove(),this.addColBtn.remove()}showDimensionTooltip(){if(!this.dragState)return;let e=this.getTableSize(),n=this.dragState.axis===`row`?this.addRowBtn:this.addColBtn,r=this.dragState.axis===`row`?{placement:`bottom`,marginTop:-16}:{placement:`bottom`};t.dr(n,`${e.cols}\u00D7${e.rows}`,r)}handlePointerDown(e,t){t.preventDefault();let n=e===`row`?this.addRowBtn:this.addColBtn;n.setPointerCapture(t.pointerId);let r=this.measureUnitSize(e);this.dragState={axis:e,startPos:e===`row`?t.clientY:t.clientX,unitSize:r,addedCount:0,pointerId:t.pointerId,didDrag:!1},n.addEventListener(`pointermove`,this.boundPointerMove),n.addEventListener(`pointerup`,this.boundPointerUp),n.addEventListener(`pointercancel`,this.boundPointerCancel)}handlePointerMove(e){if(!this.dragState)return;let{axis:t,startPos:n,unitSize:r}=this.dragState,i=(t===`row`?e.clientY:e.clientX)-n,a=Math.floor(i/r);for(;this.dragState.addedCount<a&&(t===`row`?this.onDragAddRow():this.onDragAddCol());)this.dragState.addedCount++;for(;this.dragState.addedCount>a&&(t===`row`?this.onDragRemoveRow():this.onDragRemoveCol());)this.dragState.addedCount--;if(Math.abs(i)>Xe&&!this.dragState.didDrag){this.dragState.didDrag=!0,document.body.style.cursor=t===`row`?`row-resize`:`col-resize`,this.showDimensionTooltip(),this.onDragStart();return}this.dragState.didDrag&&this.showDimensionTooltip(),this.dragState.didDrag&&this.showDimensionTooltip()}handlePointerUp(e){if(!this.dragState)return;let{axis:n,pointerId:r,didDrag:i}=this.dragState,a=n===`row`?this.addRowBtn:this.addColBtn;if(a.releasePointerCapture(r),a.removeEventListener(`pointermove`,this.boundPointerMove),a.removeEventListener(`pointerup`,this.boundPointerUp),a.removeEventListener(`pointercancel`,this.boundPointerCancel),document.body.style.cursor=``,t.lr(),this.dragState=null,!i){(n===`row`?this.boundAddRowClick:this.boundAddColClick)();return}this.onDragEnd()}handlePointerCancel(e){if(!this.dragState)return;let{axis:n,didDrag:r}=this.dragState,i=n===`row`?this.addRowBtn:this.addColBtn;i.removeEventListener(`pointermove`,this.boundPointerMove),i.removeEventListener(`pointerup`,this.boundPointerUp),i.removeEventListener(`pointercancel`,this.boundPointerCancel),document.body.style.cursor=``,t.lr(),this.dragState=null,r&&this.onDragEnd()}measureUnitSize(e){if(e===`row`){let e=this.grid.querySelectorAll(`[data-blok-table-row]`),t=e[e.length-1];return(t==null?void 0:t.offsetHeight)||30}if(this.getNewColumnWidth)return this.getNewColumnWidth()||100;let t=this.grid.querySelector(`[data-blok-table-row]`);if(!t)return 100;let n=t.querySelectorAll(`[data-blok-table-cell]`),r=n[n.length-1];return(r==null?void 0:r.offsetWidth)||100}handleMouseMove(e){let t=this.grid.getBoundingClientRect(),n=this.grid.parentElement,r=n!==null&&n!==this.wrapper?Math.min(t.right,n.getBoundingClientRect().right):t.right,i=Math.abs(e.clientY-t.bottom),a=Math.abs(e.clientX-r);i<=G?this.showRow():this.scheduleHideRow(),a<=G?this.showCol():this.scheduleHideCol()}handleMouseLeave(){this.scheduleHideRow(),this.scheduleHideCol()}handleDocumentMouseMove(e){if(this.wrapper.contains(e.target))return;let t=this.grid.getBoundingClientRect(),n=G;e.clientX>=t.left-n&&e.clientX<=t.right+n&&e.clientY>=t.top-n&&e.clientY<=t.bottom+n?this.handleMouseMove(e):(this.scheduleHideRow(),this.scheduleHideCol())}showRow(){this.clearRowTimeout(),this.rowVisible||(this.addRowBtn.style.opacity=`1`,this.addRowBtn.style.pointerEvents=this.interactive?``:`none`,this.rowVisible=!0)}showCol(){this.clearColTimeout(),this.colVisible||(this.addColBtn.style.opacity=`1`,this.addColBtn.style.pointerEvents=this.interactive?``:`none`,this.colVisible=!0)}scheduleHideRow(){var e;!this.rowVisible||this.rowHideTimeout!==null||((e=this.dragState)==null?void 0:e.axis)===`row`||(this.rowHideTimeout=setTimeout(()=>{this.addRowBtn.style.opacity=`0`,this.addRowBtn.style.pointerEvents=`none`,this.rowVisible=!1,this.rowHideTimeout=null},Ye))}scheduleHideCol(){var e;!this.colVisible||this.colHideTimeout!==null||((e=this.dragState)==null?void 0:e.axis)===`col`||(this.colHideTimeout=setTimeout(()=>{this.addColBtn.style.opacity=`0`,this.addColBtn.style.pointerEvents=`none`,this.colVisible=!1,this.colHideTimeout=null},Ye))}clearRowTimeout(){this.rowHideTimeout!==null&&(clearTimeout(this.rowHideTimeout),this.rowHideTimeout=null)}clearColTimeout(){this.colHideTimeout!==null&&(clearTimeout(this.colHideTimeout),this.colHideTimeout=null)}createAddRowButton(){let e=document.createElement(`div`);e.className=r.l(Ze,`group/add`,`items-start`,`cursor-row-resize`),e.setAttribute(qe,``),e.setAttribute(`contenteditable`,`false`),e.style.opacity=`0`,e.style.pointerEvents=`none`,e.style.position=`absolute`,e.style.left=`0`,e.style.bottom=`-36px`,e.style.zIndex=`1`,e.style.height=`32px`;let n=document.createElement(`div`);return n.className=r.l(Qe),n.style.width=`100%`,n.style.height=`16px`,this.appendIcon(n),e.appendChild(n),t.ur(e,t.h([this.i18n.t(`tools.table.clickToAddRow`),this.i18n.t(`tools.table.dragToAddRemoveRows`)]),{placement:`bottom`,marginTop:-16}),e}createAddColumnButton(){let e=document.createElement(`div`);e.className=r.l(Ze,`group/add`,`justify-start`,`cursor-col-resize`),e.setAttribute(Je,``),e.setAttribute(`contenteditable`,`false`),e.style.opacity=`0`,e.style.pointerEvents=`none`,e.style.position=`absolute`,e.style.right=`-36px`,e.style.top=`0px`,e.style.bottom=`0px`,e.style.width=`32px`;let n=document.createElement(`div`);return n.className=r.l(Qe),n.style.width=`16px`,n.style.height=`100%`,this.appendIcon(n),e.appendChild(n),t.ur(e,t.h([this.i18n.t(`tools.table.clickToAddColumn`),this.i18n.t(`tools.table.dragToAddRemoveColumns`)]),{placement:`bottom`}),e}appendIcon(e){e.insertAdjacentHTML(`beforeend`,o.en);let t=e.querySelector(`svg`);t&&(t.setAttribute(`width`,$e),t.setAttribute(`height`,$e),t.setAttribute(`viewBox`,`0 0 24 24`),t.classList.add(`text-gray-500`,`pointer-events-none`))}};function tt(){var e,n;let r=document.documentElement.getAttribute(`data-blok-theme`);return r===`dark`?t.Fn:r===`light`?t.Pn:typeof window<`u`&&(e=(n=window).matchMedia)!=null&&e.call(n,`(prefers-color-scheme: dark)`).matches?t.Fn:t.Pn}function nt(e,n){if(e===n)return!0;let r=t.jn(e),i=t.jn(n);return r===null||i===null?!1:r[0]===i[0]&&r[1]===i[1]&&r[2]===i[2]}var rt=`var(--blok-swatch-neutral-bg)`;function K(e){let{i18n:n,modes:i,testIdPrefix:a,onColorSelect:o}=e,s={activeColors:Object.fromEntries(i.map(e=>[e.key,null]))},c=document.createElement(`div`);c.setAttribute(`data-blok-testid`,`${a}-picker`),c.className=`flex flex-col gap-3 p-2`;let l=[];i.forEach(e=>{let t=document.createElement(`div`);t.setAttribute(`data-blok-testid`,`${a}-section-${e.key}`),t.className=`flex flex-col gap-1`;let r=document.createElement(`div`);r.className=`text-xs font-medium text-text-primary/60 px-0.5`,r.textContent=n.t(e.labelKey);let i=document.createElement(`div`);i.className=`grid gap-1`,i.style.gridTemplateColumns=`repeat(5, 2.25rem)`,l.push(i),t.appendChild(r),t.appendChild(i),c.appendChild(t)});let u=e=>{let c=l[e],u=i[e],d=tt();c.innerHTML=``;let f=s.activeColors[u.key],p=document.createElement(`button`),m=f===null;p.setAttribute(`data-blok-testid`,`${a}-swatch-${u.key}-default`),p.className=r.l(`w-9 h-9 rounded-md cursor-pointer border-none outline-hidden`,`flex items-center justify-center text-sm font-semibold`,`transition-[box-shadow,transform] ring-inset hover:ring-2 hover:ring-swatch-ring-hover active:scale-90`,m&&`ring-2 ring-swatch-ring-hover`),p.textContent=u.presetField===`text`?`A`:``,u.presetField===`text`&&(p.style.color=`var(--blok-text-primary)`),p.style.backgroundColor=rt,p.addEventListener(`click`,()=>{o(null,u.key)});let h=n.t(`tools.colorPicker.defaultSwatchLabel`).replace(`{default}`,n.t(`tools.marker.default`)).replace(`{mode}`,n.t(u.labelKey).toLowerCase());t.ur(p,h.charAt(0).toUpperCase()+h.slice(1),{placement:`top`}),c.appendChild(p);for(let e of d){let i=document.createElement(`button`),s=u.presetField===`text`?e.text:e.bg,l=f!==null&&nt(s,f);i.setAttribute(`data-blok-testid`,`${a}-swatch-${u.key}-${e.name}`),i.className=r.l(`w-9 h-9 rounded-md cursor-pointer border-none outline-hidden`,`flex items-center justify-center text-sm font-semibold`,`transition-[box-shadow,transform] ring-inset hover:ring-2 hover:ring-swatch-ring-hover active:scale-90`,l&&`ring-2 ring-swatch-ring-hover`),i.textContent=u.presetField===`text`?`A`:``,u.presetField===`text`?(i.style.color=e.text,i.style.backgroundColor=rt):(i.style.color=d===t.Fn?e.text:`#37352f`,i.style.backgroundColor=e.bg),i.addEventListener(`click`,()=>{o(s,u.key)});let p=n.t(`tools.colorPicker.colorSwatchLabel`).replace(`{color}`,n.t(`tools.colorPicker.color.`+e.name)).replace(`{mode}`,n.t(u.labelKey).toLowerCase());t.ur(i,p.charAt(0).toUpperCase()+p.slice(1),{placement:`top`}),c.appendChild(i)}},d=()=>{i.forEach((e,t)=>u(t))};return d(),{element:c,setActiveColor:(e,t)=>{let n=i.findIndex(e=>e.key===t);n!==-1&&(s.activeColors[t]=e,u(n))},reset:()=>{for(let e of i)s.activeColors[e.key]=null;d()}}}var it=e=>{let t=K({i18n:e.i18n,testIdPrefix:`cell-color`,modes:[{key:`textColor`,labelKey:`tools.marker.textColor`,presetField:`text`},{key:`backgroundColor`,labelKey:`tools.marker.background`,presetField:`bg`}],onColorSelect:(n,r)=>{t.setActiveColor(n,r),e.onColorSelect(n,r)}});return{element:t.element}},at=[`top-left`,`top-center`,`top-right`,`middle-left`,`middle-center`,`middle-right`,`bottom-left`,`bottom-center`,`bottom-right`],ot={"top-left":`tools.table.placementTopLeft`,"top-center":`tools.table.placementTopCenter`,"top-right":`tools.table.placementTopRight`,"middle-left":`tools.table.placementMiddleLeft`,"middle-center":`tools.table.placementMiddleCenter`,"middle-right":`tools.table.placementMiddleRight`,"bottom-left":`tools.table.placementBottomLeft`,"bottom-center":`tools.table.placementBottomCenter`,"bottom-right":`tools.table.placementBottomRight`},st={top:`flex-start`,middle:`center`,bottom:`flex-end`},ct={left:`flex-start`,center:`center`,right:`flex-end`},lt=e=>{var t;let n=(t=e.currentPlacement)==null?`top-left`:t,r=document.createElement(`div`);r.style.padding=`8px`;let i=document.createElement(`div`);i.style.display=`grid`,i.style.gridTemplateColumns=`repeat(3, 1fr)`,i.style.gap=`3px`;let a=document.createElement(`div`);a.style.textAlign=`center`,a.style.fontSize=`11px`,a.style.marginTop=`6px`,a.style.color=`var(--blok-text-secondary, #707684)`,a.textContent=e.i18n.t(ot[n]);for(let t of at){let[r,o]=t.split(`-`),s=document.createElement(`div`);s.setAttribute(`data-placement`,t),s.style.width=`32px`,s.style.height=`26px`,s.style.borderRadius=`3px`,s.style.display=`flex`,s.style.flexDirection=`column`,s.style.alignItems=ct[o],s.style.justifyContent=st[r],s.style.padding=`3px`,s.style.cursor=`pointer`,s.style.gap=`1px`,t===n?(s.setAttribute(`data-active`,`true`),s.style.outline=`2px solid var(--blok-color-primary, #388AE5)`,s.style.outlineOffset=`-2px`,s.style.backgroundColor=`var(--blok-item-focus-bg, rgba(35, 131, 226, 0.14))`):s.style.backgroundColor=`var(--blok-bg-light, #eff2f5)`;let c=document.createElement(`div`);c.style.width=`14px`,c.style.height=`2px`,c.style.borderRadius=`1px`,c.style.backgroundColor=`currentColor`,c.style.opacity=`0.6`;let l=document.createElement(`div`);l.style.width=`9px`,l.style.height=`2px`,l.style.borderRadius=`1px`,l.style.backgroundColor=`currentColor`,l.style.opacity=`0.3`,s.appendChild(c),s.appendChild(l),s.addEventListener(`click`,()=>{i.querySelectorAll(`[data-placement]`).forEach(e=>{let t=e;t.removeAttribute(`data-active`),t.style.outline=``,t.style.outlineOffset=``,t.style.backgroundColor=`var(--blok-bg-tertiary, #f0f0f0)`}),s.setAttribute(`data-active`,`true`),s.style.outline=`2px solid var(--blok-color-primary, #388AE5)`,s.style.outlineOffset=`-2px`,s.style.backgroundColor=`var(--blok-item-focus-bg, rgba(35, 131, 226, 0.14))`,a.textContent=e.i18n.t(ot[t]),e.onPlacementSelect(t)}),i.appendChild(s)}return r.appendChild(i),r.appendChild(a),{element:r}},ut=(e,t,n)=>{t===`col`?Object.assign(e.style,{height:`${n}px`}):Object.assign(e.style,{width:`${n}px`})},dt=[[2,2],[8,2],[2,7],[8,7],[2,12],[8,12]],ft=[[2,2],[7,2],[12,2],[2,8],[7,8],[12,8]],pt=e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`),n=e===`horizontal`;t.setAttribute(`width`,n?`14`:`10`),t.setAttribute(`height`,n?`10`:`14`),t.setAttribute(`viewBox`,n?`0 0 14 10`:`0 0 10 14`),t.setAttribute(`fill`,`currentColor`),t.classList.add(`opacity-0`,`transition-opacity`,`duration-150`,`text-gray-400`,`pointer-events-none`);let r=n?ft:dt;for(let[e,n]of r){let r=document.createElementNS(`http://www.w3.org/2000/svg`,`circle`);r.setAttribute(`cx`,String(e)),r.setAttribute(`cy`,String(n)),r.setAttribute(`r`,`1.5`),t.appendChild(r)}return t},mt=(e,t)=>{t===`col`?Object.assign(e.style,{height:`16px`}):Object.assign(e.style,{width:`16px`}),e.classList.add(`bg-gray-200`),e.classList.remove(`bg-gray-300`);let n=e.querySelector(`svg`);n&&(n.classList.remove(`opacity-0`),n.classList.add(`opacity-100`))},ht=(e,t,n)=>{ut(e,t,n),e.classList.remove(`bg-gray-200`),e.classList.add(`bg-gray-300`);let r=e.querySelector(`svg`);r&&(r.classList.add(`opacity-0`),r.classList.remove(`opacity-100`))},gt=`data-blok-table-cell-selected`,q=`2px solid #3b82f6`,_t=`data-blok-table-selection-pill`,vt=16,yt=20,bt=4,xt=[`absolute`,`z-3`,`rounded-sm`,`select-none`,`transition-[opacity,background-color,width]`,`duration-150`,`flex`,`items-center`,`justify-center`,`overflow-hidden`,`cursor-pointer`,`bg-blue-500`],St=e=>e.style.userSelect===`none`,Ct=class{constructor(e){this.anchorCell=null,this.extentCell=null,this.isSelecting=!1,this.hasSelection=!1,this.selectedCells=[],this.overlay=null,this.pill=null,this.pillPopover=null,this.resizeObserver=null,this.lastPaintedRange=null,this.preExpansionWasSingleCell=!1,this.grid=e.grid,this.rectangleSelection=e.rectangleSelection,this.onSelectionActiveChange=e.onSelectionActiveChange,this.onClearContent=e.onClearContent,this.onCopy=e.onCopy,this.onCut=e.onCut,this.onCopyViaButton=e.onCopyViaButton,this.onColorChange=e.onColorChange,this.onPlacementChange=e.onPlacementChange,this.getCellPlacement=e.getCellPlacement,this.onSelectionRangeChange=e.onSelectionRangeChange,this.onPointerDragActiveChange=e.onPointerDragActiveChange,this.isPopoverOpen=e.isPopoverOpen,this.canMergeCells=e.canMergeCells,this.onMergeCells=e.onMergeCells,this.isMergedCell=e.isMergedCell,this.onSplitCell=e.onSplitCell,this.getCellSpan=e.getCellSpan,this.i18n=e.i18n,this.grid.style.position=`relative`,this.boundPointerDown=this.handlePointerDown.bind(this),this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundClearSelection=this.handleClearSelection.bind(this),this.boundCancelRectangle=this.handleCancelRectangle.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this),this.boundCopyHandler=this.handleCopy.bind(this),this.boundCutHandler=this.handleCut.bind(this),this.boundPreventDragStart=this.handleDragStart.bind(this),this.grid.addEventListener(`pointerdown`,this.boundPointerDown),this.grid.addEventListener(`dragstart`,this.boundPreventDragStart),document.addEventListener(`keydown`,this.boundKeyDown),document.addEventListener(`copy`,this.boundCopyHandler),document.addEventListener(`cut`,this.boundCutHandler)}destroy(){if(this.destroyPillPopover(),this.disconnectResizeObserver(),this.clearSelection(),this.anchorCell){var e;(e=this.onPointerDragActiveChange)==null||e.call(this,!1),this.grid.style.userSelect=``}this.grid.removeEventListener(`pointerdown`,this.boundPointerDown),this.grid.removeEventListener(`dragstart`,this.boundPreventDragStart),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerUp),document.removeEventListener(`pointerdown`,this.boundClearSelection),document.removeEventListener(`mousemove`,this.boundCancelRectangle,!0),document.removeEventListener(`keydown`,this.boundKeyDown),document.removeEventListener(`copy`,this.boundCopyHandler),document.removeEventListener(`cut`,this.boundCutHandler)}selectRow(e){let t=this.getLogicalColumnCount();t!==0&&this.showProgrammaticSelection(e,0,e,t-1)}selectColumn(e){let n=this.grid.querySelectorAll(`[${t.lt}]`).length;n!==0&&this.showProgrammaticSelection(0,e,n-1,e)}clearActiveSelection(){this.clearSelection()}getSelectedRange(){return this.hasSelection?this.lastPaintedRange:null}selectRange(e){this.showProgrammaticSelection(e.minRow,e.minCol,e.maxRow,e.maxCol)}handleDragStart(e){this.anchorCell&&e.preventDefault()}handlePointerDown(e){var t;if(St(this.grid)||e.button!==0)return;let n=e.target;if(n.closest(`[data-blok-table-grip]`)||n.closest(`[data-blok-table-resize]`)||n.closest(`[${_t}]`))return;let r=this.resolveCellCoord(n);r&&(this.hasSelection&&this.lastPaintedRange!==null&&this.lastPaintedRange.minRow===r.row&&this.lastPaintedRange.maxRow===r.row&&this.lastPaintedRange.minCol===r.col&&this.lastPaintedRange.maxCol===r.col?document.removeEventListener(`pointerdown`,this.boundClearSelection):this.hasSelection&&this.clearSelection(),this.anchorCell=r,this.isSelecting=!1,(t=this.onPointerDragActiveChange)==null||t.call(this,!0),document.addEventListener(`mousemove`,this.boundCancelRectangle,!0),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerUp))}handlePointerMove(e){if(!this.anchorCell)return;let t=document.elementFromPoint(e.clientX,e.clientY);if(!t)return;let n=this.resolveCellCoord(t);if(!n){this.clampExtentToEdge(e);return}if(!(!this.isSelecting&&n.row===this.anchorCell.row&&n.col===this.anchorCell.col)){if(!this.isSelecting){var r,i;this.isSelecting=!0,(r=this.onSelectionActiveChange)==null||r.call(this,!0),this.grid.style.userSelect=`none`,(i=window.getSelection())==null||i.removeAllRanges()}(!this.extentCell||this.extentCell.row!==n.row||this.extentCell.col!==n.col)&&(this.extentCell=n,this.paintSelection())}}handleCancelRectangle(e){if(!this.rectangleSelection)return;this.rectangleSelection.cancelActiveSelection();let t=document.querySelector(`[data-blok-overlay-rectangle]`);if(!t)return;let n=t;n.style.display=`none`}handlePointerUp(){var e;if(document.removeEventListener(`mousemove`,this.boundCancelRectangle,!0),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerUp),(e=this.onPointerDragActiveChange)==null||e.call(this,!1),this.isSelecting){if(this.grid.style.userSelect=``,this.hasSelection=!0,this.lastPaintedRange){var t;(t=this.onSelectionRangeChange)==null||t.call(this,this.lastPaintedRange)}document.addEventListener(`pointerdown`,this.boundClearSelection)}else this.anchorCell&&(this.hasSelection?document.addEventListener(`pointerdown`,this.boundClearSelection):this.showProgrammaticSelection(this.anchorCell.row,this.anchorCell.col,this.anchorCell.row,this.anchorCell.col));this.isSelecting=!1,this.anchorCell=null,this.extentCell=null}handleClearSelection(e){let t=e.target;t instanceof HTMLElement&&t.closest(`[${_t}]`)||t instanceof HTMLElement&&t.closest(`[data-blok-popover-opened]`)!==null||(this.pillPopover!==null&&this.destroyPillPopover(),document.removeEventListener(`pointerdown`,this.boundClearSelection),this.clearSelection())}handleKeyDown(e){var t;this.hasSelection&&(e.key!==`Delete`&&e.key!==`Backspace`||this.selectedCells.length<=1||(e.preventDefault(),(t=this.onClearContent)==null||t.call(this,[...this.selectedCells]),this.clearSelection()))}handleCopy(e){var t;!this.hasSelection||!e.clipboardData||this.selectedCells.length<=1&&this.hasNativeTextSelection()||(e.preventDefault(),(t=this.onCopy)==null||t.call(this,[...this.selectedCells],e.clipboardData))}handleCut(e){var t,n;!this.hasSelection||!e.clipboardData||this.selectedCells.length<=1&&this.hasNativeTextSelection()||(e.preventDefault(),(t=this.onCut)==null||t.call(this,[...this.selectedCells],e.clipboardData),(n=this.onClearContent)==null||n.call(this,[...this.selectedCells]),this.clearSelection())}hasNativeTextSelection(){let e=window.getSelection();return e!==null&&!e.isCollapsed}clearSelection(){let e=this.hasSelection;if(this.restoreModifiedCells(),this.hasSelection=!1,this.lastPaintedRange=null,this.preExpansionWasSingleCell=!1,e){var t;(t=this.onSelectionActiveChange)==null||t.call(this,!1)}}restoreModifiedCells(){this.destroyPillPopover(),this.disconnectResizeObserver(),this.selectedCells.forEach(e=>{e.removeAttribute(gt)}),this.pill&&(this.pill.remove(),this.pill=null),this.overlay&&(this.overlay.remove(),this.overlay=null),this.selectedCells=[]}showProgrammaticSelection(e,t,n,r){var i;if(this.clearSelection(),this.anchorCell={row:e,col:t},this.extentCell={row:n,col:r},this.paintSelection(),this.hasSelection=!0,(i=this.onSelectionActiveChange)==null||i.call(this,!0),this.lastPaintedRange){var a;(a=this.onSelectionRangeChange)==null||a.call(this,this.lastPaintedRange)}this.anchorCell=null,this.extentCell=null,document.addEventListener(`pointerdown`,this.boundClearSelection)}expandRectToMergedSpans(e){return this.getCellSpan?this.expandRectStep(e):e}expandRectStep(e){let t=this.getCellSpan;if(!t)return e;let n=Array.from({length:e.maxRow-e.minRow+1},(t,n)=>e.minRow+n),r=Array.from({length:e.maxCol-e.minCol+1},(t,n)=>e.minCol+n),i=n.reduce((e,n)=>r.reduce((e,r)=>{let{colspan:i,rowspan:a}=t(n,r);return{minRow:e.minRow,maxRow:Math.max(e.maxRow,n+a-1),minCol:e.minCol,maxCol:Math.max(e.maxCol,r+i-1)}},e),e);return i.maxRow!==e.maxRow||i.maxCol!==e.maxCol?this.expandRectStep(i):i}paintSelection(){if(!this.anchorCell||!this.extentCell)return;this.selectedCells.forEach(e=>{e.removeAttribute(gt)}),this.selectedCells=[];let e=Math.min(this.anchorCell.row,this.extentCell.row),n=Math.max(this.anchorCell.row,this.extentCell.row),r=Math.min(this.anchorCell.col,this.extentCell.col),i=Math.max(this.anchorCell.col,this.extentCell.col);this.preExpansionWasSingleCell=e===n&&r===i,this.lastPaintedRange=this.expandRectToMergedSpans({minRow:e,maxRow:n,minCol:r,maxCol:i});let{minRow:a,maxRow:o,minCol:s,maxCol:c}=this.lastPaintedRange,l=this.grid.querySelectorAll(`[${t.lt}]`);this.selectedCells=this.collectCellsInRange(l,a,o,s,c),this.selectedCells.forEach(e=>{e.setAttribute(gt,``)});let u=this.findCellByCoordOrIndex(l,a,s),d=this.findCellByCoordOrIndex(l,o,c);if(!u||!d)return;let f=this.grid.getBoundingClientRect(),p=u.getBoundingClientRect(),m=d.getBoundingClientRect(),h=getComputedStyle(this.grid),g=parseFloat(h.borderTopWidth)||0,_=parseFloat(h.borderLeftWidth)||0,v=m.right-p.left+1,y=m.bottom-p.top+1,b=p.top-f.top-g-1,x=p.left-f.left-_-1;this.overlay||(this.overlay=document.createElement(`div`),this.overlay.setAttribute(`data-blok-table-selection-overlay`,``),this.overlay.style.position=`absolute`,this.overlay.style.border=q,this.overlay.style.pointerEvents=`none`,this.overlay.style.boxSizing=`border-box`,this.overlay.style.borderRadius=`2px`,this.grid.appendChild(this.overlay)),this.overlay.style.top=`${b}px`,this.overlay.style.left=`${x}px`,this.overlay.style.width=`${v}px`,this.overlay.style.height=`${y}px`,this.pill||(this.pill=this.createPill(),this.grid.appendChild(this.pill)),this.pill.style.left=`${x+v-1}px`,this.pill.style.top=`${b+y/2}px`,this.observeCellResizes()}repositionOverlay(){let e=this.lastPaintedRange;if(!e||!this.overlay)return;let n=this.grid.querySelectorAll(`[${t.lt}]`),r=this.findCellByCoordOrIndex(n,e.minRow,e.minCol),i=this.findCellByCoordOrIndex(n,e.maxRow,e.maxCol);if(!r||!i)return;let a=this.grid.getBoundingClientRect(),o=r.getBoundingClientRect(),s=i.getBoundingClientRect(),c=getComputedStyle(this.grid),l=parseFloat(c.borderTopWidth)||0,u=parseFloat(c.borderLeftWidth)||0,d=s.right-o.left+1,f=s.bottom-o.top+1,p=o.top-a.top-l-1,m=o.left-a.left-u-1;this.overlay.style.top=`${p}px`,this.overlay.style.left=`${m}px`,this.overlay.style.width=`${d}px`,this.overlay.style.height=`${f}px`,this.pill&&(this.pill.style.left=`${m+d-1}px`,this.pill.style.top=`${p+f/2}px`)}observeCellResizes(){if(this.disconnectResizeObserver(),this.selectedCells.length!==0){this.resizeObserver=new ResizeObserver(()=>{this.repositionOverlay()});for(let e of this.selectedCells)this.resizeObserver.observe(e)}}disconnectResizeObserver(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}createPill(){let e=document.createElement(`div`);e.setAttribute(_t,``),e.setAttribute(`contenteditable`,`false`),e.className=r.l(xt),e.style.width=`${bt}px`,e.style.height=`${yt}px`,e.style.pointerEvents=`auto`,e.style.transform=`translate(-50%, -50%)`,e.style.outline=`2px solid var(--blok-table-grip-outline, transparent)`;let t=pt(`vertical`);return t.classList.remove(`text-gray-400`),t.classList.add(`text-white`),e.appendChild(t),e.addEventListener(`mouseenter`,()=>{this.pillPopover===null&&this.expandPill()}),e.addEventListener(`mouseleave`,()=>{this.pillPopover===null&&this.collapsePill()}),e.addEventListener(`pointerdown`,e=>{e.stopPropagation(),e.preventDefault(),this.openPillPopover()}),e}openPillPopover(){if(this.destroyPillPopover(),!this.pill)return;this.expandPill();let e=t.br===`Meta`?`⌘C`:`Ctrl+C`,n=[];if(this.onColorChange!==void 0){let{element:e}=it({i18n:this.i18n,onColorSelect:(e,t)=>{var n;(n=this.onColorChange)==null||n.call(this,[...this.selectedCells],e,t)}});n.push({icon:o.Dt,title:this.i18n.t(`tools.table.cellColor`),name:`cellColor`,children:{items:[{type:t.hr.Html,element:e}],isFlippable:!1}})}let r=[];if(this.onPlacementChange!==void 0){let e=this.lastPaintedRange&&this.getCellPlacement?this.getCellPlacement(this.lastPaintedRange.minRow,this.lastPaintedRange.minCol):void 0,{element:n}=lt({i18n:this.i18n,currentPlacement:e,onPlacementSelect:e=>{var t;(t=this.onPlacementChange)==null||t.call(this,[...this.selectedCells],e)}});r.push({icon:o.Vt,title:this.i18n.t(`tools.table.placement`),name:`cellPlacement`,children:{items:[{type:t.hr.Html,element:n}],isFlippable:!1}})}let i=[];if(this.lastPaintedRange&&this.onMergeCells){var a;let e=this.lastPaintedRange;(e.minRow!==e.maxRow||e.minCol!==e.maxCol)&&!this.preExpansionWasSingleCell&&(a=this.canMergeCells)!=null&&a.call(this,e)&&i.push({icon:o.kt,title:this.i18n.t(`tools.table.mergeCells`),closeOnActivate:!0,onActivate:()=>{var t;(t=this.onMergeCells)==null||t.call(this,e),this.clearSelection()}})}if(this.lastPaintedRange&&this.onSplitCell){var s,c;let e=this.lastPaintedRange,t=e.minRow===e.maxRow&&e.minCol===e.maxCol,n=this.preExpansionWasSingleCell&&((s=this.isMergedCell)==null?void 0:s.call(this,e.minRow,e.minCol));(t||n)&&(c=this.isMergedCell)!=null&&c.call(this,e.minRow,e.minCol)&&i.push({icon:o.sn,title:this.i18n.t(`tools.table.splitCell`),closeOnActivate:!0,onActivate:()=>{var t;(t=this.onSplitCell)==null||t.call(this,e.minRow,e.minCol),this.clearSelection()}})}let l=[...n,...r,...i,{icon:o.w,title:this.i18n.t(`tools.table.copySelection`),secondaryLabel:e,closeOnActivate:!0,onActivate:()=>{var e;(e=this.onCopyViaButton)==null||e.call(this,[...this.selectedCells])}},{icon:o.D,title:this.i18n.t(`tools.table.clearSelection`),secondaryLabel:`Del`,closeOnActivate:!0,onActivate:()=>{var e;(e=this.onClearContent)==null||e.call(this,[...this.selectedCells]),this.clearSelection()}}];this.pillPopover=new t._t({items:l,trigger:this.pill,flippable:!0}),this.pillPopover.on(t.xt.Closed,()=>{this.pillPopover!==null&&(this.destroyPillPopover(),this.collapsePill())}),this.pillPopover.show()}expandPill(){if(!this.pill)return;this.pill.style.width=`${vt}px`;let e=this.pill.querySelector(`svg`);e&&(e.classList.remove(`opacity-0`),e.classList.add(`opacity-100`))}collapsePill(){if(!this.pill)return;this.pill.style.width=`${bt}px`;let e=this.pill.querySelector(`svg`);e&&(e.classList.add(`opacity-0`),e.classList.remove(`opacity-100`))}destroyPillPopover(){if(this.pillPopover!==null){let e=this.pillPopover;this.pillPopover=null,e.destroy()}}resolveCellCoord(e){let n=e.closest(`[${t.ot}]`);if(!n)return null;let r=n.closest(`[${t.lt}]`);if(!r||!this.grid.contains(r))return null;let i=n.getAttribute(t.ct),a=n.getAttribute(t.st);if(i!==null&&a!==null){let e=parseInt(i,10),t=parseInt(a,10);if(!isNaN(e)&&!isNaN(t))return{row:e,col:t}}let o=Array.from(this.grid.querySelectorAll(`[${t.lt}]`)).indexOf(r);if(o<0)return null;let s=Array.from(r.querySelectorAll(`[${t.ot}]`)).indexOf(n);return s<0?null:{row:o,col:s}}clampExtentToEdge(e){var n,r,i,a;if(!this.anchorCell||!this.isSelecting)return;let o=this.grid.getBoundingClientRect(),s=this.grid.querySelectorAll(`[${t.lt}]`).length,c=this.getLogicalColumnCount();if(s===0||c===0)return;let l={row:this.clampAxis(e.clientY,o.top,o.bottom,s,(n=(r=this.extentCell)==null?void 0:r.row)==null?this.anchorCell.row:n),col:this.clampAxis(e.clientX,o.left,o.right,c,(i=(a=this.extentCell)==null?void 0:a.col)==null?this.anchorCell.col:i)};(!this.extentCell||this.extentCell.row!==l.row||this.extentCell.col!==l.col)&&(this.extentCell=l,this.paintSelection())}collectCellsInRange(e,n,r,i,a){if(this.grid.querySelector(`[data-blok-table-cell-row]`)===null)return Array.from(e).slice(n,r+1).flatMap(e=>{let n=e.querySelectorAll(`[${t.ot}]`);return Array.from(n).slice(i,a+1).filter(e=>e instanceof HTMLElement)});let o=this.grid.querySelectorAll(`[${t.ot}]`);return Array.from(o).filter(e=>{let o=e.getAttribute(t.ct),s=e.getAttribute(t.st);if(o===null||s===null)return!1;let c=Number(o),l=Number(s),u=e,d=c+(u.rowSpan||1)-1,f=l+(u.colSpan||1)-1;return c<=r&&d>=n&&l<=a&&f>=i})}findCellByCoordOrIndex(e,n,r){var i,a,o;return this.grid.querySelector(`[${t.ct}="${n}"][${t.st}="${r}"]`)||((i=e[n])==null?void 0:i.querySelectorAll(`[${t.ot}]`)[r])||Array.from((a=(o=e[n])==null?void 0:o.querySelectorAll(`[data-blok-table-cell]`))==null?[]:a).find(e=>{let n=Number(e.getAttribute(t.st)),i=e.colSpan||1;return n<=r&&n+i-1>=r})}getLogicalColumnCount(){var e,n;let r=(e=this.grid.querySelector(`colgroup`))==null?void 0:e.querySelectorAll(`col`).length;if(r!==void 0&&r>0)return r;let i=this.grid.querySelector(`[${t.lt}]`);return(n=i==null?void 0:i.querySelectorAll(`[data-blok-table-cell]`).length)==null?0:n}clampAxis(e,t,n,r,i){return e<t?0:e>n?r-1:i}},wt=`data-blok-table-corner-drag`,Tt=5,Et=class{constructor(e){var t;this.dragState=null,this.wrapper=e.wrapper,this.gridEl=e.gridEl,this.getTableSize=e.getTableSize,this.onAddRow=e.onAddRow,this.onAddColumn=e.onAddColumn,this.onRemoveLastRow=e.onRemoveLastRow,this.onRemoveLastColumn=e.onRemoveLastColumn,this.onDragStart=e.onDragStart,this.onDragEnd=e.onDragEnd,this.canRemoveLastRow=e.canRemoveLastRow,this.canRemoveLastColumn=e.canRemoveLastColumn,this.onClickAdd=(t=e.onClickAdd)==null?null:t,this.hitZone=document.createElement(`div`),this.hitZone.setAttribute(wt,``),this.hitZone.setAttribute(`contenteditable`,`false`),this.hitZone.style.position=`absolute`,this.hitZone.style.width=`36px`,this.hitZone.style.height=`36px`,this.hitZone.style.cursor=`nwse-resize`,this.hitZone.style.zIndex=`2`,this.hitZone.style.pointerEvents=`auto`,this.hitZone.style.bottom=`-36px`,this.hitZone.style.right=`-16px`,this.boundMouseEnter=this.handleMouseEnter.bind(this),this.boundMouseLeave=this.handleMouseLeave.bind(this),this.boundPointerDown=this.handlePointerDown.bind(this),this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.hitZone.addEventListener(`mouseenter`,this.boundMouseEnter),this.hitZone.addEventListener(`mouseleave`,this.boundMouseLeave),this.hitZone.addEventListener(`pointerdown`,this.boundPointerDown),this.wrapper.appendChild(this.hitZone)}updateTooltip(){let e=this.getTableSize();t.dr(this.hitZone,`${e.cols}\u00D7${e.rows}`,{placement:`bottom`})}handleMouseEnter(){this.updateTooltip()}handleMouseLeave(){this.dragState===null&&t.lr()}measureUnitHeight(){let e=this.gridEl.querySelectorAll(`[data-blok-table-row]`),t=e[e.length-1];return(t==null?void 0:t.offsetHeight)||30}measureUnitWidth(){let e=this.gridEl.querySelector(`[data-blok-table-row]`);if(!e)return 100;let t=e.querySelectorAll(`[data-blok-table-cell]`),n=t[t.length-1];return(n==null?void 0:n.offsetWidth)||100}handlePointerDown(e){this.dragState={startX:e.clientX,startY:e.clientY,unitWidth:this.measureUnitWidth(),unitHeight:this.measureUnitHeight(),addedRows:0,addedCols:0,pointerId:e.pointerId,didDrag:!1},this.updateTooltip(),this.hitZone.setPointerCapture(e.pointerId),this.hitZone.addEventListener(`pointermove`,this.boundPointerMove),this.hitZone.addEventListener(`pointerup`,this.boundPointerUp)}handlePointerMove(e){if(this.dragState===null)return;let t=e.clientX-this.dragState.startX,n=e.clientY-this.dragState.startY;if(!this.dragState.didDrag){if(Math.sqrt(t*t+n*n)<Tt)return;this.dragState.didDrag=!0,document.body.style.cursor=`nwse-resize`,document.body.style.userSelect=`none`,this.onDragStart()}let{unitHeight:r,unitWidth:i}=this.dragState,a=Math.trunc(n/r),o=Math.trunc(t/i);for(;this.dragState.addedRows<a;)this.onAddRow(),this.dragState.addedRows++;for(;this.dragState.addedRows>a&&this.canRemoveLastRow();)this.onRemoveLastRow(),this.dragState.addedRows--;for(;this.dragState.addedCols<o;)this.onAddColumn(),this.dragState.addedCols++;for(;this.dragState.addedCols>o&&this.canRemoveLastColumn();)this.onRemoveLastColumn(),this.dragState.addedCols--;this.updateTooltip()}handlePointerUp(e){if(this.dragState===null)return;let{didDrag:n,pointerId:r}=this.dragState;this.dragState=null,t.lr(),this.hitZone.releasePointerCapture(r),this.hitZone.removeEventListener(`pointermove`,this.boundPointerMove),this.hitZone.removeEventListener(`pointerup`,this.boundPointerUp),n?(document.body.style.cursor=``,document.body.style.userSelect=``,this.onDragEnd()):this.onClickAdd?this.onClickAdd():(this.onAddRow(),this.onAddColumn())}setDisplay(e){this.hitZone.style.display=e?``:`none`}setInteractive(e){this.hitZone.style.pointerEvents=e?`auto`:`none`}destroy(){var e;this.hitZone.removeEventListener(`mouseenter`,this.boundMouseEnter),this.hitZone.removeEventListener(`mouseleave`,this.boundMouseLeave),this.hitZone.removeEventListener(`pointerdown`,this.boundPointerDown),this.hitZone.removeEventListener(`pointermove`,this.boundPointerMove),this.hitZone.removeEventListener(`pointerup`,this.boundPointerUp),(e=this.dragState)!=null&&e.didDrag&&(document.body.style.cursor=``,document.body.style.userSelect=``),this.dragState=null,t.lr(),this.hitZone.remove()}},Dt=`data-blok-table-resize`,J=50,Ot=16,kt=class{get enabled(){return this._enabled}set enabled(e){this._enabled=e;let t=e?``:`none`;this.handles.forEach(e=>{let n=e;n.style.pointerEvents=t})}constructor(e,t,n,r,i,a=!1){this._enabled=!0,this.isDragging=!1,this.dragStartX=0,this.dragColIndex=-1,this.startColWidth=0,this.dragColElements=null,this.handles=[],this.gridEl=e,this.colWidths=[...t],this.onChange=n,this.onDragStart=r==null?null:r,this.onDrag=i==null?null:i,this.needsInitialApply=a,this.boundPointerDown=this.onPointerDown.bind(this),this.boundPointerMove=this.onPointerMove.bind(this),this.boundPointerUp=this.onPointerUp.bind(this),this.gridEl.style.position=`relative`,a||this.applyWidths(),this.createHandles(),this.gridEl.addEventListener(`pointerdown`,this.boundPointerDown)}destroy(){this.gridEl.removeEventListener(`pointerdown`,this.boundPointerDown),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),this.dragColElements=null,this.handles.forEach(e=>e.remove()),this.handles=[]}createHandles(){let e=this.colWidths.length;e<2||Array.from({length:e}).forEach((e,t)=>{let n=this.createHandle(t);this.handles.push(n),this.gridEl.appendChild(n)})}createHandle(e){let t=document.createElement(`div`),n=this.getHandleLeftPx(e);return t.setAttribute(Dt,``),t.setAttribute(`data-col`,String(e)),t.style.position=`absolute`,t.style.top=`-1px`,t.style.bottom=`0px`,t.style.width=`${Ot}px`,t.style.left=`${n-Ot/2}px`,t.style.cursor=`col-resize`,t.style.zIndex=`2`,t.style.background=`linear-gradient(to right, transparent 7px, #3b82f6 7px, #3b82f6 9px, transparent 9px)`,t.style.opacity=`0`,t.style.transition=`opacity 150ms ease`,t.setAttribute(`contenteditable`,`false`),t.addEventListener(`mouseenter`,()=>{this.isDragging||(t.style.opacity=`1`)}),t.addEventListener(`mouseleave`,()=>{this.isDragging||(t.style.opacity=`0`)}),t}getHandleLeftPx(e){return this.colWidths.slice(0,e+1).reduce((e,t)=>e+t,0)}updateHandlePositions(){this.handles.forEach((e,t)=>{let n=this.getHandleLeftPx(t),r=e;r.style.left=`${n-Ot/2}px`})}onPointerDown(e){var t;if(!this._enabled)return;let n=e.target;if(!n.hasAttribute(Dt))return;e.preventDefault(),this.needsInitialApply&&(this.applyWidths(),this.updateHandlePositions(),this.needsInitialApply=!1);let r=n.getAttribute(`data-col`);r!==null&&(this.dragColIndex=Number(r),this.isDragging=!0,this.dragStartX=e.clientX,this.startColWidth=this.colWidths[this.dragColIndex],this.dragColElements=this.resolveColElements(),(t=this.onDragStart)==null||t.call(this),this.gridEl.style.userSelect=`none`,n.style.opacity=`1`,n.setPointerCapture&&n.setPointerCapture(e.pointerId),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp))}onPointerMove(e){var t,n;if(!this.isDragging)return;let r=e.clientX-this.dragStartX,i=this.startColWidth+r,a=Math.max(J,i);this.colWidths[this.dragColIndex]=a,this.applyWidths((t=this.dragColElements)==null?void 0:t),this.updateHandlePositions(),(n=this.onDrag)==null||n.call(this)}onPointerUp(){if(!this.isDragging)return;this.isDragging=!1,this.gridEl.style.userSelect=``;let e=this.handles[this.dragColIndex];e&&(e.style.opacity=`0`),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),this.dragColElements=null,this.onChange([...this.colWidths])}resolveColElements(){let e=this.gridEl.querySelector(`colgroup`);return e?Array.from(e.querySelectorAll(`col`)):[]}applyWidths(e=this.resolveColElements()){let t=this.colWidths.reduce((e,t)=>e+t,0);this.gridEl.style.width=`${t+1}px`,e.forEach((e,t)=>{if(t<this.colWidths.length){let n=e;n.style.width=`${this.colWidths[t]}px`}})}},At=(e,n,r)=>(r.grid.addRow(e,n),t.W(e,r.cellBlocks),{pendingHighlight:{type:`row`,index:n},moveSelection:null,colWidths:r.data.colWidths,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}),jt=(e,n,r)=>{let i=t.P(e,n,r.data.colWidths,r.data.initialColWidth,r.grid);return t.W(e,r.cellBlocks),{pendingHighlight:{type:`col`,index:n},moveSelection:null,colWidths:i,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}},Mt=e=>({pendingHighlight:null,moveSelection:null,colWidths:e.data.colWidths,withHeadings:e.data.withHeadings,withHeadingColumn:e.data.withHeadingColumn}),Nt=(e,t,n,r)=>r.data.hasMerges?Mt(r):(r.grid.moveRow(e,t,n),{pendingHighlight:null,moveSelection:{type:`row`,index:n},colWidths:r.data.colWidths,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}),Pt=(e,n,r,i)=>i.data.hasMerges?Mt(i):(i.grid.moveColumn(e,n,r),{pendingHighlight:null,moveSelection:{type:`col`,index:r},colWidths:t.Y(i.data.colWidths,n,r),withHeadings:i.data.withHeadings,withHeadingColumn:i.data.withHeadingColumn}),Ft=(e,t,n)=>{var r,i;return(r=n.cellBlocks)==null||r.deleteBlocks((i=n.blocksToDelete)==null?[]:i),n.data.hasMerges&&n.rebuildTableBody?n.rebuildTableBody():n.grid.deleteRow(e,t),{pendingHighlight:{type:`row`,index:t<n.grid.getRowCount(e)?t:t-1},moveSelection:null,colWidths:n.data.colWidths,withHeadings:n.data.withHeadings,withHeadingColumn:n.data.withHeadingColumn}},It=(e,n,r)=>{var i,a;(i=r.cellBlocks)==null||i.deleteBlocks((a=r.blocksToDelete)==null?[]:a),r.data.hasMerges&&r.rebuildTableBody?r.rebuildTableBody():r.grid.deleteColumn(e,n);let o=t.J(r.data.colWidths,n);return o?t.j(e,o):t.K(e),{pendingHighlight:{type:`col`,index:n<r.grid.getColumnCount(e)?n:n-1},moveSelection:null,colWidths:o,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}},Lt=(e,t,n)=>{switch(t.type){case`insert-row-above`:return At(e,t.index,n);case`insert-row-below`:return At(e,t.index+1,n);case`insert-col-left`:return jt(e,t.index,n);case`insert-col-right`:return jt(e,t.index+1,n);case`move-row`:return Nt(e,t.fromIndex,t.toIndex,n);case`move-col`:return Pt(e,t.fromIndex,t.toIndex,n);case`delete-row`:return Ft(e,t.index,n);case`delete-col`:return It(e,t.index,n);case`toggle-heading`:return{pendingHighlight:{type:`row`,index:0},moveSelection:null,colWidths:n.data.colWidths,withHeadings:!n.data.withHeadings,withHeadingColumn:n.data.withHeadingColumn};case`toggle-heading-column`:return{pendingHighlight:{type:`col`,index:0},moveSelection:null,colWidths:n.data.colWidths,withHeadings:n.data.withHeadings,withHeadingColumn:!n.data.withHeadingColumn}}},Rt=10,zt=`data-blok-table-drag-ghost`,Bt=e=>{let n=e.querySelector(`colgroup`);if(n)return Array.from(n.querySelectorAll(`col`)).reduce((e,t)=>{let n=e[e.length-1],r=t.offsetWidth||parseFloat(t.style.width)||0;return[...e,n+r]},[0]);let r=e.querySelector(`[${t.lt}]`);return r?Array.from(r.querySelectorAll(`[${t.ot}]`)).reduce((e,t)=>{let n=e[e.length-1];return[...e,n+t.offsetWidth]},[0]):[0]},Vt=class{constructor(e){var t;this.isDragging=!1,this.dragType=null,this.dragFromIndex=-1,this.dragStartX=0,this.dragStartY=0,this.dropIndicator=null,this.dragOverlayCells=[],this.ghostEl=null,this.ghostOffsetX=0,this.ghostOffsetY=0,this.resolveTracking=null,this.grid=e.grid,this.onAction=e.onAction,this.onDragStateChange=(t=e.onDragStateChange)==null?null:t,this.boundDocPointerMove=this.handleDocPointerMove.bind(this),this.boundDocPointerUp=this.handleDocPointerUp.bind(this),this.boundDocPointerCancel=this.handleDocPointerCancel.bind(this)}beginTracking(e,t,n,r){return this.dragType=e,this.dragFromIndex=t,this.dragStartX=n,this.dragStartY=r,document.addEventListener(`pointermove`,this.boundDocPointerMove),document.addEventListener(`pointerup`,this.boundDocPointerUp),document.addEventListener(`pointercancel`,this.boundDocPointerCancel),new Promise(e=>{this.resolveTracking=e})}cleanup(){var e,t,n;this.grid.style.userSelect=``,document.body.style.cursor=``,this.dragOverlayCells.forEach(e=>{let t=e.el;t.style.backgroundColor=e.originalBg,t.style.opacity=``}),this.dragOverlayCells=[],(e=this.dropIndicator)==null||e.remove(),this.dropIndicator=null,(t=this.ghostEl)==null||t.remove(),this.ghostEl=null,document.removeEventListener(`pointermove`,this.boundDocPointerMove),document.removeEventListener(`pointerup`,this.boundDocPointerUp),document.removeEventListener(`pointercancel`,this.boundDocPointerCancel),(n=this.onDragStateChange)==null||n.call(this,!1,null),this.isDragging=!1,this.dragType=null,this.dragFromIndex=-1,this.resolveTracking=null}handleDocPointerMove(e){let t=Math.abs(e.clientX-this.dragStartX),n=Math.abs(e.clientY-this.dragStartY);!this.isDragging&&(t>Rt||n>Rt)&&(this.isDragging=!0,this.startDrag()),this.isDragging&&(this.updateDragIndicator(e),this.updateGhostPosition(e))}handleDocPointerUp(e){if(document.removeEventListener(`pointermove`,this.boundDocPointerMove),document.removeEventListener(`pointerup`,this.boundDocPointerUp),document.removeEventListener(`pointercancel`,this.boundDocPointerCancel),this.isDragging){var t;this.finishDrag(e),(t=this.resolveTracking)==null||t.call(this,!0)}else{var n;(n=this.resolveTracking)==null||n.call(this,!1)}this.cleanup()}handleDocPointerCancel(){var e;(e=this.resolveTracking)==null||e.call(this,this.isDragging),this.cleanup()}startDrag(){var e;this.grid.style.userSelect=`none`,document.body.style.cursor=`grabbing`,(e=this.onDragStateChange)==null||e.call(this,!0,this.dragType),this.highlightSourceCells(),this.createDropIndicator(),this.createGhost()}highlightSourceCells(){let e=this.grid.querySelectorAll(`[${t.lt}]`);if(this.dragType===`row`){this.highlightRowCells(e);return}this.dragType===`col`&&this.highlightColumnCells(e)}highlightRowCells(e){let n=e[this.dragFromIndex];if(!n)return;let r=this.getDragSourceBg();n.querySelectorAll(`[${t.ot}]`).forEach(e=>{let t=e;this.dragOverlayCells.push({el:t,originalBg:t.style.backgroundColor}),t.style.backgroundColor=r,t.style.opacity=`0.7`})}highlightColumnCells(e){let n=this.getDragSourceBg();e.forEach(e=>{let r=e.querySelector(`[${t.st}="${this.dragFromIndex}"]`);r&&(this.dragOverlayCells.push({el:r,originalBg:r.style.backgroundColor}),r.style.backgroundColor=n,r.style.opacity=`0.7`)})}getDragSourceBg(){return getComputedStyle(this.grid).getPropertyValue(`--blok-table-drag-source-bg`).trim()||`#f3f4f6`}isDarkMode(){var e,t,n;let r=document.documentElement.getAttribute(`data-blok-theme`);return r===`dark`?!0:r===`light`||(e=(t=(n=window).matchMedia)==null?void 0:t.call(n,`(prefers-color-scheme: dark)`).matches)==null?!1:e}createDropIndicator(){this.dropIndicator=document.createElement(`div`);let e=this.dropIndicator.style;if(e.position=`absolute`,e.backgroundColor=`#3b82f6`,e.borderRadius=`1.5px`,e.zIndex=`5`,e.pointerEvents=`none`,this.dropIndicator.setAttribute(`contenteditable`,`false`),this.dragType===`row`)e.height=`3px`,e.left=`-1px`,e.right=`0`,e.transition=`top 100ms ease`;else{let n=this.grid.querySelectorAll(`[${t.lt}]`),r=n[n.length-1],i=r?r.offsetTop+r.offsetHeight:0;e.width=`3px`,e.top=`-1px`,e.height=`${i+1}px`,e.transition=`left 100ms ease`}this.grid.appendChild(this.dropIndicator)}updateDragIndicator(e){if(!this.dropIndicator)return;let t=this.grid.getBoundingClientRect();if(this.dragType===`row`){this.updateRowIndicator(e,t);return}this.dragType===`col`&&this.updateColIndicator(e,t)}updateRowIndicator(e,t){if(!this.dropIndicator)return;let n=e.clientY-t.top,r=this.getRowDropIndex(n),i=this.getRowDropTopPx(r);this.dropIndicator.style.top=`${i-1.5}px`}updateColIndicator(e,t){var n;if(!this.dropIndicator)return;let r=e.clientX-t.left,i=this.getColDropIndex(r),a=Bt(this.grid);this.dropIndicator.style.left=`${((n=a[i])==null?0:n)-1.5}px`}finishDrag(e){let t=this.grid.getBoundingClientRect();if(this.dragType===`row`){this.finishRowDrag(e,t);return}this.dragType===`col`&&this.finishColDrag(e,t)}finishRowDrag(e,t){let n=e.clientY-t.top,r=this.getRowDropIndex(n),i=r>this.dragFromIndex?r-1:r;i!==this.dragFromIndex&&this.onAction({type:`move-row`,fromIndex:this.dragFromIndex,toIndex:i})}finishColDrag(e,t){let n=e.clientX-t.left,r=this.getColDropIndex(n),i=r>this.dragFromIndex?r-1:r;i!==this.dragFromIndex&&this.onAction({type:`move-col`,fromIndex:this.dragFromIndex,toIndex:i})}createGhost(){let e=document.createElement(`div`);e.setAttribute(zt,``),e.setAttribute(`contenteditable`,`false`);let t=e.style;t.position=`fixed`,t.pointerEvents=`none`,t.opacity=`0.5`,t.zIndex=`50`,t.borderRadius=`4px`,t.overflow=`hidden`,t.boxShadow=this.isDarkMode()?`0 8px 24px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.08)`:`0 4px 12px rgba(0, 0, 0, 0.15)`,this.ghostEl=e;let n=this.getSourceRect();this.dragType===`row`&&this.buildRowGhost(),this.dragType===`col`&&this.buildColumnGhost(),document.body.appendChild(e),n&&(t.left=`${n.left}px`,t.top=`${n.top}px`,this.ghostOffsetX=this.dragStartX-n.left,this.ghostOffsetY=this.dragStartY-n.top)}getSourceRect(){return this.dragType===`row`?this.getRowSourceRect():this.dragType===`col`?this.getColSourceRect():null}getRowSourceRect(){var e;let n=this.grid.querySelectorAll(`[${t.lt}]`)[this.dragFromIndex];return(e=n==null?void 0:n.getBoundingClientRect())==null?null:e}getColSourceRect(){let e=this.grid.querySelectorAll(`[${t.lt}]`),n=e[0],r=e[e.length-1];if(!n||!r)return null;let i=n.querySelector(`[${t.st}="${this.dragFromIndex}"]`),a=r.querySelector(`[${t.st}="${this.dragFromIndex}"]`);if(!i||!a)return null;let o=i.getBoundingClientRect(),s=a.getBoundingClientRect();return new DOMRect(o.left,o.top,o.width,s.bottom-o.top)}buildRowGhost(){let e=this.grid.querySelectorAll(`[${t.lt}]`)[this.dragFromIndex];if(!e||!this.ghostEl)return;let n=this.ghostEl.style;n.display=`flex`,n.height=`${e.offsetHeight}px`,e.querySelectorAll(`[${t.ot}]`).forEach(e=>{var t;let n=e,r=n.cloneNode(!0);r.style.width=`${n.offsetWidth}px`,r.style.flexShrink=`0`,r.removeAttribute(`contenteditable`),(t=this.ghostEl)==null||t.appendChild(r)})}buildColumnGhost(){if(!this.ghostEl)return;let e=this.grid.querySelectorAll(`[${t.lt}]`),n=this.ghostEl.style;n.display=`flex`,n.flexDirection=`column`,e.forEach(e=>{var n;let r=e.querySelector(`[${t.st}="${this.dragFromIndex}"]`);if(!r)return;let i=r.cloneNode(!0);i.style.width=`${r.offsetWidth}px`,i.style.height=`${r.offsetHeight}px`,i.removeAttribute(`contenteditable`),(n=this.ghostEl)==null||n.appendChild(i)})}updateGhostPosition(e){if(!this.ghostEl)return;let t=this.ghostEl.style;this.dragType===`row`&&(t.top=`${e.clientY-this.ghostOffsetY}px`),this.dragType===`col`&&(t.left=`${e.clientX-this.ghostOffsetX}px`)}getRowDropIndex(e){let n=Array.from(this.grid.querySelectorAll(`[${t.lt}]`)),r=n.map(e=>e.offsetTop);if(n.length>0){let e=n[n.length-1];r.push(e.offsetTop+e.offsetHeight)}let i=r.map(t=>Math.abs(e-t)),a=Math.min(...i);return i.indexOf(a)}getRowDropTopPx(e){let n=this.grid.querySelectorAll(`[${t.lt}]`);if(e<n.length)return n[e].offsetTop;if(n.length>0){let e=n[n.length-1];return e.offsetTop+e.offsetHeight}return 0}getColDropIndex(e){let t=Bt(this.grid).map(t=>Math.abs(e-t)),n=Math.min(...t);return t.indexOf(n)}},Ht=[`flex`,`items-center`,`select-none`,`border-none`,`bg-transparent`,`rounded-md`,`p-(--item-padding)`,`text-text-primary`,`mb-px`,`cursor-pointer`,`can-hover:hover:bg-item-hover-bg`],Ut=[`flex`,`items-center`,`justify-center`,`w-[26px]`,`h-[26px]`,`mr-2`,`[&_svg]:w-icon`,`[&_svg]:h-icon`],Wt=[`mr-auto`,`truncate`,`text-sm`,`font-medium`,`leading-5`],Gt=[`relative`,`w-[30px]`,`h-[18px]`,`rounded-full`,`transition-colors`,`duration-[180ms]`,`ease-out`,`shrink-0`,`ml-2`],Kt=[`absolute`,`top-[2px]`,`w-[14px]`,`h-[14px]`,`rounded-full`,`bg-white`,`transition-[left]`,`duration-[220ms]`,`[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]`],qt=e=>{let{icon:t,label:n,isActive:i,onToggle:a}=e,o={active:i},s=document.createElement(`div`);s.className=r.l(Ht);let c=document.createElement(`div`);c.className=r.l(Ut),c.innerHTML=t,s.appendChild(c);let l=document.createElement(`span`);l.className=r.l(Wt),l.textContent=n,s.appendChild(l);let u=document.createElement(`div`);u.className=r.l(Gt);let d=document.createElement(`div`);d.className=r.l(Kt),u.appendChild(d),s.appendChild(u);let f=()=>{u.style.backgroundColor=o.active?`var(--blok-toggle-on-bg)`:`var(--blok-toggle-off-bg)`,d.style.left=o.active?`14px`:`2px`,d.style.backgroundColor=o.active?`var(--blok-toggle-thumb-on-bg)`:``,d.style.boxShadow=o.active?`0 1px 3px rgba(0,0,0,0.35), 0 0 0 1px rgba(0,0,0,0.04)`:`0 1px 3px rgba(0,0,0,0.25), 0 0 0 1px rgba(0,0,0,0.06)`};return f(),s.addEventListener(`click`,e=>{e.stopPropagation(),o.active=!o.active,f(),a(o.active)}),s},Jt=(e,n)=>{let r=e===0?[{type:t.hr.Html,element:qt({icon:o.at,label:n.i18n.t(`tools.table.headerColumn`),isActive:n.isHeadingColumn(),onToggle:()=>{n.onAction({type:`toggle-heading-column`})}})},{type:t.hr.Separator}]:[],i=[{icon:o.ht,title:n.i18n.t(`tools.table.insertColumnLeft`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-col-left`,index:e})}},{icon:o.gt,title:n.i18n.t(`tools.table.insertColumnRight`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-col-right`,index:e})}}],a=n.getColumnCount()>1,s=[{type:t.hr.Separator},{icon:o.gn,title:n.i18n.t(`tools.table.deleteColumn`),isDestructive:!0,isDisabled:!a,closeOnActivate:!0,onActivate:()=>{n.onAction({type:`delete-col`,index:e})}}];return[...r,...i,...s]},Yt=(e,n)=>{let r=e===0?[{type:t.hr.Html,element:qt({icon:o.ot,label:n.i18n.t(`tools.table.headerRow`),isActive:n.isHeadingRow(),onToggle:()=>{n.onAction({type:`toggle-heading`})}})},{type:t.hr.Separator}]:[],i=[{icon:o.pt,title:n.i18n.t(`tools.table.insertRowAbove`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-row-above`,index:e})}},{icon:o.mt,title:n.i18n.t(`tools.table.insertRowBelow`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-row-below`,index:e})}}],a=n.getRowCount()>1,s=[{type:t.hr.Separator},{icon:o.gn,title:n.i18n.t(`tools.table.deleteRow`),isDestructive:!0,isDisabled:!a,closeOnActivate:!0,onActivate:()=>{n.onAction({type:`delete-row`,index:e})}}];return[...r,...i,...s]},Xt=(e,n,r,i,a)=>{a.destroyPopover(),a.clearHideTimeout();let o=e===`col`?r.col[n]:r.row[n];if(!o)return{popover:null,grip:null};let s=new t._t({items:e===`col`?Jt(n,i):Yt(n,i),trigger:o,flippable:!0});return s.on(t.xt.Closed,()=>{var e;a.destroyPopover(),a.applyVisibleClasses(o),a.scheduleHideAll(),(e=a.onGripPopoverClose)==null||e.call(a)}),a.hideAllGripsExcept(o),a.applyActiveClasses(o),e===`col`?o.style.height=`16px`:o.style.width=`16px`,{popover:s,grip:o}},Y=`data-blok-table-grip`,Zt=`data-blok-table-grip-col`,Qt=`data-blok-table-grip-row`,$t=150,en=24,tn=4,X=4,nn=20,rn=[`absolute`,`z-3`,`rounded-sm`,`cursor-grab`,`select-none`,`transition-[opacity,background-color,width,height]`,`duration-150`,`group`,`flex`,`items-center`,`justify-center`,`overflow-hidden`],an=[`bg-gray-300`,`opacity-0`,`pointer-events-none`],on=[`bg-gray-300`,`opacity-100`,`pointer-events-auto`],sn=[`bg-blue-500`,`text-white`,`opacity-100`,`pointer-events-auto`],cn=class{constructor(e){this.colGrips=[],this.rowGrips=[],this.popoverState={popover:null,grip:null},this.lockedGrip=null,this.hideTimeout=null,this.activeColGripIndex=-1,this.activeRowGripIndex=-1,this.isInsideTable=!1,this.rowResizeObserver=null,this.boundScrollHandler=null,this.grid=e.grid,this.overlay=e.overlay,this.scrollContainer=e.scrollContainer,this.getColumnCount=e.getColumnCount,this.getRowCount=e.getRowCount,this.isHeadingRow=e.isHeadingRow,this.isHeadingColumn=e.isHeadingColumn,this.onAction=e.onAction,this.onGripClick=e.onGripClick,this.onGripPopoverClose=e.onGripPopoverClose,this.i18n=e.i18n,this.drag=new Vt({grid:this.grid,onAction:this.onAction,onDragStateChange:(t,n)=>{var r;this.handleDragStateChange(t,n),(r=e.onDragStateChange)==null||r.call(e,t,n)}}),this.boundMouseOver=this.handleMouseOver.bind(this),this.boundMouseLeave=this.handleMouseLeave.bind(this),this.boundPointerDown=this.handlePointerDown.bind(this),this.boundUnlockGrip=this.handleUnlockGrip.bind(this),this.createGrips(),this.grid.addEventListener(`mouseover`,this.boundMouseOver),this.grid.addEventListener(`mouseleave`,this.boundMouseLeave)}refresh(){let e=this.popoverState.grip?this.detectGripType(this.popoverState.grip):null;if(this.destroyGrips(),this.createGrips(),!e)return;let t=e.type===`col`?this.colGrips[e.index]:this.rowGrips[e.index];t&&(this.popoverState.grip=t,this.hideAllGripsExcept(t),this.applyActiveClasses(t),e.type===`col`?t.style.height=`16px`:t.style.width=`16px`)}setActiveGrip(e,t){let n=e===`col`?this.colGrips[t]:this.rowGrips[t];n&&(this.unlockGrip(),this.clearHideTimeout(),this.hideAllGripsExcept(n),this.applyActiveClasses(n),e===`col`?n.style.height=`16px`:n.style.width=`16px`,this.lockedGrip=n,document.addEventListener(`pointerdown`,this.boundUnlockGrip))}handleUnlockGrip(e){document.removeEventListener(`pointerdown`,this.boundUnlockGrip),this.lockedGrip&&(this.applyIdleClasses(this.lockedGrip),this.lockedGrip=null);let n=e.target instanceof HTMLElement?e.target:null,r=n==null?void 0:n.closest(`[${t.ot}]`);if(r){let e=this.getCellPosition(r);e&&(this.clearHideTimeout(),this.showColGrip(e.col),this.showRowGrip(e.row),this.isInsideTable=!0)}}unlockGrip(){document.removeEventListener(`pointerdown`,this.boundUnlockGrip),this.lockedGrip=null}getVisibleGripIndices(){return this.activeColGripIndex<0&&this.activeRowGripIndex<0?null:{col:this.activeColGripIndex,row:this.activeRowGripIndex}}restoreVisibleGrips(e,t){this.isInsideTable=e>=0||t>=0,e>=0&&this.showColGrip(e),t>=0&&this.showRowGrip(t)}get isPopoverOpen(){return this.popoverState.popover!==null}destroy(){this.destroyPopover(),this.unlockGrip(),this.drag.cleanup(),this.grid.removeEventListener(`mouseover`,this.boundMouseOver),this.grid.removeEventListener(`mouseleave`,this.boundMouseLeave),this.clearHideTimeout(),this.destroyGrips()}createGrips(){var e;let t=this.getColumnCount(),n=this.getRowCount(),r=(e=this.overlay)==null?this.grid:e;Array.from({length:t}).forEach((e,t)=>{let n=this.createGripElement(`col`,t);this.colGrips.push(n),r.appendChild(n)}),Array.from({length:n}).forEach((e,t)=>{let n=this.createGripElement(`row`,t);this.rowGrips.push(n),r.appendChild(n)}),this.positionGrips(),this.observeRowHeights(),this.attachScrollListener()}attachScrollListener(){this.overlay&&this.scrollContainer&&(this.boundScrollHandler=()=>this.positionGrips(),this.scrollContainer.addEventListener(`scroll`,this.boundScrollHandler))}detachScrollListener(){this.boundScrollHandler&&this.scrollContainer&&(this.scrollContainer.removeEventListener(`scroll`,this.boundScrollHandler),this.boundScrollHandler=null)}destroyGrips(){var e;(e=this.rowResizeObserver)==null||e.disconnect(),this.rowResizeObserver=null,this.detachScrollListener(),this.colGrips.forEach(e=>e.remove()),this.rowGrips.forEach(e=>e.remove()),this.colGrips=[],this.rowGrips=[],this.activeColGripIndex=-1,this.activeRowGripIndex=-1,this.isInsideTable=!1}createGripElement(e,t){let n=document.createElement(`div`);n.className=r.l(rn,an),n.setAttribute(Y,``),n.setAttribute(e===`col`?Zt:Qt,String(t)),n.setAttribute(`contenteditable`,`false`);let i=e===`col`?en:X,a=e===`col`?tn:nn,o=e===`col`?tn:X;return n.style.width=`${i}px`,n.style.height=`${a}px`,n.style.transform=`translate(-50%, -50%)`,n.style.outline=`2px solid var(--blok-table-grip-outline, transparent)`,n.appendChild(pt(e===`col`?`horizontal`:`vertical`)),n.addEventListener(`pointerdown`,this.boundPointerDown),n.addEventListener(`mouseenter`,()=>{this.overlay&&this.clearHideTimeout(),this.isGripInteractionLocked()||mt(n,e)}),n.addEventListener(`mouseleave`,()=>{this.isGripInteractionLocked()||(ht(n,e,o),this.overlay&&this.scheduleHideAll())}),n}positionGrips(){let e=this.grid.querySelectorAll(`[${t.lt}]`);if(!e[0])return;let n=Bt(this.grid),r=this.overlay&&this.scrollContainer?this.scrollContainer.scrollLeft:0,i=this.overlay&&this.scrollContainer?this.scrollContainer.clientWidth:1/0;this.colGrips.forEach((e,t)=>{if(t+1>=n.length)return;let a=(n[t]+n[t+1])/2-r,o=e.style;o.top=`${-1/2}px`,o.left=`${a}px`,this.overlay&&(o.visibility=a<0||a>i?`hidden`:``)}),this.rowGrips.forEach((n,r)=>{if(r>=e.length)return;let i=e[r],a=this.grid.querySelectorAll(`[${t.ct}="${r}"]`),o=Array.from(a).reduce((e,t)=>{let n=t,r=e===null?0:e.rowSpan||1;return(n.rowSpan||1)>r?n:e},null);if((o===null?1:o.rowSpan||1)>1&&o!==null){var s;let e=((s=this.overlay)==null?this.grid:s).getBoundingClientRect(),t=o.getBoundingClientRect(),r=t.top-e.top+t.height/2,i=n.style;i.left=`${-1/2}px`,i.top=`${r}px`}else{let e=i.offsetTop+i.offsetHeight/2,t=n.style;t.left=`${-1/2}px`,t.top=`${e}px`}})}observeRowHeights(){var e;(e=this.rowResizeObserver)==null||e.disconnect(),this.rowResizeObserver=new ResizeObserver(()=>{this.positionGrips()}),this.grid.querySelectorAll(`[${t.lt}]`).forEach(e=>{var t;(t=this.rowResizeObserver)==null||t.observe(e)})}isGripInteractionLocked(){return this.popoverState.popover!==null||this.lockedGrip!==null}handleMouseOver(e){if(this.isGripInteractionLocked())return;let n=e.target.closest(`[${t.ot}]`);if(!n)return;this.clearHideTimeout();let r=this.getCellPosition(n);r&&(this.showColGrip(r.col),this.showRowGrip(r.row),this.isInsideTable=!0)}handleMouseLeave(){this.isGripInteractionLocked()||this.scheduleHideAll()}getCellPosition(e){let n=e.getAttribute(t.ct),r=e.getAttribute(t.st);if(n===null||r===null)return null;let i=parseInt(n,10),a=parseInt(r,10);return isNaN(i)||isNaN(a)?null:{row:i,col:a}}setGripsDisplay(e){let t=e?``:`none`;[...this.colGrips,...this.rowGrips].forEach(n=>{let r=n;!e&&n===this.popoverState.grip||(r.style.display=t)})}hideAllGrips(){this.clearHideTimeout(),this.hideColGrip(),this.hideRowGrip(),this.isInsideTable=!1}showColGrip(e){this.activeColGripIndex!==e&&(this.hideColGrip(),this.activeColGripIndex=e,this.applyVisibleClasses(this.colGrips[e]))}hideColGrip(){this.activeColGripIndex>=0&&this.activeColGripIndex<this.colGrips.length&&this.applyIdleClasses(this.colGrips[this.activeColGripIndex]),this.activeColGripIndex=-1}showRowGrip(e){this.activeRowGripIndex!==e&&(this.hideRowGrip(),this.activeRowGripIndex=e,this.applyVisibleClasses(this.rowGrips[e]))}hideRowGrip(){this.activeRowGripIndex>=0&&this.activeRowGripIndex<this.rowGrips.length&&this.applyIdleClasses(this.rowGrips[this.activeRowGripIndex]),this.activeRowGripIndex=-1}applyVisibleClasses(e){let t=e,n=t.hasAttribute(Zt);ut(t,n?`col`:`row`,n?tn:X),this.isInsideTable&&(t.style.transition=`none`),t.className=r.l(rn,on),t.setAttribute(`data-blok-table-grip-visible`,``),this.isInsideTable&&(t.offsetHeight,t.style.transition=``);let i=t.querySelector(`svg`);i&&(i.classList.remove(`text-white`,`opacity-100`),i.classList.add(`text-gray-400`,`opacity-0`))}applyActiveClasses(e){Object.assign(e,{className:r.l(rn,sn)}),e.setAttribute(`data-blok-table-grip-visible`,``);let t=e.querySelector(`svg`);t&&(t.classList.remove(`text-gray-400`,`opacity-0`),t.classList.add(`text-white`,`opacity-100`))}hideAllGripsExcept(e){[...this.colGrips,...this.rowGrips].forEach(t=>{t!==e&&this.applyIdleClasses(t)})}applyIdleClasses(e){let t=e,n=t.hasAttribute(Zt),i=n?`col`:`row`,a=n?tn+12:X+12;this.isInsideTable&&(t.style.transition=`none`),ut(t,i,a),t.className=r.l(rn,an),t.removeAttribute(`data-blok-table-grip-visible`);let o=t.querySelector(`svg`);o&&(o.classList.add(`opacity-0`),o.classList.remove(`opacity-100`)),this.isInsideTable&&(t.offsetHeight,t.style.transition=``)}handleDragStateChange(e,t){[...this.colGrips,...this.rowGrips].forEach(t=>{let n=t;n.style.display=e?`none`:``})}scheduleHideAll(){this.hideTimeout=setTimeout(()=>{this.hideColGrip(),this.hideRowGrip(),this.isInsideTable=!1,this.hideTimeout=null},$t)}clearHideTimeout(){this.hideTimeout!==null&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}handlePointerDown(e){let t=e.target.closest(`[${Y}]`);if(!t)return;e.preventDefault(),e.stopPropagation();let n=this.detectGripType(t);n&&this.drag.beginTracking(n.type,n.index,e.clientX,e.clientY).then(e=>{e||this.openPopover(n.type,n.index)})}detectGripType(e){let t=e.getAttribute(Zt);if(t!==null)return{type:`col`,index:Number(t)};let n=e.getAttribute(Qt);return n===null?null:{type:`row`,index:Number(n)}}openPopover(e,t){var n,r;this.popoverState=Xt(e,t,{col:this.colGrips,row:this.rowGrips},{getColumnCount:this.getColumnCount,getRowCount:this.getRowCount,isHeadingRow:this.isHeadingRow,isHeadingColumn:this.isHeadingColumn,onAction:this.onAction,i18n:this.i18n},{clearHideTimeout:()=>this.clearHideTimeout(),hideAllGripsExcept:e=>this.hideAllGripsExcept(e),applyActiveClasses:e=>this.applyActiveClasses(e),applyVisibleClasses:e=>this.applyVisibleClasses(e),scheduleHideAll:()=>this.scheduleHideAll(),destroyPopover:()=>this.destroyPopover(),onGripPopoverClose:this.onGripPopoverClose}),(n=this.popoverState.popover)==null||n.show(),(r=this.onGripClick)==null||r.call(this,e,t)}destroyPopover(){if(this.popoverState.popover!==null){let e=this.popoverState.popover;this.popoverState={popover:null,grip:null},e.destroy()}}},ln=`data-blok-table-haze`,un=`data-blok-table-haze-visible`,dn=1,fn=[`absolute`,`top-0`,`bottom-0`,`w-12`,`pointer-events-none`,`opacity-0`,`transition-opacity`,`duration-150`,`z-1`],pn=[`left-0`,`bg-linear-to-r`,`from-white/80`,`to-transparent`],mn=[`right-5`,`bg-linear-to-l`,`from-white/80`,`to-transparent`],hn=class{constructor(){this.leftHaze=null,this.rightHaze=null,this.scrollContainer=null,this.boundOnScroll=null,this.ticking=!1}init(e,t){this.scrollContainer=t,this.leftHaze=this.createHazeElement(`left`),this.rightHaze=this.createHazeElement(`right`),e.appendChild(this.leftHaze),e.appendChild(this.rightHaze),this.boundOnScroll=()=>{this.ticking||(requestAnimationFrame(()=>{this.syncVisibility(),this.ticking=!1}),this.ticking=!0)},t.addEventListener(`scroll`,this.boundOnScroll,{passive:!0}),this.syncVisibility()}update(){this.syncVisibility()}destroy(){var e,t;this.boundOnScroll&&this.scrollContainer&&this.scrollContainer.removeEventListener(`scroll`,this.boundOnScroll),(e=this.leftHaze)==null||e.remove(),(t=this.rightHaze)==null||t.remove(),this.leftHaze=null,this.rightHaze=null,this.scrollContainer=null,this.boundOnScroll=null,this.ticking=!1}createHazeElement(e){let t=document.createElement(`div`);return t.setAttribute(ln,e),t.setAttribute(`aria-hidden`,`true`),t.classList.add(...fn,...e===`left`?pn:mn),t}syncVisibility(){let e=this.scrollContainer;if(!e)return;let{overflowX:t}=getComputedStyle(e);if(!(t===`auto`||t===`scroll`)){this.setVisible(this.leftHaze,!1),this.setVisible(this.rightHaze,!1);return}let{scrollLeft:n,scrollWidth:r,clientWidth:i}=e,a=r-i;this.setVisible(this.leftHaze,n>dn),this.setVisible(this.rightHaze,a>dn&&n<a-dn)}setVisible(e,t){e&&(t?e.setAttribute(un,``):e.removeAttribute(un))}},gn=class{constructor(e){this.resize=null,this.addControls=null,this.rowColControls=null,this.cellSelection=null,this.cornerDrag=null,this.scrollHaze=null,this.gridPasteCleanup=null,this.pendingHighlight=null,this.host=e}get cellSelectionSubsystem(){return this.cellSelection}get rowColControlsSubsystem(){return this.rowColControls}attachScrollContainer(e){var t;(t=this.addControls)==null||t.attachScrollContainer(e)}initAll(e){this.initResize(e),this.initAddControls(e),this.initCornerDrag(e),this.initRowColControls(e),this.initCellSelection(e),this.initGridPasteListener(e),this.initScrollHaze()}initScrollHazeOnly(){this.initScrollHaze()}teardown(){var e,t,n,r,i,a,o;(e=this.resize)==null||e.destroy(),this.resize=null,(t=this.addControls)==null||t.destroy(),this.addControls=null,(n=this.cornerDrag)==null||n.destroy(),this.cornerDrag=null,(r=this.rowColControls)==null||r.destroy(),this.rowColControls=null,(i=this.cellSelection)==null||i.destroy(),this.cellSelection=null,(a=this.scrollHaze)==null||a.destroy(),this.scrollHaze=null,(o=this.gridPasteCleanup)==null||o.call(this),this.gridPasteCleanup=null}initAddControls(e){var n;if((n=this.addControls)==null||n.destroy(),!this.host.element)return;let r={addedCols:0};this.addControls=new et({wrapper:this.host.element,grid:e,i18n:this.host.api.i18n,getTableSize:()=>({rows:this.host.model.rows,cols:this.host.model.cols}),getNewColumnWidth:()=>{var n;let r=(n=this.host.model.colWidths)==null?t.G(e):n;return this.host.model.initialColWidth===void 0?t.M(r):Math.round(this.host.model.initialColWidth/2*100)/100},onAddRow:()=>{this.host.runTransactedStructuralOp(()=>{var n,r;this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(n=this.addControls)==null||n.syncRowButtonWidth(),(r=this.rowColControls)==null||r.refresh()})},onAddColumn:()=>{this.host.runTransactedStructuralOp(()=>{var n,r,i;let a=(n=this.host.model.colWidths)==null?t.G(e):n,o=this.host.model.initialColWidth===void 0?t.M(a):Math.round(this.host.model.initialColWidth/2*100)/100;this.host.grid.addColumn(e,void 0,a,o),this.host.model.addColumn(void 0,o),this.host.model.setColWidths([...a,o]),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(r=this.rowColControls)==null||r.refresh(),this.host.scrollContainer&&(this.host.scrollContainer.scrollLeft=this.host.scrollContainer.scrollWidth),(i=this.addControls)==null||i.syncRowButtonWidth()})},onDragStart:()=>{var e,t;this.resize&&(this.resize.enabled=!1),(e=this.rowColControls)==null||e.hideAllGrips(),(t=this.rowColControls)==null||t.setGripsDisplay(!1)},onDragAddRow:()=>(this.host.runTransactedStructuralOp(()=>{this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn)}),!0),onDragRemoveRow:()=>this.host.runTransactedStructuralOp(()=>{var n;let r=this.host.grid.getRowCount(e);if(r<=1||!t.B(e,r-1))return!1;let{blocksToDelete:i}=this.host.model.deleteRow(r-1);return(n=this.host.cellBlocks)==null||n.deleteBlocks(i),this.host.grid.deleteRow(e,r-1),!0}),onDragAddCol:()=>(this.host.runTransactedStructuralOp(()=>{var n;let i=(n=this.host.model.colWidths)==null?t.G(e):n,a=this.host.model.initialColWidth===void 0?t.M(i):Math.round(this.host.model.initialColWidth/2*100)/100,o=[...i,a];this.host.grid.addColumn(e,void 0,i,a),this.host.model.addColumn(void 0,a),this.host.model.setColWidths(o),t.j(e,o),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),r.addedCols++,this.host.scrollContainer&&(this.host.scrollContainer.scrollLeft=this.host.scrollContainer.scrollWidth)}),!0),onDragRemoveCol:()=>this.host.runTransactedStructuralOp(()=>{var n;let i=this.host.grid.getColumnCount(e);if(i<=1||!t.z(e,i-1))return!1;let{blocksToDelete:a}=this.host.model.deleteColumn(i-1);(n=this.host.cellBlocks)==null||n.deleteBlocks(a),this.host.grid.deleteColumn(e,i-1);let o=this.host.model.colWidths;return o&&t.j(e,o),this.initResize(e),r.addedCols--,!0}),onDragEnd:()=>{var t,n;this.initResize(e),(t=this.rowColControls)==null||t.refresh(),this.host.scrollContainer&&(this.host.scrollContainer.scrollLeft=r.addedCols>0?this.host.scrollContainer.scrollWidth:0),(n=this.addControls)==null||n.syncRowButtonWidth(),r.addedCols=0}}),this.host.scrollContainer&&this.addControls.attachScrollContainer(this.host.scrollContainer)}initCornerDrag(e){var n;(n=this.cornerDrag)==null||n.destroy(),this.host.element&&(this.cornerDrag=new Et({wrapper:this.host.element,gridEl:e,onAddRow:()=>{this.host.runStructuralOp(()=>{this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn)})},onAddColumn:()=>{this.host.runStructuralOp(()=>{var n,r;let i=(n=this.host.model.colWidths)==null?t.G(e):n,a=this.host.model.initialColWidth===void 0?t.M(i):Math.round(this.host.model.initialColWidth/2*100)/100,o=[...i,a];this.host.grid.addColumn(e,void 0,i,a),this.host.model.addColumn(void 0,a),this.host.model.setColWidths(o),t.j(e,o),t.F(this.host.ensureScrollContainer()),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),(r=this.scrollHaze)==null||r.update()})},onRemoveLastRow:()=>{this.host.runStructuralOp(()=>{var t;let n=this.host.grid.getRowCount(e);if(n<=1)return;let{blocksToDelete:r}=this.host.model.deleteRow(n-1);(t=this.host.cellBlocks)==null||t.deleteBlocks(r),this.host.grid.deleteRow(e,n-1)})},onRemoveLastColumn:()=>{this.host.runStructuralOp(()=>{var n;let r=this.host.grid.getColumnCount(e);if(r<=1)return;let{blocksToDelete:i}=this.host.model.deleteColumn(r-1);(n=this.host.cellBlocks)==null||n.deleteBlocks(i),this.host.grid.deleteColumn(e,r-1);let a=this.host.model.colWidths;a&&t.j(e,a)})},onDragStart:()=>{var e,t,n;this.resize&&(this.resize.enabled=!1),(e=this.rowColControls)==null||e.hideAllGrips(),(t=this.rowColControls)==null||t.setGripsDisplay(!1),(n=this.addControls)==null||n.setDisplay(!1)},onDragEnd:()=>{var t,n,r;this.initResize(e),(t=this.rowColControls)==null||t.refresh(),(n=this.addControls)==null||n.setDisplay(!0),(r=this.addControls)==null||r.syncRowButtonWidth()},getTableSize:()=>({rows:this.host.model.rows,cols:this.host.model.cols}),canRemoveLastRow:()=>this.host.model.rows>1&&t.B(e,this.host.model.rows-1),canRemoveLastColumn:()=>this.host.model.cols>1&&t.z(e,this.host.model.cols-1),onClickAdd:()=>{this.host.runTransactedStructuralOp(()=>{var n,r,i;this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn);let a=(n=this.host.model.colWidths)==null?t.G(e):n,o=this.host.model.initialColWidth===void 0?t.M(a):Math.round(this.host.model.initialColWidth/2*100)/100,s=[...a,o];this.host.grid.addColumn(e,void 0,a,o),this.host.model.addColumn(void 0,o),this.host.model.setColWidths(s),t.j(e,s),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(r=this.rowColControls)==null||r.refresh(),(i=this.addControls)==null||i.syncRowButtonWidth()})}}))}initRowColControls(e){var t,n,r;(t=this.rowColControls)==null||t.destroy(),this.host.element&&(this.rowColControls=new cn({grid:e,overlay:(n=this.host.gripOverlay)==null?void 0:n,scrollContainer:(r=this.host.scrollContainer)==null?void 0:r,getColumnCount:()=>this.host.grid.getColumnCount(e),getRowCount:()=>this.host.grid.getRowCount(e),isHeadingRow:()=>this.host.model.withHeadings,isHeadingColumn:()=>this.host.model.withHeadingColumn,i18n:this.host.api.i18n,onAction:t=>this.handleRowColAction(e,t),onDragStateChange:e=>{var t,n;this.resize&&(this.resize.enabled=!e),(t=this.addControls)==null||t.setDisplay(!e),(n=this.cornerDrag)==null||n.setDisplay(!e),e&&this.host.api.toolbar.close({setExplicitlyClosed:!1})},onGripClick:(e,t)=>{if(e===`row`){var n;(n=this.cellSelection)==null||n.selectRow(t)}else{var r;(r=this.cellSelection)==null||r.selectColumn(t)}},onGripPopoverClose:()=>{if(this.pendingHighlight){var e;let{type:t,index:n}=this.pendingHighlight;this.pendingHighlight=null,(e=this.rowColControls)==null||e.setActiveGrip(t,n),requestAnimationFrame(()=>{if(t===`row`){var e;(e=this.cellSelection)==null||e.selectRow(n)}else{var r;(r=this.cellSelection)==null||r.selectColumn(n)}})}else{var t;(t=this.cellSelection)==null||t.clearActiveSelection()}}}))}handleRowColAction(e,n){let r=this.host.setDataGeneration;this.host.runTransactedStructuralOp(()=>{var i,a;if(r!==this.host.setDataGeneration||this.host.gridElement!==e)return;let o=this.host.model.colWidths,s=this.host.model.hasMerges(),{blocksToDelete:c}=this.syncModelForAction(n),l=Lt(e,n,{grid:this.host.grid,data:{colWidths:o,withHeadings:this.host.model.withHeadings,withHeadingColumn:this.host.model.withHeadingColumn,initialColWidth:this.host.model.initialColWidth,hasMerges:s},cellBlocks:this.host.cellBlocks,blocksToDelete:c,rebuildTableBody:()=>this.host.rebuildTableBody()});if(r!==this.host.setDataGeneration||this.host.gridElement!==e)return;if(this.host.model.setColWidths(l.colWidths),this.host.model.setWithHeadings(l.withHeadings),this.host.model.setWithHeadingColumn(l.withHeadingColumn),this.pendingHighlight=l.pendingHighlight,t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(i=this.addControls)==null||i.syncRowButtonWidth(),!(n.type===`toggle-heading`||n.type===`toggle-heading-column`)){var u;(u=this.rowColControls)==null||u.refresh()}if(!l.moveSelection)return;let{type:d,index:f}=l.moveSelection;if(d===`row`){var p;(p=this.cellSelection)==null||p.selectRow(f)}else{var m;(m=this.cellSelection)==null||m.selectColumn(f)}(a=this.rowColControls)==null||a.setActiveGrip(d,f)})}syncModelForAction(e){switch(e.type){case`insert-row-above`:this.host.model.addRow(e.index);break;case`insert-row-below`:this.host.model.addRow(e.index+1);break;case`insert-col-left`:this.host.model.addColumn(e.index);break;case`insert-col-right`:this.host.model.addColumn(e.index+1);break;case`move-row`:this.host.model.hasMerges()||this.host.model.moveRow(e.fromIndex,e.toIndex);break;case`move-col`:this.host.model.hasMerges()||this.host.model.moveColumn(e.fromIndex,e.toIndex);break;case`delete-row`:return this.host.model.deleteRow(e.index);case`delete-col`:return this.host.model.deleteColumn(e.index);case`toggle-heading`:case`toggle-heading-column`:break}return{}}initResize(e){var n,r,i;(n=this.resize)==null||n.destroy();let a=this.host.model.colWidths===void 0,o=(r=this.host.model.colWidths)==null?t.G(e):r;a||t.F(this.host.ensureScrollContainer()),this.resize=new kt(e,o,e=>{var n,r,i;this.host.model.setColWidths(e),t.F(this.host.ensureScrollContainer()),(n=this.rowColControls)==null||n.positionGrips(),(r=this.addControls)==null||r.syncRowButtonWidth(),(i=this.scrollHaze)==null||i.update()},()=>{var e;(e=this.rowColControls)==null||e.hideAllGrips()},()=>{var e,t;(e=this.addControls)==null||e.syncRowButtonWidth(),(t=this.scrollHaze)==null||t.update()},a),(i=this.scrollHaze)==null||i.update()}handleCellCopy(e,n){let r=this.collectCellBlockData(e);if(r.length===0)return;let i=t.D(r);n.setData(`text/html`,t.S(i)),n.setData(`text/plain`,t.C(i))}handleCellCopyViaButton(e){let n=this.collectCellBlockData(e);if(n.length===0)return;let r=t.D(n),i=t.S(r),a=t.C(r),o=new Blob([i],{type:`text/html`}),s=new Blob([a],{type:`text/plain`});navigator.clipboard.write([new ClipboardItem({"text/html":o,"text/plain":s})])}handleCellColorChange(e,n,r){let i=this.host.gridElement;i&&this.host.runTransactedStructuralOp(()=>{for(let a of e){let e=t.R(i,a);e&&(r===`backgroundColor`?(this.host.model.setCellColor(e.row,e.col,n==null?void 0:n),a.style.backgroundColor=n==null?``:n):(this.host.model.setCellTextColor(e.row,e.col,n==null?void 0:n),a.style.color=n==null?``:n))}})}handleCellPlacementChange(e,n){let r=this.host.gridElement;r&&this.host.runTransactedStructuralOp(()=>{for(let i of e){let e=t.R(r,i);if(!e)continue;this.host.model.setCellPlacement(e.row,e.col,n===`top-left`?void 0:n);let a=i.querySelector(`[${t.Q}]`);a&&(n===`top-left`?a.removeAttribute(`data-blok-cell-placement`):a.setAttribute(`data-blok-cell-placement`,n))}})}collectCellBlockData(e){return this.host.gridElement?e.map(e=>{var r,i,a;let o=parseInt((r=e.getAttribute(`data-blok-table-cell-row`))==null?`0`:r,10),s=parseInt((i=e.getAttribute(`data-blok-table-cell-col`))==null?`0`:i,10),c=e.querySelector(`[${t.Q}]`),l=[];if(!c)return{row:o,col:s,blocks:l};c.querySelectorAll(`[data-blok-id]`).forEach(e=>{let t=e.getAttribute(`data-blok-id`);if(!t)return;let r=this.host.api.blocks.getBlockIndex(t);if(r===void 0)return;let i=this.host.api.blocks.getBlockByIndex(r);i&&l.push(n.t({tool:i.name,data:i.preservedData},Object.keys(i.preservedTunes).length>0?{tunes:i.preservedTunes}:{}))});let u=l.length===0?((a=c.innerHTML)==null?``:a).trim():``;l.length===0&&u.length>0&&l.push({tool:`paragraph`,data:{text:u}});let d=this.host.model.getCellColor(o,s),f=this.host.model.getCellTextColor(o,s),p=this.host.model.getCellSpan(o,s);return n.t(n.t(n.t(n.t({row:o,col:s,blocks:l},d===void 0?{}:{color:d}),f===void 0?{}:{textColor:f}),p.colspan>1?{colspan:p.colspan}:{}),p.rowspan>1?{rowspan:p.rowspan}:{})}):[]}initCellSelection(e){var n;(n=this.cellSelection)==null||n.destroy();let r=this.host.api.rectangleSelection;this.cellSelection=new Ct({grid:e,rectangleSelection:r,i18n:this.host.api.i18n,isPopoverOpen:()=>{var e,t;return(e=(t=this.rowColControls)==null?void 0:t.isPopoverOpen)==null?!1:e},onPointerDragActiveChange:e=>{var t,n;(t=(n=this.host.api.blocks).setPointerDragActive)==null||t.call(n,e)},onSelectionActiveChange:e=>{var t,n,r;this.resize&&(this.resize.enabled=!e),(t=this.addControls)==null||t.setInteractive(!e),(n=this.cornerDrag)==null||n.setInteractive(!e),(r=this.rowColControls)==null||r.setGripsDisplay(!e)},onSelectionRangeChange:()=>{var e;(e=this.rowColControls)==null||e.setGripsDisplay(!0)},onClearContent:e=>{let n=this.host.cellBlocks;n&&this.host.runTransactedStructuralOp(()=>{let r=n.getBlockIdsFromCells(e);n.deleteBlocks(r);let i=this.host.gridElement;if(i)for(let n of e){let e=t.R(i,n);e&&(this.host.model.setCellColor(e.row,e.col,void 0),this.host.model.setCellTextColor(e.row,e.col,void 0),n.style.backgroundColor=``,n.style.color=``)}})},onCopy:(e,t)=>{this.handleCellCopy(e,t)},onCut:(e,t)=>{this.handleCellCopy(e,t)},onCopyViaButton:e=>{this.handleCellCopyViaButton(e)},onColorChange:(e,t,n)=>{this.handleCellColorChange(e,t,n)},onPlacementChange:(e,t)=>{this.handleCellPlacementChange(e,t)},getCellPlacement:(e,t)=>this.host.model.getCellPlacement(e,t),canMergeCells:e=>this.host.model.canMergeCells(e),onMergeCells:e=>{this.host.runTransactedStructuralOp(()=>{this.host.model.mergeCells(e),this.host.rebuildTableBody()})},isMergedCell:(e,t)=>this.host.model.isMergedCell(e,t),onSplitCell:(e,t)=>{this.host.runTransactedStructuralOp(()=>{this.host.model.splitCell(e,t),this.host.rebuildTableBody()})},getCellSpan:(e,t)=>this.host.model.getCellSpan(e,t)})}initScrollHaze(){var e;(e=this.scrollHaze)==null||e.destroy(),!(!this.host.element||!this.host.scrollContainer)&&(this.scrollHaze=new hn,this.scrollHaze.init(this.host.element,this.host.scrollContainer))}initGridPasteListener(e){let t=t=>{this.handleGridPaste(t,e)};e.addEventListener(`paste`,t),this.gridPasteCleanup=()=>{e.removeEventListener(`paste`,t)}}handleGridPaste(e,n){var r,i;if(this.host.readOnly||!e.clipboardData||e.defaultPrevented)return;let a=e.clipboardData.getData(`text/html`),o=t.T(a),s=o===null?t.E(a):null,c=o==null?s:o;if(!c||s!==null&&new DOMParser().parseFromString(a,`text/html`).querySelectorAll(`table`).length>1)return;let l=document.activeElement;if(!l)return;let u=l.closest(`[${t.ot}]`);if(!u||!n.contains(u)||!u.closest(`[data-blok-table-row]`))return;e.preventDefault(),e.stopPropagation();let d=parseInt((r=u.getAttribute(`data-blok-table-cell-row`))==null?`0`:r,10),f=parseInt((i=u.getAttribute(`data-blok-table-cell-col`))==null?`0`:i,10);if(c.rows===1&&c.cols===1){let e=c.cells[0][0];if(e.blocks.every(e=>e.tool===`paragraph`&&typeof e.data.text==`string`)){this.insertSingleCellPayloadInline(e);return}this.pastePayloadIntoCells(n,c,d,f);return}this.pastePayloadIntoCells(n,c,d,f)}insertSingleCellPayloadInline(e){let t=e.blocks.map(e=>typeof e.data.text==`string`?e.data.text:``).filter(Boolean).join(`<br>`);if(!t)return;let n=window.getSelection();if(!n||n.rangeCount===0)return;let r=n.getRangeAt(0);r.collapsed||r.deleteContents();let i=document.createDocumentFragment(),a=document.createElement(`div`);a.innerHTML=t,Array.from(a.childNodes).forEach(e=>i.appendChild(e)),i.childNodes.length===0&&i.appendChild(new Text);let o=i.lastChild;r.insertNode(i);let s=document.createRange(),c=o.nodeType===Node.TEXT_NODE?o:o.firstChild;c!==null&&c.textContent!==null&&s.setStart(c,c.textContent.length),n.removeAllRanges(),n.addRange(s)}splitMergesInRegion(e,t,n,r){let i=Array.from({length:n},(t,n)=>e+n),a=Array.from({length:r},(e,n)=>t+n),o=new Map;i.forEach(e=>{a.forEach(t=>{let n=this.host.model.getMergeOrigin(e,t);n!==null&&o.set(`${n[0]}:${n[1]}`,n)})}),o.size!==0&&(o.forEach(([e,t])=>this.host.model.splitCell(e,t)),this.host.rebuildTableBody())}pastePayloadIntoCells(e,t,n,r){this.host.runTransactedStructuralOp(()=>{var i,a;this.expandGridForPaste(e,n+t.rows,r+t.cols),this.splitMergesInRegion(n,r,t.rows,t.cols),Array.from({length:t.rows},(e,t)=>t).forEach(i=>{Array.from({length:t.cols},(e,t)=>t).forEach(a=>{let o=t.cells[i][a];if(o.covered)return;let s=this.host.grid.getCell(e,n+i,r+a);if(s){var c,l,u,d;this.pasteCellPayload(s,o);let e=(c=(l=this.host.cellBlocks)==null?void 0:l.getBlockIdsFromCells([s]))==null?[]:c;this.host.model.setCellBlocks(n+i,r+a,e);let t=n+i,f=r+a;this.host.model.setCellColor(t,f,o.color),s.style.backgroundColor=(u=o.color)==null?``:u,this.host.model.setCellTextColor(t,f,o.textColor),s.style.color=(d=o.textColor)==null?``:d}})}),this.applyPayloadMerges(e,t,n,r),this.initResize(e),(i=this.addControls)==null||i.syncRowButtonWidth(),(a=this.rowColControls)==null||a.refresh()});let i=this.host.grid.getCell(e,n+t.rows-1,r+t.cols-1);if(!i||!this.host.cellBlocks||!this.host.api.caret)return;let a=this.host.cellBlocks.getBlockIdsFromCells([i]),o=a[a.length-1];o!==void 0&&this.host.api.caret.setToBlock(o,`end`)}collectPayloadMerges(e){return e.cells.flatMap((t,n)=>t.flatMap((t,r)=>{var i,a;let o=Math.min((i=t.colspan)==null?1:i,e.cols-r),s=Math.min((a=t.rowspan)==null?1:a,e.rows-n);return o>1||s>1?[{row:n,col:r,colspan:o,rowspan:s}]:[]}))}applyPayloadMerges(e,t,n,r){let i=this.collectPayloadMerges(t);i.length!==0&&(i.forEach(({row:t,col:i,colspan:a,rowspan:o})=>{this.clearCoveredDestinationCells(e,n+t,r+i,o,a),this.host.model.mergeCells({minRow:n+t,maxRow:n+t+o-1,minCol:r+i,maxCol:r+i+a-1})}),this.host.rebuildTableBody())}clearCoveredDestinationCells(e,t,n,r,i){Array.from({length:r}).forEach((r,a)=>{Array.from({length:i}).forEach((r,i)=>{if(a===0&&i===0)return;let o=t+a,s=n+i,c=this.host.grid.getCell(e,o,s);c&&this.host.cellBlocks&&this.host.cellBlocks.deleteBlocks(this.host.cellBlocks.getBlockIdsFromCells([c])),this.host.model.setCellBlocks(o,s,[]),this.host.model.setCellColor(o,s,void 0),this.host.model.setCellTextColor(o,s,void 0)})})}expandGridForPaste(e,n,r){let i=this.host.grid.getRowCount(e),a=this.host.grid.getColumnCount(e);Array.from({length:Math.max(0,n-i)}).forEach(()=>{this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn)}),Array.from({length:Math.max(0,r-a)}).forEach(()=>{var n;let r=(n=this.host.model.colWidths)==null?t.G(e):n,i=this.host.model.initialColWidth===void 0?t.M(r):Math.round(this.host.model.initialColWidth/2*100)/100;this.host.grid.addColumn(e,void 0,r,i),this.host.model.addColumn(void 0,i),this.host.model.setColWidths([...r,i]),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn)})}pasteCellPayload(e,n){if(this.host.cellBlocks){let t=this.host.cellBlocks.getBlockIdsFromCells([e]);this.host.cellBlocks.deleteBlocks(t)}let r=e.querySelector(`[${t.Q}]`);if(r){if(n.blocks.length===0){var i;(i=this.host.cellBlocks)==null||i.ensureCellHasBlock(e);return}for(let e of n.blocks){var a;let t=this.host.api.blocks.insert(e.tool,e.data,{},this.host.api.blocks.getBlocksCount(),!1);r.appendChild(t.holder),this.host.api.blocks.setBlockParent(t.id,(a=this.host.blockId)==null?``:a)}}}},_n=3,vn=3,yn=[`my-2`,`pr-5`],bn=[`relative`,`mb-7`,`after:content-[""]`,`after:absolute`,`after:-bottom-10`,`after:left-0`,`after:right-0`,`after:h-10`,`after:pointer-events-none`],xn=class e{constructor({data:e,config:n,api:r,readOnly:i,block:a}){this.initialContent=null,this.cellBlocks=null,this.element=null,this.gridElement=null,this.scrollContainer=null,this.gripOverlay=null,this.isNewTable=!1,this.unregisterRestrictedTools=null,this.keyboardNavCleanup=null,this.setDataGeneration=0,this.structuralOpDepth=0,this.api=r,this.readOnly=i,this.config=n==null?{}:n;let o=t.H(e,this.config);this.initialContent=o.content,this.grid=new t.ut({readOnly:i}),this.model=new Ke(o),this.blockId=a==null?void 0:a.id,this.block=a,this.subsystems=new gn(this.createSubsystemHost()),this.config.restrictedTools!==void 0&&(this.unregisterRestrictedTools=t.Lr(this.config.restrictedTools))}createSubsystemHost(){let e=this;return{get api(){return e.api},get readOnly(){return e.readOnly},get blockId(){return e.blockId},get model(){return e.model},get grid(){return e.grid},get cellBlocks(){return e.cellBlocks},get element(){return e.element},get gridElement(){return e.gridElement},get scrollContainer(){return e.scrollContainer},get gripOverlay(){return e.gripOverlay},get setDataGeneration(){return e.setDataGeneration},runStructuralOp:(t,n)=>e.runStructuralOp(t,n),runTransactedStructuralOp:(t,n)=>e.runTransactedStructuralOp(t,n),ensureScrollContainer:()=>e.ensureScrollContainer(),rebuildTableBody:()=>e.rebuildTableBody()}}runStructuralOp(e,t=!1){this.structuralOpDepth++;try{return e()}finally{this.structuralOpDepth--;let e=this.structuralOpDepth===0;if(e&&t){var n;(n=this.cellBlocks)==null||n.discardDeferredEvents()}if(e&&!t){var r;(r=this.cellBlocks)==null||r.flushDeferredEvents()}}}runTransactedStructuralOp(e,t=!1){if(!this.api.blocks.transact)return this.runStructuralOp(e,t);let n={current:void 0};return this.api.blocks.transact(()=>{n.current=this.runStructuralOp(e,t)}),n.current}teardownSubsystems(){var e;this.subsystems.teardown(),(e=this.keyboardNavCleanup)==null||e.call(this),this.keyboardNavCleanup=null}rebuildTableBody(){let e=this.gridElement;if(!e)return;let n=e.querySelector(`tbody`);if(!n)return;let r=new Map;n.querySelectorAll(`[data-blok-id]`).forEach(e=>{let t=e.getAttribute(`data-blok-id`);t&&r.set(t,e)});let i=this.grid.createGridFromModel(this.model),a=i.querySelector(`tbody`);if(!a)return;let o=this.model.snapshot().content;this.mountBlockHoldersInNewTbody(o,a,r);let s=e.querySelector(`colgroup`),c=i.querySelector(`colgroup`);s&&c&&s.querySelectorAll(`col`).length!==c.querySelectorAll(`col`).length&&s.replaceWith(c),n.replaceWith(a),this.readOnly||this.runTransactedStructuralOp(()=>{a.querySelectorAll(`[${t.ot}]`).forEach(e=>{var t;(t=this.cellBlocks)==null||t.ensureCellHasBlock(e)})},!0)}mountBlockHoldersInNewTbody(e,n,r){let i=new Set;e.forEach((e,a)=>{e.forEach((e,o)=>{if(typeof e==`string`||e.mergedInto)return;let s=n.querySelector(`[${t.ct}="${a}"][${t.st}="${o}"]`);if(!s)return;let c=s.querySelector(`[${t.Q}]`);c&&e.blocks.forEach(e=>{let t=r.get(e);t&&!i.has(e)&&(c.appendChild(t),i.add(e))})})})}modelHasMerges(){return this.model.snapshot().content.some(e=>e.some(e=>{var t,n;return typeof e!=`string`&&(((t=e.colspan)==null?1:t)>1||((n=e.rowspan)==null?1:n)>1)}))}createFlatGrid(){var e,t;let n=((e=this.initialContent)==null?void 0:e.length)||this.config.rows||_n,r=((t=this.initialContent)==null?void 0:t.reduce((e,t)=>{var n;return Math.max(e,(n=t==null?void 0:t.length)==null?0:n)},0))||this.config.cols||vn;return this.grid.createGrid(n,r,this.model.colWidths)}static get toolbox(){return{icon:o.un,titleKey:`tools.table.title`,searchTerms:[`table`,`grid`,`spreadsheet`],searchTermKeys:[`table`,`grid`,`spreadsheet`]}}static get isReadOnlySupported(){return!0}static get enableLineBreaks(){return!0}static get pasteConfig(){return{tags:[`TABLE`,`TR`,{TH:{style:!0,colspan:!0,rowspan:!0}},{TD:{style:!0,colspan:!0,rowspan:!0}}]}}static get sanitize(){return{content:{br:!0,b:!0,i:!0,strong:!0,em:!0,mark:e=>{let n=e.style,r=Array.from({length:n.length},(e,t)=>n.item(t));for(let e of r)t.x.has(e)||n.removeProperty(e);return n.length>0?{style:!0}:{}},a:{href:!0,target:`_blank`,rel:`nofollow`},input:{type:!0,checked:!0}}}}ensureScrollContainer(){if(this.scrollContainer)return this.scrollContainer;let e=document.createElement(`div`);e.setAttribute(`data-blok-table-scroll`,``);let t=this.gridElement;return t&&this.element&&(this.element.insertBefore(e,t),e.appendChild(t)),this.scrollContainer=e,this.subsystems.attachScrollContainer(e),e}render(){var e,n,i,a;let o=document.createElement(`div`);o.className=r.l(yn,!this.readOnly&&bn),o.setAttribute(t.yi.tool,`table`),this.readOnly&&o.setAttribute(`data-blok-table-readonly`,``),this.isNewTable=((e=(n=this.initialContent)==null?void 0:n.length)==null?0:e)===0;let s=((i=(a=this.initialContent)==null?void 0:a.length)==null?0:i)>0,c=s&&this.modelHasMerges(),l=c?this.grid.createGridFromModel(this.model):this.createFlatGrid();if(s&&!c){var u;this.grid.fillGrid(l,(u=this.initialContent)==null?[]:u)}if(this.model.colWidths&&t.j(l,this.model.colWidths),this.gridElement=l,this.model.colWidths||!this.readOnly){let e=document.createElement(`div`);e.setAttribute(`data-blok-table-scroll`,``);let n=this.model.colWidths?t.O:[];e.classList.add(...n),e.appendChild(l),o.appendChild(e),this.scrollContainer=e}else o.appendChild(l),this.scrollContainer=null;if(!this.readOnly){let e=document.createElement(`div`);e.setAttribute(`data-blok-table-grip-overlay`,``),e.style.position=`absolute`,e.style.inset=`0`,e.style.pointerEvents=`none`,e.style.zIndex=`3`,o.appendChild(e),this.gripOverlay=e}return this.element=o,this.model.withHeadings&&t.Z(this.gridElement,this.model.withHeadings),this.model.withHeadingColumn&&t.X(this.gridElement,this.model.withHeadingColumn),this.readOnly||(this.initCellBlocks(l),this.keyboardNavCleanup=t.q(l,this.cellBlocks)),o}rendered(){if(!this.element||this.initialContent===null)return;this.block&&(this.block.stretched=this.model.stretched);let e=this.gridElement;if(!e)return;let r=this.initialContent;if(this.initialContent=null,this.readOnly){var i;t.V(e,r,this.api,(i=this.blockId)==null?``:i);let n=this.model.snapshot();t.k(e,n.content),t.A(e,n.content),this.subsystems.initScrollHazeOnly();return}if(this.runTransactedStructuralOp(()=>{var i,a;let o=(i=(a=this.cellBlocks)==null?void 0:a.initializeCells(r))==null?r:i,s=this.isNewTable&&o.length===0?Array.from(e.querySelectorAll(`[${t.lt}]`),e=>{let n=e.querySelectorAll(`[${t.ot}]`).length;return Array.from({length:n},()=>({blocks:[]}))}):o;this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:s})),this.isNewTable&&t.W(e,this.cellBlocks),this.removeGhostChildren()},!0),this.model.initialColWidth===void 0){var a;let n=(a=this.model.colWidths)==null?t.G(e):a;this.model.setInitialColWidth(n.length>0?t.N(n):void 0)}this.subsystems.initAll(e);let o=this.model.snapshot();if(t.k(e,o.content),t.A(e,o.content),this.isNewTable){var s;(s=this.subsystems.cellSelectionSubsystem)==null||s.selectRange({minRow:0,maxRow:0,minCol:0,maxCol:0})}}setReadOnly(e){let n=this.element,r=this.gridElement;if(!(!n||!r))if(this.readOnly=e,e){var i,a;this.teardownSubsystems(),(i=this.cellBlocks)==null||i.destroy(),this.cellBlocks=null,this.gripOverlay&&(this.gripOverlay.remove(),this.gripOverlay=null),bn.forEach(e=>n.classList.remove(e)),n.setAttribute(`data-blok-table-readonly`,``),t.V(r,this.model.snapshot().content,this.api,(a=this.blockId)==null?``:a)}else{n.removeAttribute(`data-blok-table-readonly`),bn.forEach(e=>n.classList.add(e));let e=document.createElement(`div`);e.setAttribute(`data-blok-table-grip-overlay`,``),e.style.position=`absolute`,e.style.inset=`0`,e.style.pointerEvents=`none`,e.style.zIndex=`3`,n.appendChild(e),this.gripOverlay=e,this.initCellBlocks(r),this.runTransactedStructuralOp(()=>{r.querySelectorAll(`[${t.ot}]`).forEach(e=>{var t;(t=this.cellBlocks)==null||t.ensureCellHasBlock(e)})},!0),this.keyboardNavCleanup=t.q(r,this.cellBlocks),this.subsystems.initAll(r)}}removeGhostChildren(){let e=this.blockId;if(e===void 0)return;let t=this.api.blocks.getChildren(e).filter(e=>this.model.findCellForBlock(e.id)===null).map(e=>({id:e.id,index:this.api.blocks.getBlockIndex(e.id)})).filter(e=>e.index!==void 0).sort((e,t)=>t.index-e.index);for(let{index:e}of t)this.api.blocks.delete(e)}save(e){var r;let i=this.model.snapshot(),a=(r=this.blockId)==null?``:r,o=this.gridElement;return i.content=i.content.map((e,r)=>e.map((e,i)=>{if(!t.et(e))return e;let s=e.blocks.filter(e=>{var t,n,r;let i=(t=(n=this.api.blocks).getById)==null?void 0:t.call(n,e);return i!=null&&((r=i.parentId)==null?``:r)===a});if(s.length===0&&o){let s=o.querySelector(`[${t.ct}="${r}"][${t.st}="${i}"]`),c=s==null?void 0:s.querySelector(`[${t.Q}]`),l=c?Array.from(c.querySelectorAll(`[data-blok-id]`)).map(e=>{var t;return(t=e.getAttribute(`data-blok-id`))==null?``:t}).filter(e=>{var t,n,r;if(!e)return!1;let i=(t=(n=this.api.blocks).getById)==null?void 0:t.call(n,e);return i!=null&&((r=i.parentId)==null?``:r)===a}):[];if(l.length>0)return n.t(n.t({},e),{},{blocks:l})}return n.t(n.t({},e),{},{blocks:s})})),i}validate(e){return e.content.length>0&&e.content.every(e=>Array.isArray(e)&&e.length>0)}setData(e){var r,i,a,o,s;this.setDataGeneration++;let c=this.setDataGeneration,l=t.H(n.t(n.t({},this.model.snapshot()),e),this.config);this.initialContent=l.content,this.model.replaceAll(l),this.api.blocks.isSyncingFromYjs||this.runStructuralOp(()=>{var e;(e=this.cellBlocks)==null||e.deleteAllBlocks()},!0),(r=this.cellBlocks)==null||r.destroy();let u=this.element;if(!(u!=null&&u.parentNode)||c!==this.setDataGeneration)return;let d=(i=(a=this.subsystems.cellSelectionSubsystem)==null?void 0:a.getSelectedRange())==null?null:i,f=(o=(s=this.subsystems.rowColControlsSubsystem)==null?void 0:s.getVisibleGripIndices())==null?null:o;this.teardownSubsystems();let p=this.render();u.parentNode.replaceChild(p,u);let m=this.gridElement;if(!m)return;if(this.readOnly){let e=this.model.snapshot();t.k(m,e.content),t.A(m,e.content);return}if(c!==this.setDataGeneration)return;let h=this.api.blocks.isSyncingFromYjs;if(this.runStructuralOp(()=>{var e,r,i,a;let o=(e=(r=(i=this.cellBlocks)==null?void 0:i.initializeCells((a=this.initialContent)==null?[]:a))==null?this.initialContent:r)==null?[]:e;if(c===this.setDataGeneration){if(this.api.blocks.isSyncingFromYjs&&o.length===0&&m){let e=Array.from(m.querySelectorAll(`[${t.lt}]`),e=>{let n=e.querySelectorAll(`[${t.ot}]`).length;return Array.from({length:n},()=>({blocks:[]}))});this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:e}))}else this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:o}));this.initialContent=null}},!0),c!==this.setDataGeneration)return;this.subsystems.initAll(m);let g=this.subsystems.cellSelectionSubsystem;d!==null&&g!==null&&g.selectRange(d);let _=this.subsystems.rowColControlsSubsystem;f!==null&&_!==null&&_.restoreVisibleGrips(f.col,f.row);let v=this.model.snapshot();if(t.k(m,v.content),t.A(m,v.content),h){var y;(y=this.cellBlocks)==null||y.reclaimReferencedBlocks(),Promise.resolve().then(()=>{var e;c===this.setDataGeneration&&((e=this.cellBlocks)==null||e.reclaimReferencedBlocks())})}}static extractPastedCellColors(e){var n;let r=(n=e.getAttribute(`style`))==null?``:n,i={},a=/background-color\s*:\s*([^;]+)/i.exec(r);a!=null&&a[1]&&(i.color=t.kn(a[1].trim(),`bg`));let o=RegExp(`(?<![a-z-])color\\s*:\\s*([^;]+)`,`i`).exec(r);return o!=null&&o[1]&&!t.w(o[1].trim())&&(i.textColor=t.kn(o[1].trim(),`text`)),i}onPaste(r){var i,a;let o=r.detail.data,s=o.querySelectorAll(`tr`),c=t.U(s,e.extractPastedCellColors),l=o.querySelector(`thead`)!==null,u=((i=s[0])==null?void 0:i.querySelector(`th`))!==null,d=l||u;this.initialContent=c,this.model.setWithHeadings(d),this.model.setWithHeadingColumn(!1),this.model.setColWidths(void 0),this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:c})),this.runStructuralOp(()=>{var e;(e=this.cellBlocks)==null||e.deleteAllBlocks()},!0),(a=this.cellBlocks)==null||a.destroy(),this.teardownSubsystems();let f=this.element;if(!(f!=null&&f.parentNode))return;let p=this.render();f.parentNode.replaceChild(p,f);let m=this.gridElement;if(!this.readOnly&&m){this.runStructuralOp(()=>{var e,t,r,i;let a=(e=(t=(r=this.cellBlocks)==null?void 0:r.initializeCells((i=this.initialContent)==null?[]:i))==null?this.initialContent:t)==null?[]:e;this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:a})),this.initialContent=null},!0),this.subsystems.initAll(m);let e=this.model.snapshot();t.k(m,e.content),t.A(m,e.content)}}destroy(){var e,t;if((e=this.unregisterRestrictedTools)==null||e.call(this),this.unregisterRestrictedTools=null,!this.api.blocks.isSyncingFromYjs){var n;(n=this.cellBlocks)==null||n.deleteAllBlocks()}this.teardownSubsystems(),(t=this.cellBlocks)==null||t.destroy(),this.cellBlocks=null,this.gridElement=null,this.scrollContainer=null,this.element=null}deleteRowWithCleanup(e){let t=this.gridElement;t&&this.runTransactedStructuralOp(()=>{var n;let{blocksToDelete:r}=this.model.deleteRow(e);(n=this.cellBlocks)==null||n.deleteBlocks(r),this.grid.deleteRow(t,e)})}deleteColumnWithCleanup(e){let t=this.gridElement;t&&this.runTransactedStructuralOp(()=>{var n;let{blocksToDelete:r}=this.model.deleteColumn(e);(n=this.cellBlocks)==null||n.deleteBlocks(r),this.grid.deleteColumn(t,e)})}getBlockIdsInRow(e){return t.L(this.element,this.cellBlocks,e)}getBlockIdsInColumn(e){return t.I(this.element,this.cellBlocks,e)}initCellBlocks(e){var n;this.cellBlocks=new t.$({api:this.api,gridElement:e,tableBlockId:(n=this.blockId)==null?``:n,model:this.model,isStructuralOpActive:()=>this.structuralOpDepth>0})}},Sn=e=>{let t=document.createElement(`div`);t.innerHTML=e.trim();let n=document.createDocumentFragment();return n.append(...Array.from(t.childNodes)),n},Cn=(e,n,r,i)=>{if(!n)return e;let a=r();return{text:a?t.Wr(a.innerHTML):e.text,isOpen:i}},wn=(e,t)=>{let{data:n,getContentElement:r}=e;n.text+=t.text;let i=r();if(i&&t.text){let n=e.parseHTML(t.text);i.appendChild(n),i.normalize()}},Tn=(e,t,r)=>{let i=r();if(!i)return{newData:e,inPlace:!1};let a=n.t(n.t({},e),t);return typeof t.text==`string`&&(i.innerHTML=t.text),{newData:a,inPlace:!0}},En=class e{constructor({data:e,config:t,api:n,readOnly:r,block:i}){var a;this._element=null,this._contentElement=null,this._arrowElement=null,this._bodyPlaceholderElement=null,this._childContainerElement=null,this.handleChildContainerInput=()=>{y(this._element,this._childContainerElement)},this.handleBlockChanged=e=>{this.isBlockChangedPayload(e)&&(e.event.type===`block-removed`||e.event.type===`block-added`)&&this.updateBodyPlaceholderVisibility()},this.api=n,this.readOnly=r,this._settings=t||{},this._data=this.normalizeData(e),this._isOpen=(a=this._data.isOpen)==null?!0:a,i&&(this.blockId=i.id,this.block=i),r||this.api.events.on(`block changed`,this.handleBlockChanged)}normalizeData(e){if(typeof e==`object`&&e&&`text`in e){let t={text:typeof e.text==`string`?e.text:``};return typeof e.isOpen==`boolean`&&(t.isOpen=e.isOpen),t}if(typeof e==`object`&&e&&`title`in e){let t=e,n={text:typeof t.title==`string`?t.title:``};return typeof t.isExpanded==`boolean`&&(n.isOpen=t.isExpanded),n}return{text:``}}get placeholder(){if(this._settings.placeholder)return this._settings.placeholder;let e=this.api.i18n.t(t.l);return e===`tools.toggle.placeholder`?`Toggle`:e}render(){let e=b({data:this._data,readOnly:this.readOnly,isOpen:this._isOpen,placeholder:this.placeholder,keydownHandler:this.readOnly?null:this.handleKeyDown.bind(this),onArrowClick:()=>this.toggleOpen(),onBodyPlaceholderClick:this.readOnly?null:()=>this.handleBodyPlaceholderClick(),bodyPlaceholderText:this.api.i18n.t(t.o),ariaLabels:{collapse:this.api.i18n.t(t.t),expand:this.api.i18n.t(t.n)}});return this._element=e.wrapper,this._contentElement=e.contentElement,this._arrowElement=e.arrowElement,this._bodyPlaceholderElement=e.bodyPlaceholderElement,this._childContainerElement=e.childContainerElement,this._childContainerElement.addEventListener(`input`,this.handleChildContainerInput),this._element}rendered(){this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility()}save(){return Cn(this._data,this._element,this.getContentElement.bind(this),this._isOpen)}validate(e){return!0}merge(e){wn({data:this._data,getContentElement:this.getContentElement.bind(this),parseHTML:Sn},e)}onPaste(n){let r=n.detail;if(!(`data`in r))return;let i=r.data,a=i.querySelector(`summary`),o=t.fr(a===null?i.innerHTML:a.innerHTML,e.sanitize.text);this._data={text:o};let s=this.getContentElement();s!==null&&(s.innerHTML=o)}setData(e){let n=Tn(this._data,e,this.getContentElement.bind(this));return this._data=n.newData,typeof this._data.isOpen==`boolean`&&(this._isOpen=this._data.isOpen),this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(t.t),expand:this.api.i18n.t(t.n)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),n.inPlace}renderSettings(){return[]}expand(){this._isOpen||this.setOpenState(!0)}collapse(){this._isOpen&&this.setOpenState(!1)}setReadOnly(e){if(!this._element)return;let t=this.readOnly;this.readOnly=e,this._contentElement&&(this._contentElement.contentEditable=e?`false`:`true`),e&&!t?this.api.events.off(`block changed`,this.handleBlockChanged):!e&&t&&this.api.events.on(`block changed`,this.handleBlockChanged),this.updateBodyPlaceholderVisibility()}removed(){this.api.events.off(`block changed`,this.handleBlockChanged)}isBlockChangedPayload(e){return typeof e==`object`&&!!e&&`event`in e&&typeof e.event==`object`&&e.event!==null&&`type`in e.event&&typeof e.event.type==`string`}getContentElement(){return this._contentElement}setOpenState(e){let n=this._isOpen!==e;if(this._isOpen=e,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(t.t),expand:this.api.i18n.t(t.n)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),n&&!this.readOnly){var r;(r=this.block)==null||r.dispatchChange()}}toggleOpen(){this.setOpenState(!this._isOpen)}updateChildrenVisibility(){this.blockId!==void 0&&S(this.api,this.blockId,this._isOpen,this._childContainerElement,this._arrowElement)}updateBodyPlaceholderVisibility(){this.blockId!==void 0&&(C(this._bodyPlaceholderElement,this.api,this.blockId,this._isOpen,this.readOnly),y(this._element,this._childContainerElement))}handleBodyPlaceholderClick(){var e;if(this.blockId===void 0)return;let t=this.api.blocks.getBlockIndex(this.blockId);if(t===void 0)return;let n=this.api.blocks.insertInsideParent(this.blockId,t+1);this.api.caret.setToBlock(n.id,`start`),(e=this._bodyPlaceholderElement)==null||e.classList.add(`hidden`)}handleKeyDown(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),this.handleEnter();return}if(e.key===`Backspace`){this.handleBackspace(e);return}}createKeyboardContext(){return{api:this.api,blockId:this.blockId,data:this._data,element:this._element,getContentElement:this.getContentElement.bind(this),syncContentFromDOM:this.syncContentFromDOM.bind(this),isOpen:this._isOpen,setOpen:e=>{this._isOpen=e}}}async handleEnter(){var e=this;await w(e.createKeyboardContext()),e.updateBodyPlaceholderVisibility()}async handleBackspace(e){await T(this.createKeyboardContext(),e)}syncContentFromDOM(){let e=this.getContentElement();e&&(this._data.text=e.innerHTML)}static get toolbox(){return{icon:o.hn,titleKey:`toggleList`,name:t.p,searchTerms:[`toggle`,`collapse`,`expand`,`accordion`],searchTermKeys:[`toggle`,`collapse`,`expand`,`accordion`],shortcut:`>`}}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return{text:{br:!0,a:{href:!0,target:`_blank`,rel:`nofollow`},b:!0,i:!0,mark:{class:!0,style:!0},code:!0}}}static get pasteConfig(){return{tags:[`DETAILS`]}}static get isReadOnlySupported(){return!0}};function Dn(e){let{emoji:n,readOnly:r,addEmojiLabel:i}=e,a=document.createElement(`div`);a.className=t.Dn;let o=document.createElement(`button`);o.type=`button`,o.className=t.dn,o.textContent=n||``,o.setAttribute(`aria-label`,n===``?i:n),o.setAttribute(`tabindex`,`0`),o.setAttribute(`data-blok-testid`,`callout-emoji-btn`),r&&(o.disabled=!0);let s=document.createElement(`div`);return s.className=t.sn,s.setAttribute(t.u.toggleChildren,``),s.setAttribute(t.yi.nestedBlocks,``),s.setAttribute(`data-blok-child-toolbar`,``),s.setAttribute(`data-blok-mutation-free`,`true`),a.appendChild(o),a.appendChild(s),{wrapper:a,emojiButton:o,childContainer:s}}function On(e){return{emoji:e.emoji,textColor:e.textColor,backgroundColor:e.backgroundColor}}async function kn(e){if(e.calloutBlockId===void 0)return;let t=e.api.blocks.getChildren(e.calloutBlockId);if(e.event.preventDefault(),t.length<=1){await e.api.blocks.convert(e.calloutBlockId,`paragraph`);return}let n=e.api.blocks.getBlockIndex(e.firstChildBlockId);n!==void 0&&await e.api.blocks.delete(n);let r=e.api.blocks.getBlockIndex(e.calloutBlockId);r!==void 0&&r>0&&e.api.caret.setToBlock(r-1,`end`)}var An=[`💡`,`👉`,`☝️`,`✅`,`⚠️`,`🔑`,`🔥`,`📌`,`✂️`,`❓`,`🚫`,`⏰`,`♻️`,`🔒`,`📖`,`👣`,`➡️`,`📢`,`🛠️`,`⚙️`],jn={data:null};function Mn(e,t){let n=[];for(let r of e.emojis){let i=t[r];if(i===void 0)continue;let a=i.skins[0];a!==void 0&&n.push({native:a.native,skins:i.skins.map(e=>e.native),id:i.id,name:i.name,keywords:i.keywords,category:e.id})}return n}async function Nn(){if(jn.data!==null)return jn.data;let e=await Promise.resolve().then(()=>require(`./native-9bl-9eUy.cjs`)),t=`default`in e&&e.default!==void 0?e.default:e,n=t.categories.flatMap(e=>Mn(e,t.emojis));return jn.data=n,n}function Pn(e,t,n){let r=t.toLowerCase();return e.filter(e=>{if(e.name.toLowerCase().includes(r)||e.keywords.some(e=>e.includes(r)))return!0;let t=n==null?void 0:n[e.native];return t===void 0?!1:t.n.toLowerCase().includes(r)||t.k!==void 0&&t.k.some(e=>e.toLowerCase().includes(r))})}function Fn(e){let t=new Map;for(let r of e){var n;let e=(n=t.get(r.category))==null?[]:n;e.push(r),t.set(r.category,e)}return t}var In=new Map,Ln={am:()=>Promise.resolve().then(()=>require(`./am-CjQ3uVKd.cjs`)),ar:()=>Promise.resolve().then(()=>require(`./ar-DZVjGXGL.cjs`)),az:()=>Promise.resolve().then(()=>require(`./az-CqUkja1s.cjs`)),bg:()=>Promise.resolve().then(()=>require(`./bg-CzYIGKfv.cjs`)),bn:()=>Promise.resolve().then(()=>require(`./bn-xOPsQlT2.cjs`)),bs:()=>Promise.resolve().then(()=>require(`./bs-BvS24b9H.cjs`)),cs:()=>Promise.resolve().then(()=>require(`./cs-Di_MaXLX.cjs`)),da:()=>Promise.resolve().then(()=>require(`./da-Z2rPffxE.cjs`)),de:()=>Promise.resolve().then(()=>require(`./de-CKZaNwbt.cjs`)),el:()=>Promise.resolve().then(()=>require(`./el-CGMPbwk3.cjs`)),es:()=>Promise.resolve().then(()=>require(`./es-C9bpqZUJ.cjs`)),et:()=>Promise.resolve().then(()=>require(`./et-Bkd-bGb3.cjs`)),fa:()=>Promise.resolve().then(()=>require(`./fa-K8GnJb5h.cjs`)),fi:()=>Promise.resolve().then(()=>require(`./fi-7P7WHrIv.cjs`)),fil:()=>Promise.resolve().then(()=>require(`./fil-Bx8lDri1.cjs`)),fr:()=>Promise.resolve().then(()=>require(`./fr-BcSBIa9c.cjs`)),gu:()=>Promise.resolve().then(()=>require(`./gu-CKpyyh7K.cjs`)),he:()=>Promise.resolve().then(()=>require(`./he-lwkwHORf.cjs`)),hi:()=>Promise.resolve().then(()=>require(`./hi-AhHa006L.cjs`)),hr:()=>Promise.resolve().then(()=>require(`./hr-stMO8bQf.cjs`)),hu:()=>Promise.resolve().then(()=>require(`./hu-C1fDw3PF.cjs`)),hy:()=>Promise.resolve().then(()=>require(`./hy-DRAq00pq.cjs`)),id:()=>Promise.resolve().then(()=>require(`./id-DFkj4Zuh.cjs`)),it:()=>Promise.resolve().then(()=>require(`./it-DcV-PNgU.cjs`)),ja:()=>Promise.resolve().then(()=>require(`./ja-YO2zraT1.cjs`)),ka:()=>Promise.resolve().then(()=>require(`./ka-Cw0uvR2w.cjs`)),km:()=>Promise.resolve().then(()=>require(`./km-LbvTpRfk.cjs`)),kn:()=>Promise.resolve().then(()=>require(`./kn-B9wFxasy.cjs`)),ko:()=>Promise.resolve().then(()=>require(`./ko-CsiUhkoH.cjs`)),ku:()=>Promise.resolve().then(()=>require(`./ku-Cz77F0rV.cjs`)),lo:()=>Promise.resolve().then(()=>require(`./lo-C1c6htJ-.cjs`)),lt:()=>Promise.resolve().then(()=>require(`./lt-8BPh6YS3.cjs`)),lv:()=>Promise.resolve().then(()=>require(`./lv-CJGb9cTf.cjs`)),mk:()=>Promise.resolve().then(()=>require(`./mk-pCPnhm99.cjs`)),ml:()=>Promise.resolve().then(()=>require(`./ml-Cbh8doUr.cjs`)),mn:()=>Promise.resolve().then(()=>require(`./mn-Ee9Co24O.cjs`)),mr:()=>Promise.resolve().then(()=>require(`./mr-ByxXt-sg.cjs`)),ms:()=>Promise.resolve().then(()=>require(`./ms-B5NKyZeW.cjs`)),my:()=>Promise.resolve().then(()=>require(`./my-ByLLqtN6.cjs`)),ne:()=>Promise.resolve().then(()=>require(`./ne-uZhPjLwn.cjs`)),nl:()=>Promise.resolve().then(()=>require(`./nl-YSZa09db.cjs`)),no:()=>Promise.resolve().then(()=>require(`./no-RIDrhNv0.cjs`)),pa:()=>Promise.resolve().then(()=>require(`./pa-BHhDMIO_.cjs`)),pl:()=>Promise.resolve().then(()=>require(`./pl-CK0M1LS_.cjs`)),ps:()=>Promise.resolve().then(()=>require(`./ps-B5qZ_Ymh.cjs`)),pt:()=>Promise.resolve().then(()=>require(`./pt-CxNnwqMq.cjs`)),ro:()=>Promise.resolve().then(()=>require(`./ro-DZTmasAE.cjs`)),ru:()=>Promise.resolve().then(()=>require(`./ru-DBVPJZPc.cjs`)),sd:()=>Promise.resolve().then(()=>require(`./sd-CO1BHICm.cjs`)),si:()=>Promise.resolve().then(()=>require(`./si-BwUPhd40.cjs`)),sk:()=>Promise.resolve().then(()=>require(`./sk-CMyKXMQn.cjs`)),sl:()=>Promise.resolve().then(()=>require(`./sl-AgjoOGr-.cjs`)),sq:()=>Promise.resolve().then(()=>require(`./sq-iUyYbJHU.cjs`)),sr:()=>Promise.resolve().then(()=>require(`./sr-CW--Uzwj.cjs`)),sv:()=>Promise.resolve().then(()=>require(`./sv-vVNhWYKD.cjs`)),sw:()=>Promise.resolve().then(()=>require(`./sw-2_6i_yTt.cjs`)),ta:()=>Promise.resolve().then(()=>require(`./ta-CcViRAty.cjs`)),te:()=>Promise.resolve().then(()=>require(`./te-D0fw4F4l.cjs`)),th:()=>Promise.resolve().then(()=>require(`./th-DRYrBeHy.cjs`)),tr:()=>Promise.resolve().then(()=>require(`./tr-CFdLD5d-.cjs`)),ug:()=>Promise.resolve().then(()=>require(`./ug-CGa-xJ-J.cjs`)),uk:()=>Promise.resolve().then(()=>require(`./uk-dIdZ0NHL.cjs`)),ur:()=>Promise.resolve().then(()=>require(`./ur-Ck_G4LxF.cjs`)),vi:()=>Promise.resolve().then(()=>require(`./vi-BjBqjV4Q.cjs`)),zh:()=>Promise.resolve().then(()=>require(`./zh-C9qPXaPH.cjs`))};async function Rn(e){if(e===`en`)return null;let t=In.get(e);if(t!==void 0)return t;let n=Ln[e];if(n===void 0)return null;try{let t=(await n()).default;return In.set(e,t),t}catch(e){return null}}var zn={callout:t.on,people:t._n,nature:t.hn,foods:t.mn,activity:t.fn,places:t.yn,objects:t.gn,symbols:t.vn,flags:t.pn},Bn=[[`callout`,o.z],[`people`,o.L],[`nature`,o.R],[`foods`,o.B],[`activity`,o.P],[`places`,o.Z],[`objects`,o.I],[`symbols`,o.it],[`flags`,o.F]],Vn=[`✋`,`✋🏻`,`✋🏼`,`✋🏽`,`✋🏾`,`✋🏿`],Hn=`blok-emoji-skin-tone`;function Un(){try{let e=localStorage.getItem(Hn);if(e===null)return 0;let t=parseInt(e,10);return t>=0&&t<=5?t:0}catch(e){return 0}}function Wn(e){try{localStorage.setItem(Hn,String(e))}catch(e){}}var Gn=o.k,Kn=class{constructor(e){this._localeData=null,this._open=!1,this._allEmojis=[],this._skinTone=0,this._showingEmptyState=!1,this._anchorEl=null,this._previouslyFocused=null,this._backdrop=null,this._savedOverflow=``,this._navButtons=new Map,this._sectionEls=new Map,this._activeNavId=``,this._navRafId=0,this._skinToneButtons=[],this.onSelect=e.onSelect,this.onRemove=e.onRemove,this.i18n=e.i18n,this._locale=e.locale,this._element=this.buildElement();let t=this._element.querySelector(`[data-emoji-picker-body]`),n=this._element.querySelector(`[data-emoji-picker-nav]`),r=this._element.querySelector(`input[type="text"]`),i=this._element.querySelector(`[data-emoji-picker-announcer]`);if(t===null||n===null||r===null||i===null)throw Error(`EmojiPicker: failed to build required elements`);this._body=t,this._nav=n,this._filterInput=r,this._announcer=i,this._onDocumentKeydown=e=>{e.key!==`Escape`||!this._open||(this._skinTonePopover.hidden?this.close():this.closeSkinTonePopover())},this._body.addEventListener(`scroll`,()=>{cancelAnimationFrame(this._navRafId),this._navRafId=requestAnimationFrame(()=>this.updateActiveNav())},{passive:!0})}getElement(){return this._element}isOpen(){return this._open}async open(e){var t=this;let n=document.activeElement;t._previouslyFocused=n instanceof HTMLElement&&n!==document.body?n:null,t._anchorEl=e,t._open=!0,t._filterInput.value=``,t._element.setAttribute(`data-theme`,t.resolveTheme());let r=Un();if(r!==t._skinTone){t._skinTone=r,t._skinToneToggle.textContent=Vn[r];for(let[e,n]of t._skinToneButtons.entries())t.applySkinToneActiveStyle(n,e===r)}if(t._allEmojis.length===0&&(t._allEmojis=await Nn()),t._locale!==`en`&&t._localeData===null){let e=await Rn(t._locale);e!==null&&(t._localeData=e)}t.renderEmojiGrid(t._allEmojis),t.showBackdrop(),t._element.style.animation=`none`,t._element.hidden=!1,t.position(e),t._element.offsetHeight,t._element.style.animation=``,document.addEventListener(`keydown`,t._onDocumentKeydown,!0),t._filterInput.focus()}close(){var e;this._open=!1,this._element.hidden=!0,document.removeEventListener(`keydown`,this._onDocumentKeydown,!0),this.closeSkinTonePopover(),this.removeBackdrop(),this._announcer.textContent=``;let t=((e=this._previouslyFocused)==null?void 0:e.isConnected)===!0?this._previouslyFocused:this._anchorEl;this._previouslyFocused=null,t==null||t.focus()}buildElement(){let e=document.createElement(`div`);e.setAttribute(`data-blok-emoji-picker`,``),e.setAttribute(`role`,`dialog`),e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-label`,this.i18n.t(t.un)),e.className=[`fixed z-50 w-[400px] overflow-hidden rounded-xl`,`border border-neutral-200/70 bg-white shadow-2xl`,`theme-dark:border-neutral-700/50 theme-dark:bg-neutral-900`].join(` `),e.hidden=!0;let n=document.createElement(`div`);n.className=`flex items-center gap-2.5 px-3 pt-3 pb-2`;let r=document.createElement(`div`);r.className=`relative flex-1 min-w-0`;let i=document.createElement(`span`);i.className=[`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 flex items-center`,`text-neutral-400 theme-dark:text-neutral-500 [&>svg]:w-[16px] [&>svg]:h-[16px]`].join(` `),i.innerHTML=o.an;let a=document.createElement(`input`);a.type=`text`,a.setAttribute(`role`,`searchbox`),a.setAttribute(`aria-label`,this.i18n.t(t.xn)),a.placeholder=this.i18n.t(t.xn),a.className=[`w-full text-[13px] rounded-lg py-[7px] pl-8 pr-3 outline-hidden`,`bg-neutral-100 text-neutral-800 placeholder:text-neutral-400`,`theme-dark:bg-neutral-800 theme-dark:text-neutral-200 theme-dark:placeholder:text-neutral-500`,`focus:ring-2 focus:ring-neutral-300/60 theme-dark:focus:ring-neutral-600/60`,`transition-shadow duration-150`].join(` `),a.addEventListener(`input`,()=>this.handleFilterChange(a.value)),r.appendChild(i),r.appendChild(a);let s=document.createElement(`div`);s.className=`relative flex-shrink-0`;let l=document.createElement(`button`);l.type=`button`,l.setAttribute(`data-emoji-picker-skin-toggle`,``),l.setAttribute(`aria-label`,this.i18n.t(t.Tn)),l.title=this.i18n.t(t.Tn),l.className=[`w-[28px] h-[28px] flex items-center justify-center rounded-lg`,`text-[14px] leading-none cursor-pointer select-none`,`hover:bg-neutral-100 theme-dark:hover:bg-neutral-800`,`active:scale-90 transition-all duration-100`].join(` `),l.textContent=Vn[this._skinTone],l.addEventListener(`click`,()=>this.toggleSkinTonePopover()),this._skinToneToggle=l,s.appendChild(l),this._skinTonePopover=this.buildSkinTonePopover(),s.appendChild(this._skinTonePopover);let u=document.createElement(`button`);u.type=`button`,u.setAttribute(`data-emoji-picker-random`,``),u.setAttribute(`aria-label`,this.i18n.t(t.Cn)),u.className=[`flex-shrink-0 w-[34px] h-[34px] flex items-center justify-center rounded-lg`,`text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600`,`theme-dark:hover:bg-neutral-800 theme-dark:hover:text-neutral-300`,`transition-colors duration-100 cursor-pointer`].join(` `),u.innerHTML=Gn,u.addEventListener(`click`,()=>this.pickRandom()),t.ur(u,this.i18n.t(t.Cn),{placement:`bottom`});let d=document.createElement(`button`);d.type=`button`,d.setAttribute(`data-emoji-picker-remove`,``),d.setAttribute(`aria-label`,this.i18n.t(t.wn)),d.className=[`flex-shrink-0 w-[34px] h-[34px] flex items-center justify-center rounded-lg`,`text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600`,`theme-dark:hover:bg-neutral-800 theme-dark:hover:text-neutral-300`,`transition-colors duration-100 cursor-pointer`].join(` `),d.innerHTML=o.y,d.addEventListener(`click`,()=>{this.onRemove(),this.close()}),t.ur(d,this.i18n.t(t.wn),{placement:`bottom`});let f=document.createElement(`div`);f.className=`flex items-center gap-1`,f.appendChild(u),f.appendChild(d),n.appendChild(r),n.appendChild(s),n.appendChild(f),e.appendChild(n);let p=document.createElement(`div`);p.setAttribute(`data-emoji-picker-body`,``),p.className=`overflow-y-auto max-h-[260px] px-1.5 pb-2`,e.appendChild(p);let m=document.createElement(`div`);m.setAttribute(`data-emoji-picker-nav`,``),m.className=[`flex items-center gap-1 px-2 pt-1 pb-1`,`border-t border-neutral-100 theme-dark:border-neutral-800`].join(` `),e.appendChild(m);let h=document.createElement(`div`);return h.setAttribute(`data-emoji-picker-announcer`,``),h.setAttribute(`role`,`status`),h.setAttribute(`aria-live`,`polite`),h.style.position=`absolute`,h.style.width=`1px`,h.style.height=`1px`,h.style.padding=`0`,h.style.margin=`-1px`,h.style.overflow=`hidden`,h.style.clipPath=`inset(50%)`,h.style.whiteSpace=`nowrap`,h.style.border=`0`,e.appendChild(h),e.addEventListener(`mousedown`,e=>{let t=e.target;!this._skinTonePopover.hidden&&!this._skinTonePopover.contains(t)&&!this._skinToneToggle.contains(t)&&this.closeSkinTonePopover()}),e.addEventListener(`keydown`,t=>{if(t.key!==`Tab`||!this._open)return;let n=c.t(e),r=n.at(0),i=n.at(-1);if(r===void 0||i===void 0){t.preventDefault();return}let a=document.activeElement;t.shiftKey?(a===r||!e.contains(a))&&(t.preventDefault(),i.focus()):(a===i||!e.contains(a))&&(t.preventDefault(),r.focus())}),e}buildSkinTonePopover(){let e=document.createElement(`div`);e.setAttribute(`data-emoji-picker-skin-tone`,``),e.className=[`absolute right-0 top-full mt-1.5 z-20`,`flex items-center gap-0.5 p-1 rounded-xl`,`bg-white border border-neutral-200/70 shadow-lg`,`theme-dark:bg-neutral-800 theme-dark:border-neutral-700/50`].join(` `),e.hidden=!0,this._skinToneButtons=[];for(let[n,r]of Vn.entries()){let i=document.createElement(`button`);i.type=`button`,i.textContent=r,i.setAttribute(`aria-label`,`${this.i18n.t(t.Tn)} ${n+1}`),i.className=[`w-[32px] h-[32px] flex items-center justify-center rounded-lg`,`text-[1.2rem] leading-none cursor-pointer select-none`,`hover:bg-neutral-100 theme-dark:hover:bg-neutral-700`,`active:scale-90 transition-all duration-100`].join(` `),this.applySkinToneActiveStyle(i,n===this._skinTone),i.addEventListener(`click`,()=>{this.setSkinTone(n),this.closeSkinTonePopover()}),e.appendChild(i),this._skinToneButtons.push(i)}return e}applySkinToneActiveStyle(e,t){let n=[`bg-neutral-100`,`theme-dark:bg-neutral-700`,`ring-2`,`ring-neutral-300/60`,`theme-dark:ring-neutral-600/60`];e.setAttribute(`aria-pressed`,String(t)),t?e.classList.add(...n):e.classList.remove(...n)}toggleSkinTonePopover(){this._skinTonePopover.hidden=!this._skinTonePopover.hidden,this.updateSkinToneToggleActive()}closeSkinTonePopover(){this._skinTonePopover.hidden=!0,this.updateSkinToneToggleActive()}updateSkinToneToggleActive(){let e=!this._skinTonePopover.hidden,t=[`bg-neutral-100`,`theme-dark:bg-neutral-700`];e?this._skinToneToggle.classList.add(...t):this._skinToneToggle.classList.remove(...t)}setSkinTone(e){this._skinTone=e,Wn(e),this._skinToneToggle.textContent=Vn[e];for(let[t,n]of this._skinToneButtons.entries())this.applySkinToneActiveStyle(n,t===e);let t=Array.from(this._body.querySelectorAll(`[data-emoji-native]`));for(let e of t){let t=e.getAttribute(`data-emoji-native`);if(t===null)continue;let n=this._allEmojis.find(e=>e.native===t);n!==void 0&&(e.textContent=this.getSkinnedNative(n))}}pickRandom(){if(this._allEmojis.length===0)return;let e=Math.floor(Math.random()*this._allEmojis.length),t=this._allEmojis[e];t!==void 0&&this.onSelect(this.getSkinnedNative(t))}buildCategoryNav(e){this._nav.innerHTML=``,this._navButtons.clear(),this._activeNavId=``;for(let[t,n]of Bn){if(!e.has(t))continue;let r=this.translateCategory(t),i=document.createElement(`button`);i.type=`button`,i.innerHTML=n,i.title=r,i.setAttribute(`aria-label`,r),i.setAttribute(`data-emoji-nav`,t),i.className=[`flex-1 h-[36px] flex items-center justify-center`,`rounded-lg cursor-pointer opacity-50`,`text-neutral-500 theme-dark:text-neutral-400`,`[&>svg]:w-[20px] [&>svg]:h-[20px]`,`hover:opacity-100 hover:bg-neutral-100`,`theme-dark:hover:bg-neutral-800`,`transition-all duration-100`].join(` `),i.addEventListener(`click`,()=>this.scrollToSection(t)),this._nav.appendChild(i),this._navButtons.set(t,i)}}scrollToSection(e){let t=this._sectionEls.get(e);if(t===void 0)return;let n=this._body.getBoundingClientRect(),r=t.getBoundingClientRect();this._body.scrollTo({top:this._body.scrollTop+(r.top-n.top),behavior:`smooth`})}updateActiveNav(){let e=this._body.getBoundingClientRect().top,t=[...this._sectionEls.entries()].filter(([,t])=>t.getBoundingClientRect().top-e<=20).reduce((e,[t])=>t,``);if(t!==this._activeNavId){this._activeNavId=t;for(let[e,n]of this._navButtons)e===t?(n.classList.remove(`opacity-50`),n.classList.add(`opacity-100`,`bg-neutral-100`,`theme-dark:bg-neutral-800`)):(n.classList.remove(`opacity-100`,`bg-neutral-100`,`theme-dark:bg-neutral-800`),n.classList.add(`opacity-50`))}}getSkinnedNative(e){var t;return(t=e.skins[this._skinTone])==null?e.native:t}handleFilterChange(e){if(e.trim()===``){this._announcer.textContent=``,this._nav.hidden=!1,this.renderEmojiGrid(this._allEmojis);return}this._nav.hidden=!0;let t=Pn(this._allEmojis,e,this._localeData);if(this.announceResults(t.length),t.length===0)this._showingEmptyState||this.renderEmptyState();else{this._body.innerHTML=``,this._sectionEls.clear(),this._showingEmptyState=!1;let e=Fn(t);for(let[t,n]of e){let e=this.buildSection(this.translateCategory(t),n);e.setAttribute(`data-emoji-section`,t),this._sectionEls.set(t,e),this._body.appendChild(e)}}}announceResults(e){this._announcer.textContent=e===0?this.i18n.t(t.Sn):this.i18n.t(t.bn).replace(`{count}`,String(e))}renderEmojiGrid(e){this._body.innerHTML=``,this._sectionEls.clear(),this._showingEmptyState=!1;let t=new Set,n=An.map(t=>e.find(e=>e.native===t)).filter(e=>e!==void 0);if(n.length>0){t.add(`callout`);let e=this.buildSection(this.translateCategory(`callout`),n);e.setAttribute(`data-emoji-section`,`callout`),this._sectionEls.set(`callout`,e),this._body.appendChild(e)}let r=new Set(An),i=Fn(e.filter(e=>!r.has(e.native)));for(let[e,n]of i){t.add(e);let r=this.buildSection(this.translateCategory(e),n);r.setAttribute(`data-emoji-section`,e),this._sectionEls.set(e,r),this._body.appendChild(r)}this.buildCategoryNav(t),this._nav.hidden=!1,requestAnimationFrame(()=>this.updateActiveNav())}renderEmptyState(){this._body.innerHTML=``,this._showingEmptyState=!0,this._sectionEls.clear();let e=document.createElement(`div`);e.className=[`flex flex-col items-center justify-center py-10`,`text-neutral-400 theme-dark:text-neutral-500 select-none`,`animate-[blok-emoji-empty-in_300ms_ease-out_both]`].join(` `);let n=document.createElement(`span`);n.className=`mb-3 opacity-20 [&>svg]:w-9 [&>svg]:h-9`,n.innerHTML=o.an;let r=document.createElement(`span`);r.className=`text-[13px] font-medium`,r.textContent=this.i18n.t(t.Sn),e.appendChild(n),e.appendChild(r),this._body.appendChild(e)}translateCategory(e){let t=zn[e];return t===void 0?e:this.i18n.t(t)}buildSection(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);return r.className=[`text-[11px] font-semibold uppercase tracking-wider px-2 pt-3 pb-1.5`,`text-neutral-400/80 theme-dark:text-neutral-500/80`,`sticky top-0 bg-white theme-dark:bg-neutral-900 z-10`].join(` `),r.textContent=e,n.appendChild(r),n.appendChild(this.buildGrid(t)),n}getDisplayName(e){var t,n;return((t=(n=this._localeData)==null||(n=n[e.native])==null?void 0:n.n)==null?e.name:t).toLocaleLowerCase()}buildGrid(e){let n=document.createElement(`div`);n.className=`grid grid-cols-10 gap-0.5 px-0.5 pt-1`;for(let r of e){let e=document.createElement(`button`);e.type=`button`,e.textContent=this.getSkinnedNative(r),e.setAttribute(`data-emoji-native`,r.native),e.className=[`aspect-square flex items-center justify-center`,`text-[1.25rem] leading-none rounded-lg cursor-pointer`,`hover:bg-neutral-100 theme-dark:hover:bg-neutral-800`,`hover:scale-110 active:scale-95`,`transition-transform duration-75`].join(` `),e.addEventListener(`click`,()=>{this.onSelect(this.getSkinnedNative(r)),this.close()}),t.ur(e,this.getDisplayName(r),{placement:`bottom`}),n.appendChild(e)}return n}resolveTheme(){let e=document.documentElement.getAttribute(`data-blok-theme`);return e===`dark`?`dark`:e===`light`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}showBackdrop(){var e;this.removeBackdrop();let t=document.createElement(`div`);t.setAttribute(`data-blok-emoji-picker-backdrop`,``),t.style.position=`fixed`,t.style.inset=`0`,t.style.zIndex=`50`,t.addEventListener(`mousedown`,e=>{e.target===t&&this.close()}),(e=this._element.parentElement)==null||e.insertBefore(t,this._element),t.appendChild(this._element),this._backdrop=t,this._savedOverflow=document.documentElement.style.overflow,document.documentElement.style.overflow=`hidden`}removeBackdrop(){var e;this._backdrop!==null&&(document.documentElement.style.overflow=this._savedOverflow,(e=this._backdrop.parentElement)==null||e.insertBefore(this._element,this._backdrop),this._backdrop.remove(),this._backdrop=null)}position(e){let t=e.getBoundingClientRect(),n=this._element.getBoundingClientRect(),r=window.innerHeight,i=window.innerWidth,a=t.bottom+n.height>r?t.top-n.height-4:t.bottom+4,o=t.left-8,s=o+n.width>i?t.right-n.width:Math.max(0,o);this._element.style.top=`${a}px`,this._element.style.left=`${s}px`}};function qn(e){return e.isEmojiVisible===!1?``:typeof e.emoji==`string`&&e.emoji.length>0?e.emoji:t.ln}var Jn={general:null,note:`blue`,important:`purple`,warning:`orange`,additional:`yellow`,recommendation:`green`,caution:`red`},Yn=class{constructor({data:e,api:t,readOnly:n,block:r,config:i}){this._dom=null,this._emojiPicker=null,this._colorPicker=null,this._pendingChildText=null,this.api=t,this.readOnly=n;let a=typeof e.__importedText==`string`?e.__importedText:null;a!==null&&a.length>0&&(this._pendingChildText=a),this._data=this.normalizeData(e),r&&(this.blockId=r.id),this._customEmojiPicker=i==null?void 0:i.emojiPicker}normalizeData(e){let n=e;return`variant`in n||`isEmojiVisible`in n?this.normalizeLegacyData(n):{emoji:typeof e.emoji==`string`?e.emoji:t.ln,textColor:typeof e.textColor==`string`?e.textColor:null,backgroundColor:typeof e.backgroundColor==`string`?e.backgroundColor:null}}normalizeLegacyData(e){let t=typeof e.variant==`string`?e.variant:`general`,n=t in Jn?Jn[t]:null;return{emoji:qn(e),textColor:null,backgroundColor:n==null?null:n}}render(){if(this._dom)return this._dom.wrapper;let e=Dn({emoji:this._data.emoji,readOnly:this.readOnly,addEmojiLabel:this.api.i18n.t(t.an)});return this._dom=e,this.applyColors(),this.readOnly||(e.emojiButton.addEventListener(`click`,()=>this.openEmojiPicker()),e.emojiButton.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.openEmojiPicker())}),e.childContainer.addEventListener(`keydown`,e=>{e.key===`Backspace`&&this.handleChildBackspace(e)})),e.wrapper}rendered(){if(this.blockId===void 0||this._dom===null)return;let e=this.api.blocks.getChildren(this.blockId);if(s.t(this._dom.childContainer,e),e.length===0){let e=this.api.blocks.getBlockIndex(this.blockId);if(e!==void 0){let t=this._pendingChildText;this._pendingChildText=null;let n=t!==null&&t.length>0?{text:t}:void 0,r=this.api.blocks.insertInsideParent(this.blockId,e+1,n);this._dom.childContainer.appendChild(r.holder),this.api.caret.setToBlock(r.id,t===null?`start`:`end`)}}}save(){return On({emoji:this._data.emoji,textColor:this._data.textColor,backgroundColor:this._data.backgroundColor})}validate(e){return!0}onPaste(e){var n;let r=(n=e.detail.data.getAttribute(`style`))==null?``:n,i=/background(?:-color)?\s*:\s*([^;]+)/i.exec(r);if(i!=null&&i[1]){let e=t.An(i[1].trim(),`bg`);e&&(this._data.backgroundColor=e)}this.applyColors()}renderSettings(){if(this._colorPicker===null){let e=K({i18n:this.api.i18n,testIdPrefix:`callout-color`,modes:[{key:`color`,labelKey:`tools.marker.textColor`,presetField:`text`},{key:`background-color`,labelKey:`tools.marker.background`,presetField:`bg`}],onColorSelect:(n,r)=>{let i=n===null?null:t.An(n,r===`color`?`text`:`bg`);r===`color`?this._data.textColor=i:this._data.backgroundColor=i,e.setActiveColor(n,r),this.applyColors()}});this._colorPicker=e}return this.syncPickerActiveColors(),[{icon:o.L,title:this.api.i18n.t(t.un),name:`callout-edit-icon`,closeOnActivate:!0,onActivate:()=>this.openEmojiPicker()},{icon:o.zt,title:this.api.i18n.t(t.cn),name:`callout-color`,children:{items:[{type:t.hr.Html,element:this._colorPicker.element}]}}]}removed(){}setReadOnly(e){this.readOnly=e,this._dom&&(this._dom.emojiButton.disabled=e)}syncPickerActiveColors(){if(this._colorPicker===null)return;let e=this._data.textColor,n=this._data.backgroundColor;this._colorPicker.setActiveColor(e===null?null:t.In(e,`text`),`color`),this._colorPicker.setActiveColor(n===null?null:t.In(n,`bg`),`background-color`)}applyColors(){if(this._dom===null)return;let{textColor:e,backgroundColor:n}=this._data;if(e===null?this._dom.wrapper.style.color=``:this._dom.wrapper.style.color=t.In(e,`text`),n!==null){let e=t.In(n,`bg`);this._dom.wrapper.style.backgroundColor=e,this._dom.wrapper.style.border=``,this._dom.wrapper.style.setProperty(`--blok-search-input-bg`,`light-dark(color-mix(in srgb, ${e} 70%, white), color-mix(in srgb, ${e} 85%, white))`)}else this._dom.wrapper.style.backgroundColor=``,this._dom.wrapper.style.border=`1px solid var(--blok-callout-default-border, #e5e7eb)`,this._dom.wrapper.style.removeProperty(`--blok-search-input-bg`),this._dom.wrapper.style.removeProperty(`--blok-search-input-border`)}handleChildBackspace(e){if(this.blockId===void 0||this._dom===null)return;let t=this.api.blocks.getChildren(this.blockId);if(t.length===0)return;let n=t[0],r=e.target;if(!n.holder.contains(r))return;let i=window.getSelection(),a=i!==null&&i.rangeCount>0&&i.getRangeAt(0).startOffset===0&&i.getRangeAt(0).collapsed;n.holder.textContent!==``||!a||kn({api:this.api,calloutBlockId:this.blockId,firstChildBlockId:n.id,event:e})}openEmojiPicker(){if(this._dom!==null){if(this._customEmojiPicker!==void 0){this._customEmojiPicker(e=>this.setEmoji(e));return}this._emojiPicker===null&&(this._emojiPicker=new Kn({onSelect:e=>this.setEmoji(e),onRemove:()=>this.setEmoji(``),i18n:this.api.i18n,locale:this.api.i18n.getLocale()}),document.body.appendChild(this._emojiPicker.getElement())),this._emojiPicker.open(this._dom.emojiButton)}}setEmoji(e){this._data.emoji=e,this._dom!==null&&(this._dom.emojiButton.textContent=e,this._dom.emojiButton.setAttribute(`aria-label`,e===``?this.api.i18n.t(t.an):e))}static get toolbox(){return{icon:o.u,titleKey:`callout`,name:t.En,searchTerms:[`callout`,`note`,`info`,`warning`,`tip`,`alert`],searchTermKeys:[`callout`,`note`,`info`,`warning`,`tip`,`alert`]}}static get conversionConfig(){return{import:e=>({emoji:t.ln,textColor:null,backgroundColor:null,__importedText:e})}}static get pasteConfig(){return{tags:[{ASIDE:{style:!0}}]}}static get sanitize(){return{emoji:!1,textColor:!1,backgroundColor:!1}}static get isReadOnlySupported(){return!0}},Xn=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`;function Zn(e,t,n){let r=n[0];if(t!=null&&e>=t)throw Error(e+` >= `+t);if(e.slice(-1)===r||t&&t.slice(-1)===r)throw Error(`trailing zero`);if(t){let i=0;for(;(e[i]||r)===t[i];)i++;if(i>0)return t.slice(0,i)+Zn(e.slice(i),t.slice(i),n)}let i=e?n.indexOf(e[0]):0,a=t==null?n.length:n.indexOf(t[0]);return a-i>1?n[Math.round(.5*(i+a))]:t&&t.length>1?t.slice(0,1):n[i]+Zn(e.slice(1),null,n)}function Qn(e){if(e.length!==$n(e[0]))throw Error(`invalid integer part of order key: `+e)}function $n(e){if(e>=`a`&&e<=`z`)return e.charCodeAt(0)-97+2;if(e>=`A`&&e<=`Z`)return 90-e.charCodeAt(0)+2;throw Error(`invalid order key head: `+e)}function er(e){let t=$n(e[0]);if(t>e.length)throw Error(`invalid order key: `+e);return e.slice(0,t)}function tr(e,t){if(e===`A`+t[0].repeat(26))throw Error(`invalid order key: `+e);let n=er(e);if(e.slice(n.length).slice(-1)===t[0])throw Error(`invalid order key: `+e)}function nr(e,t){Qn(e);let[n,...r]=e.split(``),i=!0;for(let e=r.length-1;i&&e>=0;e--){let n=t.indexOf(r[e])+1;n===t.length?r[e]=t[0]:(r[e]=t[n],i=!1)}if(i){if(n===`Z`)return`a`+t[0];if(n===`z`)return null;let e=String.fromCharCode(n.charCodeAt(0)+1);return e>`a`?r.push(t[0]):r.pop(),e+r.join(``)}else return n+r.join(``)}function rr(e,t){Qn(e);let[n,...r]=e.split(``),i=!0;for(let e=r.length-1;i&&e>=0;e--){let n=t.indexOf(r[e])-1;n===-1?r[e]=t.slice(-1):(r[e]=t[n],i=!1)}if(i){if(n===`a`)return`Z`+t.slice(-1);if(n===`A`)return null;let e=String.fromCharCode(n.charCodeAt(0)-1);return e<`Z`?r.push(t.slice(-1)):r.pop(),e+r.join(``)}else return n+r.join(``)}function ir(e,t,n=Xn){if(e!=null&&tr(e,n),t!=null&&tr(t,n),e!=null&&t!=null&&e>=t)throw Error(e+` >= `+t);if(e==null){if(t==null)return`a`+n[0];let e=er(t),r=t.slice(e.length);if(e===`A`+n[0].repeat(26))return e+Zn(``,r,n);if(e<t)return e;let i=rr(e,n);if(i==null)throw Error(`cannot decrement any more`);return i}if(t==null){let t=er(e),r=e.slice(t.length),i=nr(t,n);return i==null?t+Zn(r,null,n):i}let r=er(e),i=e.slice(r.length),a=er(t),o=t.slice(a.length);if(r===a)return r+Zn(i,o,n);let s=nr(r,n);if(s==null)throw Error(`cannot increment any more`);return s<t?s:r+Zn(i,null,n)}var ar={notStarted:[`Not`,`started`].join(` `),inProgress:[`In`,`progress`].join(` `),done:[`Do`,`ne`].join(``)},or=class e{constructor(t){if(this.rows=[],(t==null?void 0:t.schema)!==void 0&&t.schema.length>0?this.schema=t.schema.map(e=>n.t({},e)):this.schema=e.createDefaultSchema(),(t==null?void 0:t.views)!==void 0&&t.views.length>0)this.views=t.views.map(e=>n.t(n.t({},e),{},{sorts:[...e.sorts],filters:[...e.filters],visibleProperties:[...e.visibleProperties]}));else{let t=this.schema.find(e=>e.type===`select`);this.views=[e.createDefaultView(t==null?void 0:t.id)]}this.activeViewId=(t==null?void 0:t.activeViewId)||(this.views.length>0?this.views[0].id:``)}getSchema(){return[...this.schema]}getProperty(e){return this.schema.find(t=>t.id===e)}addProperty(e,r,i){let a=this.schema.length>0?this.schema[this.schema.length-1].position:null,o=n.t({id:t.qr(),name:e,type:r,position:ir(a,null)},i===void 0?{}:{config:i});return this.schema.push(o),o}updateProperty(e,t){let n=this.schema.find(t=>t.id===e);n!==void 0&&(t.name!==void 0&&(n.name=t.name),t.config!==void 0&&(n.config=t.config))}deleteProperty(e){this.schema=this.schema.filter(t=>t.id!==e)}setRows(e){this.rows=e}getOrderedRows(){return[...this.rows].sort((e,t)=>e.position.localeCompare(t.position))}getRow(e){return this.rows.find(t=>t.id===e)}createRowData(e){let n=this.getOrderedRows(),r=n.length>0?n[n.length-1].position:null;return{id:t.qr(),position:ir(r,null),properties:e==null?{}:e}}getRowsGroupedBy(e){let t=new Map,n=this.getOrderedRows();for(let r of n){let n=r.properties[e],i=this.toGroupKey(n),a=t.get(i);a===void 0?t.set(i,[r]):a.push(r)}return t}getSelectOptions(e){var t,n;let r=this.getProperty(e);return r===void 0||r.type!==`select`&&r.type!==`multiSelect`?[]:[...(t=(n=r.config)==null?void 0:n.options)==null?[]:t].sort((e,t)=>e.position<t.position?-1:1)}getViews(){return[...this.views]}getView(e){return this.views.find(t=>t.id===e)}addView(e,n,r={}){var i,a,o;let s=[...this.views].sort((e,t)=>e.position<t.position?-1:1),c=s.length>0?s[s.length-1].position:null,l={id:t.qr(),name:e,type:n,position:ir(c,null),groupBy:r.groupBy,sorts:(i=r.sorts)==null?[]:i,filters:(a=r.filters)==null?[]:a,visibleProperties:(o=r.visibleProperties)==null?[]:o};return this.views.push(l),l}updateView(e,t){let n=this.views.find(t=>t.id===e);n!==void 0&&Object.assign(n,t)}deleteView(e){this.views=this.views.filter(t=>t.id!==e)}hydrate(e){e.schema!==void 0&&(this.schema=structuredClone(e.schema)),e.views!==void 0&&(this.views=structuredClone(e.views))}snapshot(){return{schema:structuredClone(this.schema),views:structuredClone(this.views),activeViewId:this.activeViewId}}toGroupKey(e){return e==null?``:typeof e==`string`?e:typeof e==`boolean`||typeof e==`number`?String(e):``}static positionBetween(e,t){return ir(e,t)}static createDefaultSchema(){return[{id:t.qr(),name:`Title`,type:`title`,position:`a0`},{id:t.qr(),name:`Status`,type:`select`,position:`a1`,config:{options:[{id:t.qr(),label:ar.notStarted,color:`gray`,position:`a0`},{id:t.qr(),label:ar.inProgress,color:`blue`,position:`a1`},{id:t.qr(),label:ar.done,color:`green`,position:`a2`}]}}]}static createDefaultView(e){return{id:t.qr(),name:`Board`,type:`board`,position:`a0`,groupBy:e,sorts:[],filters:[],visibleProperties:[]}}},sr=new Set([`INPUT`,`BUTTON`,`SELECT`,`TEXTAREA`]),cr=e=>sr.has(e.tagName)?!0:e.tagName===`A`&&e.hasAttribute(`href`);function lr(e){let{target:t,currentValue:n,label:r,onCommit:i,onCancel:a,onInput:o,buildRestored:s,configureInput:c}=e,l=document.createElement(`input`);l.type=`text`,l.value=n,l.setAttribute(`aria-label`,r),c==null||c(l),o!==void 0&&l.addEventListener(`input`,()=>{o(l.value)});let u={done:!1},d=e=>{let t=s(e),n=document.activeElement===l;l.replaceWith(t),n&&(!t.hasAttribute(`tabindex`)&&!cr(t)&&t.setAttribute(`tabindex`,`-1`),t.focus())},f=()=>{if(u.done)return;u.done=!0;let e=l.value.trim()||n;d(e),i(e)},p=()=>{u.done||(u.done=!0,d(n),a==null||a())};l.addEventListener(`blur`,f),l.addEventListener(`keydown`,e=>{e.stopPropagation(),e.key===`Enter`?f():e.key===`Escape`&&(l.removeEventListener(`blur`,f),p())}),t.replaceWith(l),l.focus(),l.select()}var ur=class{constructor({readOnly:e,i18n:t,options:n,getRows:r,titlePropertyId:i,onTitleEdit:a}){this.readOnly=e,this.i18n=t,this.options=n,this.getRows=r,this.titlePropertyId=i,this.onTitleEdit=a}createView(){let e=document.createElement(`div`);e.setAttribute(`data-blok-tool`,`database`),e.setAttribute(`role`,`region`),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.kanbanBoard`)),e.style.display=`flex`;let t=document.createElement(`div`);t.setAttribute(`data-blok-database-board`,``),t.style.display=`flex`,t.style.overflowX=`auto`,t.style.alignItems=`flex-start`,t.style.gap=`12px`,t.style.paddingBottom=`24px`,t.style.flex=`1`,t.style.minWidth=`0`;for(let e of this.options){let n=this.createColumnElement(e,this.getRows(e.id),this.titlePropertyId);t.appendChild(n)}if(!this.readOnly){let e=document.createElement(`button`);e.setAttribute(`data-blok-database-add-column`,``),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.addColumn`)),e.textContent=`+ `+this.i18n.t(`tools.database.addColumn`),e.style.minWidth=`260px`,e.style.flex=`0 0 260px`,t.appendChild(e)}return e.appendChild(t),e}appendRow(e,t){let n=this.createCardElement(t,this.titlePropertyId);e.appendChild(n),this.updateColumnCount(e)}removeRow(e,t){let n=e.querySelector(`[data-row-id="${t}"]`),r=n==null?void 0:n.closest(`[data-blok-database-cards]`);n==null||n.remove(),r!==null&&this.updateColumnCount(r)}updateRowTitle(e,t,n){let r=e.querySelector(`[data-row-id="${t}"]`),i=r==null?void 0:r.querySelector(`[data-blok-database-card-title]`);i!=null&&(n?(i.textContent=n,i.removeAttribute(`data-placeholder`),r==null||r.removeAttribute(`data-empty`)):(i.textContent=this.i18n.t(`tools.database.cardTitlePlaceholder`),i.setAttribute(`data-placeholder`,``),r==null||r.setAttribute(`data-empty`,``)))}appendGroup(e,t){let n=this.createColumnElement(t,[],``),r=e.querySelector(`[data-blok-database-board]`),i=r==null?e:r,a=i.querySelector(`[data-blok-database-add-column]`);a?i.insertBefore(n,a):i.appendChild(n)}removeGroup(e,t){let n=e.querySelector(`[data-option-id="${t}"]`);n==null||n.remove()}createColumnElement(e,t,n){let r=document.createElement(`div`);r.setAttribute(`data-blok-database-column`,``),r.setAttribute(`data-option-id`,e.id),r.setAttribute(`role`,`group`),r.setAttribute(`aria-label`,e.label),r.style.display=`flex`,r.style.flexDirection=`column`,r.style.minWidth=`260px`,r.style.flex=`0 0 260px`,e.color!==void 0&&(r.style.backgroundColor=`var(--blok-color-${e.color}-bg)`,r.setAttribute(`data-color`,e.color));let i=document.createElement(`div`);i.setAttribute(`data-blok-database-column-header`,``),i.style.display=`flex`,i.style.alignItems=`center`,i.style.padding=`0 0 6px 0`,i.style.borderRadius=`4px`,i.style.gap=`6px`,i.style.cursor=`grab`;let a=document.createElement(`div`);if(a.setAttribute(`data-blok-database-column-pill`,``),e.color!==void 0){a.style.backgroundColor=`color-mix(in srgb, var(--blok-color-${e.color}-text) 20%, var(--blok-color-${e.color}-bg))`,a.style.color=`var(--blok-color-${e.color}-text)`;let t=document.createElement(`span`);t.setAttribute(`data-blok-database-column-dot`,``),t.style.backgroundColor=`var(--blok-color-${e.color}-text)`,a.appendChild(t)}let s=document.createElement(`div`);s.setAttribute(`data-blok-database-column-title`,``),s.textContent=e.label,a.appendChild(s),i.appendChild(a);let c=document.createElement(`span`);c.setAttribute(`data-blok-database-column-count`,``),c.textContent=String(t.length),e.color!==void 0&&(c.style.color=`var(--blok-color-${e.color}-text)`),i.appendChild(c),r.appendChild(i);let l=document.createElement(`div`);l.setAttribute(`data-blok-database-cards`,``),l.setAttribute(`role`,`list`),l.style.display=`flex`,l.style.flexDirection=`column`,l.style.gap=`8px`,l.style.paddingTop=`6px`,l.style.minHeight=`40px`;for(let e of t){let t=this.createCardElement(e,n);l.appendChild(t)}if(r.appendChild(l),!this.readOnly){let t=document.createElement(`button`);t.setAttribute(`data-blok-database-add-card`,``),t.setAttribute(`data-option-id`,e.id),t.setAttribute(`aria-label`,this.i18n.t(`tools.database.addCard`));let n=document.createElement(`span`);n.setAttribute(`data-blok-database-add-card-icon`,``),n.innerHTML=o.en,t.appendChild(n);let i=document.createElement(`span`);i.textContent=this.i18n.t(`tools.database.newPage`),t.appendChild(i),e.color!==void 0&&(t.style.borderColor=`color-mix(in srgb, var(--blok-color-${e.color}-text) 30%, transparent)`,t.style.color=`var(--blok-color-${e.color}-text)`),r.appendChild(t)}return r}createCardElement(e,t){var n;let r=document.createElement(`div`),i=(n=e.properties[t])==null?``:n;r.setAttribute(`data-blok-database-card`,``),r.setAttribute(`data-row-id`,e.id),r.setAttribute(`role`,`listitem`),r.style.padding=`10px 12px`,r.style.borderRadius=`10px`,r.style.cursor=`pointer`,r.style.position=`relative`,r.style.backgroundColor=`var(--blok-database-card-bg)`,r.style.boxShadow=`var(--blok-database-card-shadow)`;let a=document.createElement(`div`);if(a.setAttribute(`data-blok-database-card-title`,``),i?a.textContent=i:(a.textContent=this.i18n.t(`tools.database.cardTitlePlaceholder`),a.setAttribute(`data-placeholder`,``),r.setAttribute(`data-empty`,``)),r.appendChild(a),!this.readOnly){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-card-actions`,``);let n=document.createElement(`button`);n.setAttribute(`data-blok-database-edit-card`,``),n.setAttribute(`data-row-id`,e.id),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.editCardTitle`)),n.innerHTML=o.Bt,n.addEventListener(`click`,t=>{t.stopPropagation(),this.startCardTitleEdit(r,e.id)});let i=document.createElement(`button`);i.setAttribute(`data-blok-database-card-menu`,``),i.setAttribute(`data-row-id`,e.id),i.setAttribute(`aria-label`,this.i18n.t(`tools.database.cardMenuLabel`)),i.innerHTML=o.j,t.appendChild(n),t.appendChild(i),r.appendChild(t)}return r}startCardTitleEdit(e,t){var n;let r=e.querySelector(`[data-blok-database-card-title]`);if(r===null)return;let i=(n=r.textContent)==null?``:n;lr({target:r,currentValue:i,label:this.i18n.t(`tools.database.editCardTitle`),configureInput:e=>{e.setAttribute(`data-blok-database-card-title-input`,``),e.style.setProperty(`width`,`100%`),e.style.setProperty(`box-sizing`,`border-box`)},buildRestored:e=>{let t=document.createElement(`div`);return t.setAttribute(`data-blok-database-card-title`,``),t.textContent=e,t},onCommit:n=>{if(n!==i){var r;(r=this.onTitleEdit)==null||r.call(this,t,n)}n&&e.removeAttribute(`data-empty`)}})}updateColumnCount(e){let t=e.closest(`[data-blok-database-column]`);if(t===null)return;let n=t.querySelector(`[data-blok-database-column-count]`);if(n!==null){let t=e.querySelectorAll(`[data-blok-database-card]`).length;n.textContent=String(t)}}},dr=class{constructor({readOnly:e,i18n:t,rows:n,titlePropertyId:r,schema:i,visiblePropertyIds:a,options:o,getRows:s}){this.readOnly=e,this.i18n=t,this.rows=n,this.titlePropertyId=r,this.schema=i,this.visiblePropertyIds=a,this.groupOptions=o,this.getGroupRows=s}createView(){let e=document.createElement(`div`);if(e.setAttribute(`data-blok-database-list`,``),this.groupOptions!==void 0&&this.groupOptions.length>0&&this.getGroupRows!==void 0)for(let t of this.groupOptions){let n=this.getGroupRows(t.id),r=this.createGroupElement(t,n);e.appendChild(r)}else{e.setAttribute(`role`,`list`),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.listView`));for(let t of this.rows){let n=this.createRowElement(t);e.appendChild(n)}if(!this.readOnly){let t=this.createAddRowButton();e.appendChild(t)}}return e}createGroupElement(e,t){let n=document.createElement(`div`);n.setAttribute(`data-blok-database-list-group`,``),n.setAttribute(`data-option-id`,e.id);let r=document.createElement(`div`);r.setAttribute(`data-blok-database-list-group-header`,``);let i=document.createElement(`span`);i.setAttribute(`data-blok-database-list-group-toggle`,``),i.textContent=`▼`;let a=document.createElement(`span`);a.setAttribute(`data-blok-database-list-group-dot`,``),e.color!==void 0&&(a.style.backgroundColor=`var(--blok-color-${e.color}-text)`);let o=document.createElement(`span`);o.setAttribute(`data-blok-database-list-group-title`,``),o.textContent=e.label;let s=document.createElement(`span`);s.setAttribute(`data-blok-database-list-group-count`,``),s.textContent=String(t.length),r.appendChild(i),r.appendChild(a),r.appendChild(o),r.appendChild(s);let c=document.createElement(`div`);c.setAttribute(`data-blok-database-list-rows`,``),c.setAttribute(`role`,`list`);for(let e of t){let t=this.createRowElement(e);c.appendChild(t)}let l=this.readOnly?null:this.createAddRowButton(e.id);return r.addEventListener(`click`,()=>{let e=c.style.display===`none`;c.style.display=e?``:`none`,i.textContent=e?`▼`:`▶`,l!==null&&(l.style.display=e?``:`none`)}),n.appendChild(r),n.appendChild(c),l!==null&&n.appendChild(l),n}appendRow(e,t){let n=this.createRowElement(t),r=e.querySelector(`[data-blok-database-add-row]`);r===null?e.appendChild(n):e.insertBefore(n,r)}removeRow(e,t){let n=e.querySelector(`[data-row-id="${t}"]`);n==null||n.remove()}updateRowTitle(e,t,n){let r=e.querySelector(`[data-row-id="${t}"]`),i=r==null?void 0:r.querySelector(`[data-blok-database-list-row-title]`);i!=null&&(n?(i.textContent=n,i.removeAttribute(`data-placeholder`)):(i.textContent=this.i18n.t(`tools.database.rowTitlePlaceholder`),i.setAttribute(`data-placeholder`,``)))}createRowElement(e){var t;let n=document.createElement(`div`),r=(t=e.properties[this.titlePropertyId])==null?``:t;n.setAttribute(`data-blok-database-list-row`,``),n.setAttribute(`data-row-id`,e.id),n.setAttribute(`role`,`listitem`);let i=document.createElement(`div`);i.setAttribute(`data-blok-database-list-row-title`,``),r?i.textContent=r:(i.textContent=this.i18n.t(`tools.database.rowTitlePlaceholder`),i.setAttribute(`data-placeholder`,``)),n.appendChild(i);let a=this.createPropertiesElement(e);return n.appendChild(a),n}createPropertiesElement(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-list-row-properties`,``);for(let n of this.visiblePropertyIds){let r=this.schema.find(e=>e.id===n);if(r===void 0)continue;let i=e.properties[n],a=this.createPropertyBadge(r,i);a!==null&&t.appendChild(a)}let n=document.createElement(`button`);if(n.setAttribute(`data-blok-database-list-row-open`,``),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.openRow`)),t.appendChild(n),!this.readOnly){let n=document.createElement(`button`);n.setAttribute(`data-blok-database-delete-row`,``),n.setAttribute(`data-row-id`,e.id),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.deleteRow`)),n.textContent=`×`,t.appendChild(n)}return t}createPropertyBadge(e,t){if(t==null)return null;let n=document.createElement(`span`);if(n.setAttribute(`data-blok-database-list-row-property`,``),n.setAttribute(`data-property-id`,e.id),e.type===`select`){var r,i;let a=((r=(i=e.config)==null?void 0:i.options)==null?[]:r).find(e=>e.id===t);if(a===void 0)return null;n.textContent=a.label,a.color!==void 0&&(n.style.backgroundColor=`var(--blok-color-${a.color}-bg)`,n.style.color=`var(--blok-color-${a.color}-text)`)}else if(e.type===`checkbox`){let e=t===!0,r=document.createElement(`span`);r.setAttribute(`data-blok-database-checkbox-glyph`,``),r.setAttribute(`aria-hidden`,`true`),r.setAttribute(`data-state`,e?`checked`:`unchecked`),r.textContent=e?`✓`:``,n.appendChild(r);let i=document.createElement(`span`);i.style.position=`absolute`,i.style.width=`1px`,i.style.height=`1px`,i.style.padding=`0`,i.style.margin=`-1px`,i.style.overflow=`hidden`,i.style.clipPath=`inset(50%)`,i.style.whiteSpace=`nowrap`,i.style.border=`0`,i.textContent=this.i18n.t(e?`tools.database.checkboxChecked`:`tools.database.checkboxUnchecked`),n.appendChild(i)}else if(typeof t==`string`||typeof t==`number`)n.textContent=String(t);else return null;return n}createAddRowButton(e){let t=document.createElement(`button`);return t.setAttribute(`data-blok-database-add-row`,``),t.setAttribute(`aria-label`,this.i18n.t(`tools.database.addRow`)),t.textContent=`+ `+this.i18n.t(`tools.database.newRow`),e!==void 0&&t.setAttribute(`data-option-id`,e),t}},fr=500,pr=class{constructor(e,t){this.pendingTimers=new Map,this.pendingUpdates=new Map,this.pendingPropertyTimers=new Map,this.pendingPropertyUpdates=new Map,this.adapter=e,this.onError=t}async safeCall(e){var t=this;if(t.adapter!==void 0)try{return await e(t.adapter)}catch(e){var n;(n=t.onError)==null||n.call(t,e);return}}async syncLoadDatabase(){return this.safeCall(e=>e.loadDatabase())}async syncCreateRow(e){return this.safeCall(t=>t.createRow(e))}syncUpdateRow(e){if(this.adapter===void 0)return;let{rowId:t}=e,r=this.pendingTimers.get(t);r!==void 0&&clearTimeout(r);let i=this.pendingUpdates.get(t);this.pendingUpdates.set(t,i===void 0?e:n.t(n.t(n.t({},i),e),{},{properties:n.t(n.t({},i.properties),e.properties)})),this.pendingTimers.set(t,setTimeout(()=>{this.flushRow(t)},fr))}async syncMoveRow(e){var t=this;return t.flushRow(e.rowId),t.safeCall(t=>t.moveRow(e))}async syncDeleteRow(e){await this.safeCall(t=>t.deleteRow(e))}async syncCreateProperty(e){return this.safeCall(t=>t.createProperty(e))}async syncUpdateProperty(e){return this.safeCall(t=>t.updateProperty(e))}syncUpdatePropertyDebounced(e){if(this.adapter===void 0)return;let{propertyId:t}=e,n=this.pendingPropertyTimers.get(t);n!==void 0&&clearTimeout(n),this.pendingPropertyUpdates.set(t,e),this.pendingPropertyTimers.set(t,setTimeout(()=>{this.flushProperty(t)},fr))}async syncDeleteProperty(e){await this.safeCall(t=>t.deleteProperty(e))}async syncCreateView(e){return this.safeCall(t=>t.createView(e))}async syncUpdateView(e){return this.safeCall(t=>t.updateView(e))}async syncDeleteView(e){await this.safeCall(t=>t.deleteView(e))}flushPendingUpdates(){for(let e of this.pendingTimers.keys())this.flushRow(e)}flushPendingPropertyUpdates(){for(let e of this.pendingPropertyTimers.keys())this.flushProperty(e)}destroy(){for(let e of this.pendingTimers.values())clearTimeout(e);this.pendingTimers.clear(),this.pendingUpdates.clear();for(let e of this.pendingPropertyTimers.values())clearTimeout(e);this.pendingPropertyTimers.clear(),this.pendingPropertyUpdates.clear()}flushRow(e){let t=this.pendingTimers.get(e);t!==void 0&&clearTimeout(t),this.pendingTimers.delete(e);let n=this.pendingUpdates.get(e);this.pendingUpdates.delete(e),n!==void 0&&this.safeCall(e=>e.updateRow(n))}flushProperty(e){let t=this.pendingPropertyTimers.get(e);t!==void 0&&clearTimeout(t),this.pendingPropertyTimers.delete(e);let n=this.pendingPropertyUpdates.get(e);this.pendingPropertyUpdates.delete(e),n!==void 0&&this.safeCall(e=>e.updateProperty(n))}},mr=10,hr=class{constructor(e){this.isDragging=!1,this.rowId=``,this.startX=0,this.startY=0,this.ghostEl=null,this.sourceCard=null,this.sourceCardHeight=0,this.ghostOffsetX=0,this.ghostOffsetY=0,this.gapTarget=null,this.gapContainer=null,this.wrapper=e.wrapper,this.onDrop=e.onDrop,this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this)}beginTracking(e,t,n){this.cleanup(),this.rowId=e,this.startX=t,this.startY=n,this.isDragging=!1,this.sourceCard=this.wrapper.querySelector(`[data-row-id="${e}"]`),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerCancel),document.addEventListener(`keydown`,this.boundKeyDown)}cleanup(){var e;document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerCancel),document.removeEventListener(`keydown`,this.boundKeyDown),(e=this.ghostEl)==null||e.remove(),this.ghostEl=null,this.clearGap(),this.wrapper.removeAttribute(`data-blok-database-dragging`),this.sourceCard&&(this.sourceCard.style.opacity=``,this.sourceCard=null),this.isDragging=!1,this.rowId=``,this.sourceCardHeight=0,this.ghostOffsetX=0,this.ghostOffsetY=0}destroy(){this.cleanup()}handlePointerMove(e){let t=Math.abs(e.clientX-this.startX),n=Math.abs(e.clientY-this.startY);!this.isDragging&&(t>mr||n>mr)&&(this.isDragging=!0,this.startActiveDrag(e)),this.isDragging&&(this.updateGhostPosition(e),this.updateDropIndicator(e))}handlePointerUp(e){this.isDragging&&this.commitDrop(e),this.cleanup()}handlePointerCancel(){this.cleanup()}handleKeyDown(e){e.key===`Escape`&&this.cleanup()}startActiveDrag(e){if(this.sourceCard){let e=this.sourceCard.getBoundingClientRect();this.sourceCardHeight=e.height,this.ghostOffsetX=this.startX-e.left,this.ghostOffsetY=this.startY-e.top,this.sourceCard.style.opacity=`0.4`}this.wrapper.setAttribute(`data-blok-database-dragging`,``),this.createGhost(e)}createGhost(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-ghost`,``),t.setAttribute(`contenteditable`,`false`);let n=t.style;if(n.position=`fixed`,n.pointerEvents=`none`,n.opacity=`0.85`,n.zIndex=`50`,n.boxShadow=`0 12px 28px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.1)`,n.borderRadius=`8px`,n.overflow=`hidden`,n.transform=`rotate(2deg) scale(1.02)`,n.transformOrigin=`center center`,this.sourceCard){let r=this.sourceCard.cloneNode(!0);r.style.opacity=``,t.appendChild(r);let i=this.sourceCard.getBoundingClientRect();n.left=`${e.clientX-this.ghostOffsetX}px`,n.top=`${e.clientY-this.ghostOffsetY}px`,n.width=`${i.width}px`}else n.left=`${e.clientX}px`,n.top=`${e.clientY}px`;document.body.appendChild(t),this.ghostEl=t}updateGhostPosition(e){this.ghostEl&&(this.ghostEl.style.left=`${e.clientX-this.ghostOffsetX}px`,this.ghostEl.style.top=`${e.clientY-this.ghostOffsetY}px`)}updateDropIndicator(e){let t=this.findTargetColumn(e.clientX);if(!t){this.clearGap();return}let n=this.getDropPosition(t,e.clientY).beforeEl;if(n){if(n===this.gapTarget)return;this.clearGap(),n.style.marginTop=`${this.sourceCardHeight}px`,this.gapTarget=n}else{let e=t.querySelector(`[data-blok-database-cards]`);if(!e){this.clearGap();return}if(e===this.gapContainer)return;this.clearGap(),e.style.paddingBottom=`${this.sourceCardHeight}px`,this.gapContainer=e}}clearGap(){this.gapTarget&&(this.gapTarget.style.marginTop=``,this.gapTarget=null),this.gapContainer&&(this.gapContainer.style.paddingBottom=``,this.gapContainer=null)}findTargetColumn(e){let t=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-column]`));for(let n of t){let t=n.getBoundingClientRect();if(e>=t.left&&e<=t.right)return n}return null}getDropPosition(e,t){let n=Array.from(e.querySelectorAll(`[data-blok-database-card]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId);for(let e of n){let n=e.getBoundingClientRect();if(t<n.top+n.height/2)return{beforeEl:e}}return{beforeEl:null}}resolveAfterRowId(e,t,n){return e?n>0?t[n-1].getAttribute(`data-row-id`):null:t.length>0?t[t.length-1].getAttribute(`data-row-id`):null}commitDrop(e){var t;let n=this.findTargetColumn(e.clientX);if(!n)return;let r=(t=n.getAttribute(`data-option-id`))==null?``:t,i=this.getDropPosition(n,e.clientY),a=Array.from(n.querySelectorAll(`[data-blok-database-card]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId),o=i.beforeEl?i.beforeEl.getAttribute(`data-row-id`):null,s=i.beforeEl?a.indexOf(i.beforeEl):-1,c=this.resolveAfterRowId(i.beforeEl,a,s);this.onDrop({rowId:this.rowId,toOptionId:r,beforeRowId:o,afterRowId:c})}},gr=10,_r=class{constructor(e){this.isDragging=!1,this.optionId=``,this.startX=0,this.startY=0,this.ghostEl=null,this.sourceColumn=null,this.sourceColumnWidth=0,this.ghostOffsetX=0,this.gapTarget=null,this.gapContainer=null,this.wrapper=e.wrapper,this.onDrop=e.onDrop,this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this)}beginTracking(e,t,n){this.cleanup(),this.optionId=e,this.startX=t,this.startY=n,this.isDragging=!1,this.sourceColumn=this.wrapper.querySelector(`[data-option-id="${e}"]`),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerCancel),document.addEventListener(`keydown`,this.boundKeyDown)}cleanup(){var e;document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerCancel),document.removeEventListener(`keydown`,this.boundKeyDown),(e=this.ghostEl)==null||e.remove(),this.ghostEl=null,this.clearGap(),this.wrapper.removeAttribute(`data-blok-database-column-reordering`),this.sourceColumn&&(this.sourceColumn.style.opacity=``,this.sourceColumn=null),this.isDragging=!1,this.optionId=``,this.sourceColumnWidth=0,this.ghostOffsetX=0}destroy(){this.cleanup()}handlePointerMove(e){let t=Math.abs(e.clientX-this.startX);!this.isDragging&&t>gr&&(this.isDragging=!0,this.startActiveDrag(e)),this.isDragging&&(this.updateGhostPosition(e),this.updateDropIndicator(e.clientX))}handlePointerUp(e){this.isDragging&&this.commitDrop(e),this.cleanup()}handlePointerCancel(){this.cleanup()}handleKeyDown(e){e.key===`Escape`&&this.cleanup()}startActiveDrag(e){if(this.sourceColumn){let e=this.sourceColumn.getBoundingClientRect();this.sourceColumnWidth=e.width,this.ghostOffsetX=this.startX-e.left,this.sourceColumn.style.opacity=`0.4`}this.wrapper.setAttribute(`data-blok-database-column-reordering`,``),this.createGhost(e)}createGhost(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-column-ghost`,``),t.setAttribute(`contenteditable`,`false`);let n=t.style;if(n.position=`fixed`,n.pointerEvents=`none`,n.opacity=`0.85`,n.zIndex=`50`,n.boxShadow=`0 12px 28px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.1)`,n.borderRadius=`10px`,n.overflow=`hidden`,n.transform=`rotate(1deg) scale(1.02)`,n.transformOrigin=`center center`,this.sourceColumn){let r=this.sourceColumn.cloneNode(!0);r.style.opacity=``,t.appendChild(r);let i=this.sourceColumn.getBoundingClientRect();n.left=`${e.clientX-this.ghostOffsetX}px`,n.top=`${i.top}px`,n.width=`${i.width}px`}else n.left=`${e.clientX}px`,n.top=`${e.clientY}px`;document.body.appendChild(t),this.ghostEl=t}updateGhostPosition(e){this.ghostEl&&(this.ghostEl.style.left=`${e.clientX-this.ghostOffsetX}px`)}updateDropIndicator(e){let t=this.getDropPosition(e);if(t.beforeColumn){if(t.beforeColumn===this.gapTarget)return;this.clearGap(),t.beforeColumn.style.marginLeft=`${this.sourceColumnWidth}px`,this.gapTarget=t.beforeColumn}else this.applyEndGap()}applyEndGap(){let e=this.wrapper.querySelector(`[data-blok-database-board]`);!e||e===this.gapContainer||(this.clearGap(),e.style.paddingRight=`${this.sourceColumnWidth}px`,this.gapContainer=e)}clearGap(){this.gapTarget&&(this.gapTarget.style.marginLeft=``,this.gapTarget=null),this.gapContainer&&(this.gapContainer.style.paddingRight=``,this.gapContainer=null)}getDropPosition(e){let t=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-column]`)).filter(e=>e.getAttribute(`data-option-id`)!==this.optionId);for(let n of t){let r=n.getBoundingClientRect();if(e<r.left+r.width/2){let e=t.indexOf(n);return{beforeColumn:n,afterColumn:e>0?t[e-1]:null}}}return{beforeColumn:null,afterColumn:t.length>0?t[t.length-1]:null}}commitDrop(e){let t=this.getDropPosition(e.clientX),n=t.beforeColumn?t.beforeColumn.getAttribute(`data-option-id`):null,r=t.afterColumn?t.afterColumn.getAttribute(`data-option-id`):null;this.onDrop({optionId:this.optionId,beforeOptionId:n,afterOptionId:r})}},vr=class{constructor(e){this.options=e,this.i18n=e.i18n}makeEditable(e,t){let n=e.querySelector(`[data-blok-database-column-title]`);if(n){var r;let e=document.createElement(`input`);e.type=`text`,e.value=(r=n.textContent)==null?``:r,e.setAttribute(`data-blok-database-column-title-input`,``),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.renameColumn`));let i=()=>{e.size=Math.max(e.value.length,1)};i(),e.addEventListener(`input`,i),e.addEventListener(`change`,()=>{this.options.onRename(t,e.value)}),n.replaceWith(e)}this.appendDeleteButton(e,t)}appendDeleteButton(e,t){let n=document.createElement(`button`);n.setAttribute(`data-blok-database-delete-column`,``),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.deleteColumn`)),n.setAttribute(`data-option-id`,t),n.addEventListener(`click`,()=>{this.options.onDelete(t)}),e.appendChild(n)}makePillTitleEditable(e,t){let n=e.querySelector(`[data-blok-database-column-title]`);n!==null&&(n.style.cursor=`text`,n.addEventListener(`click`,r=>{var i;r.stopPropagation();let a=(i=n.textContent)==null?``:i;lr({target:n,currentValue:a,label:this.i18n.t(`tools.database.renameColumn`),configureInput:e=>{e.setAttribute(`data-blok-database-column-title-input`,``);let t=()=>{e.setAttribute(`size`,String(Math.max(e.value.length,1)))};t(),e.addEventListener(`input`,t)},onInput:e=>{var n,r;(n=(r=this.options).onRenameInput)==null||n.call(r,t,e)},buildRestored:e=>{let t=document.createElement(`div`);return t.setAttribute(`data-blok-database-column-title`,``),t.style.cursor=`text`,t.textContent=e,t},onCommit:n=>{if(this.makePillTitleEditable(e,t),n!==a){var r,i;(r=(i=this.options).onRenameCommit)==null||r.call(i,t,n),this.options.onRename(t,n)}},onCancel:()=>{this.makePillTitleEditable(e,t)}})}))}destroy(){}},yr=10,br=class{constructor(e){this.isDragging=!1,this.rowId=``,this.startY=0,this.ghostEl=null,this.sourceRow=null,this.sourceRowHeight=0,this.ghostOffsetY=0,this.gapTarget=null,this.wrapper=e.wrapper,this.onDrop=e.onDrop,this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this)}beginTracking(e,t,n){this.cleanup(),this.rowId=e,this.startY=n,this.isDragging=!1,this.sourceRow=this.wrapper.querySelector(`[data-row-id="${e}"]`),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerCancel),document.addEventListener(`keydown`,this.boundKeyDown)}cleanup(){var e;document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerCancel),document.removeEventListener(`keydown`,this.boundKeyDown),(e=this.ghostEl)==null||e.remove(),this.ghostEl=null,this.clearGap(),this.sourceRow&&(this.sourceRow.style.opacity=``,this.sourceRow=null),this.isDragging=!1,this.rowId=``,this.sourceRowHeight=0,this.ghostOffsetY=0}destroy(){this.cleanup()}handlePointerMove(e){let t=Math.abs(e.clientY-this.startY);!this.isDragging&&t>yr&&(this.isDragging=!0,this.startActiveDrag(e)),this.isDragging&&(this.updateGhostPosition(e),this.updateDropIndicator(e))}handlePointerUp(e){this.isDragging&&this.commitDrop(e),this.cleanup()}handlePointerCancel(){this.cleanup()}handleKeyDown(e){e.key===`Escape`&&this.cleanup()}startActiveDrag(e){if(this.sourceRow){let e=this.sourceRow.getBoundingClientRect();this.sourceRowHeight=e.height,this.ghostOffsetY=this.startY-e.top,this.sourceRow.style.opacity=`0.4`}this.createGhost(e)}createGhost(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-ghost`,``),t.setAttribute(`contenteditable`,`false`);let n=t.style;if(n.position=`fixed`,n.pointerEvents=`none`,n.opacity=`0.85`,n.zIndex=`50`,n.boxShadow=`0 12px 28px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.1)`,n.borderRadius=`8px`,n.overflow=`hidden`,this.sourceRow){let r=this.sourceRow.cloneNode(!0);r.style.opacity=``,t.appendChild(r);let i=this.sourceRow.getBoundingClientRect();n.left=`${i.left}px`,n.top=`${e.clientY-this.ghostOffsetY}px`,n.width=`${i.width}px`}else n.left=`0px`,n.top=`${e.clientY}px`;document.body.appendChild(t),this.ghostEl=t}updateGhostPosition(e){this.ghostEl&&(this.ghostEl.style.top=`${e.clientY-this.ghostOffsetY}px`)}updateDropIndicator(e){let t=this.getDropPosition(e.clientY).beforeEl;if(t){if(t===this.gapTarget)return;this.clearGap(),t.style.marginTop=`${this.sourceRowHeight}px`,this.gapTarget=t}else this.clearGap()}clearGap(){this.gapTarget&&(this.gapTarget.style.marginTop=``,this.gapTarget=null)}getDropPosition(e){let t=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-list-row]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId);for(let n of t){let t=n.getBoundingClientRect();if(e<t.top+t.height/2)return{beforeEl:n}}return{beforeEl:null}}commitDrop(e){let t=this.getDropPosition(e.clientY),n=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-list-row]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId),r=t.beforeEl?t.beforeEl.getAttribute(`data-row-id`):null,i=t.beforeEl?n.indexOf(t.beforeEl):-1,a=this.resolveAfterRowId(t.beforeEl,n,i);this.onDrop({rowId:this.rowId,beforeRowId:r,afterRowId:a})}resolveAfterRowId(e,t,n){return e?n>0?t[n-1].getAttribute(`data-row-id`):null:t.length>0?t[t.length-1].getAttribute(`data-row-id`):null}},xr=[{type:`text`,icon:o.dn,labelKey:`tools.database.propertyTypeText`},{type:`number`,icon:o.it,labelKey:`tools.database.propertyTypeNumber`},{type:`select`,icon:o.on,labelKey:`tools.database.propertyTypeSelect`},{type:`multiSelect`,icon:o.Lt,labelKey:`tools.database.propertyTypeMultiSelect`},{type:`date`,icon:o.l,labelKey:`tools.database.propertyTypeDate`},{type:`checkbox`,icon:o.Ct,labelKey:`tools.database.propertyTypeCheckbox`},{type:`url`,icon:o.Z,labelKey:`tools.database.propertyTypeUrl`}],Sr=class{constructor(e){this.popoverEl=null,this.boundOutsideClick=null,this.onSelect=e.onSelect,this.i18n=e.i18n}open(e){var t,n;this.close();let r=document.createElement(`div`);r.setAttribute(`data-blok-popover`,``),r.setAttribute(`data-blok-popover-opened`,``),r.setAttribute(`data-blok-database-property-type-popover`,``),r.style.position=`fixed`,r.style.zIndex=`1000`;let i=e.getBoundingClientRect();r.style.top=`${i.bottom+4}px`,r.style.left=`${i.left}px`;let a=document.createElement(`div`);a.setAttribute(`data-blok-database-property-type-heading`,``),a.textContent=(t=(n=this.i18n)==null?void 0:n.t(`tools.database.propertyTypeHeading`))==null?`tools.database.propertyTypeHeading`:t,r.appendChild(a);for(let e of xr){var o,s;let t=document.createElement(`div`);t.setAttribute(`data-blok-database-property-type-option`,e.type);let n=document.createElement(`div`);n.setAttribute(`data-blok-database-property-type-option-icon`,``),n.innerHTML=e.icon,t.appendChild(n);let i=document.createElement(`span`);i.textContent=(o=(s=this.i18n)==null?void 0:s.t(e.labelKey))==null?e.labelKey:o,t.appendChild(i),t.addEventListener(`click`,()=>{this.onSelect(e.type),this.close()}),r.appendChild(t)}document.body.appendChild(r),this.popoverEl=r,this.boundOutsideClick=t=>{let n=t.target;!r.contains(n)&&!e.contains(n)&&this.close()},document.addEventListener(`mousedown`,this.boundOutsideClick)}close(){this.popoverEl!==null&&(this.popoverEl.remove(),this.popoverEl=null),this.boundOutsideClick!==null&&(document.removeEventListener(`mousedown`,this.boundOutsideClick),this.boundOutsideClick=null)}destroy(){this.close()}},Cr=class{constructor(e){this.drawer=null,this.currentRowId=null,this.currentRow=null,this.blokInstance=null,this.escapeHandler=null,this.outsideClickHandler=null,this.propertyTypePopover=null,this.wrapper=e.wrapper,this.readOnly=e.readOnly,this.i18n=e.i18n,this.toolsConfig=e.toolsConfig,this.titlePropertyId=e.titlePropertyId,this.descriptionPropertyId=e.descriptionPropertyId,this.schema=e.schema,this.onTitleChange=e.onTitleChange,this.onDescriptionChange=e.onDescriptionChange,this.onClose=e.onClose,this.onAddProperty=e.onAddProperty}get isOpen(){return this.drawer!==null}open(e){var t,n,r,i,a,s,c;if(this.drawer){if(e.id===this.currentRowId)return;this.loadCard(e);return}let l=this.wrapper.querySelector(`[data-blok-database-drawer]`);l==null||l.remove(),this.currentRowId=e.id,this.currentRow=e,this.updateActiveCard(e.id);let u=(t=e.properties[this.titlePropertyId])==null?``:t,d=document.createElement(`div`);d.setAttribute(`data-blok-database-drawer`,``),d.setAttribute(`role`,`complementary`),d.setAttribute(`aria-label`,(n=(r=this.i18n)==null?void 0:r.t(`tools.database.cardDetails`))==null?`tools.database.cardDetails`:n);let f=document.createElement(`div`);f.setAttribute(`data-blok-database-drawer-toolbar`,``);let p=document.createElement(`button`);p.setAttribute(`data-blok-database-drawer-close`,``),p.setAttribute(`aria-label`,`Close`),p.innerHTML=o._+o._,p.addEventListener(`click`,()=>{this.close()}),f.appendChild(p),d.appendChild(f);let m=document.createElement(`div`);m.setAttribute(`data-blok-database-drawer-content`,``);let h=document.createElement(`textarea`);h.setAttribute(`data-blok-database-drawer-title`,``),h.setAttribute(`aria-label`,(i=(a=this.i18n)==null?void 0:a.t(`tools.database.cardTitle`))==null?`tools.database.cardTitle`:i),h.placeholder=(s=(c=this.i18n)==null?void 0:c.t(`tools.database.cardTitlePlaceholder`))==null?`Empty page`:s,h.value=u,h.rows=1,h.readOnly=this.readOnly,h.addEventListener(`input`,()=>{this.currentRowId!==null&&this.onTitleChange(this.currentRowId,h.value),this.autoResizeTitle(h)}),h.addEventListener(`keydown`,e=>{e.key===`Enter`&&e.preventDefault()}),m.appendChild(h);let g=this.getRenderableSchema();m.appendChild(this.buildPropsSection(g,e));let _=document.createElement(`hr`);m.appendChild(_);let v=document.createElement(`div`);v.setAttribute(`data-blok-database-drawer-editor`,``),m.appendChild(v),d.appendChild(m),this.wrapper.appendChild(d),this.drawer=d,requestAnimationFrame(()=>{d.style.width=`45%`,d.addEventListener(`transitionend`,()=>{this.autoResizeTitle(h),u||h.focus()},{once:!0})}),this.initNestedEditor(v,e),this.escapeHandler=e=>{if(e.key!==`Escape`)return;let t=e.target;t&&v.contains(t)||this.close()},document.addEventListener(`keydown`,this.escapeHandler),this.outsideClickHandler=e=>{let t=e.target;t&&d.contains(t)||t instanceof Element&&t.closest(`[data-blok-popover-opened]`)!==null||t instanceof Element&&t.closest(`[data-blok-database-tab-bar]`)!==null||this.close()},document.addEventListener(`mousedown`,this.outsideClickHandler),h.focus()}loadCard(e){var t,n,r;if(this.drawer===null)return;this.cleanupEditor(),this.currentRowId=e.id,this.currentRow=e,this.updateActiveCard(e.id);let i=(t=e.properties[this.titlePropertyId])==null?``:t,a=this.drawer.querySelector(`[data-blok-database-drawer-title]`);a!==null&&(a.value=i,this.autoResizeTitle(a),i||a.focus()),(n=this.drawer.querySelector(`[data-blok-database-drawer-props]`))==null||n.remove();let o=this.getRenderableSchema(),s=this.drawer.querySelector(`[data-blok-database-drawer-content]`),c=(r=s==null?void 0:s.querySelector(`hr`))==null?null:r;s!==null&&s.insertBefore(this.buildPropsSection(o,e),c);let l=this.drawer.querySelector(`[data-blok-database-drawer-editor]`);l!==null&&(l.innerHTML=``,this.initNestedEditor(l,e))}close(){let e=this.drawer!==null;if(this.updateActiveCard(null),this.cleanupListeners(),this.cleanupEditor(),this.drawer){let e=this.drawer;this.drawer=null,e.style.width=`0px`,e.addEventListener(`transitionend`,()=>{e.remove()},{once:!0})}this.currentRowId=null,this.currentRow=null,e&&this.onClose()}destroy(){var e;this.cleanupListeners(),this.cleanupEditor(),(e=this.propertyTypePopover)==null||e.destroy(),this.propertyTypePopover=null,this.drawer&&(this.drawer.remove(),this.drawer=null);let t=this.wrapper.querySelector(`[data-blok-database-drawer]`);t==null||t.remove(),this.currentRowId=null,this.currentRow=null}refreshSchema(e){var t,n;if(this.schema=e,this.drawer===null||this.currentRow===null)return;(t=this.drawer.querySelector(`[data-blok-database-drawer-props]`))==null||t.remove();let r=this.getRenderableSchema(),i=this.drawer.querySelector(`[data-blok-database-drawer-content]`),a=(n=i==null?void 0:i.querySelector(`hr`))==null?null:n;i!==null&&i.insertBefore(this.buildPropsSection(r,this.currentRow),a)}buildPropsSection(e,t){let n=document.createElement(`div`);n.setAttribute(`data-blok-database-drawer-props`,``);for(let i of e){var r;n.appendChild(this.createPropertyRow(i,(r=t.properties[i.id])==null?null:r))}if(!this.readOnly){let e=document.createElement(`button`);e.setAttribute(`data-blok-database-drawer-add-prop`,``),e.textContent=`+ Add a property`,e.addEventListener(`click`,()=>{this.propertyTypePopover===null&&(this.propertyTypePopover=new Sr({onSelect:e=>{var t,n;(t=this.onAddProperty)==null||t.call(this,e),(n=this.propertyTypePopover)==null||n.close()},i18n:this.i18n})),this.propertyTypePopover.open(e)}),n.appendChild(e)}return n}getRenderableSchema(){return[...this.schema].filter(e=>e.type!==`title`&&e.type!==`richText`).sort((e,t)=>e.position<t.position?-1:+(e.position>t.position))}createSelectPill(e){let t=document.createElement(`span`);if(t.setAttribute(`data-blok-database-drawer-prop-pill`,``),e.color!==void 0){t.style.backgroundColor=`var(--blok-color-${e.color}-bg)`,t.style.color=`var(--blok-color-${e.color}-text)`;let n=document.createElement(`span`);n.setAttribute(`data-blok-database-drawer-prop-dot`,``),n.style.backgroundColor=`var(--blok-color-${e.color}-text)`,t.appendChild(n)}let n=document.createElement(`span`);return n.textContent=e.label,t.appendChild(n),t}createPropertyRow(e,t){let n=document.createElement(`div`);n.setAttribute(`data-blok-database-drawer-prop-row`,``);let r=document.createElement(`span`);r.setAttribute(`data-blok-database-drawer-prop-label`,``),r.textContent=e.name,n.appendChild(r);let i=document.createElement(`span`);if(i.setAttribute(`data-blok-database-drawer-prop-value`,``),e.type===`select`){let n=e.config,r=typeof t==`string`?t:null,a=n==null?void 0:n.options.find(e=>e.id===r);a!==void 0&&i.appendChild(this.createSelectPill(a))}else if(e.type===`multiSelect`){let n=e.config;(Array.isArray(t)?t:[]).map(e=>n==null?void 0:n.options.find(t=>t.id===e)).filter(e=>e!==void 0).forEach(e=>i.appendChild(this.createSelectPill(e)))}else (typeof t==`string`||typeof t==`number`||typeof t==`boolean`)&&(i.textContent=String(t));return n.appendChild(i),n}updateActiveCard(e){let t=this.wrapper.querySelector(`[data-blok-database-card-active]`);if(t==null||t.removeAttribute(`data-blok-database-card-active`),e!==null){let t=this.wrapper.querySelector(`[data-blok-database-card][data-row-id="${e}"]`);t==null||t.setAttribute(`data-blok-database-card-active`,``)}}cleanupListeners(){this.escapeHandler&&(document.removeEventListener(`keydown`,this.escapeHandler),this.escapeHandler=null),this.outsideClickHandler&&(document.removeEventListener(`mousedown`,this.outsideClickHandler),this.outsideClickHandler=null)}cleanupEditor(){if(this.blokInstance){try{let e=this.blokInstance,t=this.currentRowId;e.save().then(n=>{t!==null&&this.onDescriptionChange(t,n),e.destroy()}).catch(()=>{e.destroy()})}catch(e){}this.blokInstance=null}}autoResizeTitle(e){let{style:t}=e;t.height=`auto`,e.scrollHeight>0&&(t.height=`${e.scrollHeight}px`)}initNestedEditor(e,t){var r=this;Promise.resolve().then(()=>require(`../blok.cjs`)).then(({Blok:i})=>{let a=t.id,o=this.descriptionPropertyId===void 0?void 0:t.properties[this.descriptionPropertyId],s=new i(n.t(n.t({},this.toolsConfig),{},{holder:e,data:o,readOnly:this.readOnly,onChange:async()=>{try{var e;let t=await((e=r.blokInstance)==null?void 0:e.save());t!==void 0&&r.onDescriptionChange(a,t)}catch(e){}}}));this.blokInstance=s}).catch(()=>{})}},wr=class{constructor(e){this.boundKeydown=null,this.wrapper=e.wrapper,this.onEscape=e.onEscape}attach(){this.boundKeydown=e=>{e.key===`Escape`&&this.onEscape()&&e.stopPropagation()},this.wrapper.addEventListener(`keydown`,this.boundKeydown)}destroy(){this.boundKeydown&&(this.wrapper.removeEventListener(`keydown`,this.boundKeydown),this.boundKeydown=null)}},Tr=[{type:`board`,icon:o.o,labelKey:`tools.database.viewTypeBoard`,descriptionKey:`tools.database.viewTypeBoardDescription`},{type:`list`,icon:o.xt,labelKey:`tools.database.viewTypeList`,descriptionKey:`tools.database.viewTypeListDescription`}],Er=class{constructor(e){this.popover=null,this.onSelect=e.onSelect,this.onClose=e.onClose,this.api=e.api}translate(e,t){var n,r;return(n=(r=this.api)==null?void 0:r.i18n.t(e))==null?t:n}open(e){this.close();let n=document.createElement(`div`);n.setAttribute(`data-blok-database-view-popover-heading`,``),n.textContent=this.translate(`tools.database.addView`,[`Add`,`view`].join(` `));let r=[{type:t.hr.Html,element:n},...Tr.map(e=>{let n=this.createViewItem(e);return{type:t.hr.Html,element:n,closeOnActivate:!0}})];this.popover=new t._t({items:r,trigger:e,width:`auto`,minWidth:`200px`,flippable:!1,autoFocusFirstItem:!1}),this.popover.on(t.xt.Closed,()=>{if(this.popover!==null){var e;let t=this.popover;this.popover=null,t.destroy(),(e=this.onClose)==null||e.call(this)}}),this.popover.show()}createViewItem(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-view-option`,e.type);let n=document.createElement(`div`);n.setAttribute(`data-blok-database-view-option-icon`,``),n.innerHTML=e.icon,t.appendChild(n);let r=document.createElement(`div`);r.setAttribute(`data-blok-database-view-option-text`,``);let i=document.createElement(`span`);i.setAttribute(`data-blok-database-view-option-label`,``),i.textContent=this.translate(e.labelKey,``),r.appendChild(i);let a=document.createElement(`span`);return a.setAttribute(`data-blok-database-view-option-desc`,``),a.textContent=this.translate(e.descriptionKey,``),r.appendChild(a),t.appendChild(r),t.addEventListener(`click`,()=>{this.onSelect(e.type)}),t}close(){if(this.popover!==null){var e;let t=this.popover;this.popover=null,t.destroy(),(e=this.onClose)==null||e.call(this)}}destroy(){this.close()}},Dr=10,Or={board:o.o,list:o.xt},kr=class{constructor(e){var t;this.element=null,this.barEl=null,this.addBtnEl=null,this.viewPopover=null,this.contextPopover=null,this.overflowDropdownEl=null,this.boundOverflowClose=null,this.moreBtnEl=null,this.isDragging=!1,this.dragViewId=``,this.dragStartX=0,this.ghostEl=null,this.options=e,this.views=e.views,this.onReorder=e.onReorder,this.readOnly=(t=e.readOnly)==null?!1:t,this.boundDragMove=this.handleDragMove.bind(this),this.boundDragUp=this.handleDragUp.bind(this),this.boundDragCancel=this.cleanupDrag.bind(this),this.boundDragKeyDown=e=>{e.key===`Escape`&&this.cleanupDrag()}}render(){let e=document.createElement(`div`);e.setAttribute(`data-blok-database-tab-bar`,``),this.barEl=e,this.element=e;let t=[...this.options.views].sort((e,t)=>e.position<t.position?-1:1);for(let n of t)e.appendChild(this.createTab(n));let n=document.createElement(`button`);return n.setAttribute(`data-blok-database-add-view`,``),n.innerHTML=o.en,n.addEventListener(`click`,()=>{this.openViewPopover(n)}),this.addBtnEl=n,this.readOnly||e.appendChild(n),e.addEventListener(`click`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(!(t instanceof HTMLElement))return;let n=t.getAttribute(`data-view-id`);n!==null&&(t.hasAttribute(`data-active`)||this.options.onTabClick(n))}),e.addEventListener(`contextmenu`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(!(t instanceof HTMLElement))return;e.preventDefault();let n=t.getAttribute(`data-view-id`);n!==null&&this.openContextPopover(t,n)}),e.addEventListener(`dblclick`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(!(t instanceof HTMLElement))return;let n=t.getAttribute(`data-view-id`);n!==null&&this.openContextPopover(t,n)}),e.addEventListener(`pointerdown`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(t===null)return;let n=t.getAttribute(`data-view-id`);n!==null&&(this.dragViewId=n,this.dragStartX=e.clientX,this.isDragging=!1,document.addEventListener(`pointermove`,this.boundDragMove),document.addEventListener(`pointerup`,this.boundDragUp),document.addEventListener(`pointercancel`,this.boundDragCancel),document.addEventListener(`keydown`,this.boundDragKeyDown))}),typeof ResizeObserver<`u`&&new ResizeObserver(()=>{var e;if(this.element===null)return;let t=Array.from(this.element.querySelectorAll(`[data-blok-database-tab]`));for(let e of t)e.style.display=``;(e=this.moreBtnEl)==null||e.remove(),this.moreBtnEl=null;let n=this.element.clientWidth,r=t.findIndex((e,r)=>40+t.slice(0,r+1).reduce((e,t)=>e+t.offsetWidth+2,0)>n),i=r===-1?t.length:r;i<t.length&&this.handleOverflow(i)}).observe(e),e}createTab(e){var t;let n=document.createElement(`div`);n.setAttribute(`data-blok-database-tab`,``),n.setAttribute(`data-view-id`,e.id),e.id===this.options.activeViewId&&n.setAttribute(`data-active`,``);let r=document.createElement(`span`);r.innerHTML=(t=Or[e.type])==null?``:t,n.appendChild(r);let i=document.createElement(`span`);return i.setAttribute(`data-blok-database-tab-name`,``),i.textContent=e.name,n.appendChild(i),n}openContextPopover(e,n){this.closeContextPopover();let r=this.options.views.length>1,i=(e,t)=>{var n,r;return(n=(r=this.options.api)==null?void 0:r.i18n.t(e))==null?t:n},a=[{icon:o.Bt,title:i(`tools.database.renameView`,`Rename`),closeOnActivate:!0,onActivate:()=>{this.startTabRename(e,n)}},{icon:o.w,title:i(`tools.database.duplicateView`,`Duplicate`),closeOnActivate:!0,onActivate:()=>{this.options.onDuplicate(n)}}],s=r?[{type:t.hr.Separator},{icon:o.gn,title:i(`tools.database.deleteView`,`Delete`),isDestructive:!0,closeOnActivate:!0,onActivate:()=>{this.options.onDelete(n)}}]:[];this.contextPopover=new t._t({trigger:e,width:`auto`,minWidth:`160px`,autoFocusFirstItem:!1,items:[...a,...s]}),this.contextPopover.on(t.xt.Closed,()=>{if(this.contextPopover!==null){let e=this.contextPopover;this.contextPopover=null,e.destroy()}}),this.contextPopover.show()}closeContextPopover(){if(this.contextPopover!==null){let e=this.contextPopover;this.contextPopover=null,e.destroy()}}startTabRename(e,t){var n,r,i;let a=e.querySelector(`[data-blok-database-tab-name]`);if(!(a instanceof HTMLElement))return;let o=(n=a.textContent)==null?``:n;lr({target:a,currentValue:o,label:(r=(i=this.options.api)==null?void 0:i.i18n.t(`tools.database.renameView`))==null?`Rename`:r,configureInput:e=>{e.setAttribute(`data-blok-database-tab-rename-input`,``)},buildRestored:e=>{let t=document.createElement(`span`);return t.setAttribute(`data-blok-database-tab-name`,``),t.textContent=e,t},onCommit:e=>{e!==o&&this.options.onRename(t,e)}})}openViewPopover(e){var t;this.viewPopover!==null&&this.viewPopover.destroy(),e.setAttribute(`data-popover-open`,``),(t=this.barEl)==null||t.setAttribute(`data-popover-open`,``),this.viewPopover=new Er({onSelect:e=>{this.options.onAddView(e)},onClose:()=>{var t;e.removeAttribute(`data-popover-open`),(t=this.barEl)==null||t.removeAttribute(`data-popover-open`)},api:this.options.api}),this.viewPopover.open(e)}handleOverflow(e){var t;if(this.element===null)return;(t=this.moreBtnEl)==null||t.remove();let n=[...this.views].sort((e,t)=>e.position<t.position?-1:1).length-e;if(n<=0)return;let r=Array.from(this.element.querySelectorAll(`[data-blok-database-tab]`));for(let t of r.slice(e))t.style.display=`none`;let i=document.createElement(`div`);i.setAttribute(`data-blok-database-tab-more`,``),i.textContent=`${n} more...`,i.style.cursor=`pointer`,i.addEventListener(`click`,()=>{this.openOverflowDropdown(i)});let a=this.element.querySelector(`[data-blok-database-add-view]`);a===null?this.element.appendChild(i):this.element.insertBefore(i,a),this.moreBtnEl=i}openOverflowDropdown(e){var t;this.closeOverflowDropdown();let n=document.createElement(`div`);n.setAttribute(`data-blok-popover`,``),n.setAttribute(`data-blok-database-tab-overflow-dropdown`,``),n.style.position=`fixed`,n.style.zIndex=`1000`;let r=e.getBoundingClientRect();n.style.top=`${r.bottom+4}px`,n.style.left=`${r.left}px`;let i=[...this.views].sort((e,t)=>e.position<t.position?-1:1);for(let e of i){var a;let t=document.createElement(`div`);t.setAttribute(`data-blok-database-tab-overflow-item`,``),t.setAttribute(`data-view-id`,e.id),e.id===this.options.activeViewId&&t.setAttribute(`data-active`,``);let r=document.createElement(`span`);r.innerHTML=(a=Or[e.type])==null?``:a,t.appendChild(r);let i=document.createElement(`span`);i.textContent=e.name,t.appendChild(i),t.addEventListener(`click`,()=>{e.id!==this.options.activeViewId&&this.options.onTabClick(e.id),this.closeOverflowDropdown()}),n.appendChild(t)}let o=document.createElement(`div`);o.setAttribute(`data-blok-database-tab-overflow-separator`,``),n.appendChild(o);let s=(t=this.element)==null?void 0:t.querySelector(`[data-blok-database-add-view]`),c=document.createElement(`div`);c.setAttribute(`data-blok-database-tab-overflow-new`,``),c.textContent=`+ New view`,c.addEventListener(`click`,()=>{this.closeOverflowDropdown(),s!=null&&this.openViewPopover(s)}),n.appendChild(c),document.body.appendChild(n),this.overflowDropdownEl=n,this.boundOverflowClose=t=>{let r=t.target;!n.contains(r)&&!e.contains(r)&&this.closeOverflowDropdown()},document.addEventListener(`mousedown`,this.boundOverflowClose)}closeOverflowDropdown(){this.overflowDropdownEl!==null&&(this.overflowDropdownEl.remove(),this.overflowDropdownEl=null),this.boundOverflowClose!==null&&(document.removeEventListener(`mousedown`,this.boundOverflowClose),this.boundOverflowClose=null)}handleDragMove(e){let t=Math.abs(e.clientX-this.dragStartX);if(!(!this.isDragging&&t<Dr)){if(!this.isDragging){var n,r;this.isDragging=!0,(n=this.element)==null||n.setAttribute(`data-dragging`,``);let e=(r=this.element)==null?void 0:r.querySelector(`[data-view-id="${this.dragViewId}"]`);if(e!==null){this.ghostEl=e.cloneNode(!0),this.ghostEl.setAttribute(`data-blok-database-tab-ghost`,``),this.ghostEl.style.position=`fixed`,this.ghostEl.style.pointerEvents=`none`,this.ghostEl.style.zIndex=`50`,this.ghostEl.style.opacity=`0.7`;let t=e.getBoundingClientRect();this.ghostEl.style.top=`${t.top}px`,this.ghostEl.style.width=`${t.width}px`,document.body.appendChild(this.ghostEl),e.style.opacity=`0.4`}}this.ghostEl!==null&&(this.ghostEl.style.left=`${e.clientX-50}px`)}}handleDragUp(e){var t,n,r,i;if(!this.isDragging){this.removeDragListeners();return}let a=Array.from((t=(n=this.element)==null?void 0:n.querySelectorAll(`[data-blok-database-tab]`))==null?[]:t).filter(e=>e.getAttribute(`data-view-id`)!==this.dragViewId),o=a.findIndex(t=>{let n=t.getBoundingClientRect();return e.clientX<(n.left+n.right)/2}),s=o>=0?a[o].getAttribute(`data-view-id`):null,c=o>0?a[o-1].getAttribute(`data-view-id`):o===-1&&a.length>0?a[a.length-1].getAttribute(`data-view-id`):null,l=[...this.views].sort((e,t)=>e.position<t.position?-1:1),u=s===null?null:l.find(e=>e.id===s),d=c===null?null:l.find(e=>e.id===c),f=ir((r=d==null?void 0:d.position)==null?null:r,(i=u==null?void 0:u.position)==null?null:i);this.cleanupDrag(),this.onReorder(this.dragViewId,f)}cleanupDrag(){var e,t;this.ghostEl!==null&&(this.ghostEl.remove(),this.ghostEl=null),(e=this.element)==null||e.removeAttribute(`data-dragging`);let n=(t=this.element)==null?void 0:t.querySelector(`[data-view-id="${this.dragViewId}"]`);n!==null&&(n.style.opacity=``),this.isDragging=!1,this.removeDragListeners()}removeDragListeners(){document.removeEventListener(`pointermove`,this.boundDragMove),document.removeEventListener(`pointerup`,this.boundDragUp),document.removeEventListener(`pointercancel`,this.boundDragCancel),document.removeEventListener(`keydown`,this.boundDragKeyDown)}setReadOnly(e){this.readOnly!==e&&(this.readOnly=e,!(this.barEl===null||this.addBtnEl===null)&&(e?this.addBtnEl.remove():this.addBtnEl.isConnected||this.barEl.appendChild(this.addBtnEl)))}destroy(){this.cleanupDrag(),this.closeContextPopover(),this.closeOverflowDropdown(),this.viewPopover!==null&&(this.viewPopover.destroy(),this.viewPopover=null)}getAddBtnEl(){return this.addBtnEl}},Ar=class{constructor({data:e,config:t,api:n,block:r,readOnly:i}){var a,o;this.element=null,this.titleElement=null,this.titleRowElement=null,this.boardContainer=null,this.tabBar=null,this.cardDrag=null,this.columnDrag=null,this.columnControls=null,this.listRowDrag=null,this.cardDrawer=null,this.keyboard=null,this.cardMenuPopover=null,this.api=n,this.block=r,this.readOnly=i,this.config=t==null?{}:t,this.title=(a=e==null?void 0:e.title)==null?``:a,this.model=new or(e);let s=this.model.getViews();this.activeViewId=(o=e==null?void 0:e.activeViewId)==null?s.length>0?s[0].id:``:o,this.activateView(this.activeViewId)}static get toolbox(){return[{icon:o.O,titleKey:`database`,name:`database`,searchTerms:[`database`,`kanban`,`board`,`cards`,`columns`]},{icon:o.o,titleKey:`board`,name:`board`,searchTerms:[`board`,`kanban`,`cards`,`columns`,`database`]}]}static get isReadOnlySupported(){return!0}render(){let e=document.createElement(`div`);e.setAttribute(`data-blok-tool`,`database`),e.setAttribute(`data-blok-database-wrapper`,``),e.style.display=`flex`,e.style.flexDirection=`column`,this.element=e;let t=this.createTitleElement();this.titleElement=t;let n=document.createElement(`div`);n.setAttribute(`data-blok-database-title-row`,``),n.appendChild(t),this.titleRowElement=n,e.appendChild(n),this.tabBar=this.createTabBar(),e.appendChild(this.tabBar.render()),this.syncTitleRowAddBtn();let r=document.createElement(`div`);r.setAttribute(`data-blok-database-board-container`,``),r.style.overflow=`hidden`,r.style.position=`relative`,this.boardContainer=r,e.appendChild(r),this.syncRowsFromBlocks();let i=this.renderActiveView();return r.appendChild(i),this.readOnly||(this.attachViewListeners(i),this.initSubsystems(i)),e}createTitleElement(){let e=document.createElement(`div`);return e.setAttribute(`data-blok-database-title`,``),e.textContent=this.title,e.style.fontSize=`1.5rem`,e.style.fontWeight=`600`,e.style.lineHeight=`1.3`,e.style.color=`var(--blok-text-primary)`,e.style.outline=`none`,e.style.cursor=`text`,e.style.wordBreak=`break-word`,e.className=t.Qn(`always`).join(` `),t.er(e,`New database`),this.readOnly||(e.setAttribute(`contenteditable`,`true`),e.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===`Tab`)&&(t.preventDefault(),e.blur())})),e}rendered(){this.block.stretched=!0;let e=this.model.getOrderedRows().length>0;this.syncRowsFromBlocks(),!e&&this.model.getOrderedRows().length>0&&this.rerenderView(),this.config.adapter!==void 0&&this.loadFromBackend()}async loadFromBackend(){var e=this;let t=await e.sync.syncLoadDatabase();if(t===void 0)return;e.model.hydrate(t);let n=e.model.getViews();n.length>0&&!n.some(t=>t.id===e.activeViewId)&&(e.activeViewId=n[0].id),e.rerenderView()}save(e){var t,r;let i=(t=(r=this.titleElement)==null?void 0:r.textContent)==null?this.title:t;return n.t(n.t({},this.model.snapshot()),{},{title:i,activeViewId:this.activeViewId})}validate(e){var t,n,r,i;let a=((t=(n=e.schema)==null?void 0:n.filter(e=>e.type===`title`).length)==null?0:t)===1,o=e.views!==void 0&&e.views.length>0,s=(r=(i=e.views)==null?void 0:i.filter(e=>e.type===`board`).every(e=>e.groupBy!==void 0))==null?!0:r;return a&&o&&s}destroy(){var e,t,n,r,i,a,o;(e=this.cardDrag)==null||e.destroy(),(t=this.columnDrag)==null||t.destroy(),(n=this.columnControls)==null||n.destroy(),(r=this.listRowDrag)==null||r.destroy(),this.listRowDrag=null,(i=this.cardDrawer)==null||i.destroy(),(a=this.keyboard)==null||a.destroy(),(o=this.tabBar)==null||o.destroy(),this.sync.flushPendingUpdates(),this.sync.flushPendingPropertyUpdates(),this.sync.destroy(),this.element=null,this.boardContainer=null,this.tabBar=null}setReadOnly(e){var t;this.readOnly!==e&&(this.readOnly=e,this.titleElement!==null&&this.titleElement.setAttribute(`contenteditable`,e?`false`:`true`),(t=this.tabBar)==null||t.setReadOnly(e),this.syncTitleRowAddBtn(),this.rerenderView())}getToolbarAnchorElement(){var e;return(e=this.titleElement)==null?void 0:e}syncRowsFromBlocks(){let e=this.api.blocks.getChildren(this.block.id).filter(e=>e.name===`database-row`).map(e=>{var t,n,r,i;return{id:e.id,position:(t=(n=e.preservedData)==null?void 0:n.position)==null?``:t,properties:(r=(i=e.preservedData)==null?void 0:i.properties)==null?{}:r}});this.model.setRows(e)}deleteRowBlock(e){let t=this.api.blocks.getBlockIndex(e);t!==void 0&&this.api.blocks.delete(t),this.syncRowsFromBlocks()}updateRowBlock(e,t){let n=this.api.blocks.getChildren(this.block.id).find(t=>t.id===e);n!==void 0&&(n.call(`updateProperties`,t),n.dispatchChange()),this.syncRowsFromBlocks()}moveRowBlock(e,t){let n=this.api.blocks.getChildren(this.block.id).find(t=>t.id===e);n!==void 0&&(n.call(`updatePosition`,{position:t}),n.dispatchChange()),this.syncRowsFromBlocks()}activateView(e){this.model.getView(e)!==void 0&&(this.activeViewId=e,this.sync=new pr(this.config.adapter,e=>{let t=String(e).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`);this.api.notifier.show({message:t,style:`error`})}))}switchView(e){var t,n,r,i,a;if(e===this.activeViewId||this.boardContainer===null)return;(t=this.cardDrag)==null||t.destroy(),(n=this.columnDrag)==null||n.destroy(),(r=this.columnControls)==null||r.destroy(),(i=this.listRowDrag)==null||i.destroy(),(a=this.keyboard)==null||a.destroy(),this.cardDrag=null,this.columnDrag=null,this.columnControls=null,this.listRowDrag=null,this.keyboard=null,this.sync.flushPendingUpdates(),this.sync.flushPendingPropertyUpdates(),this.sync.destroy(),this.activateView(e),this.boardContainer.innerHTML=``,this.syncRowsFromBlocks();let o=this.renderActiveView();this.boardContainer.appendChild(o),this.readOnly||(this.attachViewListeners(o),this.initSubsystems(o)),this.rebuildTabBar()}addView(e){let t=this.model.getSchema().find(e=>e.type===`select`),n=e===`list`?`List`:`Board`,r=this.model.addView(n,e,{groupBy:e===`board`?t==null?void 0:t.id:void 0});this.sync.syncCreateView({id:r.id,name:r.name,type:r.type,position:r.position,groupBy:r.groupBy}),this.switchView(r.id)}renameView(e,t){this.model.updateView(e,{name:t}),this.sync.syncUpdateView({viewId:e,changes:{name:t}})}duplicateView(e){let t=this.model.getView(e);if(t===void 0)return;let n=this.model.addView(t.name,t.type,{groupBy:t.groupBy,sorts:[...t.sorts],filters:[...t.filters],visibleProperties:[...t.visibleProperties]});this.sync.syncCreateView({id:n.id,name:n.name,type:n.type,position:n.position,groupBy:n.groupBy}),this.switchView(n.id)}deleteView(e){let t=this.model.getViews();if(t.length<=1)return;let n=t.findIndex(t=>t.id===e);if(n===-1)return;let r=e===this.activeViewId;if(this.model.deleteView(e),this.sync.syncDeleteView({viewId:e}),r){let e=this.model.getViews(),t=Math.min(n,e.length-1);this.switchView(e[t].id)}else this.rebuildTabBar()}reorderView(e,t){this.model.updateView(e,{position:t}),this.sync.syncUpdateView({viewId:e,changes:{position:t}}),this.rebuildTabBar()}rebuildTabBar(){if(this.element===null||this.tabBar===null)return;let e=this.element.querySelector(`[data-blok-database-tab-bar]`);this.tabBar.destroy(),this.tabBar=this.createTabBar();let t=this.tabBar.render();e===null?this.element.insertBefore(t,this.boardContainer):e.replaceWith(t),this.syncTitleRowAddBtn()}syncTitleRowAddBtn(){if(this.element===null||this.titleRowElement===null||this.tabBar===null)return;let e=this.element.querySelector(`[data-blok-database-tab-bar]`),t=this.model.getViews(),n=this.tabBar.getAddBtnEl();t.length===1&&!this.readOnly&&n!==null?(this.titleRowElement.appendChild(n),this.titleRowElement.setAttribute(`data-single-view`,``),e instanceof HTMLElement&&(e.style.display=`none`)):(this.titleRowElement.removeAttribute(`data-single-view`),this.titleRowElement.querySelectorAll(`[data-blok-database-add-view]`).forEach(e=>{e.remove()}),!this.readOnly&&n!==null&&e!==null&&!e.contains(n)&&e.appendChild(n),e instanceof HTMLElement&&(e.style.display=t.length>=2?``:`none`))}createTabBar(){return new kr({views:this.model.getViews(),activeViewId:this.activeViewId,onTabClick:e=>this.switchView(e),onAddView:e=>this.addView(e),onRename:(e,t)=>this.renameView(e,t),onDuplicate:e=>this.duplicateView(e),onDelete:e=>this.deleteView(e),onReorder:(e,t)=>this.reorderView(e,t),readOnly:this.readOnly})}renderActiveView(){var e;let t=this.model.getView(this.activeViewId),n=this.model.getSchema().find(e=>e.type===`title`),r=(e=n==null?void 0:n.id)==null?``:e,i=t==null?void 0:t.groupBy;return(t==null?void 0:t.type)===`list`?this.renderListView(r,i,t):this.renderBoardView(r,i)}renderBoardView(e,t){let n=t===void 0?[]:this.model.getSelectOptions(t),r=t===void 0?new Map:this.model.getRowsGroupedBy(t);return this.view=new ur({readOnly:this.readOnly,i18n:this.api.i18n,options:n,getRows:e=>{var t;return(t=r.get(e))==null?[]:t},titlePropertyId:e,onTitleEdit:(e,t)=>{var n;let r=this.model.getSchema().find(e=>e.type===`title`),i=(n=r==null?void 0:r.id)==null?``:n;this.updateRowBlock(e,{[i]:t}),this.sync.syncUpdateRow({rowId:e,properties:{[i]:t}})}}),this.view.createView()}renderListView(e,t,n){let r=this.model.getSchema();if(t!==void 0){let i=this.model.getSelectOptions(t),a=this.model.getRowsGroupedBy(t);this.view=new dr({readOnly:this.readOnly,i18n:this.api.i18n,rows:[],titlePropertyId:e,schema:r,visiblePropertyIds:n.visibleProperties,options:i,getRows:e=>{var t;return(t=a.get(e))==null?[]:t}})}else this.view=new dr({readOnly:this.readOnly,i18n:this.api.i18n,rows:this.model.getOrderedRows(),titlePropertyId:e,schema:r,visiblePropertyIds:n.visibleProperties});return this.view.createView()}attachViewListeners(e){e.addEventListener(`click`,t=>{let n=t.target,r=n.closest(`[data-blok-database-add-card]`);if(r!==null){let t=r.getAttribute(`data-option-id`);t!==null&&this.handleAddRow(t,e);return}if(n.closest(`[data-blok-database-add-column]`)!==null){this.handleAddColumn(e);return}let i=n.closest(`[data-blok-database-card-menu]`);if(i instanceof HTMLElement){let n=i.getAttribute(`data-row-id`),r=i.closest(`[data-blok-database-card]`);n!==null&&r instanceof HTMLElement&&(t.stopPropagation(),this.openCardMenu(i,r,n,e));return}let a=n.closest(`[data-blok-database-add-row]`);if(a!==null){let t=a.getAttribute(`data-option-id`);this.handleAddListRow(t,e);return}let o=n.closest(`[data-blok-database-delete-row]`);if(o!==null){let n=o.getAttribute(`data-row-id`);n!==null&&(t.stopPropagation(),this.deleteRowBlock(n),this.view.removeRow(e,n),this.sync.syncDeleteRow({rowId:n}));return}let s=n.closest(`[data-blok-database-list-row]`);if(s!==null){let e=s.getAttribute(`data-row-id`);e!==null&&this.handleRowClick(e);return}let c=n.closest(`[data-blok-database-card]`);if(c!==null){let e=c.getAttribute(`data-row-id`);e!==null&&this.handleRowClick(e)}})}openCardMenu(e,n,r,i){n.setAttribute(`data-popover-open`,``),this.cardMenuPopover=new t._t({trigger:e,width:`auto`,minWidth:`140px`,autoFocusFirstItem:!1,items:[{type:t.hr.Default,title:this.api.i18n.t(`tools.database.deleteCard`),icon:o.gn,onActivate:()=>{this.deleteRowBlock(r),this.view.removeRow(i,r),this.sync.syncDeleteRow({rowId:r})}}]}),this.cardMenuPopover.on(t.xt.Closed,()=>{if(n.removeAttribute(`data-popover-open`),this.cardMenuPopover!==null){let e=this.cardMenuPopover;this.cardMenuPopover=null,e.destroy()}}),this.cardMenuPopover.show()}handleAddListRow(e,t){var n,r;let i=this.model.getSchema().find(e=>e.type===`title`),a=(n=i==null?void 0:i.id)==null?``:n,o=this.model.getView(this.activeViewId),s=o==null?void 0:o.groupBy,c={[a]:``};s!==void 0&&e!==null&&(c[s]=e);let l=this.model.createRowData(c),u=(r=this.api.blocks.getBlockIndex(this.block.id))==null?0:r;this.api.blocks.insert(`database-row`,{properties:l.properties,position:l.position},{},u+1,!1,!1,l.id),this.api.blocks.setBlockParent(l.id,this.block.id),this.syncRowsFromBlocks(),this.view.appendRow(t,l),this.sync.syncCreateRow({id:l.id,properties:l.properties,position:l.position})}handleAddRow(e,t){var n,r;let i=this.model.getView(this.activeViewId),a=i==null?void 0:i.groupBy;if(a===void 0)return;let o=this.model.getSchema().find(e=>e.type===`title`),s=(n=o==null?void 0:o.id)==null?``:n,c=this.model.createRowData({[s]:``,[a]:e}),l=(r=this.api.blocks.getBlockIndex(this.block.id))==null?0:r;this.api.blocks.insert(`database-row`,{properties:c.properties,position:c.position},{},l+1,!1,!1,c.id),this.api.blocks.setBlockParent(c.id,this.block.id),this.syncRowsFromBlocks();let u=t.querySelector(`[data-option-id="${e}"][data-blok-database-column]`);if(u===null)return;let d=u.querySelector(`[data-blok-database-cards]`);d!==null&&(this.view.appendRow(d,c),this.sync.syncCreateRow({id:c.id,properties:c.properties,position:c.position}))}handleAddColumn(e){var n,r;let i=this.model.getView(this.activeViewId),a=i==null?void 0:i.groupBy;if(a===void 0)return;let o=this.model.getProperty(a);if((o==null?void 0:o.config)===void 0)return;let s=o.config.options,c=s.length>0?s[s.length-1].position:null,l={id:t.qr(),label:this.api.i18n.t(`tools.database.columnTitlePlaceholder`),position:or.positionBetween(c,null)};this.model.updateProperty(a,{config:{options:[...s,l]}}),(n=(r=this.view).appendGroup)==null||n.call(r,e,l),this.sync.syncUpdateProperty({propertyId:a,changes:{config:{options:[...s,l]}}})}initSubsystems(e){var t;if(this.element===null)return;let r=this.model.getView(this.activeViewId),i=(r==null?void 0:r.type)===`list`,a=this.model.getSchema().find(e=>e.type===`title`),o=(t=a==null?void 0:a.id)==null?``:t,s=this.model.getSchema().find(e=>e.type===`richText`),c=s==null?void 0:s.id;i?this.listRowDrag=new br({wrapper:e,onDrop:e=>this.handleListRowDrop(e)}):(this.cardDrag=new hr({wrapper:e,onDrop:e=>this.handleRowDrop(e)}),this.columnDrag=new _r({wrapper:e,onDrop:e=>this.handleGroupDrop(e)}),this.columnControls=new vr({i18n:this.api.i18n,onRename:(e,t)=>this.handleOptionRename(e,t),onDelete:t=>this.handleOptionDelete(t,e),onRenameInput:(e,t)=>{this.handleOptionRename(e,t)},onRenameCommit:(e,t)=>{let r=this.model.getView(this.activeViewId),i=r==null?void 0:r.groupBy;if(i===void 0)return;let a=this.model.getProperty(i);if((a==null?void 0:a.config)===void 0)return;let o=a.config.options.map(r=>r.id===e?n.t(n.t({},r),{},{label:t}):r);this.sync.syncUpdatePropertyDebounced({propertyId:i,changes:{config:{options:o}}})}}),this.makeColumnHeadersEditable(e)),this.cardDrawer===null&&(this.cardDrawer=new Cr({wrapper:this.element,readOnly:this.readOnly,i18n:this.api.i18n,toolsConfig:this.api.tools.getToolsConfig(),titlePropertyId:o,descriptionPropertyId:c,schema:this.model.getSchema(),onTitleChange:(e,t)=>{var n,r,i;this.updateRowBlock(e,{[o]:t});let a=(n=(r=this.boardContainer)==null?void 0:r.querySelector(`[data-blok-database-board]`))==null?(i=this.boardContainer)==null?void 0:i.querySelector(`[data-blok-database-list]`):n;a!=null&&this.view.updateRowTitle(a,e,t),this.sync.syncUpdateRow({rowId:e,properties:{[o]:t}})},onDescriptionChange:(e,t)=>{c!==void 0&&(this.updateRowBlock(e,{[c]:t}),this.sync.syncUpdateRow({rowId:e,properties:{[c]:t}}))},onClose:()=>{},onAddProperty:e=>{var t;let n=this.model.addProperty(`Property`,e);this.sync.syncCreateProperty({id:n.id,name:n.name,type:n.type,position:n.position}),(t=this.cardDrawer)==null||t.refreshSchema(this.model.getSchema())}})),this.keyboard=new wr({wrapper:e,onEscape:()=>{var e;return(e=this.cardDrawer)!=null&&e.isOpen?(this.cardDrawer.close(),!0):!1}}),this.keyboard.attach(),e.addEventListener(`pointerdown`,e=>{let t=e.target,n=t.closest(`[data-blok-database-column-header]`);if(n!==null){var r;if(t.closest(`[data-blok-database-column-pill]`)!==null)return;let a=n.closest(`[data-blok-database-column]`),o=(r=a==null?void 0:a.getAttribute(`data-option-id`))==null?null:r;if(o!==null){var i;e.preventDefault(),e.stopPropagation(),(i=this.columnDrag)==null||i.beginTracking(o,e.clientX,e.clientY)}return}let a=t.closest(`[data-blok-database-card]`);if(a!==null){let t=a.getAttribute(`data-row-id`);if(t!==null){var o;e.preventDefault(),e.stopPropagation(),(o=this.cardDrag)==null||o.beginTracking(t,e.clientX,e.clientY)}return}let s=t.closest(`[data-blok-database-list-row]`);if(s!==null){let t=s.getAttribute(`data-row-id`);if(t!==null){var c;e.preventDefault(),e.stopPropagation(),(c=this.listRowDrag)==null||c.beginTracking(t,e.clientX,e.clientY)}}})}makeColumnHeadersEditable(e){if(this.columnControls===null)return;let t=Array.from(e.querySelectorAll(`[data-blok-database-column-header]`));for(let e of t){let t=e.closest(`[data-blok-database-column]`),n=t==null?void 0:t.getAttribute(`data-option-id`);n!=null&&(this.columnControls.makePillTitleEditable(e,n),this.columnControls.appendDeleteButton(e,n))}}handleListRowDrop(e){var t,n;let{rowId:r,beforeRowId:i,afterRowId:a}=e,o=i===null?void 0:this.model.getRow(i),s=a===null?void 0:this.model.getRow(a),c=or.positionBetween((t=s==null?void 0:s.position)==null?null:t,(n=o==null?void 0:o.position)==null?null:n);this.moveRowBlock(r,c),this.rerenderView(),this.sync.syncMoveRow({rowId:r,position:c})}handleRowDrop(e){var t,n;let{rowId:r,toOptionId:i,beforeRowId:a,afterRowId:o}=e,s=this.model.getView(this.activeViewId),c=s==null?void 0:s.groupBy;if(c===void 0)return;let l=a===null?void 0:this.model.getRow(a),u=o===null?void 0:this.model.getRow(o),d=or.positionBetween((t=u==null?void 0:u.position)==null?null:t,(n=l==null?void 0:l.position)==null?null:n);this.updateRowBlock(r,{[c]:i}),this.moveRowBlock(r,d),this.rerenderView(),this.sync.syncUpdateRow({rowId:r,properties:{[c]:i}}),this.sync.syncMoveRow({rowId:r,position:d})}handleGroupDrop(e){var t,r;let{optionId:i,beforeOptionId:a,afterOptionId:o}=e,s=this.model.getView(this.activeViewId),c=s==null?void 0:s.groupBy;if(c===void 0)return;let l=this.model.getProperty(c);if((l==null?void 0:l.config)===void 0)return;let u=[...l.config.options],d=u.findIndex(e=>e.id===i);if(d===-1)return;let f=a===null?void 0:u.find(e=>e.id===a),p=o===null?void 0:u.find(e=>e.id===o),m=or.positionBetween((t=p==null?void 0:p.position)==null?null:t,(r=f==null?void 0:f.position)==null?null:r);u[d]=n.t(n.t({},u[d]),{},{position:m}),this.model.updateProperty(c,{config:{options:u}}),this.moveColumnInDom(i,a),this.sync.syncUpdateProperty({propertyId:c,changes:{config:{options:u}}})}moveColumnInDom(e,t){var n;let r=(n=this.boardContainer)==null?void 0:n.querySelector(`[data-blok-database-board]`);if(r==null)return;let i=r.querySelector(`[data-option-id="${e}"]`);if(i!==null)if(t!==null){let e=r.querySelector(`[data-option-id="${t}"]`);e!==null&&r.insertBefore(i,e)}else{let e=r.querySelector(`[data-blok-database-add-column]`);e===null?r.appendChild(i):r.insertBefore(i,e)}}handleOptionRename(e,t){let r=this.model.getView(this.activeViewId),i=r==null?void 0:r.groupBy;if(i===void 0)return;let a=this.model.getProperty(i);if((a==null?void 0:a.config)===void 0)return;let o=a.config.options.map(r=>r.id===e?n.t(n.t({},r),{},{label:t}):r);this.model.updateProperty(i,{config:{options:o}}),this.sync.syncUpdateProperty({propertyId:i,changes:{config:{options:o}}})}handleOptionDelete(e,t){var n,r,i;let a=this.model.getView(this.activeViewId),o=a==null?void 0:a.groupBy;if(o===void 0)return;let s=this.model.getProperty(o);if((s==null?void 0:s.config)===void 0||s.config.options.length<=1)return;let c=(n=this.model.getRowsGroupedBy(o).get(e))==null?[]:n;for(let e of c)this.deleteRowBlock(e.id),this.sync.syncDeleteRow({rowId:e.id});let l=s.config.options.filter(t=>t.id!==e);this.model.updateProperty(o,{config:{options:l}}),(r=(i=this.view).removeGroup)==null||r.call(i,t,e),this.sync.syncUpdateProperty({propertyId:o,changes:{config:{options:l}}})}handleRowClick(e){var t;let n=this.model.getRow(e);n!==void 0&&((t=this.cardDrawer)==null||t.open(n))}rerenderView(){var e,t,n,r,i,a,o,s,c,l;if(this.boardContainer===null)return;let u=(e=(t=(n=this.boardContainer.querySelector(`[data-blok-database-board]`))==null?void 0:n.closest(`[data-blok-tool]`))==null?this.boardContainer.querySelector(`[data-blok-database-list]`):t)==null?this.boardContainer.firstElementChild:e,d=this.boardContainer.querySelector(`[data-blok-database-board]`),f=(r=d==null?void 0:d.scrollLeft)==null?0:r;(i=this.cardDrag)==null||i.destroy(),(a=this.columnDrag)==null||a.destroy(),(o=this.columnControls)==null||o.destroy(),(s=this.listRowDrag)==null||s.destroy(),this.listRowDrag=null,(c=this.cardDrawer)==null||c.destroy(),this.cardDrawer=null,(l=this.keyboard)==null||l.destroy(),this.syncRowsFromBlocks();let p=this.renderActiveView();u==null?this.boardContainer.appendChild(p):u.replaceWith(p);let m=p.querySelector(`[data-blok-database-board]`);m!==null&&(m.scrollLeft=f),this.attachViewListeners(p),this.initSubsystems(p)}},jr=class{constructor({data:e}){var t,n;this._data={properties:(t=e.properties)==null?{}:t,position:(n=e.position)==null?`a0`:n}}render(){let e=document.createElement(`div`);return e.setAttribute(`data-blok-tool`,`database-row`),e}save(e){return{properties:this._data.properties,position:this._data.position}}validate(e){return e.properties!==null&&e.properties!==void 0&&typeof e.properties==`object`}updateProperties(e){Object.assign(this._data.properties,e)}updatePosition(e){this._data.position=e.position}getProperties(){return this._data.properties}getPosition(){return this._data.position}static get isReadOnlySupported(){return!0}setReadOnly(e){}},Mr=class{constructor(e){this.element=null}render(){let e=document.createElement(`div`);e.className=r.l(`py-3`,`leading-[1px]`);let t=document.createElement(`hr`);return t.setAttribute(`data-blok-divider`,``),t.className=r.l(`border-t`,`border-border-primary`,`border-b-0`,`border-l-0`,`border-r-0`),e.appendChild(t),this.element=e,e}save(){return{}}validate(e){return!0}static get toolbox(){return{icon:o.A,titleKey:`divider`,shortcut:`---`,searchTerms:[`hr`,`line`,`separator`,`rule`,`---`,`divider`,`delimiter`,`splitter`],searchTermKeys:[`divider`,`separator`,`delimiter`,`splitter`]}}static get isReadOnlySupported(){return!0}static get pasteConfig(){return{tags:[`HR`],patterns:{divider:/^-{3,}$/}}}onPaste(e){}setReadOnly(e){}static get sanitize(){return{}}},Nr=`tools.quote.placeholder`,Pr=[`border-l-[3px]`,`border-current`,`pl-[0.9em]`,`pr-[0.9em]`,`py-[0.2em]`,`leading-[1.5]`,`outline-hidden`,`mt-[0.3em]`,`mb-[0.3em]`],Fr=`text-[1.2em]`,Ir=class{constructor({data:e,api:t,readOnly:n}){var r,i;this.placeholderCleanup=null,this._element=null,this.api=t,this.readOnly=n,this._data={text:(r=e==null?void 0:e.text)==null?``:r,size:(i=e==null?void 0:e.size)==null?`default`:i},this.onKeyUp=this.onKeyUp.bind(this)}onKeyUp(e){e.code!==`Backspace`&&e.code!==`Delete`||this._element&&this._element.textContent===``&&(this._element.innerHTML=``)}drawView(){let e=document.createElement(`blockquote`);return e.className=r.l(this.api.styles.block,Pr,t.Qn(`focus`),this._data.size===`large`?Fr:``),e.setAttribute(t.yi.tool,`quote`),e.contentEditable=`false`,this._data.text?e.innerHTML=this._data.text:this.readOnly&&(e.innerHTML=`<br>`),this.readOnly||(e.contentEditable=`true`,e.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(e,this.api.i18n.t(Nr),`data-blok-placeholder-active`,`focus`)),e}render(){return this._element||(this._element=this.drawView()),this._element}setReadOnly(e){this._element&&(this.readOnly=e,e?(this._element.contentEditable=`false`,this._element.removeEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null),t.$n(this._element)&&(this._element.innerHTML=`<br>`)):(this._element.contentEditable=`true`,this._element.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(this._element,this.api.i18n.t(Nr),`data-blok-placeholder-active`,`focus`),this._element.innerHTML===`<br>`&&(this._element.innerHTML=``)))}save(e){return{text:t.Wr(e.innerHTML),size:this._data.size}}validate(e){return e.text.trim()!==``}merge(e){if(!this._element)return;this._data.text+=e.text;let t=document.createElement(`div`);t.innerHTML=e.text.trim();let n=document.createDocumentFragment();n.append(...Array.from(t.childNodes)),this._element.appendChild(n),this._element.normalize()}renderSettings(){return[{icon:o.nn,title:this.api.i18n.t(`tools.quote.size`),name:`quote-size`,children:{items:[{icon:o.nn,title:this.api.i18n.t(`tools.quote.defaultSize`),onActivate:()=>this.setSize(`default`),closeOnActivate:!0,isActive:this._data.size===`default`},{icon:o.nn,title:this.api.i18n.t(`tools.quote.largeSize`),onActivate:()=>this.setSize(`large`),closeOnActivate:!0,isActive:this._data.size===`large`}]}}]}setSize(e){this._data.size=e,this._element&&(this._element.className=r.l(this.api.styles.block,Pr,t.Qn(`focus`),e===`large`?Fr:``))}onPaste(e){let t=e.detail;if(!(`data`in t))return;let n=t.data;this._data={text:n.innerHTML,size:this._data.size},this._element&&(this._element.innerHTML=this._data.text||``)}static get toolbox(){return{icon:o.nn,titleKey:`quote`,shortcut:`"`,searchTerms:[`quote`,`blockquote`,`citation`],searchTermKeys:[`quote`,`blockquote`,`citation`]}}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return{text:{br:!0,b:!0,i:!0,a:!0,mark:{style:!0}}}}static get isReadOnlySupported(){return!0}static get pasteConfig(){return{tags:[`BLOCKQUOTE`]}}};function Lr(e){let n=document.createElement(`div`);n.className=t.rn,n.setAttribute(`role`,`group`),n.setAttribute(`data-blok-testid`,`code-view-mode`);let r=[{mode:`code`,icon:o.b,label:e.code},{mode:`preview`,icon:o.tn,label:e.preview},{mode:`split`,icon:o.cn,label:e.split}];for(let{mode:e,icon:i,label:a}of r){let r=document.createElement(`button`);r.type=`button`,r.className=t.nn,r.innerHTML=i,r.setAttribute(`aria-label`,a),r.setAttribute(`aria-pressed`,`false`),r.setAttribute(`data-blok-testid`,`code-mode-${e}`),r.setAttribute(`data-mode`,e),n.appendChild(r)}let i=document.createElement(`div`);i.className=t.Jt,i.setAttribute(`data-blok-testid`,`code-preview`);let a=document.createElement(`div`);return a.className=t.$t,a.setAttribute(`data-blok-testid`,`code-split-container`),{viewModeContainer:n,previewElement:i,splitContainer:a}}function Rr(e,n){let r=Array.from(e.querySelectorAll(`[data-mode]`));for(let e of r){let r=e.getAttribute(`data-mode`)===n;e.setAttribute(`aria-pressed`,String(r)),e.className=r?t.tn:t.nn}}function zr(e){var n,r,i;let{code:a,languageName:s,readOnly:c,copyLabel:l,previewable:u,viewModeLabels:d}=e,f=document.createElement(`div`);f.className=t.in;let p=document.createElement(`div`);p.className=t.Ht;let m=document.createElement(`button`);m.type=`button`,m.className=t.Gt,m.setAttribute(`aria-haspopup`,`listbox`),m.setAttribute(`data-blok-testid`,`code-language-btn`);let h=document.createElement(`span`);h.textContent=s,m.appendChild(h);let g=document.createElement(`span`);g.className=`inline-flex items-center ml-0.5 -mr-0.5`,g.innerHTML=o.h,m.appendChild(g);let _=document.createElement(`div`);_.className=`flex-1`;let v=!c&&d?Lr(d):null,y=(n=v==null?void 0:v.viewModeContainer)==null?null:n,b=(r=v==null?void 0:v.previewElement)==null?null:r,x=(i=v==null?void 0:v.splitContainer)==null?null:i;y&&(y.hidden=!u);let S=document.createElement(`button`);S.type=`button`,S.className=u?t.zt:t.Bt,S.innerHTML=o.w,S.setAttribute(`aria-label`,l),S.setAttribute(`data-blok-testid`,`code-copy-btn`);let C=document.createElement(`code`);C.className=t.At,C.setAttribute(`data-blok-testid`,`code-content`),a&&(C.textContent=a),c||(C.setAttribute(`contenteditable`,`plaintext-only`),C.setAttribute(`spellcheck`,`false`));let w=document.createElement(`div`);w.className=t.Rt,w.setAttribute(`aria-hidden`,`true`),w.setAttribute(`data-blok-testid`,`code-gutter`);let T=a?a.split(`
1
+ const e=require(`./chunk-BL1yB9zm.cjs`),t=require(`./constants-wdDLQLHe.cjs`),n=require(`./objectSpread2-iNkE6aJh.cjs`),r=require(`./dismissable-layer-Cls-dpim.cjs`),i=require(`./registry-5IYwlgsn.cjs`),a=require(`./lightweight-i18n-DfkyJMeq.cjs`),o=require(`./icons-9-ln41xa.cjs`),s=require(`./nested-blocks-Cszj6BSF.cjs`),c=require(`./modal-dialog-DNeP_fpV.cjs`),l=require(`./lib-CUt_N_JU.cjs`);var u=new Set([`color`,`background-color`]),d={br:!0,strong:{},b:{},em:{},i:{},u:{},s:{},del:{},a:{href:!0,target:!0,rel:!0},code:{},mark:e=>{let t=e.style,n=Array.from({length:t.length},(e,n)=>t.item(n));for(let e of n)u.has(e)||t.removeProperty(e);return t.length>0?{style:!0}:{}},span:e=>e.getAttribute(`data-latex`)===null?!1:{"data-latex":!0}},f,p=e=>{let t=document.createElement(`div`);t.innerHTML=e.trim();let n=document.createDocumentFragment();return n.append(...Array.from(t.childNodes)),n},m=class e{static get DEFAULT_PLACEHOLDER(){return`tools.paragraph.placeholder`}constructor({data:t,config:n,api:r,readOnly:i,block:a}){var o,s,c;this.placeholderCleanup=null,this.api=r,this.readOnly=i,this.block=a,this.onKeyUp=this.onKeyUp.bind(this),this._placeholder=(o=n==null?void 0:n.placeholder)==null?e.DEFAULT_PLACEHOLDER:o,this._data=t==null?{text:``}:t,this._element=null,this._preserveBlank=(s=n==null?void 0:n.preserveBlank)==null?!1:s,this._styles=(c=n==null?void 0:n.styles)==null?{}:c}onKeyUp(e){if(e.code!==`Backspace`&&e.code!==`Delete`||!this._element)return;let{textContent:t}=this._element;t===``&&(this._element.innerHTML=``)}buildInlineStyles(){let e={};return this._styles.size&&(e.fontSize=this._styles.size),this._styles.lineHeight&&(e.lineHeight=this._styles.lineHeight),this._styles.marginTop&&(e.marginTop=this._styles.marginTop),this._styles.marginBottom&&(e.marginBottom=this._styles.marginBottom),e}drawView(){let n=document.createElement(`DIV`);n.className=r.l(this.api.styles.block,e.WRAPPER_CLASSES,t.Qn(`focus`)),n.setAttribute(t.yi.tool,`paragraph`),n.contentEditable=`false`;let i=this.buildInlineStyles();return Object.keys(i).length>0&&Object.assign(n.style,i),t._(n,this._data),this._data.text?n.innerHTML=this._data.text:this.readOnly&&(n.innerHTML=`<br>`),this.readOnly||(n.contentEditable=`true`,n.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(n,this.api.i18n.t(this._placeholder),`data-blok-placeholder-active`,`focus`)),n}render(){return this._element||(this._element=this.drawView()),this._element}setReadOnly(e){this._element&&(this.readOnly=e,e?(this._element.contentEditable=`false`,this._element.removeEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null),t.$n(this._element)&&(this._element.innerHTML=`<br>`)):(this._element.contentEditable=`true`,this._element.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(this._element,this.api.i18n.t(this._placeholder),`data-blok-placeholder-active`,`focus`),this._element.innerHTML===`<br>`&&(this._element.innerHTML=``)))}setPlaceholder(e){this._placeholder=e===!1?``:e,!(!this._element||this.readOnly)&&this._element.setAttribute(`data-blok-placeholder-active`,e===!1?``:this.api.i18n.t(this._placeholder))}merge(e){if(!this._element)return;this._data.text+=e.text;let t=p(e.text);this._element.appendChild(t),this._element.normalize()}validate(e){return!(e.text.trim()===``&&!this._preserveBlank)}save(e){let n={text:t.Wr(e.innerHTML)};return this._data.textColor&&(n.textColor=this._data.textColor),this._data.backgroundColor&&(n.backgroundColor=this._data.backgroundColor),n}renderSettings(){return t.v({data:this._data,labels:{textColor:this.api.i18n.t(`tools.marker.textColor`),background:this.api.i18n.t(`tools.marker.background`),default:this.api.i18n.t(`tools.marker.default`)},onPick:(e,n)=>{var r;this._data[e]=n,this._element&&t._(this._element,this._data),(r=this.block)==null||r.dispatchChange()}})}onPaste(e){let t=e.detail;if(!(`data`in t))return;let n={text:t.data.innerHTML};this._data=n,this._element&&(this._element.innerHTML=this._data.text||``)}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return n.t(n.t({},t.g),{},{text:n.t(n.t({},d),{},{img:{src:!0,style:!0},p:!0,ul:!0,li:!0})})}static get isReadOnlySupported(){return!0}static get pasteConfig(){return{tags:[`P`]}}static get toolbox(){return{icon:o.dn,titleKey:`text`,searchTerms:[`p`,`paragraph`,`plain`],searchTermKeys:[`paragraph`,`plain`]}}};f=m,f.WRAPPER_CLASSES=[`leading-[1.5]`,`outline-hidden`,`mt-px`,`mb-px`,`[&>p:first-of-type]:mt-0`,`[&>p:last-of-type]:mb-0`];var h=e=>{let{data:n,readOnly:r,isOpen:i,keydownHandler:a,onArrowClick:o,onBodyPlaceholderClick:s}=e,c=document.createElement(`div`);c.className=t.a,c.setAttribute(t.yi.tool,t.p),c.setAttribute(t.u.toggleOpen,String(i)),c.setAttribute(t.u.toggleEmpty,`true`);let l=document.createElement(`div`);l.className=t.f;let u=g(i,o,{},e.ariaLabels),d=v(n,r,a);l.appendChild(u),l.appendChild(d);let f=_(s,e.bodyPlaceholderText),p=document.createElement(`div`);return p.className=t.d,p.setAttribute(t.u.toggleChildren,``),p.setAttribute(t.yi.nestedBlocks,``),p.setAttribute(`data-blok-mutation-free`,`true`),p.id=`toggle-children-${Date.now()}-${Math.random().toString(36).slice(2)}`,u.setAttribute(`aria-controls`,p.id),c.appendChild(l),c.appendChild(f),c.appendChild(p),{wrapper:c,arrowElement:u,contentElement:d,bodyPlaceholderElement:f,childContainerElement:p}},g=(e,n,r={},i={collapse:`Collapse`,expand:`Expand`})=>{let a=document.createElement(`span`);a.className=t.i,a.setAttribute(t.u.toggleArrow,``),a.setAttribute(t.yi.mutationFree,`true`),a.setAttribute(`role`,`button`),a.setAttribute(`tabindex`,`0`),a.setAttribute(`aria-label`,e?i.collapse:i.expand),a.setAttribute(`aria-expanded`,String(e)),r.contentEditableFalse===!0&&(a.contentEditable=`false`),a.innerHTML=t.r;let o=a.querySelector(`svg`);return o&&(o.style.transition=`transform 200ms ease-in-out`,e&&(o.style.transform=`rotate(90deg)`)),n&&(a.addEventListener(`click`,e=>{e.stopPropagation(),n()}),a.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),n())})),a},_=(e,n)=>{let r=document.createElement(`div`);return r.className=t.s,r.setAttribute(t.u.toggleBodyPlaceholder,``),r.setAttribute(`data-blok-mutation-free`,`true`),r.textContent=n,e&&r.addEventListener(`click`,e),r},v=(e,n,i)=>{let a=document.createElement(`div`);return a.className=r.l(t.c,t.Qn(`always-active`)),a.setAttribute(t.u.toggleContent,``),a.contentEditable=n?`false`:`true`,a.innerHTML=e.text,i&&a.addEventListener(`keydown`,i),a},y=(e,n)=>{var r;if(e===null)return;let i=((r=n==null?void 0:n.textContent)==null?``:r).trim()===``;e.setAttribute(t.u.toggleEmpty,String(i))},b=e=>{let n=h(e);return n.contentElement&&t.er(n.contentElement,e.placeholder,`data-blok-placeholder-active`,`always-active`),n},x=(e,n,r,i={collapse:`Collapse`,expand:`Expand`})=>{let a=e.querySelector(`svg`);a&&(a.style.transform=r?`rotate(90deg)`:``),e.setAttribute(`aria-label`,r?i.collapse:i.expand),e.setAttribute(`aria-expanded`,String(r)),n.setAttribute(t.u.toggleOpen,String(r))},S=(e,t,n,r,i)=>{let a=e.blocks.getChildren(t);!n&&r&&i&&r.contains(document.activeElement)&&i.focus(),r&&s.t(r,a);for(let e of a)n?e.holder.classList.remove(`hidden`):e.holder.classList.add(`hidden`);r&&(n?r.removeAttribute(`aria-hidden`):r.setAttribute(`aria-hidden`,`true`))},C=(e,t,n,r,i)=>{if(e===null)return;if(i){e.classList.add(`hidden`);return}let a=t.blocks.getChildren(n);r&&a.length===0?e.classList.remove(`hidden`):e.classList.add(`hidden`)},w=async e=>{var n;let{api:r,blockId:i,data:a,getContentElement:o,syncContentFromDOM:s,isOpen:c}=e;if(s(),i===void 0)return;let l=o(),u=window.getSelection();if(!l||!u||u.rangeCount===0)return;let{beforeContent:d,afterContent:f}=D(l,u.getRangeAt(0)),p=(n=r.blocks.getBlockIndex(i))==null?r.blocks.getCurrentBlockIndex():n;if(c&&f===``){let e=E(r,i,p),t=r.blocks.insertInsideParent(i,e);r.caret.setToBlock(t.id,`start`);return}r.blocks.splitBlock(i,{text:d},t.p,{text:f},p+1),a.text=d},T=async(e,n)=>{let{api:r,blockId:i,data:a,getContentElement:o,syncContentFromDOM:s}=e;if(s(),i===void 0)return;let c=o();if(!c||!t.ar(c))return;let l=a.text;l===``&&(n.preventDefault(),await r.blocks.convert(i,`paragraph`,{text:l}))},E=(e,t,n)=>{var r;let i=e.blocks.getChildren(t);if(i.length===0)return n+1;let a=i[i.length-1],o=(r=e.blocks.getBlockIndex(a.id))==null?n:r;return E(e,a.id,o)},D=(e,t)=>{if(!e.lastChild)return{beforeContent:``,afterContent:``};let n=document.createRange();n.setStart(e,0),n.setEnd(t.startContainer,t.startOffset);let r=document.createRange();r.setStart(t.endContainer,t.endOffset),r.setEndAfter(e.lastChild);let i=document.createElement(`div`);i.appendChild(n.cloneContents());let a=document.createElement(`div`);return a.appendChild(r.cloneContents()),{beforeContent:i.innerHTML,afterContent:a.innerHTML}},O=async e=>{var t;let{api:n,blockId:r,getContentElement:i,syncContentFromDOM:a,isOpen:o,currentLevel:s}=e;if(a(),r===void 0)return;let c=i(),l=window.getSelection();if(!c||!l||l.rangeCount===0)return;let{beforeContent:u,afterContent:d}=D(c,l.getRangeAt(0)),f=(t=n.blocks.getBlockIndex(r))==null?n.blocks.getCurrentBlockIndex():t;if(o&&d===``){let e=E(n,r,f),t=n.blocks.insertInsideParent(r,e);n.caret.setToBlock(t.id,`start`);return}if(!o&&d===``){let e=E(n,r,f),t=n.blocks.insert(`paragraph`,void 0,void 0,e,!1);n.caret.setToBlock(t.id,`start`);return}n.blocks.splitBlock(r,{text:u,level:s,isToggleable:!0},`header`,{text:d,level:s,isToggleable:!0},f+1)},k=async(e,n)=>{let{api:r,blockId:i,getText:a,getContentElement:o,syncContentFromDOM:s,currentLevel:c}=e;if(s(),i===void 0)return;let l=o();if(!l||!t.ar(l))return;let u=a();u===``&&(n.preventDefault(),await r.blocks.convert(i,`header`,{text:u,level:c}))},A,j=class e{constructor({data:e,config:t,api:n,readOnly:r,block:i}){var a;this.placeholderCleanup=null,this._arrowElement=null,this._wrapper=null,this._headerRow=null,this._childContainerElement=null,this._bodyPlaceholderElement=null,this.handleChildContainerInput=()=>{y(this._wrapper,this._childContainerElement)},this.handleKeyDown=e=>{if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),this.handleEnter();return}e.key===`Backspace`&&k(this.createKeyboardContext(),e)},this.handleBlockChanged=e=>{this.isBlockChangedPayload(e)&&(e.event.type===`block-removed`||e.event.type===`block-added`)&&this.updateBodyPlaceholderVisibility()},this.api=n,this.readOnly=r,this._settings=t||{},this._data=this.normalizeData(e),this._isOpen=(a=this._data.isOpen)==null?!0:a,this._element=this.getTag(),i&&(this.blockId=i.id,this.block=i),!r&&this._data.isToggleable&&this.api.events.on(`block changed`,this.handleBlockChanged)}get _CSS(){return{block:this.api.styles.block,wrapper:``}}isHeaderData(e){return typeof e==`object`&&!!e&&`text`in e}normalizeData(e){if(!this.isHeaderData(e))return{text:``,level:this.defaultLevel.number};let n=parseInt(String(e.level)),r=e.level!==void 0&&!isNaN(n),i={text:e.text||``,level:r?n:this.defaultLevel.number};if(e.isToggleable===!0&&(i.isToggleable=!0),typeof e.isOpen==`boolean`&&(i.isOpen=e.isOpen),typeof e.textColor==`string`&&(i.textColor=e.textColor),typeof e.backgroundColor==`string`&&(i.backgroundColor=e.backgroundColor),i.text){let e=document.createElement(`div`);e.innerHTML=i.text;let n=e.querySelector(`[${t.u.toggleArrow}]`);n&&(n.remove(),i.text=e.innerHTML)}return i}render(){return this._data.isToggleable?(this._wrapper=this.buildWrapper(),this._wrapper):this._element}rendered(){this._data.isToggleable&&(this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility())}removed(){this.api.events.off(`block changed`,this.handleBlockChanged),this._element.removeEventListener(`keydown`,this.handleKeyDown)}setReadOnly(e){if(this._element)if(this.readOnly=e,e)this._element.contentEditable=`false`,this._data.isToggleable&&this._element.removeEventListener(`keydown`,this.handleKeyDown),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null);else{this._element.contentEditable=`true`,this._data.isToggleable&&this._element.addEventListener(`keydown`,this.handleKeyDown);let e=this.api.i18n.t(this.currentLevel.nameKey),n=this.resolvePlaceholderText(e);this.placeholderCleanup=t.er(this._element,n)}}expand(){!this._data.isToggleable||this._isOpen||(this._isOpen=!0,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),this.syncOpenState())}collapse(){!this._data.isToggleable||!this._isOpen||(this._isOpen=!1,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),this.syncOpenState())}renderSettings(){let e=this.levels.map(e=>{let t=this.api.i18n.t(e.nameKey),n=t===e.nameKey?e.name:t;return{icon:e.icon,title:n,onActivate:()=>this.setLevel(e.number),closeOnActivate:!0,isActive:this.currentLevel.number===e.number,dataset:{"blok-header-level":String(e.number)}}}),n=t.v({data:this._data,labels:{textColor:this.api.i18n.t(`tools.marker.textColor`),background:this.api.i18n.t(`tools.marker.background`),default:this.api.i18n.t(`tools.marker.default`)},onPick:(e,t)=>this.setBlockColor(e,t)}),r=Array.isArray(n)?n:[n];return[...e,this.buildToggleConvertEntry(),...r]}buildToggleConvertEntry(){var e;let t=this.currentLevel,n=this._data.isToggleable===!0;return{icon:(e={1:o.fn,2:o.pn,3:o.mn}[t.number])==null?o.mn:e,title:this.api.i18n.t(`tools.header.toggleHeading`),name:`header-toggle-convert`,closeOnActivate:!0,isActive:n,onActivate:()=>this.setToggleable(!n)}}setToggleable(e){this._data.isToggleable!==e&&(e?this.convertToToggle():this.convertToPlain(),this.syncOpenState())}convertToToggle(){this._data.isToggleable=!0,this._isOpen=!0,this._data.isOpen=!0,this._element.setAttribute(t.u.toggleOpen,String(this._isOpen)),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`),`pl-8`),this.readOnly||(this._element.addEventListener(`keydown`,this.handleKeyDown),this.api.events.on(`block changed`,this.handleBlockChanged));let n=this._element.parentNode,i=this._element.nextSibling;this._wrapper=this.buildWrapper(),n==null||n.insertBefore(this._wrapper,i),this.rendered()}convertToPlain(){if(this.releaseChildrenAsSiblings(),this._data.isToggleable=!1,delete this._data.isOpen,this._element.removeEventListener(`keydown`,this.handleKeyDown),this.api.events.off(`block changed`,this.handleBlockChanged),this._element.removeAttribute(t.u.toggleOpen),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`)),this._wrapper){let e=this._wrapper.parentNode;e==null||e.replaceChild(this._element,this._wrapper)}this._wrapper=null,this._headerRow=null,this._arrowElement=null,this._childContainerElement=null,this._bodyPlaceholderElement=null}releaseChildrenAsSiblings(){if(this.blockId===void 0)return;let e=[...this.api.blocks.getChildren(this.blockId)];for(let t of e)this.api.blocks.setBlockParent(t.id,null)}setBlockColor(e,n){var r;n===void 0?this._data[e]=void 0:this._data[e]=n,t._(this._element,this._data),(r=this.block)==null||r.dispatchChange()}setLevel(e){this.data={level:e,text:this.data.text,isToggleable:this._data.isToggleable,textColor:this._data.textColor,backgroundColor:this._data.backgroundColor}}merge(e){let n=document.createElement(`div`);n.innerHTML=e.text;let r=n.querySelector(`[${t.u.toggleArrow}]`);r&&r.remove(),this._element.insertAdjacentHTML(`beforeend`,n.innerHTML)}validate(e){return typeof e.text==`string`}setData(e){return this._data=this.normalizeData(e),typeof e.text==`string`&&(this._element.innerHTML=e.text),this._data.isToggleable&&typeof this._data.isOpen==`boolean`&&(this._isOpen=this._data.isOpen,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility()),!0}save(e){let t={text:this._element.innerHTML,level:this.currentLevel.number};return this._data.isToggleable===!0&&(t.isToggleable=!0,t.isOpen=this._isOpen),this._data.textColor&&(t.textColor=this._data.textColor),this._data.backgroundColor&&(t.backgroundColor=this._data.backgroundColor),t}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return n.t({level:!1,text:n.t({},d),isToggleable:!1,isOpen:!1},t.g)}static get isReadOnlySupported(){return!0}get data(){return this._data.text=this._element.innerHTML,this._data.level=this.currentLevel.number,this._data}set data(n){if(this._data=this.normalizeData(n),n.level!==void 0&&this._element.parentNode){this._element.removeEventListener(`keydown`,this.handleKeyDown);let e=this.getTag();e.innerHTML=this._element.innerHTML,this._element.parentNode.replaceChild(e,this._element),this._element=e}if(n.text!==void 0&&(this._element.innerHTML=this._data.text||``),this._data.isToggleable){if(this._element.setAttribute(t.u.toggleOpen,String(this._isOpen)),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`),`pl-8`),!this._wrapper)this.createToggleWrapper();else if(!this._wrapper.querySelector(`[${t.u.toggleArrow}]`)){var i;let e=this.buildArrow();this._arrowElement=e,((i=this._headerRow)==null?this._wrapper:i).prepend(e)}}else if(this._element.removeAttribute(t.u.toggleOpen),this._element.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`)),this._arrowElement=null,this._wrapper){let e=this._wrapper.parentNode;e&&e.replaceChild(this._element,this._wrapper),this._wrapper=null,this._headerRow=null}}resolvePlaceholderText(e){return this._settings.placeholder?this.api.i18n.t(this._settings.placeholder):e===this.currentLevel.nameKey?this.currentLevel.name:e}getTag(){let n=document.createElement(this.currentLevel.tag);n.innerHTML=this._data.text||``,n.className=r.l(e.BASE_STYLES,this.currentLevel.styles,t.Qn(`always`),this._data.isToggleable?`pl-8`:``);let{inlineStyles:i}=this.currentLevel;i&&Object.assign(n.style,i),n.setAttribute(t.yi.tool,`header`),n.contentEditable=this.readOnly?`false`:`true`,this._data.isToggleable&&n.setAttribute(t.u.toggleOpen,String(this._isOpen));let a=this.api.i18n.t(this.currentLevel.nameKey),o=this.resolvePlaceholderText(a);return this.readOnly||(this.placeholderCleanup=t.er(n,o)),!this.readOnly&&this._data.isToggleable&&n.addEventListener(`keydown`,this.handleKeyDown),t._(n,this._data),n}buildArrow(){var e,t;let n=g(this._isOpen,()=>this.toggleOpen(),{},{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),i=(e=(t=this.currentLevel.styles.match(/\btext-(?:xs|sm|base|lg|xl|\dxl)\b/))==null?void 0:t[0])==null?``:e;return n.className=r.l(n.className,`absolute left-0 top-[calc(7px_+_0.65em)] -translate-y-1/2 mt-0`,i),n}buildWrapper(){let e=document.createElement(`div`);e.setAttribute(t.u.toggleEmpty,`true`);let n=document.createElement(`div`);n.className=`relative`,this._headerRow=n;let i=this.buildArrow();this._arrowElement=i,n.appendChild(i),n.appendChild(this._element),e.appendChild(n);let a=document.createElement(`div`);a.className=r.l(t.s,`pl-8`),a.setAttribute(t.u.toggleBodyPlaceholder,``),a.setAttribute(`data-blok-mutation-free`,`true`),a.textContent=this.api.i18n.t(`tools.toggle.bodyPlaceholder`),this.readOnly||a.addEventListener(`click`,()=>this.handleBodyPlaceholderClick()),this._bodyPlaceholderElement=a,e.appendChild(a);let o=document.createElement(`div`);return o.className=`pl-8`,o.setAttribute(t.u.toggleChildren,``),o.setAttribute(t.yi.nestedBlocks,``),o.setAttribute(`data-blok-mutation-free`,`true`),o.addEventListener(`input`,this.handleChildContainerInput),this._childContainerElement=o,e.appendChild(o),e}createToggleWrapper(){let e=this._element.parentNode;this._wrapper=document.createElement(`div`),this._wrapper.setAttribute(t.u.toggleEmpty,`true`);let n=document.createElement(`div`);n.className=`relative`,this._headerRow=n;let r=this.buildArrow();this._arrowElement=r,n.appendChild(r),e&&e.replaceChild(this._wrapper,this._element),n.appendChild(this._element),this._wrapper.appendChild(n)}createKeyboardContext(){return{api:this.api,blockId:this.blockId,getText:()=>this._element.innerHTML,getContentElement:()=>this._element,syncContentFromDOM:()=>{this._data.text=this._element.innerHTML},isOpen:this._isOpen,currentLevel:this.currentLevel.number}}async handleEnter(){var e=this;await O(e.createKeyboardContext()),e.updateChildrenVisibility(),e.updateBodyPlaceholderVisibility()}toggleOpen(){this._isOpen=!this._isOpen,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(`tools.toggle.ariaLabelCollapse`),expand:this.api.i18n.t(`tools.toggle.ariaLabelExpand`)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),this.syncOpenState()}syncOpenState(){if(!this.readOnly){var e;(e=this.block)==null||e.dispatchChange()}}updateChildrenVisibility(){this.blockId!==void 0&&S(this.api,this.blockId,this._isOpen,this._childContainerElement,this._arrowElement)}updateBodyPlaceholderVisibility(){this.blockId!==void 0&&(C(this._bodyPlaceholderElement,this.api,this.blockId,this._isOpen,this.readOnly),y(this._wrapper,this._childContainerElement))}handleBodyPlaceholderClick(){var e;if(this.blockId===void 0)return;let t=this.api.blocks.getBlockIndex(this.blockId);if(t===void 0)return;let n=this.api.blocks.insertInsideParent(this.blockId,t+1);this.api.caret.setToBlock(n.id,`start`),(e=this._bodyPlaceholderElement)==null||e.classList.add(`hidden`)}isBlockChangedPayload(e){return typeof e==`object`&&!!e&&`event`in e&&typeof e.event==`object`&&e.event!==null&&`type`in e.event&&typeof e.event.type==`string`}get currentLevel(){let e=this.levels.find(e=>e.number===this._data.level);return e==null?this.defaultLevel:e}get defaultLevel(){return this._settings.defaultLevel?this.levels.find(e=>e.number===this._settings.defaultLevel)||(console.warn(`(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels`),this.levels[1]):this.levels[1]}get levels(){let t=this._settings.levelOverrides||{},n=e.DEFAULT_LEVELS.map(e=>{var n;let r=t[e.number]||{},i={};return r.size&&(i.fontSize=r.size),r.marginTop&&(i.marginTop=r.marginTop),r.marginBottom&&(i.marginBottom=r.marginBottom),{number:e.number,tag:((n=r.tag)==null?void 0:n.toUpperCase())||e.tag,nameKey:e.nameKey,name:r.name||e.name,icon:e.icon,styles:e.styles,inlineStyles:i}}),r=this._settings.levels;return r?n.filter(e=>r.includes(e.number)):n}onPaste(e){var t;let n=e.detail;if(!(`data`in n))return;let r=n.data,i=(t={H1:1,H2:2,H3:3,H4:4,H5:5,H6:6}[r.tagName])==null?this.defaultLevel.number:t,a=this._settings.levels?this._settings.levels.reduce((e,t)=>Math.abs(t-i)<Math.abs(e-i)?t:e):i;this.data={level:a,text:r.innerHTML}}static get pasteConfig(){return{tags:[`H1`,`H2`,`H3`,`H4`,`H5`,`H6`]}}static get toolbox(){let t=e.DEFAULT_LEVELS.map(e=>({icon:e.icon,title:e.name,titleKey:e.nameKey,name:`header-${e.number}`,data:{level:e.number},searchTerms:[`h${e.number}`,`title`,`header`,`heading`],searchTermKeys:[`title`,`header`,`heading`],shortcut:`#`.repeat(e.number)})),n={1:o.fn,2:o.pn,3:o.mn},r=e.DEFAULT_LEVELS.filter(e=>e.number<=3).map(e=>({icon:n[e.number],title:`Toggle heading ${e.number}`,titleKey:`tools.header.toggleHeading${e.number}`,name:`toggle-header-${e.number}`,data:{level:e.number,isToggleable:!0},searchTerms:[`toggle`,`heading`,`h${e.number}`,`collapsible`],searchTermKeys:[`toggle`,`heading`,`collapsible`],shortcut:`>`+`#`.repeat(e.number)}));return[...t,...r]}};A=j,A.BASE_STYLES=`py-[7px] px-[2px] m-0 leading-[1.3]! outline-hidden [&_p]:p-0! [&_p]:m-0! [&_div]:p-0! [&_div]:m-0!`,A.DEFAULT_LEVELS=[{number:1,tag:`H1`,nameKey:`tools.header.heading1`,name:`Heading 1`,icon:o.Q,styles:`text-3xl font-semibold mt-8 mb-px`},{number:2,tag:`H2`,nameKey:`tools.header.heading2`,name:`Heading 2`,icon:o.$,styles:`text-2xl font-semibold mt-[26px] mb-px`},{number:3,tag:`H3`,nameKey:`tools.header.heading3`,name:`Heading 3`,icon:o.et,styles:`text-xl font-semibold mt-5 mb-px`},{number:4,tag:`H4`,nameKey:`tools.header.heading4`,name:`Heading 4`,icon:o.tt,styles:`text-lg font-semibold mt-3 mb-px`},{number:5,tag:`H5`,nameKey:`tools.header.heading5`,name:`Heading 5`,icon:o.nt,styles:`text-base font-semibold mt-3 mb-px`},{number:6,tag:`H6`,nameKey:`tools.header.heading6`,name:`Heading 6`,icon:o.rt,styles:`text-sm font-semibold mt-3 mb-px`}];var M=e=>{let{data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,element:c,setupItemPlaceholder:l,onCheckboxChange:u,keydownHandler:d}=e;if(!c)return null;let f=c.parentNode;if(!f)return null;let p=t.Xn({data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,keydownHandler:d});if(p.contentElement&&l(p.contentElement),p.checkboxElement&&!r){let e=p.checkboxElement;e.addEventListener(`change`,()=>{t.Yn(e,p.contentElement,e.checked),u(e.checked,p.contentElement)})}return f.replaceChild(p.wrapper,c),p.wrapper},N=(e,r,i,a)=>{var o;if(!r)return e;let s=i(),c=n.t({text:s?t.Wr(s.innerHTML):e.text,style:e.style},e.style===`checklist`?{checked:!!e.checked}:{});e.start!==void 0&&e.start!==1&&(c.start=e.start);let l=(o=a==null?e.depth:a)==null?0:o;return l>0&&(c.depth=l),c},P=(e,t,r,i,a)=>{var o,s;if(!r)return{newData:e,inPlace:!1};let c=(o=e.depth)==null?0:o,l=(s=t.depth)==null?0:s,u=e.style,d=t.style;if(u!==d)return{newData:e,inPlace:!1};let f=`depth`in t?t.depth:0,p=n.t(n.t(n.t({},e),t),{},{depth:f}),m=i();if(m&&typeof t.text==`string`&&(m.innerHTML=t.text),c!==l)return a.adjustDepthTo(l),a.updateMarkerForDepth(l,d),{newData:p,inPlace:!0};if(d===`checklist`){var h;a.updateCheckboxState((h=t.checked)==null?!1:h)}return{newData:p,inPlace:!0}},F=(e,t)=>{let{element:n,getContentElement:r,parseHTML:i,data:a}=e;if(!n)return;a.text+=t.text;let o=r();if(o&&t.text){let e=i(t.text);o.appendChild(e),o.normalize()}},I=(e,t,n,r)=>e.map(e=>({icon:e.icon,title:n(`toolNames.${e.titleKey}`),onActivate:()=>r(e.style),closeOnActivate:!0,isActive:t===e.style})),L=e=>{if(!e)return;let t=(e.getAttribute(`style`)||``).match(/margin-left:\s*(\d+)px/);if(!t)return;let n=parseInt(t[1],10);return n>0?{left:n}:void 0},R=e=>{let t=e.closest(`[data-list-depth]`);if(!t)return;let n=t.getAttribute(`data-list-depth`);if(n===null)return;let r=parseInt(n,10);return r>0?{left:r*27}:void 0},ee=e=>{let t=L(e.closest(`[role="listitem"]`)||e.querySelector(`[role="listitem"]`));return t===void 0?R(e):t},te=(e,t)=>{let n=document.createRange();if(n.setStart(e,0),n.setEnd(t.startContainer,t.startOffset),!e.lastChild)return{beforeContent:``,afterContent:``};let r=document.createRange();return r.setStart(t.endContainer,t.endOffset),r.setEndAfter(e.lastChild),{beforeContent:z(n.cloneContents()),afterContent:z(r.cloneContents())}},z=e=>{let t=document.createElement(`div`);return t.appendChild(e),t.innerHTML},B=e=>{let t=document.createElement(`div`);t.innerHTML=e.trim();let n=document.createDocumentFragment();return n.append(...Array.from(t.childNodes)),n},ne=(e,t)=>{let n=document.createRange();return n.selectNodeContents(e),n.setEnd(t.startContainer,t.startOffset),n.toString().length===0},re=(e,t)=>{let n=document.createRange();n.selectNodeContents(e),n.setEnd(t.startContainer,t.startOffset);let r=n.toString().length===0,i=document.createRange();i.selectNodeContents(e),i.setStart(t.endContainer,t.endOffset);let a=i.toString().length===0;return r&&a},ie=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.entries(e).find(([e])=>e===`items`);return t===void 0?!1:Array.isArray(t[1])},ae=e=>typeof e==`object`&&!!e,V=e=>typeof e==`string`?e:``,oe=(e,t)=>e===`unordered`||e===`ordered`||e===`checklist`?e:t,se=e=>!!e,ce=(e,t)=>typeof e==`number`?e:t,le=(e,t)=>{let r=t.defaultStyle||`unordered`;if(!e||typeof e!=`object`)return{text:``,style:r,checked:!1,depth:0};if(ie(e)){let{text:t,checked:i}=(e=>{if(typeof e==`string`)return{text:e,checked:!1};if(typeof e==`object`&&e){var t,n,r;return{text:(t=(n=e.content)==null?e.text:n)==null?``:t,checked:(r=e.checked)==null?!1:r}}return{text:``,checked:!1}})(e.items[0]);return n.t({text:t,style:e.style||r,checked:!!i,depth:0},e.start!==void 0&&e.start!==1?{start:e.start}:{})}if(ae(e)){let t=V(e.text),i=oe(e.style,r),a=se(e.checked),o=ce(e.depth,0),s=e.start,c=typeof s==`number`&&s!==void 0&&s!==1?s:void 0;return n.t({text:t,style:i,checked:a,depth:o},c===void 0?{}:{start:c})}return{text:``,style:r,checked:!1,depth:0}},ue=(e,t)=>{if(!e)return null;if(t===`checklist`){let t=e.querySelector(`[data-blok-testid="list-checklist-content"]`);return t instanceof HTMLElement?t:null}let n=e.querySelector(`[data-blok-testid="list-content-container"]`);return n instanceof HTMLElement?n:null},H=(e,t,n)=>{e&&e.setAttribute(`data-list-depth`,String(n));let r=e==null?void 0:e.querySelector(`[role="listitem"]`);r instanceof HTMLElement&&(r.style.marginLeft=n>0?`${n*27}px`:``),t.depth=n},de=(e,t)=>t.getBlockDepth(e),fe=(e,t)=>t.getBlockStyle(e),pe=(e,t)=>t.getBulletCharacter(e),me=(e,t,n,r,i)=>{var a;let o=e?(a=r.getBlockIndex(e))==null?r.getCurrentBlockIndex():a:r.getCurrentBlockIndex();return o<=0?0:i.getSiblingIndex(o,t,n)},he=(e,t,n,r,i,a)=>{var o;if(e===0){var s;return(s=r.start)==null?1:s}let c=n?(o=i.getBlockIndex(n))==null?i.getCurrentBlockIndex():o:i.getCurrentBlockIndex(),l=a.findFirstItemIndex(c-1,t,e,r.style);return l===null?1:a.getBlockStartValue(l)},ge=(e,t,n,r,i,a)=>{var o;let s=he(e,t,r,n,i,a)+e,c=r?(o=i.getBlockIndex(r))==null?i.getCurrentBlockIndex():o:i.getCurrentBlockIndex(),l=a.getVisualDepth(c,t);return a.formatNumber(s,l)},_e=(e,t,n,r)=>r.findGroupStart(e,t,n),ve=(e,t,n,r)=>{if(!e)return;let i=e.holder,a=i==null?void 0:i.querySelector(`[data-list-style="ordered"]`);if(!a)return;let o=a.querySelector(`[data-list-marker]`);if(!o)return;let s=t.getBlockIndex(e.id);if(s==null)return;let c=de(e,n),l=fe(e,r)||`ordered`,u=r.getSiblingIndex(s,c,l),d=r.getGroupStartValue(s,c,u,l)+u,f=r.getVisualDepth(s,c);o.textContent=r.formatNumber(d,f)},ye=(e,t,n,r,i,a,o,s)=>{let c=e=>{if(e>=t)return;if(e===n){c(e+1);return}let l=a.getBlockByIndex(e);if(!l||l.name!==`list`)return;let u=de(l,o);if(!(u<r)){if(u>r){c(e+1);return}fe(l,s)===i&&(ve(l,a,o,s),c(e+1))}};c(e)},be=(e,t,n)=>{let r=e.getBlocksCount();Array.from({length:r},(e,t)=>t).forEach(r=>{let i=e.getBlockByIndex(r);if(!i||i.name!==`list`)return;let a=i.holder;a!=null&&a.querySelector(`[data-list-style="ordered"]`)&&ve(i,e,t,n)})},U=(e,t,n=`end`)=>{let r=()=>{let r=t.holder;if(!r)return;let i=r.querySelector(`[contenteditable="true"]`);if(!(i instanceof HTMLElement)){e.caret.setToBlock(t,n),e.caret.updateLastCaretAfterPosition();return}i.focus();let a=window.getSelection();if(!a)return;let o=document.createRange();n===`start`?(o.setStart(i,0),o.collapse(!0)):(o.selectNodeContents(i),o.collapse(!1)),a.removeAllRanges(),a.addRange(o),e.caret.updateLastCaretAfterPosition()},i=t.holder;(i==null?void 0:i.querySelector(`[contenteditable="true"]`))instanceof HTMLElement?r():requestAnimationFrame(()=>r())},xe=e=>{if(!e)return null;let t=window.getSelection();if(!t||t.rangeCount===0)return null;let n=t.getRangeAt(0);if(!e.contains(n.endContainer))return null;let r=document.createRange();return r.selectNodeContents(e),r.setEnd(n.endContainer,n.endOffset),r.toString().length},Se=e=>e.nodeType===Node.TEXT_NODE?[e]:Array.from(e.childNodes).flatMap(Se),Ce=(e,t)=>{let n=Se(e),r=(t,i)=>{var a,o;if(t>=n.length){var s,c;let t=n[n.length-1];return t===void 0?{node:e,nodeOffset:0}:{node:t,nodeOffset:(s=(c=t.textContent)==null?void 0:c.length)==null?0:s}}let l=n[t],u=(a=(o=l.textContent)==null?void 0:o.length)==null?0:a;return i<=u?{node:l,nodeOffset:i}:r(t+1,i-u)};return r(0,t)},we=(e,t,n)=>{let r=()=>{let r=t.holder;if(!r)return;let i=r.querySelector(`[contenteditable="true"]`);if(!(i instanceof HTMLElement)){e.caret.setToBlock(t,`end`),e.caret.updateLastCaretAfterPosition();return}i.focus();let a=window.getSelection();if(!a)return;let{node:o,nodeOffset:s}=Ce(i,n),c=document.createRange();c.setStart(o,s),c.collapse(!0),a.removeAllRanges(),a.addRange(c),e.caret.updateLastCaretAfterPosition()},i=t.holder;(i==null?void 0:i.querySelector(`[contenteditable="true"]`))instanceof HTMLElement?r():requestAnimationFrame(()=>r())},Te=async(e,r)=>{var i;let{api:a,blockId:o,data:s,element:c,getContentElement:l}=e,u=window.getSelection();if(!u||!c)return;let d=l();if(!d)return;let f=d.innerHTML.trim();if(f===``||f===`<br>`){await Ee(e,r);return}let{beforeContent:p,afterContent:m}=te(d,u.getRangeAt(0)),h=o?(i=a.blocks.getBlockIndex(o))==null?a.blocks.getCurrentBlockIndex():i:a.blocks.getCurrentBlockIndex();if(!o){d.innerHTML=p,s.text=p,U(a,a.blocks.insert(t.nr,n.t(n.t({text:m,style:s.style},s.style===`checklist`?{checked:!1}:{}),{},{depth:s.depth}),void 0,h+1,!0),`start`);return}let g=a.blocks.splitBlock(o,{text:p},t.nr,n.t(n.t({text:m,style:s.style},s.style===`checklist`?{checked:!1}:{}),{},{depth:s.depth}),h+1);s.text=p,U(a,g,`start`)},W=(e,t)=>{var n;if(t===void 0)return null;let r=e.blocks.getById(t),i=(n=r==null?void 0:r.parentId)==null?null:n;if(i===null)return null;let a=e.blocks.getById(i);return a!==null&&a.name===`list`?i:null},Ee=async(e,t)=>{let{api:n,blockId:r,getDepth:i}=e,a=W(n,r);if(a!==null&&r!==void 0){var o,s;let e=(o=(s=n.blocks.getById(a))==null?void 0:s.parentId)==null?null:o;n.blocks.setBlockParent(r,e);let t=n.blocks.getById(r);t!==null&&U(n,t);return}if(i()>0){await Ae(e,t);return}r!==void 0&&U(n,await n.blocks.convert(r,`paragraph`,{text:``}),`start`)},De=async(e,t,n)=>{let{blockId:r,data:i,element:a,getContentElement:o,syncContentFromDOM:s,getDepth:c,api:l}=e,u=window.getSelection();if(!u||!a)return;let d=u.getRangeAt(0),f=o();if(!f)return;s();let p=i.text;if(re(f,d)&&!u.isCollapsed){t.preventDefault(),f.innerHTML=``,i.text=``;let e=document.createRange();e.setStart(f,0),e.collapse(!0),u.removeAllRanges(),u.addRange(e);return}if(!u.isCollapsed||!ne(f,d))return;if(t.metaKey||t.ctrlKey||t.altKey){t.preventDefault();return}if(t.preventDefault(),r===void 0)return;let m=W(l,r);if(m!==null){var h,g;let e=(h=(g=l.blocks.getById(m))==null?void 0:g.parentId)==null?null:h;l.blocks.setBlockParent(r,e);let t=l.blocks.getById(r);t!==null&&U(l,t,`start`);return}if(c()>0){await Ae(e,n);return}U(l,await l.blocks.convert(r,`paragraph`,{text:p}),`start`)},Oe=async(e,t,n,r)=>{var i;let a=t?(i=e.blocks.getBlockIndex(t))==null?e.blocks.getCurrentBlockIndex():i:e.blocks.getCurrentBlockIndex(),o=e.blocks.getBlocksCount(),s=async t=>{if(t>=o)return;let i=e.blocks.getBlockByIndex(t);if(!i||i.name!==`list`)return;let a=r.getBlockDepth(i);a<=n||(await e.blocks.update(i.id,{depth:a-1}),await s(t+1))};await s(a+1)},ke=async(e,t,n,r)=>{var i;let a=t?(i=e.blocks.getBlockIndex(t))==null?e.blocks.getCurrentBlockIndex():i:e.blocks.getCurrentBlockIndex(),o=e.blocks.getBlocksCount(),s=async t=>{if(t>=o)return;let i=e.blocks.getBlockByIndex(t);if(!i||i.name!==`list`)return;let a=r.getBlockDepth(i);a<=n||(await e.blocks.update(i.id,{depth:a+1}),await s(t+1))};await s(a+1)},Ae=async(e,t)=>{let{api:r,blockId:i,data:a,syncContentFromDOM:o,getDepth:s,getContentElement:c}=e,l=s();if(l===0)return;let u=xe(c());o();let d=l-1;a.depth=d;let f=await r.blocks.update(i||``,n.t(n.t({},a),{},{depth:d}));t&&await Oe(r,i,l,t),u===null?U(r,f):we(r,f,u)},je=async e=>{let{api:r,blockId:i,data:a,element:o,getContentElement:s}=e;if(a.style!==`checklist`)return!1;let c=!a.checked;a.checked=c;let l=o==null?void 0:o.querySelector(`input[type="checkbox"]`);return t.Yn(l instanceof HTMLInputElement?l:null,s(),c),i!==void 0&&await r.blocks.update(i,n.t(n.t({},a),{},{checked:c})),!0},Me=async(e,t)=>{var r;let{api:i,blockId:a,data:o,syncContentFromDOM:s,getDepth:c,getContentElement:l}=e,u=a===void 0||(r=i.blocks.getBlockIndex(a))==null?i.blocks.getCurrentBlockIndex():r,d=c(),f=u>0?i.blocks.getBlockByIndex(u-1):void 0;if(f===void 0||f.name!==`list`||d>=t.getMaxAllowedDepth(u))return;let p=xe(l());s();let m=d+1;o.depth=m;let h=await i.blocks.update(a||``,n.t(n.t({},o),{},{depth:m}));await ke(i,a,d,t),p===null?U(i,h):we(i,h,p)},Ne=e=>{let{data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,setupItemPlaceholder:c,onCheckboxChange:l,keydownHandler:u}=e,d=t.Xn({data:n,readOnly:r,placeholder:i,itemColor:a,itemSize:o,markerDepth:s,keydownHandler:u});if(d.contentElement&&c(d.contentElement),d.checkboxElement&&!r){let e=d.checkboxElement;e.addEventListener(`change`,()=>{t.Yn(e,d.contentElement,e.checked),l(e.checked,d.contentElement)})}return d.wrapper},Pe=e=>{let t=e=>{if(e<=0)return``;let n=e-1;return t(Math.floor(n/26))+String.fromCharCode(97+n%26)};return t(e)},Fe=e=>{let t=[[1e3,`m`],[900,`cm`],[500,`d`],[400,`cd`],[100,`c`],[90,`xc`],[50,`l`],[40,`xl`],[10,`x`],[9,`ix`],[5,`v`],[4,`iv`],[1,`i`]],n=(e,r)=>{if(e<=0||r>=t.length)return``;let[i,a]=t[r];return e>=i?a+n(e-i,r):n(e,r+1)};return n(e,0)},Ie=class{constructor(e){this.blocks=e}getMarkerText(e){let{blockIndex:t,depth:n,style:r,start:i}=e;if(r!==`ordered`)return this.getBulletCharacter(n);let a=this.getSiblingIndex(t,n,r),o=(i==null?this.getGroupStartValue(t,n,a,r):i)+a;return this.formatNumber(o,n)}getBulletCharacter(e){let t=[`•`,`◦`,`▪`];return t[e%t.length]}getSiblingIndex(e,t,n){return e<=0?0:this.countPrecedingAtDepth(e-1,t,n)}findGroupStart(e,t,n){return this.findGroupStartRecursive(e-1,e,t,n)}formatNumber(e,t){let n=t%3;return n===1?`${Pe(e)}.`:n===2?`${Fe(e)}.`:`${e}.`}getGroupStartValue(e,t,n,r){if(n===0)return this.getBlockStartValue(e);let i=this.findFirstItemIndex(e-1,t,n,r);return i===null?1:this.getBlockStartValue(i)}getBlockStartValue(e){var t;let n=this.blocks.getBlockByIndex(e);if(!n)return 1;let r=(t=n.holder)==null?void 0:t.querySelector(`[data-list-style]`);if(!r)return 1;let i=r.getAttribute(`data-list-start`);return i?parseInt(i,10):1}findFirstItemIndex(e,t,n,r){if(e<0||n<=0)return e+1;let i=this.blocks.getBlockByIndex(e);if(!i||i.name!==`list`)return e+1;let a=this.getBlockDepth(i);if(a<t)return e+1;if(a>t)return this.findFirstItemIndex(e-1,t,n,r);let o=this.getBlockStyle(i);return r!==void 0&&o!==r?e+1:this.findFirstItemIndex(e-1,t,n-1,r)}getGroupBaseDepth(e){let t=e=>{if(e<=0)return 0;let n=this.blocks.getBlockByIndex(e-1);return!n||n.name!==`list`?e:t(e-1)},n=t(e),r=this.blocks.getBlockByIndex(n);return this.getBlockDepth(r)}getVisualDepth(e,t){return Math.max(0,t-this.getGroupBaseDepth(e))}getBlockDepth(e){var t;if(!e)return 0;let n=(t=e.holder)==null||(t=t.querySelector(`[role="listitem"]`))==null?void 0:t.getAttribute(`style`),r=n==null?void 0:n.match(/margin-left:\s*(\d+)px/);return r?Math.round(parseInt(r[1],10)/27):0}getBlockStyle(e){var t;if(!e)return null;let n=(t=e.holder)==null||(t=t.querySelector(`[data-list-style]`))==null?void 0:t.getAttribute(`data-list-style`);return this.isValidListItemStyle(n)?n:null}isValidListItemStyle(e){return e===`unordered`||e===`ordered`||e===`checklist`}countPrecedingAtDepth(e,t,n){if(e<0)return 0;let r=this.blocks.getBlockByIndex(e);if(!r||r.name!==`list`)return 0;let i=this.getBlockDepth(r);return i<t?0:i>t?this.countPrecedingAtDepth(e-1,t,n):this.getBlockStyle(r)===n?1+this.countPrecedingAtDepth(e-1,t,n):0}findGroupStartRecursive(e,t,n,r){if(e<0)return t;let i=this.blocks.getBlockByIndex(e);if(!i||i.name!==`list`)return t;let a=this.getBlockDepth(i);return a<n?t:a>n?this.findGroupStartRecursive(e-1,t,n,r):this.getBlockStyle(i)===r?this.findGroupStartRecursive(e-1,e,n,r):t}},Le={value:!1},Re=class{constructor(e){this.blocks=e,this.depthValidator=new t.Ln(e),this.markerCalculator=new Ie(e)}updateMarker(e,t,n){let r=e.querySelector(`[data-list-marker]`);if(!r)return;let i=this.markerCalculator.getSiblingIndex(t,n,`ordered`),a=this.markerCalculator.getGroupStartValue(t,n,i,`ordered`),o=(i===0&&a===1?(()=>{let t=e.getAttribute(`data-list-start`);if(!t)return a;let n=parseInt(t,10);return isNaN(n)?a:n})():a)+i,s=this.markerCalculator.getVisualDepth(t,n);r.textContent=this.markerCalculator.formatNumber(o,s)}updateSiblingMarkers(e,t){let n=this.blocks.getBlocksCount(),r=this.findListGroupStartIndex(e,t,`ordered`);this.updateMarkersInRange(r,n,e,t,`ordered`)}updateAllMarkers(){let e=this.blocks.getBlocksCount();for(let t of Array.from({length:e},(e,t)=>t)){let e=this.blocks.getBlockByIndex(t);if(!e||e.name!==`list`)continue;let n=e.holder;n!=null&&n.querySelector(`[data-list-style="ordered"]`)&&this.updateBlockMarker(e)}}scheduleUpdateAll(){Le.value||(Le.value=!0,requestAnimationFrame(()=>{Le.value=!1,this.updateAllMarkers()}))}findListGroupStartIndex(e,t,n){return this.markerCalculator.findGroupStart(e,t,n)}updateMarkersInRange(e,t,n,r,i){let a=Array.from({length:t-e},(t,n)=>e+n);for(let e of a){if(e===n)continue;let t=this.blocks.getBlockByIndex(e);if(!t||t.name!==`list`)return;let a=this.depthValidator.getBlockDepth(t);if(a<r)return;if(!(a>r)){if(this.getBlockStyle(t)!==i)return;this.updateBlockMarker(t)}}}getBlockStyle(e){return this.markerCalculator.getBlockStyle(e)}updateBlockMarker(e){if(!e)return;let t=e.holder,n=t==null?void 0:t.querySelector(`[data-list-style="ordered"]`);if(!n)return;let r=n.querySelector(`[data-list-marker]`);if(!r)return;let i=this.blocks.getBlockIndex(e.id);if(i==null)return;let a=this.depthValidator.getBlockDepth(e),o=this.getBlockStyle(e)||`ordered`,s=this.markerCalculator.getSiblingIndex(i,a,o),c=this.markerCalculator.getGroupStartValue(i,a,s,o),l=(s===0&&c===1?(()=>{let e=n.closest(`[data-list-start]`),t=e==null?void 0:e.getAttribute(`data-list-start`);if(!t)return c;let r=parseInt(t,10);return isNaN(r)?c:r})():c)+s,u=this.markerCalculator.getVisualDepth(i,a);r.textContent=this.markerCalculator.formatNumber(l,u)}},ze=()=>({text:{br:!0,a:{href:!0,target:`_blank`,rel:`nofollow`},b:!0,i:!0}}),Be=()=>({tags:[{li:{style:!0,"aria-level":!0,"data-list-style":!0}},{input:{type:!0,checked:!0}}]}),Ve=()=>({export:e=>e.text,import:e=>({text:e,style:`unordered`,checked:!1})}),He=[{name:`bulletedList`,titleKey:`bulletedList`,style:`unordered`,icon:o.St},{name:`numberedList`,titleKey:`numberedList`,style:`ordered`,icon:o.wt},{name:`todoList`,titleKey:`todoList`,style:`checklist`,icon:o.Ct}],Ue=()=>[{icon:o.St,titleKey:`bulletedList`,data:{style:`unordered`},name:`bulleted-list`,searchTerms:[`ul`,`bullet`,`unordered`,`list`],searchTermKeys:[`bullet`,`unordered`,`list`],shortcut:`CMD+SHIFT+5`},{icon:o.wt,titleKey:`numberedList`,data:{style:`ordered`},name:`numbered-list`,searchTerms:[`ol`,`ordered`,`number`,`list`],searchTermKeys:[`ordered`,`number`,`list`],shortcut:`CMD+SHIFT+6`},{icon:o.Ct,titleKey:`todoList`,data:{style:`checklist`},name:`check-list`,searchTerms:[`checkbox`,`task`,`todo`,`check`,`list`],searchTermKeys:[`checkbox`,`task`,`todo`,`check`,`list`],shortcut:`CMD+SHIFT+7`}],We=class{constructor({data:e,config:n,api:r,readOnly:i,block:a}){this._element=null,this.placeholderCleanup=null,this.boundHandleKeyDown=null,this.wasStructurallyNested=!1,this.handleBlockChanged=e=>{if(this.isBlockChangedEventPayload(e)&&(e.event.type===`block-removed`||e.event.type===`block-added`)){var t;(t=this.markerManager)==null||t.scheduleUpdateAll()}},this.api=r,this.readOnly=i,this._settings=n||{},this._data=this.normalizeData(e),this.depthValidator=new t.Ln(r.blocks),this.markerCalculator=new Ie(r.blocks),this.markerManager=this._data.style===`ordered`?new Re(r.blocks):null,a&&(this.blockId=a.id),this._data.style===`ordered`&&this.api.events.on(`block changed`,this.handleBlockChanged)}isBlockChangedEventPayload(e){return typeof e==`object`&&!!e&&`event`in e&&typeof e.event==`object`&&e.event!==null&&`type`in e.event&&typeof e.event.type==`string`}normalizeData(e){return le(e,this._settings)}get availableStyles(){let e=this._settings.styles;return!e||e.length===0?He:He.filter(t=>e.includes(t.style))}get itemColor(){return this._settings.itemColor}get itemSize(){return this._settings.itemSize}get placeholder(){return this.api.i18n.t(t.tr)}setupItemPlaceholder(e){this.readOnly||(this.placeholderCleanup=t.er(e,this.placeholder))}render(){var e,t;if(this._element)return this._element;this.reconcileDepthFromStructure();let n=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex(),r=(t=this._data.depth)==null?0:t,i=this.markerCalculator.getVisualDepth(n,r);return this.boundHandleKeyDown||(this.boundHandleKeyDown=this.handleKeyDown.bind(this)),this._element=Ne({data:this._data,readOnly:this.readOnly,placeholder:this.placeholder,itemColor:this.itemColor,itemSize:this.itemSize,markerDepth:i,setupItemPlaceholder:this.setupItemPlaceholder.bind(this),onCheckboxChange:e=>{this._data.checked=e},keydownHandler:this.readOnly?void 0:this.boundHandleKeyDown}),this._element}setReadOnly(e){if(!this._element)return;this.readOnly=e;let n=this.getContentElement();n&&(n.contentEditable=e?`false`:`true`);let r=this._element.querySelector(`input[type="checkbox"]`);r&&(r.disabled=e),e?(this.boundHandleKeyDown&&this._element.removeEventListener(`keydown`,this.boundHandleKeyDown),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null)):(this.boundHandleKeyDown&&this._element.addEventListener(`keydown`,this.boundHandleKeyDown),n&&(this.placeholderCleanup=t.er(n,this.placeholder)))}rendered(){var e;let t=this.getStructuralListDepth();this.wasStructurallyNested=t!==null,t!==null&&t!==((e=this._data.depth)==null?0:e)&&(this.adjustDepthTo(t),this.updateMarkerForDepth(t,this._data.style)),this.updateMarkersAfterPositionChange()}moved(e){var t;if(e.targetDepth!==void 0){var n;this.validateAndAdjustDepthAfterMove(e.toIndex,e.isGroupMove,e.targetDepth),this.wasStructurallyNested=this.getStructuralListDepth()!==null,this.updateMarkersAfterPositionChange(),(n=this.markerManager)==null||n.scheduleUpdateAll();return}let r=this.getStructuralListDepth();if(e.structural===!0||r!==null||this.wasStructurallyNested){let e=r==null?0:r;this.adjustDepthTo(e),this.updateMarkerForDepth(e,this._data.style),this.wasStructurallyNested=r!==null}else this.validateAndAdjustDepthAfterMove(e.toIndex,e.isGroupMove);this.updateMarkersAfterPositionChange(),(t=this.markerManager)==null||t.scheduleUpdateAll()}getStructuralListDepth(){if(this.blockId===void 0)return null;let e=(t,n)=>{var r;let i=this.api.blocks.getById(t),a=(r=i==null?void 0:i.parentId)==null?null:r;if(a===null)return n;let o=this.api.blocks.getById(a);return o===null||o.name!==`list`?n:e(a,n+1)},t=e(this.blockId,0);return t>0?t:null}reconcileDepthFromStructure(){var e;let t=this.getStructuralListDepth();t!==null&&t!==((e=this._data.depth)==null?0:e)&&(this._data.depth=t)}updateMarkersAfterPositionChange(){this._data.style!==`ordered`||!this._element||(this.updateMarker(),this.updateSiblingListMarkers())}validateAndAdjustDepthAfterMove(e,t,n){let r=this.getDepth(),i=this.depthValidator.getTargetDepthForMove({blockIndex:e,currentDepth:r,skipDepthPromotion:t,pointerDepth:n});r!==i&&(this.adjustDepthTo(i),this.updateMarkerForDepth(i,this._data.style))}adjustDepthTo(e){H(this._element,this._data,e)}removed(){var e;this._data.style===`ordered`&&(this.api.events.off(`block changed`,this.handleBlockChanged),(e=this.markerManager)==null||e.scheduleUpdateAll())}updateAllOrderedListMarkers(){be(this.api.blocks,this.depthValidator,this.markerCalculator)}updateMarker(){var e;let t=(e=this._element)==null?void 0:e.querySelector(`[data-list-marker]`);if(!t)return;let n=this.getDepth();t.textContent=ge(me(this.blockId,n,this._data.style,this.api.blocks,this.markerCalculator),n,this._data,this.blockId,this.api.blocks,this.markerCalculator)}updateSiblingListMarkers(){var e;let t=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex(),n=this.getDepth(),r=this._data.style,i=this.api.blocks.getBlocksCount();ye(_e(t,n,r,this.markerCalculator),i,t,n,r,this.api.blocks,this.depthValidator,this.markerCalculator)}updateMarkerForDepth(e,t){var n,r;let i=(n=this._element)==null?void 0:n.querySelector(`[aria-hidden="true"]`);if(!(i instanceof HTMLElement))return;let a=this.blockId?(r=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():r:this.api.blocks.getCurrentBlockIndex(),o=this.markerCalculator.getVisualDepth(a,e);t===`ordered`?i.textContent=ge(me(this.blockId,e,this._data.style,this.api.blocks,this.markerCalculator),e,this._data,this.blockId,this.api.blocks,this.markerCalculator):i.textContent=pe(o,this.markerCalculator)}updateCheckboxState(e){var n;let r=(n=this._element)==null?void 0:n.querySelector(`input[type="checkbox"]`);t.Yn(r instanceof HTMLInputElement?r:null,this.getContentElement(),e)}getDepth(){var e,t;return(e=(t=this.getStructuralListDepth())==null?this._data.depth:t)==null?0:e}handleKeyDown(e){if(e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&this._data.style===`checklist`){e.preventDefault(),this.toggleChecked();return}if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),this.handleEnter();return}if(e.key===`Backspace`){this.handleBackspace(e);return}if(e.key===`Tab`&&this.getStructuralListDepth()===null){var n;let r=((n=this.getPreviousBlock())==null?void 0:n.name)===t.nr;e.shiftKey&&this.getDepth()>0?(e.preventDefault(),this.handleOutdent()):!e.shiftKey&&r&&this.getDepth()>0&&(e.preventDefault(),this.handleIndent())}}getPreviousBlock(){var e;let t=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex();return t>0?this.api.blocks.getBlockByIndex(t-1):void 0}async toggleChecked(){var e=this;await je({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)})}async handleEnter(){var e=this;await Te({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)},e.depthValidator)}async handleBackspace(e){var t=this;await De({api:t.api,blockId:t.blockId,data:t._data,element:t._element,getContentElement:t.getContentElement.bind(t),syncContentFromDOM:t.syncContentFromDOM.bind(t),getDepth:t.getDepth.bind(t)},e,t.depthValidator)}async handleIndent(){var e=this;await Me({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)},e.depthValidator)}async handleOutdent(){var e=this;await Ae({api:e.api,blockId:e.blockId,data:e._data,element:e._element,getContentElement:e.getContentElement.bind(e),syncContentFromDOM:e.syncContentFromDOM.bind(e),getDepth:e.getDepth.bind(e)},e.depthValidator)}syncContentFromDOM(){var e;let t=this.getContentElement();if(t&&(this._data.text=t.innerHTML),this._data.style!==`checklist`)return;let n=(e=this._element)==null?void 0:e.querySelector(`input[type="checkbox"]`);n instanceof HTMLInputElement&&(this._data.checked=n.checked)}getContentElement(){return ue(this._element,this._data.style)}renderSettings(){return I(this.availableStyles,this._data.style,this.api.i18n.t,e=>this.setStyle(e))}setStyle(e){let t=this._data.style;if(this._data.style=e,this.rerender(),t!==e){var n;(n=this.markerManager)==null||n.scheduleUpdateAll()}}rerender(){var e,t,n;this.reconcileDepthFromStructure();let r=this.blockId?(e=this.api.blocks.getBlockIndex(this.blockId))==null?this.api.blocks.getCurrentBlockIndex():e:this.api.blocks.getCurrentBlockIndex(),i=(t=this._data.depth)==null?0:t,a=M({data:this._data,readOnly:this.readOnly,placeholder:this.placeholder,itemColor:this.itemColor,itemSize:this.itemSize,markerDepth:this.markerCalculator.getVisualDepth(r,i),element:this._element,setupItemPlaceholder:this.setupItemPlaceholder.bind(this),onCheckboxChange:e=>{this._data.checked=e},keydownHandler:this.readOnly||(n=this.boundHandleKeyDown)==null?void 0:n});a&&(this._element=a,this.updateMarkersAfterPositionChange())}validate(e){return typeof e.text==`string`}save(){return N(this._data,this._element,this.getContentElement.bind(this),this.getDepth())}setData(e){let t=P(this._data,e,this._element,this.getContentElement.bind(this),{adjustDepthTo:this.adjustDepthTo.bind(this),updateMarkerForDepth:this.updateMarkerForDepth.bind(this),updateCheckboxState:this.updateCheckboxState.bind(this)});return this._data=t.newData,t.inPlace}merge(e){F({data:this._data,element:this._element,getContentElement:this.getContentElement.bind(this),parseHTML:B},e)}static get conversionConfig(){return Ve()}static get sanitize(){return ze()}static get pasteConfig(){return Be()}onPaste(e){let n=e.detail;if(!(`data`in n))return;let r=n.data;if(!t.at(r))return;let{text:i,checked:a}=t.it(r),o=t.rt(r);this._data={text:i,style:t.nt(r,this._data.style),checked:a,depth:o},this.rerender()}static get isReadOnlySupported(){return!0}getContentOffset(e){return ee(e)}static get toolbox(){return Ue()}},Ge=e=>!!(/^#[0-9a-f]{3,4}$/i.test(e)||/^#[0-9a-f]{6}([0-9a-f]{2})?$/i.test(e)||/^rgba?\(\s*[\d.]+\s*,\s*[\d.]+\s*,\s*[\d.]+\s*(,\s*[\d.]+\s*)?\)$/i.test(e)||/^hsla?\(\s*[\d.]+\s*,\s*[\d.]+%\s*,\s*[\d.]+%\s*(,\s*[\d.]+\s*)?\)$/i.test(e)||e===`transparent`),Ke=class{constructor(e){var t,n,r;this.withHeadingsValue=(t=e==null?void 0:e.withHeadings)==null?!1:t,this.withHeadingColumnValue=(n=e==null?void 0:e.withHeadingColumn)==null?!1:n,this.stretchedValue=(r=e==null?void 0:e.stretched)==null?!1:r,this.colWidthsValue=e!=null&&e.colWidths?[...e.colWidths]:void 0,this.initialColWidthValue=e==null?void 0:e.initialColWidth,this.contentGrid=this.normalizeContent(e==null?void 0:e.content),this.blockCellMap=new Map,this.rebuildBlockCellMap()}get rows(){return this.contentGrid.length}get cols(){return this.contentGrid.length>0?this.contentGrid[0].length:0}get withHeadings(){return this.withHeadingsValue}get withHeadingColumn(){return this.withHeadingColumnValue}get stretched(){return this.stretchedValue}get colWidths(){return this.colWidthsValue?[...this.colWidthsValue]:void 0}get initialColWidth(){return this.initialColWidthValue}snapshot(){let e={withHeadings:this.withHeadingsValue,withHeadingColumn:this.withHeadingColumnValue,stretched:this.stretchedValue,content:this.contentGrid.map(e=>e.map(e=>{let t={blocks:[...e.blocks]};return e.color!==void 0&&(t.color=e.color),e.textColor!==void 0&&(t.textColor=e.textColor),e.placement!==void 0&&(t.placement=e.placement),e.colspan!==void 0&&e.colspan>1&&(t.colspan=e.colspan),e.rowspan!==void 0&&e.rowspan>1&&(t.rowspan=e.rowspan),e.mergedInto!==void 0&&(t.mergedInto=[...e.mergedInto]),t}))};return this.colWidthsValue!==void 0&&(e.colWidths=[...this.colWidthsValue]),this.initialColWidthValue!==void 0&&(e.initialColWidth=this.initialColWidthValue),e}findCellForBlock(e){var t;return(t=this.blockCellMap.get(e))==null?null:t}addBlockToCell(e,t,n){if(!this.isInBounds(e,t)||this.isSpannedCell(e,t))return;let r=this.blockCellMap.get(n);if(r){let e=this.contentGrid[r.row][r.col];e.blocks=e.blocks.filter(e=>e!==n)}this.contentGrid[e][t].blocks.push(n),this.blockCellMap.set(n,{row:e,col:t})}removeBlockFromCell(e,t,n){if(!this.isInBounds(e,t))return;let r=this.contentGrid[e][t],i=r.blocks.indexOf(n);i!==-1&&(r.blocks.splice(i,1),this.blockCellMap.delete(n))}setCellBlocks(e,t,n){if(this.isInBounds(e,t)&&!this.isSpannedCell(e,t)){for(let n of this.contentGrid[e][t].blocks)this.blockCellMap.delete(n);for(let r of n){let n=this.blockCellMap.get(r);if(n!==void 0&&(n.row!==e||n.col!==t)){let e=this.contentGrid[n.row][n.col];e.blocks=e.blocks.filter(e=>e!==r)}}this.contentGrid[e][t].blocks=[...n];for(let r of n)this.blockCellMap.set(r,{row:e,col:t})}}getCellBlocks(e,t){return this.isInBounds(e,t)?[...this.contentGrid[e][t].blocks]:[]}setCellColor(e,t,n){this.isInBounds(e,t)&&(this.isSpannedCell(e,t)||(n===void 0?delete this.contentGrid[e][t].color:Ge(n)&&(this.contentGrid[e][t].color=n)))}getCellColor(e,t){if(this.isInBounds(e,t))return this.contentGrid[e][t].color}setCellTextColor(e,t,n){this.isInBounds(e,t)&&(this.isSpannedCell(e,t)||(n===void 0?delete this.contentGrid[e][t].textColor:Ge(n)&&(this.contentGrid[e][t].textColor=n)))}getCellTextColor(e,t){if(this.isInBounds(e,t))return this.contentGrid[e][t].textColor}setCellPlacement(e,t,n){this.isInBounds(e,t)&&(this.isSpannedCell(e,t)||(n===void 0?delete this.contentGrid[e][t].placement:this.contentGrid[e][t].placement=n))}getCellPlacement(e,t){if(this.isInBounds(e,t))return this.contentGrid[e][t].placement}addRow(e){let t=e===void 0?this.contentGrid.length:Math.min(Math.max(0,e),this.contentGrid.length),n=this.cols,r=Array.from({length:n},()=>({blocks:[]}));return this.contentGrid.splice(t,0,r),this.shiftMergedIntoRows(t,1),this.expandSpansForInsertedRow(t),this.rebuildBlockCellMap(),{type:`add-row`,index:t,cellsToPopulate:n}}deleteRow(e){if(!this.isRowInBounds(e))return{type:`delete-row`,index:e,blocksToDelete:[]};this.contractSpansForDeletedRow(e);let t=this.collectBlocksInRow(e);this.contentGrid.splice(e,1);for(let e of t)this.blockCellMap.delete(e);return this.shiftMergedIntoRows(e,-1),this.rebuildBlockCellMap(),{type:`delete-row`,index:e,blocksToDelete:t}}moveRow(e,t){if(!this.isRowInBounds(e)||!this.isRowInBounds(t)||e===t||this.isRowInvolvedInMerge(e))return{type:`move-row`,index:e,toIndex:t};let[n]=this.contentGrid.splice(e,1);return this.contentGrid.splice(t,0,n),this.rebuildMergedIntoRowCoordinates(e,t),this.rebuildBlockCellMap(),{type:`move-row`,index:e,toIndex:t}}addColumn(e,t){let n=e===void 0?this.cols:Math.min(Math.max(0,e),this.cols),r=[];if(this.contentGrid.forEach((e,t)=>{e.splice(n,0,{blocks:[]}),r.push({row:t,col:n})}),this.colWidthsValue!==void 0){let e=t==null?0:t;this.colWidthsValue.splice(n,0,e)}return this.shiftMergedIntoCols(n,1),this.expandSpansForInsertedCol(n),this.rebuildBlockCellMap(),{type:`add-column`,index:n,cellsToPopulate:r}}deleteColumn(e){var t;if(!this.isColInBounds(e))return{type:`delete-column`,index:e,blocksToDelete:[]};this.contractSpansForDeletedCol(e);let n=this.collectBlocksInColumn(e);for(let t of this.contentGrid)t.splice(e,1);for(let e of n)this.blockCellMap.delete(e);return this.colWidthsValue!==void 0&&this.colWidthsValue.splice(e,1),((t=this.colWidthsValue)==null?void 0:t.length)===0&&(this.colWidthsValue=void 0),this.shiftMergedIntoCols(e,-1),this.rebuildBlockCellMap(),{type:`delete-column`,index:e,blocksToDelete:n}}moveColumn(e,t){if(!this.isColInBounds(e)||!this.isColInBounds(t)||e===t||this.isColInvolvedInMerge(e))return{type:`move-column`,index:e,toIndex:t};for(let n of this.contentGrid){let[r]=n.splice(e,1);n.splice(t,0,r)}if(this.colWidthsValue!==void 0){let[n]=this.colWidthsValue.splice(e,1);this.colWidthsValue.splice(t,0,n)}return this.rebuildMergedIntoColCoordinates(e,t),this.rebuildBlockCellMap(),{type:`move-column`,index:e,toIndex:t}}replaceAll(e){var t;this.withHeadingsValue=e.withHeadings,this.withHeadingColumnValue=e.withHeadingColumn,this.stretchedValue=(t=e.stretched)==null?!1:t,this.colWidthsValue=e.colWidths?[...e.colWidths]:void 0,this.initialColWidthValue=e.initialColWidth,this.contentGrid=this.normalizeContent(e.content),this.blockCellMap.clear(),this.rebuildBlockCellMap()}canMergeCells(e){let{minRow:t,maxRow:n,minCol:r,maxCol:i}=e;return t===n&&r===i||t<0||n>=this.rows||r<0||i>=this.cols?!1:this.contentGrid.slice(t,n+1).every((e,a)=>{let o=t+a;return e.slice(r,i+1).every((e,a)=>{var s,c;let l=r+a,u=(s=e.colspan)==null?1:s,d=(c=e.rowspan)==null?1:c;if((u>1||d>1)&&(o+d-1>n||l+u-1>i))return!1;if(e.mergedInto!==void 0){let[n,i]=e.mergedInto;if(n<t||i<r)return!1}return!0})})}mergeCells(e){var t,n;let{minRow:r,maxRow:i,minCol:a,maxCol:o}=e,s={blocksToRelocate:[]};if(!this.canMergeCells(e))return s;let c=this.contentGrid[r][a];this.contentGrid.slice(r,i+1).forEach((e,t)=>{let n=r+t;e.slice(a,o+1).forEach((e,t)=>{var i,o;let s=a+t;n===r&&s===a||(((i=e.colspan)==null?1:i)>1||((o=e.rowspan)==null?1:o)>1)&&this.splitCellInternal(n,s)})}),(((t=c.colspan)==null?1:t)>1||((n=c.rowspan)==null?1:n)>1)&&this.splitCellInternal(r,a);let l=[];return this.contentGrid.slice(r,i+1).forEach((e,t)=>{let n=r+t;this.contentGrid[n].slice(a,o+1).forEach((e,t)=>{let i=a+t,o=this.contentGrid[n][i];for(let e of o.blocks)l.push(e),(n!==r||i!==a)&&s.blocksToRelocate.push(e);(n!==r||i!==a)&&(o.blocks=[],o.mergedInto=[r,a],delete o.colspan,delete o.rowspan,delete o.color,delete o.textColor,delete o.placement)})}),c.blocks=l,c.colspan=o-a+1,c.rowspan=i-r+1,delete c.mergedInto,delete c.placement,c.colspan===1&&delete c.colspan,c.rowspan===1&&delete c.rowspan,this.rebuildBlockCellMap(),s}splitCell(e,t){var n,r;if(!this.isInBounds(e,t))return;let i=this.contentGrid[e][t];((n=i.colspan)==null?1:n)<=1&&((r=i.rowspan)==null?1:r)<=1||(this.splitCellInternal(e,t),this.rebuildBlockCellMap())}isMergedCell(e,t){var n,r;if(!this.isInBounds(e,t))return!1;let i=this.contentGrid[e][t];return((n=i.colspan)==null?1:n)>1||((r=i.rowspan)==null?1:r)>1}isSpannedCell(e,t){return this.isInBounds(e,t)?this.contentGrid[e][t].mergedInto!==void 0:!1}getMergeOrigin(e,t){var n,r;if(!this.isInBounds(e,t))return null;let i=this.contentGrid[e][t];return i.mergedInto===void 0?((n=i.colspan)==null?1:n)>1||((r=i.rowspan)==null?1:r)>1?[e,t]:null:[i.mergedInto[0],i.mergedInto[1]]}hasMerges(){return this.contentGrid.some(e=>e.some(e=>{var t,n;return((t=e.colspan)==null?1:t)>1||((n=e.rowspan)==null?1:n)>1||e.mergedInto!==void 0}))}getCellSpan(e,t){var n,r;if(!this.isInBounds(e,t))return{colspan:1,rowspan:1};let i=this.contentGrid[e][t];return{colspan:(n=i.colspan)==null?1:n,rowspan:(r=i.rowspan)==null?1:r}}splitCellInternal(e,t){var n,r;let i=this.contentGrid[e][t],a=(n=i.colspan)==null?1:n,o=(r=i.rowspan)==null?1:r;this.contentGrid.slice(e,Math.min(e+o,this.rows)).forEach((n,r)=>{let i=e+r;this.contentGrid[i].slice(t,Math.min(t+a,this.cols)).forEach((n,r)=>{let a=t+r;if(i===e&&a===t)return;let o=this.contentGrid[i][a];delete o.mergedInto,o.blocks=[],delete o.placement,delete o.color,delete o.textColor})}),delete i.colspan,delete i.rowspan,delete i.placement}setWithHeadings(e){this.withHeadingsValue=e}setWithHeadingColumn(e){this.withHeadingColumnValue=e}setStretched(e){this.stretchedValue=e}setColWidths(e){this.colWidthsValue=e?[...e]:void 0}setInitialColWidth(e){this.initialColWidthValue=e}validateInvariants(){if(this.contentGrid.length>0){let e=this.contentGrid[0].length;this.contentGrid.forEach((t,n)=>{if(t.length!==e)throw Error(`Invariant violation: row ${n} has ${t.length} columns, expected ${e}`)})}if(this.colWidthsValue!==void 0&&this.contentGrid.length>0&&this.colWidthsValue.length!==this.contentGrid[0].length)throw Error(`Invariant violation: colWidths has ${this.colWidthsValue.length} entries but grid has ${this.contentGrid[0].length} columns`);let e=new Set;if(this.contentGrid.forEach((t,n)=>{t.forEach((t,r)=>{for(let i of t.blocks){if(e.has(i))throw Error(`Invariant violation: block "${i}" appears in multiple cells`);e.add(i);let t=this.blockCellMap.get(i);if(!t)throw Error(`Invariant violation: block "${i}" at [${n},${r}] not in blockCellMap`);if(t.row!==n||t.col!==r)throw Error(`Invariant violation: block "${i}" at [${n},${r}] mapped to [${t.row},${t.col}]`)}})}),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{var r,i;let a=(r=e.colspan)==null?1:r,o=(i=e.rowspan)==null?1:i;if(a>1||o>1){var s,c;if(t+o>this.contentGrid.length||n+a>((s=(c=this.contentGrid[0])==null?void 0:c.length)==null?0:s)){var l,u;throw Error(`Invariant violation: origin [${t},${n}] span extends beyond grid bounds (colspan=${a}, rowspan=${o}, rows=${this.contentGrid.length}, cols=${(l=(u=this.contentGrid[0])==null?void 0:u.length)==null?0:l})`)}}})}),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{var r,i,a,o;if(e.mergedInto===void 0)return;let[s,c]=e.mergedInto;if(s<0||s>=this.contentGrid.length||c<0||c>=((r=(i=this.contentGrid[0])==null?void 0:i.length)==null?0:r))throw Error(`Invariant violation: mergedInto at [${t},${n}] points to out-of-bounds [${s},${c}]`);let l=this.contentGrid[s][c],u=(a=l.colspan)==null?1:a,d=(o=l.rowspan)==null?1:o;if(u<=1&&d<=1)throw Error(`Invariant violation: mergedInto at [${t},${n}] points to [${s},${c}] which is not a merge origin`);if(t<s||t>=s+d||n<c||n>=c+u)throw Error(`Invariant violation: mergedInto at [${t},${n}] is outside the span of origin [${s},${c}] (colspan=${u}, rowspan=${d})`)})}),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{var r,i;let a=(r=e.colspan)==null?1:r,o=(i=e.rowspan)==null?1:i;a<=1&&o<=1||this.contentGrid.slice(t,t+o).forEach((e,r)=>{let i=t+r;e.slice(n,n+a).forEach((e,r)=>{let a=n+r;if(!(i===t&&a===n)&&!(e!=null&&e.mergedInto))throw Error(`Invariant violation: cell [${i},${a}] is within span of origin [${t},${n}] but has no mergedInto`)})})})}),this.blockCellMap.size!==e.size)throw Error(`Invariant violation: blockCellMap has ${this.blockCellMap.size} entries but grid has ${e.size} blocks`)}shiftMergedIntoRows(e,t){this.contentGrid.forEach((n,r)=>{this.contentGrid[r].forEach((n,i)=>{let a=this.contentGrid[r][i];a.mergedInto!==void 0&&a.mergedInto[0]>=e&&(a.mergedInto=[a.mergedInto[0]+t,a.mergedInto[1]])})})}shiftMergedIntoCols(e,t){this.contentGrid.forEach((n,r)=>{this.contentGrid[r].forEach((n,i)=>{let a=this.contentGrid[r][i];a.mergedInto!==void 0&&a.mergedInto[1]>=e&&(a.mergedInto=[a.mergedInto[0],a.mergedInto[1]+t])})})}expandSpansForInsertedRow(e){this.contentGrid.forEach((t,n)=>{this.contentGrid[n].forEach((t,r)=>{var i,a;let o=this.contentGrid[n][r],s=(i=o.rowspan)==null?1:i,c=(a=o.colspan)==null?1:a;s<=1&&c<=1||n>=e||n+s<=e||(o.rowspan=s+1,this.markInsertedRowCells(e,n,r,c))})})}markInsertedRowCells(e,t,n,r){this.contentGrid[e].slice(n,n+r).forEach((r,i)=>{let a=n+i;if(a===n&&t===e)return;let o=this.contentGrid[e][a];o.mergedInto=[t,n],o.blocks=[]})}expandSpansForInsertedCol(e){this.contentGrid.forEach((t,n)=>{this.contentGrid[n].forEach((t,r)=>{var i,a;let o=this.contentGrid[n][r],s=(i=o.rowspan)==null?1:i,c=(a=o.colspan)==null?1:a;s<=1&&c<=1||r>=e||r+c<=e||(o.colspan=c+1,this.markInsertedColCells(e,n,r,s))})})}markInsertedColCells(e,t,n,r){this.contentGrid.slice(t,t+r).forEach((r,i)=>{let a=t+i;if(a===t&&e===n)return;let o=this.contentGrid[a][e];o.mergedInto=[t,n],o.blocks=[]})}contractSpansForDeletedRow(e){this.contentGrid[e].forEach((t,n)=>{var r,i;let a=this.contentGrid[e][n];((r=a.colspan)==null?1:r)>1||((i=a.rowspan)==null?1:i)>1?this.handleOriginInDeletedRow(e,n):a.mergedInto!==void 0&&this.handleCoveredInDeletedRow(e,n)})}handleOriginInDeletedRow(e,t){var n,r;let i=this.contentGrid[e][t],a=(n=i.rowspan)==null?1:n,o=(r=i.colspan)==null?1:r;if(a<=1)return;let s=a-1,c=e+1;c<this.contentGrid.length&&this.transferOriginToNextRow(e,t,c,a,o,s),delete i.colspan,delete i.rowspan}transferOriginToNextRow(e,t,n,r,i,a){let o=this.contentGrid[e][t],s=this.contentGrid[n][t];if(s.blocks=[...o.blocks],o.blocks=[],delete s.mergedInto,a===1&&i===1){delete s.colspan,delete s.rowspan,this.clearMergedIntoRefs(n,e+r,t,t+i,e,t,n,t,void 0);return}a>1?s.rowspan=a:delete s.rowspan,i>1?s.colspan=i:delete s.colspan,this.clearMergedIntoRefs(n,e+r,t,t+i,e,t,n,t,[n,t])}handleCoveredInDeletedRow(e,t){var n,r,i;let[a,o]=this.contentGrid[e][t].mergedInto;if(a===e)return;let s=(n=this.contentGrid[a])==null?void 0:n[o];if(!s)return;let c=(r=s.rowspan)==null?1:r,l=(i=s.colspan)==null?1:i,u=c-1;u===1&&l===1?(delete s.colspan,delete s.rowspan,this.clearMergedIntoRefsForDissolve(a,a+c,o,o+l,a,o,e)):u>1?s.rowspan=u:delete s.rowspan}clearMergedIntoRefs(e,t,n,r,i,a,o,s,c){this.contentGrid.slice(e,t).forEach((t,l)=>{let u=e+l;this.contentGrid[u].slice(n,r).forEach((e,t)=>{var r,l,d;let f=n+t;if(u===o&&f===s)return;let p=(r=this.contentGrid[u])==null?void 0:r[f];(p==null||(l=p.mergedInto)==null?void 0:l[0])===i&&(p==null||(d=p.mergedInto)==null?void 0:d[1])===a&&(c===void 0?delete p.mergedInto:p.mergedInto=c)})})}clearMergedIntoRefsForDissolve(e,t,n,r,i,a,o){this.contentGrid.slice(e,t).forEach((t,s)=>{let c=e+s;c!==o&&this.contentGrid[c].slice(n,r).forEach((e,t)=>{var r;let o=n+t;if(c===i&&o===a)return;let s=(r=this.contentGrid[c])==null?void 0:r[o];s!=null&&s.mergedInto&&delete s.mergedInto})})}contractSpansForDeletedCol(e){this.contentGrid.forEach((t,n)=>{var r,i;let a=this.contentGrid[n][e];((r=a.colspan)==null?1:r)>1||((i=a.rowspan)==null?1:i)>1?this.handleOriginInDeletedCol(e,n):a.mergedInto!==void 0&&this.handleCoveredInDeletedCol(e,n)})}handleOriginInDeletedCol(e,t){var n,r,i,a;let o=this.contentGrid[t][e],s=(n=o.rowspan)==null?1:n,c=(r=o.colspan)==null?1:r;if(c<=1)return;let l=c-1,u=e+1;u<((i=(a=this.contentGrid[t])==null?void 0:a.length)==null?0:i)&&this.transferOriginToNextCol(e,t,u,s,c,l),delete o.colspan,delete o.rowspan}transferOriginToNextCol(e,t,n,r,i,a){let o=this.contentGrid[t][e],s=this.contentGrid[t][n];if(s.blocks=[...o.blocks],o.blocks=[],delete s.mergedInto,a===1&&r===1){delete s.colspan,delete s.rowspan,this.clearMergedIntoRefs(t,t+r,n,e+i,t,e,t,n,void 0);return}a>1?s.colspan=a:delete s.colspan,r>1?s.rowspan=r:delete s.rowspan,this.clearMergedIntoRefs(t,t+r,n,e+i,t,e,t,n,[t,n])}handleCoveredInDeletedCol(e,t){var n,r,i;let[a,o]=this.contentGrid[t][e].mergedInto;if(o===e)return;let s=(n=this.contentGrid[a])==null?void 0:n[o];if(!s)return;let c=(r=s.colspan)==null?1:r,l=(i=s.rowspan)==null?1:i,u=c-1;u===1&&l===1?(delete s.colspan,delete s.rowspan,this.clearMergedIntoRefsForDissolveCol(a,a+l,o,o+c,a,o,e)):u>1?s.colspan=u:delete s.colspan}clearMergedIntoRefsForDissolveCol(e,t,n,r,i,a,o){this.contentGrid.slice(e,t).forEach((t,s)=>{let c=e+s;this.contentGrid[c].slice(n,r).forEach((e,t)=>{var r;let s=n+t;if(c===i&&s===a||s===o)return;let l=(r=this.contentGrid[c])==null?void 0:r[s];l!=null&&l.mergedInto&&delete l.mergedInto})})}isRowInvolvedInMerge(e){return this.contentGrid[e].some(t=>{var n;return((n=t.rowspan)==null?1:n)>1?!0:t.mergedInto!==void 0&&t.mergedInto[0]!==e})}isColInvolvedInMerge(e){return this.contentGrid.some(t=>{var n;let r=t[e];return((n=r.colspan)==null?1:n)>1?!0:r.mergedInto!==void 0&&r.mergedInto[1]!==e})}rebuildMergedIntoRowCoordinates(e,t){let n=this.contentGrid.length,r=this.buildMoveMapping(n,e,t);this.contentGrid.forEach((e,t)=>{this.contentGrid[t].forEach((e,n)=>{let i=this.contentGrid[t][n];i.mergedInto!==void 0&&(i.mergedInto=[r[i.mergedInto[0]],i.mergedInto[1]])})})}rebuildMergedIntoColCoordinates(e,t){let n=this.cols,r=this.buildMoveMapping(n,e,t);this.contentGrid.forEach((e,t)=>{this.contentGrid[t].forEach((e,n)=>{let i=this.contentGrid[t][n];if(i.mergedInto!==void 0){let e=i.mergedInto[1];i.mergedInto=[i.mergedInto[0],r[e]]}})})}buildMoveMapping(e,t,n){return Array.from({length:e},(e,r)=>{if(r===t)return n;let i=r>t?r-1:r;return i>=n?i+1:i})}normalizeContent(e){if(!e||!Array.isArray(e))return[];let t=new Set;return e.map(e=>(e==null?[]:e).map(e=>{let n=this.normalizeCell(e);return n.blocks=n.blocks.filter(e=>t.has(e)?!1:(t.add(e),!0)),n}))}normalizeCell(e){if(t.et(e)){let t={blocks:[...e.blocks]};return e.color!==void 0&&Ge(e.color)&&(t.color=e.color),e.textColor!==void 0&&Ge(e.textColor)&&(t.textColor=e.textColor),e.placement!==void 0&&(t.placement=e.placement),e.colspan!==void 0&&e.colspan>1&&(t.colspan=e.colspan),e.rowspan!==void 0&&e.rowspan>1&&(t.rowspan=e.rowspan),e.mergedInto!==void 0&&(t.mergedInto=[...e.mergedInto]),t}return{blocks:[]}}rebuildBlockCellMap(){this.blockCellMap.clear(),this.contentGrid.forEach((e,t)=>{e.forEach((e,n)=>{for(let r of e.blocks)this.blockCellMap.set(r,{row:t,col:n})})})}isInBounds(e,t){return e>=0&&e<this.contentGrid.length&&t>=0&&(this.contentGrid.length===0||t<this.contentGrid[e].length)}isRowInBounds(e){return e>=0&&e<this.contentGrid.length}isColInBounds(e){return e>=0&&this.contentGrid.length>0&&e<this.contentGrid[0].length}collectBlocksInRow(e){let t=[];for(let n of this.contentGrid[e])t.push(...n.blocks);return t}collectBlocksInColumn(e){let t=[];for(let n of this.contentGrid)e<n.length&&t.push(...n[e].blocks);return t}},qe=`data-blok-table-add-row`,Je=`data-blok-table-add-col`,Ye=150,Xe=5,G=40,Ze=[`flex`,`items-center`,`justify-center`,`transition-opacity`,`duration-150`],Qe=[`flex`,`items-center`,`justify-center`,`border`,`border-gray-300`,`rounded-sm`,`group-hover/add:bg-gray-50`],$e=`12`,et=class{constructor(e){this.rowHideTimeout=null,this.colHideTimeout=null,this.rowVisible=!1,this.colVisible=!1,this.interactive=!0,this.dragState=null,this.scrollContainer=null,this.boundScrollHandler=null,this.scrollContainerResizeObserver=null,this.wrapper=e.wrapper,this.grid=e.grid,this.i18n=e.i18n,this.boundAddRowClick=e.onAddRow,this.boundAddColClick=e.onAddColumn,this.onDragStart=e.onDragStart,this.onDragAddRow=e.onDragAddRow,this.onDragRemoveRow=e.onDragRemoveRow,this.onDragAddCol=e.onDragAddCol,this.onDragRemoveCol=e.onDragRemoveCol,this.onDragEnd=e.onDragEnd,this.getTableSize=e.getTableSize,this.getNewColumnWidth=e.getNewColumnWidth,this.boundMouseMove=this.handleMouseMove.bind(this),this.boundDocumentMouseMove=this.handleDocumentMouseMove.bind(this),this.boundMouseLeave=this.handleMouseLeave.bind(this),this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundRowPointerDown=e=>this.handlePointerDown(`row`,e),this.boundColPointerDown=e=>this.handlePointerDown(`col`,e),this.addRowBtn=this.createAddRowButton(),this.addColBtn=this.createAddColumnButton(),this.wrapper.appendChild(this.addRowBtn),this.wrapper.appendChild(this.addColBtn),this.syncRowButtonWidth(),this.wrapper.addEventListener(`mousemove`,this.boundMouseMove),this.wrapper.addEventListener(`mouseleave`,this.boundMouseLeave),document.addEventListener(`mousemove`,this.boundDocumentMouseMove),this.addRowBtn.addEventListener(`pointerdown`,this.boundRowPointerDown),this.addColBtn.addEventListener(`pointerdown`,this.boundColPointerDown)}computeVisibleWidth(e,t,n){if(!t||n===null)return e;let r=this.wrapper.getBoundingClientRect();if(r.width>0){let e=this.grid.getBoundingClientRect(),t=n.getBoundingClientRect();return Math.min(e.right,t.right)-r.left}return n.clientWidth>0?Math.min(e,n.clientWidth):e}syncRowButtonWidth(){let e=this.grid.style.width;if(e&&e.endsWith(`px`)){let t=parseFloat(e),n=this.grid.parentElement,r=n!==null&&n!==this.wrapper,i=this.computeVisibleWidth(t,r,n);this.addRowBtn.style.width=`${i}px`,this.addRowBtn.style.right=``,this.addRowBtn.style.left=`0px`,this.addRowBtn.style.transform=``,this.addColBtn.style.left=`${i+4}px`,this.addColBtn.style.right=``}else{this.addRowBtn.style.width=``,this.addRowBtn.style.left=`0px`,this.addRowBtn.style.transform=``;let e=parseFloat(getComputedStyle(this.wrapper).paddingRight)||0;this.addRowBtn.style.right=`${e}px`,this.addColBtn.style.left=``,this.addColBtn.style.right=`${e-36}px`}let t=this.grid.getBoundingClientRect(),n=this.wrapper.getBoundingClientRect(),r=t.height;if(r>0){this.addColBtn.style.height=`${r}px`,this.addColBtn.style.bottom=``;let e=t.bottom-n.top;this.addRowBtn.style.top=`${e+4}px`,this.addRowBtn.style.bottom=``}else this.addColBtn.style.height=``,this.addColBtn.style.bottom=`0px`,this.addRowBtn.style.top=``,this.addRowBtn.style.bottom=`-36px`}setDisplay(e){let t=e?``:`none`;this.addRowBtn.style.display=t,this.addColBtn.style.display=t}setInteractive(e){if(this.interactive=e,!e){this.addRowBtn.style.pointerEvents=`none`,this.addColBtn.style.pointerEvents=`none`;return}this.addRowBtn.style.pointerEvents=this.rowVisible?``:`none`,this.addColBtn.style.pointerEvents=this.colVisible?``:`none`}attachScrollContainer(e){var t;this.scrollContainer&&this.boundScrollHandler&&this.scrollContainer.removeEventListener(`scroll`,this.boundScrollHandler),(t=this.scrollContainerResizeObserver)==null||t.disconnect(),this.scrollContainer=e,this.boundScrollHandler=()=>{this.syncRowButtonWidth()},e.addEventListener(`scroll`,this.boundScrollHandler,{passive:!0}),this.scrollContainerResizeObserver=new ResizeObserver(()=>{this.syncRowButtonWidth()}),this.scrollContainerResizeObserver.observe(e)}destroy(){var e;if(this.scrollContainer&&this.boundScrollHandler&&(this.scrollContainer.removeEventListener(`scroll`,this.boundScrollHandler),this.scrollContainer=null,this.boundScrollHandler=null),(e=this.scrollContainerResizeObserver)==null||e.disconnect(),this.scrollContainerResizeObserver=null,this.wrapper.removeEventListener(`mousemove`,this.boundMouseMove),this.wrapper.removeEventListener(`mouseleave`,this.boundMouseLeave),document.removeEventListener(`mousemove`,this.boundDocumentMouseMove),this.addRowBtn.removeEventListener(`pointerdown`,this.boundRowPointerDown),this.addColBtn.removeEventListener(`pointerdown`,this.boundColPointerDown),this.dragState){let e=this.dragState.axis===`row`?this.addRowBtn:this.addColBtn;e.removeEventListener(`pointermove`,this.boundPointerMove),e.removeEventListener(`pointerup`,this.boundPointerUp),e.removeEventListener(`pointercancel`,this.boundPointerCancel),document.body.style.cursor=``,this.dragState=null}this.clearRowTimeout(),this.clearColTimeout(),this.addRowBtn.remove(),this.addColBtn.remove()}showDimensionTooltip(){if(!this.dragState)return;let e=this.getTableSize(),n=this.dragState.axis===`row`?this.addRowBtn:this.addColBtn,r=this.dragState.axis===`row`?{placement:`bottom`,marginTop:-16}:{placement:`bottom`};t.dr(n,`${e.cols}\u00D7${e.rows}`,r)}handlePointerDown(e,t){t.preventDefault();let n=e===`row`?this.addRowBtn:this.addColBtn;n.setPointerCapture(t.pointerId);let r=this.measureUnitSize(e);this.dragState={axis:e,startPos:e===`row`?t.clientY:t.clientX,unitSize:r,addedCount:0,pointerId:t.pointerId,didDrag:!1},n.addEventListener(`pointermove`,this.boundPointerMove),n.addEventListener(`pointerup`,this.boundPointerUp),n.addEventListener(`pointercancel`,this.boundPointerCancel)}handlePointerMove(e){if(!this.dragState)return;let{axis:t,startPos:n,unitSize:r}=this.dragState,i=(t===`row`?e.clientY:e.clientX)-n,a=Math.floor(i/r);for(;this.dragState.addedCount<a&&(t===`row`?this.onDragAddRow():this.onDragAddCol());)this.dragState.addedCount++;for(;this.dragState.addedCount>a&&(t===`row`?this.onDragRemoveRow():this.onDragRemoveCol());)this.dragState.addedCount--;if(Math.abs(i)>Xe&&!this.dragState.didDrag){this.dragState.didDrag=!0,document.body.style.cursor=t===`row`?`row-resize`:`col-resize`,this.showDimensionTooltip(),this.onDragStart();return}this.dragState.didDrag&&this.showDimensionTooltip(),this.dragState.didDrag&&this.showDimensionTooltip()}handlePointerUp(e){if(!this.dragState)return;let{axis:n,pointerId:r,didDrag:i}=this.dragState,a=n===`row`?this.addRowBtn:this.addColBtn;if(a.releasePointerCapture(r),a.removeEventListener(`pointermove`,this.boundPointerMove),a.removeEventListener(`pointerup`,this.boundPointerUp),a.removeEventListener(`pointercancel`,this.boundPointerCancel),document.body.style.cursor=``,t.lr(),this.dragState=null,!i){(n===`row`?this.boundAddRowClick:this.boundAddColClick)();return}this.onDragEnd()}handlePointerCancel(e){if(!this.dragState)return;let{axis:n,didDrag:r}=this.dragState,i=n===`row`?this.addRowBtn:this.addColBtn;i.removeEventListener(`pointermove`,this.boundPointerMove),i.removeEventListener(`pointerup`,this.boundPointerUp),i.removeEventListener(`pointercancel`,this.boundPointerCancel),document.body.style.cursor=``,t.lr(),this.dragState=null,r&&this.onDragEnd()}measureUnitSize(e){if(e===`row`){let e=this.grid.querySelectorAll(`[data-blok-table-row]`),t=e[e.length-1];return(t==null?void 0:t.offsetHeight)||30}if(this.getNewColumnWidth)return this.getNewColumnWidth()||100;let t=this.grid.querySelector(`[data-blok-table-row]`);if(!t)return 100;let n=t.querySelectorAll(`[data-blok-table-cell]`),r=n[n.length-1];return(r==null?void 0:r.offsetWidth)||100}handleMouseMove(e){let t=this.grid.getBoundingClientRect(),n=this.grid.parentElement,r=n!==null&&n!==this.wrapper?Math.min(t.right,n.getBoundingClientRect().right):t.right,i=Math.abs(e.clientY-t.bottom),a=Math.abs(e.clientX-r);i<=G?this.showRow():this.scheduleHideRow(),a<=G?this.showCol():this.scheduleHideCol()}handleMouseLeave(){this.scheduleHideRow(),this.scheduleHideCol()}handleDocumentMouseMove(e){if(this.wrapper.contains(e.target))return;let t=this.grid.getBoundingClientRect(),n=G;e.clientX>=t.left-n&&e.clientX<=t.right+n&&e.clientY>=t.top-n&&e.clientY<=t.bottom+n?this.handleMouseMove(e):(this.scheduleHideRow(),this.scheduleHideCol())}showRow(){this.clearRowTimeout(),this.rowVisible||(this.addRowBtn.style.opacity=`1`,this.addRowBtn.style.pointerEvents=this.interactive?``:`none`,this.rowVisible=!0)}showCol(){this.clearColTimeout(),this.colVisible||(this.addColBtn.style.opacity=`1`,this.addColBtn.style.pointerEvents=this.interactive?``:`none`,this.colVisible=!0)}scheduleHideRow(){var e;!this.rowVisible||this.rowHideTimeout!==null||((e=this.dragState)==null?void 0:e.axis)===`row`||(this.rowHideTimeout=setTimeout(()=>{this.addRowBtn.style.opacity=`0`,this.addRowBtn.style.pointerEvents=`none`,this.rowVisible=!1,this.rowHideTimeout=null},Ye))}scheduleHideCol(){var e;!this.colVisible||this.colHideTimeout!==null||((e=this.dragState)==null?void 0:e.axis)===`col`||(this.colHideTimeout=setTimeout(()=>{this.addColBtn.style.opacity=`0`,this.addColBtn.style.pointerEvents=`none`,this.colVisible=!1,this.colHideTimeout=null},Ye))}clearRowTimeout(){this.rowHideTimeout!==null&&(clearTimeout(this.rowHideTimeout),this.rowHideTimeout=null)}clearColTimeout(){this.colHideTimeout!==null&&(clearTimeout(this.colHideTimeout),this.colHideTimeout=null)}createAddRowButton(){let e=document.createElement(`div`);e.className=r.l(Ze,`group/add`,`items-start`,`cursor-row-resize`),e.setAttribute(qe,``),e.setAttribute(`contenteditable`,`false`),e.style.opacity=`0`,e.style.pointerEvents=`none`,e.style.position=`absolute`,e.style.left=`0`,e.style.bottom=`-36px`,e.style.zIndex=`1`,e.style.height=`32px`;let n=document.createElement(`div`);return n.className=r.l(Qe),n.style.width=`100%`,n.style.height=`16px`,this.appendIcon(n),e.appendChild(n),t.ur(e,t.h([this.i18n.t(`tools.table.clickToAddRow`),this.i18n.t(`tools.table.dragToAddRemoveRows`)]),{placement:`bottom`,marginTop:-16}),e}createAddColumnButton(){let e=document.createElement(`div`);e.className=r.l(Ze,`group/add`,`justify-start`,`cursor-col-resize`),e.setAttribute(Je,``),e.setAttribute(`contenteditable`,`false`),e.style.opacity=`0`,e.style.pointerEvents=`none`,e.style.position=`absolute`,e.style.right=`-36px`,e.style.top=`0px`,e.style.bottom=`0px`,e.style.width=`32px`;let n=document.createElement(`div`);return n.className=r.l(Qe),n.style.width=`16px`,n.style.height=`100%`,this.appendIcon(n),e.appendChild(n),t.ur(e,t.h([this.i18n.t(`tools.table.clickToAddColumn`),this.i18n.t(`tools.table.dragToAddRemoveColumns`)]),{placement:`bottom`}),e}appendIcon(e){e.insertAdjacentHTML(`beforeend`,o.en);let t=e.querySelector(`svg`);t&&(t.setAttribute(`width`,$e),t.setAttribute(`height`,$e),t.setAttribute(`viewBox`,`0 0 24 24`),t.classList.add(`text-gray-500`,`pointer-events-none`))}};function tt(){var e,n;let r=document.documentElement.getAttribute(`data-blok-theme`);return r===`dark`?t.Fn:r===`light`?t.Pn:typeof window<`u`&&(e=(n=window).matchMedia)!=null&&e.call(n,`(prefers-color-scheme: dark)`).matches?t.Fn:t.Pn}function nt(e,n){if(e===n)return!0;let r=t.jn(e),i=t.jn(n);return r===null||i===null?!1:r[0]===i[0]&&r[1]===i[1]&&r[2]===i[2]}var rt=`var(--blok-swatch-neutral-bg)`;function K(e){let{i18n:n,modes:i,testIdPrefix:a,onColorSelect:o}=e,s={activeColors:Object.fromEntries(i.map(e=>[e.key,null]))},c=document.createElement(`div`);c.setAttribute(`data-blok-testid`,`${a}-picker`),c.className=`flex flex-col gap-3 p-2`;let l=[];i.forEach(e=>{let t=document.createElement(`div`);t.setAttribute(`data-blok-testid`,`${a}-section-${e.key}`),t.className=`flex flex-col gap-1`;let r=document.createElement(`div`);r.className=`text-xs font-medium text-text-primary/60 px-0.5`,r.textContent=n.t(e.labelKey);let i=document.createElement(`div`);i.className=`grid gap-1`,i.style.gridTemplateColumns=`repeat(5, 2.25rem)`,l.push(i),t.appendChild(r),t.appendChild(i),c.appendChild(t)});let u=e=>{let c=l[e],u=i[e],d=tt();c.innerHTML=``;let f=s.activeColors[u.key],p=document.createElement(`button`),m=f===null;p.setAttribute(`data-blok-testid`,`${a}-swatch-${u.key}-default`),p.className=r.l(`w-9 h-9 rounded-md cursor-pointer border-none outline-hidden`,`flex items-center justify-center text-sm font-semibold`,`transition-[box-shadow,transform] ring-inset hover:ring-2 hover:ring-swatch-ring-hover active:scale-90`,m&&`ring-2 ring-swatch-ring-hover`),p.textContent=u.presetField===`text`?`A`:``,u.presetField===`text`&&(p.style.color=`var(--blok-text-primary)`),p.style.backgroundColor=rt,p.addEventListener(`click`,()=>{o(null,u.key)});let h=n.t(`tools.colorPicker.defaultSwatchLabel`).replace(`{default}`,n.t(`tools.marker.default`)).replace(`{mode}`,n.t(u.labelKey).toLowerCase());t.ur(p,h.charAt(0).toUpperCase()+h.slice(1),{placement:`top`}),c.appendChild(p);for(let e of d){let i=document.createElement(`button`),s=u.presetField===`text`?e.text:e.bg,l=f!==null&&nt(s,f);i.setAttribute(`data-blok-testid`,`${a}-swatch-${u.key}-${e.name}`),i.className=r.l(`w-9 h-9 rounded-md cursor-pointer border-none outline-hidden`,`flex items-center justify-center text-sm font-semibold`,`transition-[box-shadow,transform] ring-inset hover:ring-2 hover:ring-swatch-ring-hover active:scale-90`,l&&`ring-2 ring-swatch-ring-hover`),i.textContent=u.presetField===`text`?`A`:``,u.presetField===`text`?(i.style.color=e.text,i.style.backgroundColor=rt):(i.style.color=d===t.Fn?e.text:`#37352f`,i.style.backgroundColor=e.bg),i.addEventListener(`click`,()=>{o(s,u.key)});let p=n.t(`tools.colorPicker.colorSwatchLabel`).replace(`{color}`,n.t(`tools.colorPicker.color.`+e.name)).replace(`{mode}`,n.t(u.labelKey).toLowerCase());t.ur(i,p.charAt(0).toUpperCase()+p.slice(1),{placement:`top`}),c.appendChild(i)}},d=()=>{i.forEach((e,t)=>u(t))};return d(),{element:c,setActiveColor:(e,t)=>{let n=i.findIndex(e=>e.key===t);n!==-1&&(s.activeColors[t]=e,u(n))},reset:()=>{for(let e of i)s.activeColors[e.key]=null;d()}}}var it=e=>{let t=K({i18n:e.i18n,testIdPrefix:`cell-color`,modes:[{key:`textColor`,labelKey:`tools.marker.textColor`,presetField:`text`},{key:`backgroundColor`,labelKey:`tools.marker.background`,presetField:`bg`}],onColorSelect:(n,r)=>{t.setActiveColor(n,r),e.onColorSelect(n,r)}});return{element:t.element}},at=[`top-left`,`top-center`,`top-right`,`middle-left`,`middle-center`,`middle-right`,`bottom-left`,`bottom-center`,`bottom-right`],ot={"top-left":`tools.table.placementTopLeft`,"top-center":`tools.table.placementTopCenter`,"top-right":`tools.table.placementTopRight`,"middle-left":`tools.table.placementMiddleLeft`,"middle-center":`tools.table.placementMiddleCenter`,"middle-right":`tools.table.placementMiddleRight`,"bottom-left":`tools.table.placementBottomLeft`,"bottom-center":`tools.table.placementBottomCenter`,"bottom-right":`tools.table.placementBottomRight`},st={top:`flex-start`,middle:`center`,bottom:`flex-end`},ct={left:`flex-start`,center:`center`,right:`flex-end`},lt=e=>{var t;let n=(t=e.currentPlacement)==null?`top-left`:t,r=document.createElement(`div`);r.style.padding=`8px`;let i=document.createElement(`div`);i.style.display=`grid`,i.style.gridTemplateColumns=`repeat(3, 1fr)`,i.style.gap=`3px`;let a=document.createElement(`div`);a.style.textAlign=`center`,a.style.fontSize=`11px`,a.style.marginTop=`6px`,a.style.color=`var(--blok-text-secondary, #707684)`,a.textContent=e.i18n.t(ot[n]);for(let t of at){let[r,o]=t.split(`-`),s=document.createElement(`div`);s.setAttribute(`data-placement`,t),s.style.width=`32px`,s.style.height=`26px`,s.style.borderRadius=`3px`,s.style.display=`flex`,s.style.flexDirection=`column`,s.style.alignItems=ct[o],s.style.justifyContent=st[r],s.style.padding=`3px`,s.style.cursor=`pointer`,s.style.gap=`1px`,t===n?(s.setAttribute(`data-active`,`true`),s.style.outline=`2px solid var(--blok-color-primary, #388AE5)`,s.style.outlineOffset=`-2px`,s.style.backgroundColor=`var(--blok-item-focus-bg, rgba(35, 131, 226, 0.14))`):s.style.backgroundColor=`var(--blok-bg-light, #eff2f5)`;let c=document.createElement(`div`);c.style.width=`14px`,c.style.height=`2px`,c.style.borderRadius=`1px`,c.style.backgroundColor=`currentColor`,c.style.opacity=`0.6`;let l=document.createElement(`div`);l.style.width=`9px`,l.style.height=`2px`,l.style.borderRadius=`1px`,l.style.backgroundColor=`currentColor`,l.style.opacity=`0.3`,s.appendChild(c),s.appendChild(l),s.addEventListener(`click`,()=>{i.querySelectorAll(`[data-placement]`).forEach(e=>{let t=e;t.removeAttribute(`data-active`),t.style.outline=``,t.style.outlineOffset=``,t.style.backgroundColor=`var(--blok-bg-tertiary, #f0f0f0)`}),s.setAttribute(`data-active`,`true`),s.style.outline=`2px solid var(--blok-color-primary, #388AE5)`,s.style.outlineOffset=`-2px`,s.style.backgroundColor=`var(--blok-item-focus-bg, rgba(35, 131, 226, 0.14))`,a.textContent=e.i18n.t(ot[t]),e.onPlacementSelect(t)}),i.appendChild(s)}return r.appendChild(i),r.appendChild(a),{element:r}},ut=(e,t,n)=>{t===`col`?Object.assign(e.style,{height:`${n}px`}):Object.assign(e.style,{width:`${n}px`})},dt=[[2,2],[8,2],[2,7],[8,7],[2,12],[8,12]],ft=[[2,2],[7,2],[12,2],[2,8],[7,8],[12,8]],pt=e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`),n=e===`horizontal`;t.setAttribute(`width`,n?`14`:`10`),t.setAttribute(`height`,n?`10`:`14`),t.setAttribute(`viewBox`,n?`0 0 14 10`:`0 0 10 14`),t.setAttribute(`fill`,`currentColor`),t.classList.add(`opacity-0`,`transition-opacity`,`duration-150`,`text-gray-400`,`pointer-events-none`);let r=n?ft:dt;for(let[e,n]of r){let r=document.createElementNS(`http://www.w3.org/2000/svg`,`circle`);r.setAttribute(`cx`,String(e)),r.setAttribute(`cy`,String(n)),r.setAttribute(`r`,`1.5`),t.appendChild(r)}return t},mt=(e,t)=>{t===`col`?Object.assign(e.style,{height:`16px`}):Object.assign(e.style,{width:`16px`}),e.classList.add(`bg-gray-200`),e.classList.remove(`bg-gray-300`);let n=e.querySelector(`svg`);n&&(n.classList.remove(`opacity-0`),n.classList.add(`opacity-100`))},ht=(e,t,n)=>{ut(e,t,n),e.classList.remove(`bg-gray-200`),e.classList.add(`bg-gray-300`);let r=e.querySelector(`svg`);r&&(r.classList.add(`opacity-0`),r.classList.remove(`opacity-100`))},gt=`data-blok-table-cell-selected`,q=`2px solid #3b82f6`,_t=`data-blok-table-selection-pill`,vt=16,yt=20,bt=4,xt=[`absolute`,`z-3`,`rounded-sm`,`select-none`,`transition-[opacity,background-color,width]`,`duration-150`,`flex`,`items-center`,`justify-center`,`overflow-hidden`,`cursor-pointer`,`bg-blue-500`],St=e=>e.style.userSelect===`none`,Ct=class{constructor(e){this.anchorCell=null,this.extentCell=null,this.isSelecting=!1,this.hasSelection=!1,this.selectedCells=[],this.overlay=null,this.pill=null,this.pillPopover=null,this.resizeObserver=null,this.lastPaintedRange=null,this.preExpansionWasSingleCell=!1,this.grid=e.grid,this.rectangleSelection=e.rectangleSelection,this.onSelectionActiveChange=e.onSelectionActiveChange,this.onClearContent=e.onClearContent,this.onCopy=e.onCopy,this.onCut=e.onCut,this.onCopyViaButton=e.onCopyViaButton,this.onColorChange=e.onColorChange,this.onPlacementChange=e.onPlacementChange,this.getCellPlacement=e.getCellPlacement,this.onSelectionRangeChange=e.onSelectionRangeChange,this.onPointerDragActiveChange=e.onPointerDragActiveChange,this.isPopoverOpen=e.isPopoverOpen,this.canMergeCells=e.canMergeCells,this.onMergeCells=e.onMergeCells,this.isMergedCell=e.isMergedCell,this.onSplitCell=e.onSplitCell,this.getCellSpan=e.getCellSpan,this.i18n=e.i18n,this.grid.style.position=`relative`,this.boundPointerDown=this.handlePointerDown.bind(this),this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundClearSelection=this.handleClearSelection.bind(this),this.boundCancelRectangle=this.handleCancelRectangle.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this),this.boundCopyHandler=this.handleCopy.bind(this),this.boundCutHandler=this.handleCut.bind(this),this.boundPreventDragStart=this.handleDragStart.bind(this),this.grid.addEventListener(`pointerdown`,this.boundPointerDown),this.grid.addEventListener(`dragstart`,this.boundPreventDragStart),document.addEventListener(`keydown`,this.boundKeyDown),document.addEventListener(`copy`,this.boundCopyHandler),document.addEventListener(`cut`,this.boundCutHandler)}destroy(){if(this.destroyPillPopover(),this.disconnectResizeObserver(),this.clearSelection(),this.anchorCell){var e;(e=this.onPointerDragActiveChange)==null||e.call(this,!1),this.grid.style.userSelect=``}this.grid.removeEventListener(`pointerdown`,this.boundPointerDown),this.grid.removeEventListener(`dragstart`,this.boundPreventDragStart),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerUp),document.removeEventListener(`pointerdown`,this.boundClearSelection),document.removeEventListener(`mousemove`,this.boundCancelRectangle,!0),document.removeEventListener(`keydown`,this.boundKeyDown),document.removeEventListener(`copy`,this.boundCopyHandler),document.removeEventListener(`cut`,this.boundCutHandler)}selectRow(e){let t=this.getLogicalColumnCount();t!==0&&this.showProgrammaticSelection(e,0,e,t-1)}selectColumn(e){let n=this.grid.querySelectorAll(`[${t.lt}]`).length;n!==0&&this.showProgrammaticSelection(0,e,n-1,e)}clearActiveSelection(){this.clearSelection()}getSelectedRange(){return this.hasSelection?this.lastPaintedRange:null}selectRange(e){this.showProgrammaticSelection(e.minRow,e.minCol,e.maxRow,e.maxCol)}handleDragStart(e){this.anchorCell&&e.preventDefault()}handlePointerDown(e){var t;if(St(this.grid)||e.button!==0)return;let n=e.target;if(n.closest(`[data-blok-table-grip]`)||n.closest(`[data-blok-table-resize]`)||n.closest(`[${_t}]`))return;let r=this.resolveCellCoord(n);r&&(this.hasSelection&&this.lastPaintedRange!==null&&this.lastPaintedRange.minRow===r.row&&this.lastPaintedRange.maxRow===r.row&&this.lastPaintedRange.minCol===r.col&&this.lastPaintedRange.maxCol===r.col?document.removeEventListener(`pointerdown`,this.boundClearSelection):this.hasSelection&&this.clearSelection(),this.anchorCell=r,this.isSelecting=!1,(t=this.onPointerDragActiveChange)==null||t.call(this,!0),document.addEventListener(`mousemove`,this.boundCancelRectangle,!0),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerUp))}handlePointerMove(e){if(!this.anchorCell)return;let t=document.elementFromPoint(e.clientX,e.clientY);if(!t)return;let n=this.resolveCellCoord(t);if(!n){this.clampExtentToEdge(e);return}if(!(!this.isSelecting&&n.row===this.anchorCell.row&&n.col===this.anchorCell.col)){if(!this.isSelecting){var r,i;this.isSelecting=!0,(r=this.onSelectionActiveChange)==null||r.call(this,!0),this.grid.style.userSelect=`none`,(i=window.getSelection())==null||i.removeAllRanges()}(!this.extentCell||this.extentCell.row!==n.row||this.extentCell.col!==n.col)&&(this.extentCell=n,this.paintSelection())}}handleCancelRectangle(e){if(!this.rectangleSelection)return;this.rectangleSelection.cancelActiveSelection();let t=document.querySelector(`[data-blok-overlay-rectangle]`);if(!t)return;let n=t;n.style.display=`none`}handlePointerUp(){var e;if(document.removeEventListener(`mousemove`,this.boundCancelRectangle,!0),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerUp),(e=this.onPointerDragActiveChange)==null||e.call(this,!1),this.isSelecting){if(this.grid.style.userSelect=``,this.hasSelection=!0,this.lastPaintedRange){var t;(t=this.onSelectionRangeChange)==null||t.call(this,this.lastPaintedRange)}document.addEventListener(`pointerdown`,this.boundClearSelection)}else this.anchorCell&&(this.hasSelection?document.addEventListener(`pointerdown`,this.boundClearSelection):this.showProgrammaticSelection(this.anchorCell.row,this.anchorCell.col,this.anchorCell.row,this.anchorCell.col));this.isSelecting=!1,this.anchorCell=null,this.extentCell=null}handleClearSelection(e){let t=e.target;t instanceof HTMLElement&&t.closest(`[${_t}]`)||t instanceof HTMLElement&&t.closest(`[data-blok-popover-opened]`)!==null||(this.pillPopover!==null&&this.destroyPillPopover(),document.removeEventListener(`pointerdown`,this.boundClearSelection),this.clearSelection())}handleKeyDown(e){var t;this.hasSelection&&(e.key!==`Delete`&&e.key!==`Backspace`||this.selectedCells.length<=1||(e.preventDefault(),(t=this.onClearContent)==null||t.call(this,[...this.selectedCells]),this.clearSelection()))}handleCopy(e){var t;!this.hasSelection||!e.clipboardData||this.selectedCells.length<=1&&this.hasNativeTextSelection()||(e.preventDefault(),(t=this.onCopy)==null||t.call(this,[...this.selectedCells],e.clipboardData))}handleCut(e){var t,n;!this.hasSelection||!e.clipboardData||this.selectedCells.length<=1&&this.hasNativeTextSelection()||(e.preventDefault(),(t=this.onCut)==null||t.call(this,[...this.selectedCells],e.clipboardData),(n=this.onClearContent)==null||n.call(this,[...this.selectedCells]),this.clearSelection())}hasNativeTextSelection(){let e=window.getSelection();return e!==null&&!e.isCollapsed}clearSelection(){let e=this.hasSelection;if(this.restoreModifiedCells(),this.hasSelection=!1,this.lastPaintedRange=null,this.preExpansionWasSingleCell=!1,e){var t;(t=this.onSelectionActiveChange)==null||t.call(this,!1)}}restoreModifiedCells(){this.destroyPillPopover(),this.disconnectResizeObserver(),this.selectedCells.forEach(e=>{e.removeAttribute(gt)}),this.pill&&(this.pill.remove(),this.pill=null),this.overlay&&(this.overlay.remove(),this.overlay=null),this.selectedCells=[]}showProgrammaticSelection(e,t,n,r){var i;if(this.clearSelection(),this.anchorCell={row:e,col:t},this.extentCell={row:n,col:r},this.paintSelection(),this.hasSelection=!0,(i=this.onSelectionActiveChange)==null||i.call(this,!0),this.lastPaintedRange){var a;(a=this.onSelectionRangeChange)==null||a.call(this,this.lastPaintedRange)}this.anchorCell=null,this.extentCell=null,document.addEventListener(`pointerdown`,this.boundClearSelection)}expandRectToMergedSpans(e){return this.getCellSpan?this.expandRectStep(e):e}expandRectStep(e){let t=this.getCellSpan;if(!t)return e;let n=Array.from({length:e.maxRow-e.minRow+1},(t,n)=>e.minRow+n),r=Array.from({length:e.maxCol-e.minCol+1},(t,n)=>e.minCol+n),i=n.reduce((e,n)=>r.reduce((e,r)=>{let{colspan:i,rowspan:a}=t(n,r);return{minRow:e.minRow,maxRow:Math.max(e.maxRow,n+a-1),minCol:e.minCol,maxCol:Math.max(e.maxCol,r+i-1)}},e),e);return i.maxRow!==e.maxRow||i.maxCol!==e.maxCol?this.expandRectStep(i):i}paintSelection(){if(!this.anchorCell||!this.extentCell)return;this.selectedCells.forEach(e=>{e.removeAttribute(gt)}),this.selectedCells=[];let e=Math.min(this.anchorCell.row,this.extentCell.row),n=Math.max(this.anchorCell.row,this.extentCell.row),r=Math.min(this.anchorCell.col,this.extentCell.col),i=Math.max(this.anchorCell.col,this.extentCell.col);this.preExpansionWasSingleCell=e===n&&r===i,this.lastPaintedRange=this.expandRectToMergedSpans({minRow:e,maxRow:n,minCol:r,maxCol:i});let{minRow:a,maxRow:o,minCol:s,maxCol:c}=this.lastPaintedRange,l=this.grid.querySelectorAll(`[${t.lt}]`);this.selectedCells=this.collectCellsInRange(l,a,o,s,c),this.selectedCells.forEach(e=>{e.setAttribute(gt,``)});let u=this.findCellByCoordOrIndex(l,a,s),d=this.findCellByCoordOrIndex(l,o,c);if(!u||!d)return;let f=this.grid.getBoundingClientRect(),p=u.getBoundingClientRect(),m=d.getBoundingClientRect(),h=getComputedStyle(this.grid),g=parseFloat(h.borderTopWidth)||0,_=parseFloat(h.borderLeftWidth)||0,v=m.right-p.left+1,y=m.bottom-p.top+1,b=p.top-f.top-g-1,x=p.left-f.left-_-1;this.overlay||(this.overlay=document.createElement(`div`),this.overlay.setAttribute(`data-blok-table-selection-overlay`,``),this.overlay.style.position=`absolute`,this.overlay.style.border=q,this.overlay.style.pointerEvents=`none`,this.overlay.style.boxSizing=`border-box`,this.overlay.style.borderRadius=`2px`,this.grid.appendChild(this.overlay)),this.overlay.style.top=`${b}px`,this.overlay.style.left=`${x}px`,this.overlay.style.width=`${v}px`,this.overlay.style.height=`${y}px`,this.pill||(this.pill=this.createPill(),this.grid.appendChild(this.pill)),this.pill.style.left=`${x+v-1}px`,this.pill.style.top=`${b+y/2}px`,this.observeCellResizes()}repositionOverlay(){let e=this.lastPaintedRange;if(!e||!this.overlay)return;let n=this.grid.querySelectorAll(`[${t.lt}]`),r=this.findCellByCoordOrIndex(n,e.minRow,e.minCol),i=this.findCellByCoordOrIndex(n,e.maxRow,e.maxCol);if(!r||!i)return;let a=this.grid.getBoundingClientRect(),o=r.getBoundingClientRect(),s=i.getBoundingClientRect(),c=getComputedStyle(this.grid),l=parseFloat(c.borderTopWidth)||0,u=parseFloat(c.borderLeftWidth)||0,d=s.right-o.left+1,f=s.bottom-o.top+1,p=o.top-a.top-l-1,m=o.left-a.left-u-1;this.overlay.style.top=`${p}px`,this.overlay.style.left=`${m}px`,this.overlay.style.width=`${d}px`,this.overlay.style.height=`${f}px`,this.pill&&(this.pill.style.left=`${m+d-1}px`,this.pill.style.top=`${p+f/2}px`)}observeCellResizes(){if(this.disconnectResizeObserver(),this.selectedCells.length!==0){this.resizeObserver=new ResizeObserver(()=>{this.repositionOverlay()});for(let e of this.selectedCells)this.resizeObserver.observe(e)}}disconnectResizeObserver(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}createPill(){let e=document.createElement(`div`);e.setAttribute(_t,``),e.setAttribute(`contenteditable`,`false`),e.className=r.l(xt),e.style.width=`${bt}px`,e.style.height=`${yt}px`,e.style.pointerEvents=`auto`,e.style.transform=`translate(-50%, -50%)`,e.style.outline=`2px solid var(--blok-table-grip-outline, transparent)`;let t=pt(`vertical`);return t.classList.remove(`text-gray-400`),t.classList.add(`text-white`),e.appendChild(t),e.addEventListener(`mouseenter`,()=>{this.pillPopover===null&&this.expandPill()}),e.addEventListener(`mouseleave`,()=>{this.pillPopover===null&&this.collapsePill()}),e.addEventListener(`pointerdown`,e=>{e.stopPropagation(),e.preventDefault(),this.openPillPopover()}),e}openPillPopover(){if(this.destroyPillPopover(),!this.pill)return;this.expandPill();let e=t.br===`Meta`?`⌘C`:`Ctrl+C`,n=[];if(this.onColorChange!==void 0){let{element:e}=it({i18n:this.i18n,onColorSelect:(e,t)=>{var n;(n=this.onColorChange)==null||n.call(this,[...this.selectedCells],e,t)}});n.push({icon:o.Dt,title:this.i18n.t(`tools.table.cellColor`),name:`cellColor`,children:{items:[{type:t.hr.Html,element:e}],isFlippable:!1}})}let r=[];if(this.onPlacementChange!==void 0){let e=this.lastPaintedRange&&this.getCellPlacement?this.getCellPlacement(this.lastPaintedRange.minRow,this.lastPaintedRange.minCol):void 0,{element:n}=lt({i18n:this.i18n,currentPlacement:e,onPlacementSelect:e=>{var t;(t=this.onPlacementChange)==null||t.call(this,[...this.selectedCells],e)}});r.push({icon:o.Vt,title:this.i18n.t(`tools.table.placement`),name:`cellPlacement`,children:{items:[{type:t.hr.Html,element:n}],isFlippable:!1}})}let i=[];if(this.lastPaintedRange&&this.onMergeCells){var a;let e=this.lastPaintedRange;(e.minRow!==e.maxRow||e.minCol!==e.maxCol)&&!this.preExpansionWasSingleCell&&(a=this.canMergeCells)!=null&&a.call(this,e)&&i.push({icon:o.kt,title:this.i18n.t(`tools.table.mergeCells`),closeOnActivate:!0,onActivate:()=>{var t;(t=this.onMergeCells)==null||t.call(this,e),this.clearSelection()}})}if(this.lastPaintedRange&&this.onSplitCell){var s,c;let e=this.lastPaintedRange,t=e.minRow===e.maxRow&&e.minCol===e.maxCol,n=this.preExpansionWasSingleCell&&((s=this.isMergedCell)==null?void 0:s.call(this,e.minRow,e.minCol));(t||n)&&(c=this.isMergedCell)!=null&&c.call(this,e.minRow,e.minCol)&&i.push({icon:o.sn,title:this.i18n.t(`tools.table.splitCell`),closeOnActivate:!0,onActivate:()=>{var t;(t=this.onSplitCell)==null||t.call(this,e.minRow,e.minCol),this.clearSelection()}})}let l=[...n,...r,...i,{icon:o.w,title:this.i18n.t(`tools.table.copySelection`),secondaryLabel:e,closeOnActivate:!0,onActivate:()=>{var e;(e=this.onCopyViaButton)==null||e.call(this,[...this.selectedCells])}},{icon:o.D,title:this.i18n.t(`tools.table.clearSelection`),secondaryLabel:`Del`,closeOnActivate:!0,onActivate:()=>{var e;(e=this.onClearContent)==null||e.call(this,[...this.selectedCells]),this.clearSelection()}}];this.pillPopover=new t._t({items:l,trigger:this.pill,flippable:!0}),this.pillPopover.on(t.xt.Closed,()=>{this.pillPopover!==null&&(this.destroyPillPopover(),this.collapsePill())}),this.pillPopover.show()}expandPill(){if(!this.pill)return;this.pill.style.width=`${vt}px`;let e=this.pill.querySelector(`svg`);e&&(e.classList.remove(`opacity-0`),e.classList.add(`opacity-100`))}collapsePill(){if(!this.pill)return;this.pill.style.width=`${bt}px`;let e=this.pill.querySelector(`svg`);e&&(e.classList.add(`opacity-0`),e.classList.remove(`opacity-100`))}destroyPillPopover(){if(this.pillPopover!==null){let e=this.pillPopover;this.pillPopover=null,e.destroy()}}resolveCellCoord(e){let n=e.closest(`[${t.ot}]`);if(!n)return null;let r=n.closest(`[${t.lt}]`);if(!r||!this.grid.contains(r))return null;let i=n.getAttribute(t.ct),a=n.getAttribute(t.st);if(i!==null&&a!==null){let e=parseInt(i,10),t=parseInt(a,10);if(!isNaN(e)&&!isNaN(t))return{row:e,col:t}}let o=Array.from(this.grid.querySelectorAll(`[${t.lt}]`)).indexOf(r);if(o<0)return null;let s=Array.from(r.querySelectorAll(`[${t.ot}]`)).indexOf(n);return s<0?null:{row:o,col:s}}clampExtentToEdge(e){var n,r,i,a;if(!this.anchorCell||!this.isSelecting)return;let o=this.grid.getBoundingClientRect(),s=this.grid.querySelectorAll(`[${t.lt}]`).length,c=this.getLogicalColumnCount();if(s===0||c===0)return;let l={row:this.clampAxis(e.clientY,o.top,o.bottom,s,(n=(r=this.extentCell)==null?void 0:r.row)==null?this.anchorCell.row:n),col:this.clampAxis(e.clientX,o.left,o.right,c,(i=(a=this.extentCell)==null?void 0:a.col)==null?this.anchorCell.col:i)};(!this.extentCell||this.extentCell.row!==l.row||this.extentCell.col!==l.col)&&(this.extentCell=l,this.paintSelection())}collectCellsInRange(e,n,r,i,a){if(this.grid.querySelector(`[data-blok-table-cell-row]`)===null)return Array.from(e).slice(n,r+1).flatMap(e=>{let n=e.querySelectorAll(`[${t.ot}]`);return Array.from(n).slice(i,a+1).filter(e=>e instanceof HTMLElement)});let o=this.grid.querySelectorAll(`[${t.ot}]`);return Array.from(o).filter(e=>{let o=e.getAttribute(t.ct),s=e.getAttribute(t.st);if(o===null||s===null)return!1;let c=Number(o),l=Number(s),u=e,d=c+(u.rowSpan||1)-1,f=l+(u.colSpan||1)-1;return c<=r&&d>=n&&l<=a&&f>=i})}findCellByCoordOrIndex(e,n,r){var i,a,o;return this.grid.querySelector(`[${t.ct}="${n}"][${t.st}="${r}"]`)||((i=e[n])==null?void 0:i.querySelectorAll(`[${t.ot}]`)[r])||Array.from((a=(o=e[n])==null?void 0:o.querySelectorAll(`[data-blok-table-cell]`))==null?[]:a).find(e=>{let n=Number(e.getAttribute(t.st)),i=e.colSpan||1;return n<=r&&n+i-1>=r})}getLogicalColumnCount(){var e,n;let r=(e=this.grid.querySelector(`colgroup`))==null?void 0:e.querySelectorAll(`col`).length;if(r!==void 0&&r>0)return r;let i=this.grid.querySelector(`[${t.lt}]`);return(n=i==null?void 0:i.querySelectorAll(`[data-blok-table-cell]`).length)==null?0:n}clampAxis(e,t,n,r,i){return e<t?0:e>n?r-1:i}},wt=`data-blok-table-corner-drag`,Tt=5,Et=class{constructor(e){var t;this.dragState=null,this.wrapper=e.wrapper,this.gridEl=e.gridEl,this.getTableSize=e.getTableSize,this.onAddRow=e.onAddRow,this.onAddColumn=e.onAddColumn,this.onRemoveLastRow=e.onRemoveLastRow,this.onRemoveLastColumn=e.onRemoveLastColumn,this.onDragStart=e.onDragStart,this.onDragEnd=e.onDragEnd,this.canRemoveLastRow=e.canRemoveLastRow,this.canRemoveLastColumn=e.canRemoveLastColumn,this.onClickAdd=(t=e.onClickAdd)==null?null:t,this.hitZone=document.createElement(`div`),this.hitZone.setAttribute(wt,``),this.hitZone.setAttribute(`contenteditable`,`false`),this.hitZone.style.position=`absolute`,this.hitZone.style.width=`36px`,this.hitZone.style.height=`36px`,this.hitZone.style.cursor=`nwse-resize`,this.hitZone.style.zIndex=`2`,this.hitZone.style.pointerEvents=`auto`,this.hitZone.style.bottom=`-36px`,this.hitZone.style.right=`-16px`,this.boundMouseEnter=this.handleMouseEnter.bind(this),this.boundMouseLeave=this.handleMouseLeave.bind(this),this.boundPointerDown=this.handlePointerDown.bind(this),this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.hitZone.addEventListener(`mouseenter`,this.boundMouseEnter),this.hitZone.addEventListener(`mouseleave`,this.boundMouseLeave),this.hitZone.addEventListener(`pointerdown`,this.boundPointerDown),this.wrapper.appendChild(this.hitZone)}updateTooltip(){let e=this.getTableSize();t.dr(this.hitZone,`${e.cols}\u00D7${e.rows}`,{placement:`bottom`})}handleMouseEnter(){this.updateTooltip()}handleMouseLeave(){this.dragState===null&&t.lr()}measureUnitHeight(){let e=this.gridEl.querySelectorAll(`[data-blok-table-row]`),t=e[e.length-1];return(t==null?void 0:t.offsetHeight)||30}measureUnitWidth(){let e=this.gridEl.querySelector(`[data-blok-table-row]`);if(!e)return 100;let t=e.querySelectorAll(`[data-blok-table-cell]`),n=t[t.length-1];return(n==null?void 0:n.offsetWidth)||100}handlePointerDown(e){this.dragState={startX:e.clientX,startY:e.clientY,unitWidth:this.measureUnitWidth(),unitHeight:this.measureUnitHeight(),addedRows:0,addedCols:0,pointerId:e.pointerId,didDrag:!1},this.updateTooltip(),this.hitZone.setPointerCapture(e.pointerId),this.hitZone.addEventListener(`pointermove`,this.boundPointerMove),this.hitZone.addEventListener(`pointerup`,this.boundPointerUp)}handlePointerMove(e){if(this.dragState===null)return;let t=e.clientX-this.dragState.startX,n=e.clientY-this.dragState.startY;if(!this.dragState.didDrag){if(Math.sqrt(t*t+n*n)<Tt)return;this.dragState.didDrag=!0,document.body.style.cursor=`nwse-resize`,document.body.style.userSelect=`none`,this.onDragStart()}let{unitHeight:r,unitWidth:i}=this.dragState,a=Math.trunc(n/r),o=Math.trunc(t/i);for(;this.dragState.addedRows<a;)this.onAddRow(),this.dragState.addedRows++;for(;this.dragState.addedRows>a&&this.canRemoveLastRow();)this.onRemoveLastRow(),this.dragState.addedRows--;for(;this.dragState.addedCols<o;)this.onAddColumn(),this.dragState.addedCols++;for(;this.dragState.addedCols>o&&this.canRemoveLastColumn();)this.onRemoveLastColumn(),this.dragState.addedCols--;this.updateTooltip()}handlePointerUp(e){if(this.dragState===null)return;let{didDrag:n,pointerId:r}=this.dragState;this.dragState=null,t.lr(),this.hitZone.releasePointerCapture(r),this.hitZone.removeEventListener(`pointermove`,this.boundPointerMove),this.hitZone.removeEventListener(`pointerup`,this.boundPointerUp),n?(document.body.style.cursor=``,document.body.style.userSelect=``,this.onDragEnd()):this.onClickAdd?this.onClickAdd():(this.onAddRow(),this.onAddColumn())}setDisplay(e){this.hitZone.style.display=e?``:`none`}setInteractive(e){this.hitZone.style.pointerEvents=e?`auto`:`none`}destroy(){var e;this.hitZone.removeEventListener(`mouseenter`,this.boundMouseEnter),this.hitZone.removeEventListener(`mouseleave`,this.boundMouseLeave),this.hitZone.removeEventListener(`pointerdown`,this.boundPointerDown),this.hitZone.removeEventListener(`pointermove`,this.boundPointerMove),this.hitZone.removeEventListener(`pointerup`,this.boundPointerUp),(e=this.dragState)!=null&&e.didDrag&&(document.body.style.cursor=``,document.body.style.userSelect=``),this.dragState=null,t.lr(),this.hitZone.remove()}},Dt=`data-blok-table-resize`,J=50,Ot=16,kt=class{get enabled(){return this._enabled}set enabled(e){this._enabled=e;let t=e?``:`none`;this.handles.forEach(e=>{let n=e;n.style.pointerEvents=t})}constructor(e,t,n,r,i,a=!1){this._enabled=!0,this.isDragging=!1,this.dragStartX=0,this.dragColIndex=-1,this.startColWidth=0,this.dragColElements=null,this.handles=[],this.gridEl=e,this.colWidths=[...t],this.onChange=n,this.onDragStart=r==null?null:r,this.onDrag=i==null?null:i,this.needsInitialApply=a,this.boundPointerDown=this.onPointerDown.bind(this),this.boundPointerMove=this.onPointerMove.bind(this),this.boundPointerUp=this.onPointerUp.bind(this),this.gridEl.style.position=`relative`,a||this.applyWidths(),this.createHandles(),this.gridEl.addEventListener(`pointerdown`,this.boundPointerDown)}destroy(){this.gridEl.removeEventListener(`pointerdown`,this.boundPointerDown),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),this.dragColElements=null,this.handles.forEach(e=>e.remove()),this.handles=[]}createHandles(){let e=this.colWidths.length;e<2||Array.from({length:e}).forEach((e,t)=>{let n=this.createHandle(t);this.handles.push(n),this.gridEl.appendChild(n)})}createHandle(e){let t=document.createElement(`div`),n=this.getHandleLeftPx(e);return t.setAttribute(Dt,``),t.setAttribute(`data-col`,String(e)),t.style.position=`absolute`,t.style.top=`-1px`,t.style.bottom=`0px`,t.style.width=`${Ot}px`,t.style.left=`${n-Ot/2}px`,t.style.cursor=`col-resize`,t.style.zIndex=`2`,t.style.background=`linear-gradient(to right, transparent 7px, #3b82f6 7px, #3b82f6 9px, transparent 9px)`,t.style.opacity=`0`,t.style.transition=`opacity 150ms ease`,t.setAttribute(`contenteditable`,`false`),t.addEventListener(`mouseenter`,()=>{this.isDragging||(t.style.opacity=`1`)}),t.addEventListener(`mouseleave`,()=>{this.isDragging||(t.style.opacity=`0`)}),t}getHandleLeftPx(e){return this.colWidths.slice(0,e+1).reduce((e,t)=>e+t,0)}updateHandlePositions(){this.handles.forEach((e,t)=>{let n=this.getHandleLeftPx(t),r=e;r.style.left=`${n-Ot/2}px`})}onPointerDown(e){var t;if(!this._enabled)return;let n=e.target;if(!n.hasAttribute(Dt))return;e.preventDefault(),this.needsInitialApply&&(this.applyWidths(),this.updateHandlePositions(),this.needsInitialApply=!1);let r=n.getAttribute(`data-col`);r!==null&&(this.dragColIndex=Number(r),this.isDragging=!0,this.dragStartX=e.clientX,this.startColWidth=this.colWidths[this.dragColIndex],this.dragColElements=this.resolveColElements(),(t=this.onDragStart)==null||t.call(this),this.gridEl.style.userSelect=`none`,n.style.opacity=`1`,n.setPointerCapture&&n.setPointerCapture(e.pointerId),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp))}onPointerMove(e){var t,n;if(!this.isDragging)return;let r=e.clientX-this.dragStartX,i=this.startColWidth+r,a=Math.max(J,i);this.colWidths[this.dragColIndex]=a,this.applyWidths((t=this.dragColElements)==null?void 0:t),this.updateHandlePositions(),(n=this.onDrag)==null||n.call(this)}onPointerUp(){if(!this.isDragging)return;this.isDragging=!1,this.gridEl.style.userSelect=``;let e=this.handles[this.dragColIndex];e&&(e.style.opacity=`0`),document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),this.dragColElements=null,this.onChange([...this.colWidths])}resolveColElements(){let e=this.gridEl.querySelector(`colgroup`);return e?Array.from(e.querySelectorAll(`col`)):[]}applyWidths(e=this.resolveColElements()){let t=this.colWidths.reduce((e,t)=>e+t,0);this.gridEl.style.width=`${t+1}px`,e.forEach((e,t)=>{if(t<this.colWidths.length){let n=e;n.style.width=`${this.colWidths[t]}px`}})}},At=(e,n,r)=>(r.grid.addRow(e,n),t.W(e,r.cellBlocks),{pendingHighlight:{type:`row`,index:n},moveSelection:null,colWidths:r.data.colWidths,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}),jt=(e,n,r)=>{let i=t.P(e,n,r.data.colWidths,r.data.initialColWidth,r.grid);return t.W(e,r.cellBlocks),{pendingHighlight:{type:`col`,index:n},moveSelection:null,colWidths:i,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}},Mt=e=>({pendingHighlight:null,moveSelection:null,colWidths:e.data.colWidths,withHeadings:e.data.withHeadings,withHeadingColumn:e.data.withHeadingColumn}),Nt=(e,t,n,r)=>r.data.hasMerges?Mt(r):(r.grid.moveRow(e,t,n),{pendingHighlight:null,moveSelection:{type:`row`,index:n},colWidths:r.data.colWidths,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}),Pt=(e,n,r,i)=>i.data.hasMerges?Mt(i):(i.grid.moveColumn(e,n,r),{pendingHighlight:null,moveSelection:{type:`col`,index:r},colWidths:t.Y(i.data.colWidths,n,r),withHeadings:i.data.withHeadings,withHeadingColumn:i.data.withHeadingColumn}),Ft=(e,t,n)=>{var r,i;return(r=n.cellBlocks)==null||r.deleteBlocks((i=n.blocksToDelete)==null?[]:i),n.data.hasMerges&&n.rebuildTableBody?n.rebuildTableBody():n.grid.deleteRow(e,t),{pendingHighlight:{type:`row`,index:t<n.grid.getRowCount(e)?t:t-1},moveSelection:null,colWidths:n.data.colWidths,withHeadings:n.data.withHeadings,withHeadingColumn:n.data.withHeadingColumn}},It=(e,n,r)=>{var i,a;(i=r.cellBlocks)==null||i.deleteBlocks((a=r.blocksToDelete)==null?[]:a),r.data.hasMerges&&r.rebuildTableBody?r.rebuildTableBody():r.grid.deleteColumn(e,n);let o=t.J(r.data.colWidths,n);return o?t.j(e,o):t.K(e),{pendingHighlight:{type:`col`,index:n<r.grid.getColumnCount(e)?n:n-1},moveSelection:null,colWidths:o,withHeadings:r.data.withHeadings,withHeadingColumn:r.data.withHeadingColumn}},Lt=(e,t,n)=>{switch(t.type){case`insert-row-above`:return At(e,t.index,n);case`insert-row-below`:return At(e,t.index+1,n);case`insert-col-left`:return jt(e,t.index,n);case`insert-col-right`:return jt(e,t.index+1,n);case`move-row`:return Nt(e,t.fromIndex,t.toIndex,n);case`move-col`:return Pt(e,t.fromIndex,t.toIndex,n);case`delete-row`:return Ft(e,t.index,n);case`delete-col`:return It(e,t.index,n);case`toggle-heading`:return{pendingHighlight:{type:`row`,index:0},moveSelection:null,colWidths:n.data.colWidths,withHeadings:!n.data.withHeadings,withHeadingColumn:n.data.withHeadingColumn};case`toggle-heading-column`:return{pendingHighlight:{type:`col`,index:0},moveSelection:null,colWidths:n.data.colWidths,withHeadings:n.data.withHeadings,withHeadingColumn:!n.data.withHeadingColumn}}},Rt=10,zt=`data-blok-table-drag-ghost`,Bt=e=>{let n=e.querySelector(`colgroup`);if(n)return Array.from(n.querySelectorAll(`col`)).reduce((e,t)=>{let n=e[e.length-1],r=t.offsetWidth||parseFloat(t.style.width)||0;return[...e,n+r]},[0]);let r=e.querySelector(`[${t.lt}]`);return r?Array.from(r.querySelectorAll(`[${t.ot}]`)).reduce((e,t)=>{let n=e[e.length-1];return[...e,n+t.offsetWidth]},[0]):[0]},Vt=class{constructor(e){var t;this.isDragging=!1,this.dragType=null,this.dragFromIndex=-1,this.dragStartX=0,this.dragStartY=0,this.dropIndicator=null,this.dragOverlayCells=[],this.ghostEl=null,this.ghostOffsetX=0,this.ghostOffsetY=0,this.resolveTracking=null,this.grid=e.grid,this.onAction=e.onAction,this.onDragStateChange=(t=e.onDragStateChange)==null?null:t,this.boundDocPointerMove=this.handleDocPointerMove.bind(this),this.boundDocPointerUp=this.handleDocPointerUp.bind(this),this.boundDocPointerCancel=this.handleDocPointerCancel.bind(this)}beginTracking(e,t,n,r){return this.dragType=e,this.dragFromIndex=t,this.dragStartX=n,this.dragStartY=r,document.addEventListener(`pointermove`,this.boundDocPointerMove),document.addEventListener(`pointerup`,this.boundDocPointerUp),document.addEventListener(`pointercancel`,this.boundDocPointerCancel),new Promise(e=>{this.resolveTracking=e})}cleanup(){var e,t,n;this.grid.style.userSelect=``,document.body.style.cursor=``,this.dragOverlayCells.forEach(e=>{let t=e.el;t.style.backgroundColor=e.originalBg,t.style.opacity=``}),this.dragOverlayCells=[],(e=this.dropIndicator)==null||e.remove(),this.dropIndicator=null,(t=this.ghostEl)==null||t.remove(),this.ghostEl=null,document.removeEventListener(`pointermove`,this.boundDocPointerMove),document.removeEventListener(`pointerup`,this.boundDocPointerUp),document.removeEventListener(`pointercancel`,this.boundDocPointerCancel),(n=this.onDragStateChange)==null||n.call(this,!1,null),this.isDragging=!1,this.dragType=null,this.dragFromIndex=-1,this.resolveTracking=null}handleDocPointerMove(e){let t=Math.abs(e.clientX-this.dragStartX),n=Math.abs(e.clientY-this.dragStartY);!this.isDragging&&(t>Rt||n>Rt)&&(this.isDragging=!0,this.startDrag()),this.isDragging&&(this.updateDragIndicator(e),this.updateGhostPosition(e))}handleDocPointerUp(e){if(document.removeEventListener(`pointermove`,this.boundDocPointerMove),document.removeEventListener(`pointerup`,this.boundDocPointerUp),document.removeEventListener(`pointercancel`,this.boundDocPointerCancel),this.isDragging){var t;this.finishDrag(e),(t=this.resolveTracking)==null||t.call(this,!0)}else{var n;(n=this.resolveTracking)==null||n.call(this,!1)}this.cleanup()}handleDocPointerCancel(){var e;(e=this.resolveTracking)==null||e.call(this,this.isDragging),this.cleanup()}startDrag(){var e;this.grid.style.userSelect=`none`,document.body.style.cursor=`grabbing`,(e=this.onDragStateChange)==null||e.call(this,!0,this.dragType),this.highlightSourceCells(),this.createDropIndicator(),this.createGhost()}highlightSourceCells(){let e=this.grid.querySelectorAll(`[${t.lt}]`);if(this.dragType===`row`){this.highlightRowCells(e);return}this.dragType===`col`&&this.highlightColumnCells(e)}highlightRowCells(e){let n=e[this.dragFromIndex];if(!n)return;let r=this.getDragSourceBg();n.querySelectorAll(`[${t.ot}]`).forEach(e=>{let t=e;this.dragOverlayCells.push({el:t,originalBg:t.style.backgroundColor}),t.style.backgroundColor=r,t.style.opacity=`0.7`})}highlightColumnCells(e){let n=this.getDragSourceBg();e.forEach(e=>{let r=e.querySelector(`[${t.st}="${this.dragFromIndex}"]`);r&&(this.dragOverlayCells.push({el:r,originalBg:r.style.backgroundColor}),r.style.backgroundColor=n,r.style.opacity=`0.7`)})}getDragSourceBg(){return getComputedStyle(this.grid).getPropertyValue(`--blok-table-drag-source-bg`).trim()||`#f3f4f6`}isDarkMode(){var e,t,n;let r=document.documentElement.getAttribute(`data-blok-theme`);return r===`dark`?!0:r===`light`||(e=(t=(n=window).matchMedia)==null?void 0:t.call(n,`(prefers-color-scheme: dark)`).matches)==null?!1:e}createDropIndicator(){this.dropIndicator=document.createElement(`div`);let e=this.dropIndicator.style;if(e.position=`absolute`,e.backgroundColor=`#3b82f6`,e.borderRadius=`1.5px`,e.zIndex=`5`,e.pointerEvents=`none`,this.dropIndicator.setAttribute(`contenteditable`,`false`),this.dragType===`row`)e.height=`3px`,e.left=`-1px`,e.right=`0`,e.transition=`top 100ms ease`;else{let n=this.grid.querySelectorAll(`[${t.lt}]`),r=n[n.length-1],i=r?r.offsetTop+r.offsetHeight:0;e.width=`3px`,e.top=`-1px`,e.height=`${i+1}px`,e.transition=`left 100ms ease`}this.grid.appendChild(this.dropIndicator)}updateDragIndicator(e){if(!this.dropIndicator)return;let t=this.grid.getBoundingClientRect();if(this.dragType===`row`){this.updateRowIndicator(e,t);return}this.dragType===`col`&&this.updateColIndicator(e,t)}updateRowIndicator(e,t){if(!this.dropIndicator)return;let n=e.clientY-t.top,r=this.getRowDropIndex(n),i=this.getRowDropTopPx(r);this.dropIndicator.style.top=`${i-1.5}px`}updateColIndicator(e,t){var n;if(!this.dropIndicator)return;let r=e.clientX-t.left,i=this.getColDropIndex(r),a=Bt(this.grid);this.dropIndicator.style.left=`${((n=a[i])==null?0:n)-1.5}px`}finishDrag(e){let t=this.grid.getBoundingClientRect();if(this.dragType===`row`){this.finishRowDrag(e,t);return}this.dragType===`col`&&this.finishColDrag(e,t)}finishRowDrag(e,t){let n=e.clientY-t.top,r=this.getRowDropIndex(n),i=r>this.dragFromIndex?r-1:r;i!==this.dragFromIndex&&this.onAction({type:`move-row`,fromIndex:this.dragFromIndex,toIndex:i})}finishColDrag(e,t){let n=e.clientX-t.left,r=this.getColDropIndex(n),i=r>this.dragFromIndex?r-1:r;i!==this.dragFromIndex&&this.onAction({type:`move-col`,fromIndex:this.dragFromIndex,toIndex:i})}createGhost(){let e=document.createElement(`div`);e.setAttribute(zt,``),e.setAttribute(`contenteditable`,`false`);let t=e.style;t.position=`fixed`,t.pointerEvents=`none`,t.opacity=`0.5`,t.zIndex=`50`,t.borderRadius=`4px`,t.overflow=`hidden`,t.boxShadow=this.isDarkMode()?`0 8px 24px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.08)`:`0 4px 12px rgba(0, 0, 0, 0.15)`,this.ghostEl=e;let n=this.getSourceRect();this.dragType===`row`&&this.buildRowGhost(),this.dragType===`col`&&this.buildColumnGhost(),document.body.appendChild(e),n&&(t.left=`${n.left}px`,t.top=`${n.top}px`,this.ghostOffsetX=this.dragStartX-n.left,this.ghostOffsetY=this.dragStartY-n.top)}getSourceRect(){return this.dragType===`row`?this.getRowSourceRect():this.dragType===`col`?this.getColSourceRect():null}getRowSourceRect(){var e;let n=this.grid.querySelectorAll(`[${t.lt}]`)[this.dragFromIndex];return(e=n==null?void 0:n.getBoundingClientRect())==null?null:e}getColSourceRect(){let e=this.grid.querySelectorAll(`[${t.lt}]`),n=e[0],r=e[e.length-1];if(!n||!r)return null;let i=n.querySelector(`[${t.st}="${this.dragFromIndex}"]`),a=r.querySelector(`[${t.st}="${this.dragFromIndex}"]`);if(!i||!a)return null;let o=i.getBoundingClientRect(),s=a.getBoundingClientRect();return new DOMRect(o.left,o.top,o.width,s.bottom-o.top)}buildRowGhost(){let e=this.grid.querySelectorAll(`[${t.lt}]`)[this.dragFromIndex];if(!e||!this.ghostEl)return;let n=this.ghostEl.style;n.display=`flex`,n.height=`${e.offsetHeight}px`,e.querySelectorAll(`[${t.ot}]`).forEach(e=>{var t;let n=e,r=n.cloneNode(!0);r.style.width=`${n.offsetWidth}px`,r.style.flexShrink=`0`,r.removeAttribute(`contenteditable`),(t=this.ghostEl)==null||t.appendChild(r)})}buildColumnGhost(){if(!this.ghostEl)return;let e=this.grid.querySelectorAll(`[${t.lt}]`),n=this.ghostEl.style;n.display=`flex`,n.flexDirection=`column`,e.forEach(e=>{var n;let r=e.querySelector(`[${t.st}="${this.dragFromIndex}"]`);if(!r)return;let i=r.cloneNode(!0);i.style.width=`${r.offsetWidth}px`,i.style.height=`${r.offsetHeight}px`,i.removeAttribute(`contenteditable`),(n=this.ghostEl)==null||n.appendChild(i)})}updateGhostPosition(e){if(!this.ghostEl)return;let t=this.ghostEl.style;this.dragType===`row`&&(t.top=`${e.clientY-this.ghostOffsetY}px`),this.dragType===`col`&&(t.left=`${e.clientX-this.ghostOffsetX}px`)}getRowDropIndex(e){let n=Array.from(this.grid.querySelectorAll(`[${t.lt}]`)),r=n.map(e=>e.offsetTop);if(n.length>0){let e=n[n.length-1];r.push(e.offsetTop+e.offsetHeight)}let i=r.map(t=>Math.abs(e-t)),a=Math.min(...i);return i.indexOf(a)}getRowDropTopPx(e){let n=this.grid.querySelectorAll(`[${t.lt}]`);if(e<n.length)return n[e].offsetTop;if(n.length>0){let e=n[n.length-1];return e.offsetTop+e.offsetHeight}return 0}getColDropIndex(e){let t=Bt(this.grid).map(t=>Math.abs(e-t)),n=Math.min(...t);return t.indexOf(n)}},Ht=[`flex`,`items-center`,`select-none`,`border-none`,`bg-transparent`,`rounded-md`,`p-(--item-padding)`,`text-text-primary`,`mb-px`,`cursor-pointer`,`can-hover:hover:bg-item-hover-bg`],Ut=[`flex`,`items-center`,`justify-center`,`w-[26px]`,`h-[26px]`,`mr-2`,`[&_svg]:w-icon`,`[&_svg]:h-icon`],Wt=[`mr-auto`,`truncate`,`text-sm`,`font-medium`,`leading-5`],Gt=[`relative`,`w-[30px]`,`h-[18px]`,`rounded-full`,`transition-colors`,`duration-[180ms]`,`ease-out`,`shrink-0`,`ml-2`],Kt=[`absolute`,`top-[2px]`,`w-[14px]`,`h-[14px]`,`rounded-full`,`bg-white`,`transition-[left]`,`duration-[220ms]`,`[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)]`],qt=e=>{let{icon:t,label:n,isActive:i,onToggle:a}=e,o={active:i},s=document.createElement(`div`);s.className=r.l(Ht);let c=document.createElement(`div`);c.className=r.l(Ut),c.innerHTML=t,s.appendChild(c);let l=document.createElement(`span`);l.className=r.l(Wt),l.textContent=n,s.appendChild(l);let u=document.createElement(`div`);u.className=r.l(Gt);let d=document.createElement(`div`);d.className=r.l(Kt),u.appendChild(d),s.appendChild(u);let f=()=>{u.style.backgroundColor=o.active?`var(--blok-toggle-on-bg)`:`var(--blok-toggle-off-bg)`,d.style.left=o.active?`14px`:`2px`,d.style.backgroundColor=o.active?`var(--blok-toggle-thumb-on-bg)`:``,d.style.boxShadow=o.active?`0 1px 3px rgba(0,0,0,0.35), 0 0 0 1px rgba(0,0,0,0.04)`:`0 1px 3px rgba(0,0,0,0.25), 0 0 0 1px rgba(0,0,0,0.06)`};return f(),s.addEventListener(`click`,e=>{e.stopPropagation(),o.active=!o.active,f(),a(o.active)}),s},Jt=(e,n)=>{let r=e===0?[{type:t.hr.Html,element:qt({icon:o.at,label:n.i18n.t(`tools.table.headerColumn`),isActive:n.isHeadingColumn(),onToggle:()=>{n.onAction({type:`toggle-heading-column`})}})},{type:t.hr.Separator}]:[],i=[{icon:o.ht,title:n.i18n.t(`tools.table.insertColumnLeft`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-col-left`,index:e})}},{icon:o.gt,title:n.i18n.t(`tools.table.insertColumnRight`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-col-right`,index:e})}}],a=n.getColumnCount()>1,s=[{type:t.hr.Separator},{icon:o.gn,title:n.i18n.t(`tools.table.deleteColumn`),isDestructive:!0,isDisabled:!a,closeOnActivate:!0,onActivate:()=>{n.onAction({type:`delete-col`,index:e})}}];return[...r,...i,...s]},Yt=(e,n)=>{let r=e===0?[{type:t.hr.Html,element:qt({icon:o.ot,label:n.i18n.t(`tools.table.headerRow`),isActive:n.isHeadingRow(),onToggle:()=>{n.onAction({type:`toggle-heading`})}})},{type:t.hr.Separator}]:[],i=[{icon:o.pt,title:n.i18n.t(`tools.table.insertRowAbove`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-row-above`,index:e})}},{icon:o.mt,title:n.i18n.t(`tools.table.insertRowBelow`),closeOnActivate:!0,onActivate:()=>{n.onAction({type:`insert-row-below`,index:e})}}],a=n.getRowCount()>1,s=[{type:t.hr.Separator},{icon:o.gn,title:n.i18n.t(`tools.table.deleteRow`),isDestructive:!0,isDisabled:!a,closeOnActivate:!0,onActivate:()=>{n.onAction({type:`delete-row`,index:e})}}];return[...r,...i,...s]},Xt=(e,n,r,i,a)=>{a.destroyPopover(),a.clearHideTimeout();let o=e===`col`?r.col[n]:r.row[n];if(!o)return{popover:null,grip:null};let s=new t._t({items:e===`col`?Jt(n,i):Yt(n,i),trigger:o,flippable:!0});return s.on(t.xt.Closed,()=>{var e;a.destroyPopover(),a.applyVisibleClasses(o),a.scheduleHideAll(),(e=a.onGripPopoverClose)==null||e.call(a)}),a.hideAllGripsExcept(o),a.applyActiveClasses(o),e===`col`?o.style.height=`16px`:o.style.width=`16px`,{popover:s,grip:o}},Y=`data-blok-table-grip`,Zt=`data-blok-table-grip-col`,Qt=`data-blok-table-grip-row`,$t=150,en=24,tn=4,X=4,nn=20,rn=[`absolute`,`z-3`,`rounded-sm`,`cursor-grab`,`select-none`,`transition-[opacity,background-color,width,height]`,`duration-150`,`group`,`flex`,`items-center`,`justify-center`,`overflow-hidden`],an=[`bg-gray-300`,`opacity-0`,`pointer-events-none`],on=[`bg-gray-300`,`opacity-100`,`pointer-events-auto`],sn=[`bg-blue-500`,`text-white`,`opacity-100`,`pointer-events-auto`],cn=class{constructor(e){this.colGrips=[],this.rowGrips=[],this.popoverState={popover:null,grip:null},this.lockedGrip=null,this.hideTimeout=null,this.activeColGripIndex=-1,this.activeRowGripIndex=-1,this.isInsideTable=!1,this.rowResizeObserver=null,this.boundScrollHandler=null,this.grid=e.grid,this.overlay=e.overlay,this.scrollContainer=e.scrollContainer,this.getColumnCount=e.getColumnCount,this.getRowCount=e.getRowCount,this.isHeadingRow=e.isHeadingRow,this.isHeadingColumn=e.isHeadingColumn,this.onAction=e.onAction,this.onGripClick=e.onGripClick,this.onGripPopoverClose=e.onGripPopoverClose,this.i18n=e.i18n,this.drag=new Vt({grid:this.grid,onAction:this.onAction,onDragStateChange:(t,n)=>{var r;this.handleDragStateChange(t,n),(r=e.onDragStateChange)==null||r.call(e,t,n)}}),this.boundMouseOver=this.handleMouseOver.bind(this),this.boundMouseLeave=this.handleMouseLeave.bind(this),this.boundPointerDown=this.handlePointerDown.bind(this),this.boundUnlockGrip=this.handleUnlockGrip.bind(this),this.createGrips(),this.grid.addEventListener(`mouseover`,this.boundMouseOver),this.grid.addEventListener(`mouseleave`,this.boundMouseLeave)}refresh(){let e=this.popoverState.grip?this.detectGripType(this.popoverState.grip):null;if(this.destroyGrips(),this.createGrips(),!e)return;let t=e.type===`col`?this.colGrips[e.index]:this.rowGrips[e.index];t&&(this.popoverState.grip=t,this.hideAllGripsExcept(t),this.applyActiveClasses(t),e.type===`col`?t.style.height=`16px`:t.style.width=`16px`)}setActiveGrip(e,t){let n=e===`col`?this.colGrips[t]:this.rowGrips[t];n&&(this.unlockGrip(),this.clearHideTimeout(),this.hideAllGripsExcept(n),this.applyActiveClasses(n),e===`col`?n.style.height=`16px`:n.style.width=`16px`,this.lockedGrip=n,document.addEventListener(`pointerdown`,this.boundUnlockGrip))}handleUnlockGrip(e){document.removeEventListener(`pointerdown`,this.boundUnlockGrip),this.lockedGrip&&(this.applyIdleClasses(this.lockedGrip),this.lockedGrip=null);let n=e.target instanceof HTMLElement?e.target:null,r=n==null?void 0:n.closest(`[${t.ot}]`);if(r){let e=this.getCellPosition(r);e&&(this.clearHideTimeout(),this.showColGrip(e.col),this.showRowGrip(e.row),this.isInsideTable=!0)}}unlockGrip(){document.removeEventListener(`pointerdown`,this.boundUnlockGrip),this.lockedGrip=null}getVisibleGripIndices(){return this.activeColGripIndex<0&&this.activeRowGripIndex<0?null:{col:this.activeColGripIndex,row:this.activeRowGripIndex}}restoreVisibleGrips(e,t){this.isInsideTable=e>=0||t>=0,e>=0&&this.showColGrip(e),t>=0&&this.showRowGrip(t)}get isPopoverOpen(){return this.popoverState.popover!==null}destroy(){this.destroyPopover(),this.unlockGrip(),this.drag.cleanup(),this.grid.removeEventListener(`mouseover`,this.boundMouseOver),this.grid.removeEventListener(`mouseleave`,this.boundMouseLeave),this.clearHideTimeout(),this.destroyGrips()}createGrips(){var e;let t=this.getColumnCount(),n=this.getRowCount(),r=(e=this.overlay)==null?this.grid:e;Array.from({length:t}).forEach((e,t)=>{let n=this.createGripElement(`col`,t);this.colGrips.push(n),r.appendChild(n)}),Array.from({length:n}).forEach((e,t)=>{let n=this.createGripElement(`row`,t);this.rowGrips.push(n),r.appendChild(n)}),this.positionGrips(),this.observeRowHeights(),this.attachScrollListener()}attachScrollListener(){this.overlay&&this.scrollContainer&&(this.boundScrollHandler=()=>this.positionGrips(),this.scrollContainer.addEventListener(`scroll`,this.boundScrollHandler))}detachScrollListener(){this.boundScrollHandler&&this.scrollContainer&&(this.scrollContainer.removeEventListener(`scroll`,this.boundScrollHandler),this.boundScrollHandler=null)}destroyGrips(){var e;(e=this.rowResizeObserver)==null||e.disconnect(),this.rowResizeObserver=null,this.detachScrollListener(),this.colGrips.forEach(e=>e.remove()),this.rowGrips.forEach(e=>e.remove()),this.colGrips=[],this.rowGrips=[],this.activeColGripIndex=-1,this.activeRowGripIndex=-1,this.isInsideTable=!1}createGripElement(e,t){let n=document.createElement(`div`);n.className=r.l(rn,an),n.setAttribute(Y,``),n.setAttribute(e===`col`?Zt:Qt,String(t)),n.setAttribute(`contenteditable`,`false`);let i=e===`col`?en:X,a=e===`col`?tn:nn,o=e===`col`?tn:X;return n.style.width=`${i}px`,n.style.height=`${a}px`,n.style.transform=`translate(-50%, -50%)`,n.style.outline=`2px solid var(--blok-table-grip-outline, transparent)`,n.appendChild(pt(e===`col`?`horizontal`:`vertical`)),n.addEventListener(`pointerdown`,this.boundPointerDown),n.addEventListener(`mouseenter`,()=>{this.overlay&&this.clearHideTimeout(),this.isGripInteractionLocked()||mt(n,e)}),n.addEventListener(`mouseleave`,()=>{this.isGripInteractionLocked()||(ht(n,e,o),this.overlay&&this.scheduleHideAll())}),n}positionGrips(){let e=this.grid.querySelectorAll(`[${t.lt}]`);if(!e[0])return;let n=Bt(this.grid),r=this.overlay&&this.scrollContainer?this.scrollContainer.scrollLeft:0,i=this.overlay&&this.scrollContainer?this.scrollContainer.clientWidth:1/0;this.colGrips.forEach((e,t)=>{if(t+1>=n.length)return;let a=(n[t]+n[t+1])/2-r,o=e.style;o.top=`${-1/2}px`,o.left=`${a}px`,this.overlay&&(o.visibility=a<0||a>i?`hidden`:``)}),this.rowGrips.forEach((n,r)=>{if(r>=e.length)return;let i=e[r],a=this.grid.querySelectorAll(`[${t.ct}="${r}"]`),o=Array.from(a).reduce((e,t)=>{let n=t,r=e===null?0:e.rowSpan||1;return(n.rowSpan||1)>r?n:e},null);if((o===null?1:o.rowSpan||1)>1&&o!==null){var s;let e=((s=this.overlay)==null?this.grid:s).getBoundingClientRect(),t=o.getBoundingClientRect(),r=t.top-e.top+t.height/2,i=n.style;i.left=`${-1/2}px`,i.top=`${r}px`}else{let e=i.offsetTop+i.offsetHeight/2,t=n.style;t.left=`${-1/2}px`,t.top=`${e}px`}})}observeRowHeights(){var e;(e=this.rowResizeObserver)==null||e.disconnect(),this.rowResizeObserver=new ResizeObserver(()=>{this.positionGrips()}),this.grid.querySelectorAll(`[${t.lt}]`).forEach(e=>{var t;(t=this.rowResizeObserver)==null||t.observe(e)})}isGripInteractionLocked(){return this.popoverState.popover!==null||this.lockedGrip!==null}handleMouseOver(e){if(this.isGripInteractionLocked())return;let n=e.target.closest(`[${t.ot}]`);if(!n)return;this.clearHideTimeout();let r=this.getCellPosition(n);r&&(this.showColGrip(r.col),this.showRowGrip(r.row),this.isInsideTable=!0)}handleMouseLeave(){this.isGripInteractionLocked()||this.scheduleHideAll()}getCellPosition(e){let n=e.getAttribute(t.ct),r=e.getAttribute(t.st);if(n===null||r===null)return null;let i=parseInt(n,10),a=parseInt(r,10);return isNaN(i)||isNaN(a)?null:{row:i,col:a}}setGripsDisplay(e){let t=e?``:`none`;[...this.colGrips,...this.rowGrips].forEach(n=>{let r=n;!e&&n===this.popoverState.grip||(r.style.display=t)})}hideAllGrips(){this.clearHideTimeout(),this.hideColGrip(),this.hideRowGrip(),this.isInsideTable=!1}showColGrip(e){this.activeColGripIndex!==e&&(this.hideColGrip(),this.activeColGripIndex=e,this.applyVisibleClasses(this.colGrips[e]))}hideColGrip(){this.activeColGripIndex>=0&&this.activeColGripIndex<this.colGrips.length&&this.applyIdleClasses(this.colGrips[this.activeColGripIndex]),this.activeColGripIndex=-1}showRowGrip(e){this.activeRowGripIndex!==e&&(this.hideRowGrip(),this.activeRowGripIndex=e,this.applyVisibleClasses(this.rowGrips[e]))}hideRowGrip(){this.activeRowGripIndex>=0&&this.activeRowGripIndex<this.rowGrips.length&&this.applyIdleClasses(this.rowGrips[this.activeRowGripIndex]),this.activeRowGripIndex=-1}applyVisibleClasses(e){let t=e,n=t.hasAttribute(Zt);ut(t,n?`col`:`row`,n?tn:X),this.isInsideTable&&(t.style.transition=`none`),t.className=r.l(rn,on),t.setAttribute(`data-blok-table-grip-visible`,``),this.isInsideTable&&(t.offsetHeight,t.style.transition=``);let i=t.querySelector(`svg`);i&&(i.classList.remove(`text-white`,`opacity-100`),i.classList.add(`text-gray-400`,`opacity-0`))}applyActiveClasses(e){Object.assign(e,{className:r.l(rn,sn)}),e.setAttribute(`data-blok-table-grip-visible`,``);let t=e.querySelector(`svg`);t&&(t.classList.remove(`text-gray-400`,`opacity-0`),t.classList.add(`text-white`,`opacity-100`))}hideAllGripsExcept(e){[...this.colGrips,...this.rowGrips].forEach(t=>{t!==e&&this.applyIdleClasses(t)})}applyIdleClasses(e){let t=e,n=t.hasAttribute(Zt),i=n?`col`:`row`,a=n?tn+12:X+12;this.isInsideTable&&(t.style.transition=`none`),ut(t,i,a),t.className=r.l(rn,an),t.removeAttribute(`data-blok-table-grip-visible`);let o=t.querySelector(`svg`);o&&(o.classList.add(`opacity-0`),o.classList.remove(`opacity-100`)),this.isInsideTable&&(t.offsetHeight,t.style.transition=``)}handleDragStateChange(e,t){[...this.colGrips,...this.rowGrips].forEach(t=>{let n=t;n.style.display=e?`none`:``})}scheduleHideAll(){this.hideTimeout=setTimeout(()=>{this.hideColGrip(),this.hideRowGrip(),this.isInsideTable=!1,this.hideTimeout=null},$t)}clearHideTimeout(){this.hideTimeout!==null&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}handlePointerDown(e){let t=e.target.closest(`[${Y}]`);if(!t)return;e.preventDefault(),e.stopPropagation();let n=this.detectGripType(t);n&&this.drag.beginTracking(n.type,n.index,e.clientX,e.clientY).then(e=>{e||this.openPopover(n.type,n.index)})}detectGripType(e){let t=e.getAttribute(Zt);if(t!==null)return{type:`col`,index:Number(t)};let n=e.getAttribute(Qt);return n===null?null:{type:`row`,index:Number(n)}}openPopover(e,t){var n,r;this.popoverState=Xt(e,t,{col:this.colGrips,row:this.rowGrips},{getColumnCount:this.getColumnCount,getRowCount:this.getRowCount,isHeadingRow:this.isHeadingRow,isHeadingColumn:this.isHeadingColumn,onAction:this.onAction,i18n:this.i18n},{clearHideTimeout:()=>this.clearHideTimeout(),hideAllGripsExcept:e=>this.hideAllGripsExcept(e),applyActiveClasses:e=>this.applyActiveClasses(e),applyVisibleClasses:e=>this.applyVisibleClasses(e),scheduleHideAll:()=>this.scheduleHideAll(),destroyPopover:()=>this.destroyPopover(),onGripPopoverClose:this.onGripPopoverClose}),(n=this.popoverState.popover)==null||n.show(),(r=this.onGripClick)==null||r.call(this,e,t)}destroyPopover(){if(this.popoverState.popover!==null){let e=this.popoverState.popover;this.popoverState={popover:null,grip:null},e.destroy()}}},ln=`data-blok-table-haze`,un=`data-blok-table-haze-visible`,dn=1,fn=[`absolute`,`top-0`,`bottom-0`,`w-12`,`pointer-events-none`,`opacity-0`,`transition-opacity`,`duration-150`,`z-1`],pn=[`left-0`,`bg-linear-to-r`,`from-white/80`,`to-transparent`],mn=[`right-5`,`bg-linear-to-l`,`from-white/80`,`to-transparent`],hn=class{constructor(){this.leftHaze=null,this.rightHaze=null,this.scrollContainer=null,this.boundOnScroll=null,this.ticking=!1}init(e,t){this.scrollContainer=t,this.leftHaze=this.createHazeElement(`left`),this.rightHaze=this.createHazeElement(`right`),e.appendChild(this.leftHaze),e.appendChild(this.rightHaze),this.boundOnScroll=()=>{this.ticking||(requestAnimationFrame(()=>{this.syncVisibility(),this.ticking=!1}),this.ticking=!0)},t.addEventListener(`scroll`,this.boundOnScroll,{passive:!0}),this.syncVisibility()}update(){this.syncVisibility()}destroy(){var e,t;this.boundOnScroll&&this.scrollContainer&&this.scrollContainer.removeEventListener(`scroll`,this.boundOnScroll),(e=this.leftHaze)==null||e.remove(),(t=this.rightHaze)==null||t.remove(),this.leftHaze=null,this.rightHaze=null,this.scrollContainer=null,this.boundOnScroll=null,this.ticking=!1}createHazeElement(e){let t=document.createElement(`div`);return t.setAttribute(ln,e),t.setAttribute(`aria-hidden`,`true`),t.classList.add(...fn,...e===`left`?pn:mn),t}syncVisibility(){let e=this.scrollContainer;if(!e)return;let{overflowX:t}=getComputedStyle(e);if(!(t===`auto`||t===`scroll`)){this.setVisible(this.leftHaze,!1),this.setVisible(this.rightHaze,!1);return}let{scrollLeft:n,scrollWidth:r,clientWidth:i}=e,a=r-i;this.setVisible(this.leftHaze,n>dn),this.setVisible(this.rightHaze,a>dn&&n<a-dn)}setVisible(e,t){e&&(t?e.setAttribute(un,``):e.removeAttribute(un))}},gn=class{constructor(e){this.resize=null,this.addControls=null,this.rowColControls=null,this.cellSelection=null,this.cornerDrag=null,this.scrollHaze=null,this.gridPasteCleanup=null,this.pendingHighlight=null,this.host=e}get cellSelectionSubsystem(){return this.cellSelection}get rowColControlsSubsystem(){return this.rowColControls}attachScrollContainer(e){var t;(t=this.addControls)==null||t.attachScrollContainer(e)}initAll(e){this.initResize(e),this.initAddControls(e),this.initCornerDrag(e),this.initRowColControls(e),this.initCellSelection(e),this.initGridPasteListener(e),this.initScrollHaze()}initScrollHazeOnly(){this.initScrollHaze()}teardown(){var e,t,n,r,i,a,o;(e=this.resize)==null||e.destroy(),this.resize=null,(t=this.addControls)==null||t.destroy(),this.addControls=null,(n=this.cornerDrag)==null||n.destroy(),this.cornerDrag=null,(r=this.rowColControls)==null||r.destroy(),this.rowColControls=null,(i=this.cellSelection)==null||i.destroy(),this.cellSelection=null,(a=this.scrollHaze)==null||a.destroy(),this.scrollHaze=null,(o=this.gridPasteCleanup)==null||o.call(this),this.gridPasteCleanup=null}initAddControls(e){var n;if((n=this.addControls)==null||n.destroy(),!this.host.element)return;let r={addedCols:0};this.addControls=new et({wrapper:this.host.element,grid:e,i18n:this.host.api.i18n,getTableSize:()=>({rows:this.host.model.rows,cols:this.host.model.cols}),getNewColumnWidth:()=>{var n;let r=(n=this.host.model.colWidths)==null?t.G(e):n;return this.host.model.initialColWidth===void 0?t.M(r):Math.round(this.host.model.initialColWidth/2*100)/100},onAddRow:()=>{this.host.runTransactedStructuralOp(()=>{var n,r;this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(n=this.addControls)==null||n.syncRowButtonWidth(),(r=this.rowColControls)==null||r.refresh()})},onAddColumn:()=>{this.host.runTransactedStructuralOp(()=>{var n,r,i;let a=(n=this.host.model.colWidths)==null?t.G(e):n,o=this.host.model.initialColWidth===void 0?t.M(a):Math.round(this.host.model.initialColWidth/2*100)/100;this.host.grid.addColumn(e,void 0,a,o),this.host.model.addColumn(void 0,o),this.host.model.setColWidths([...a,o]),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(r=this.rowColControls)==null||r.refresh(),this.host.scrollContainer&&(this.host.scrollContainer.scrollLeft=this.host.scrollContainer.scrollWidth),(i=this.addControls)==null||i.syncRowButtonWidth()})},onDragStart:()=>{var e,t;this.resize&&(this.resize.enabled=!1),(e=this.rowColControls)==null||e.hideAllGrips(),(t=this.rowColControls)==null||t.setGripsDisplay(!1)},onDragAddRow:()=>(this.host.runTransactedStructuralOp(()=>{this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn)}),!0),onDragRemoveRow:()=>this.host.runTransactedStructuralOp(()=>{var n;let r=this.host.grid.getRowCount(e);if(r<=1||!t.B(e,r-1))return!1;let{blocksToDelete:i}=this.host.model.deleteRow(r-1);return(n=this.host.cellBlocks)==null||n.deleteBlocks(i),this.host.grid.deleteRow(e,r-1),!0}),onDragAddCol:()=>(this.host.runTransactedStructuralOp(()=>{var n;let i=(n=this.host.model.colWidths)==null?t.G(e):n,a=this.host.model.initialColWidth===void 0?t.M(i):Math.round(this.host.model.initialColWidth/2*100)/100,o=[...i,a];this.host.grid.addColumn(e,void 0,i,a),this.host.model.addColumn(void 0,a),this.host.model.setColWidths(o),t.j(e,o),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),r.addedCols++,this.host.scrollContainer&&(this.host.scrollContainer.scrollLeft=this.host.scrollContainer.scrollWidth)}),!0),onDragRemoveCol:()=>this.host.runTransactedStructuralOp(()=>{var n;let i=this.host.grid.getColumnCount(e);if(i<=1||!t.z(e,i-1))return!1;let{blocksToDelete:a}=this.host.model.deleteColumn(i-1);(n=this.host.cellBlocks)==null||n.deleteBlocks(a),this.host.grid.deleteColumn(e,i-1);let o=this.host.model.colWidths;return o&&t.j(e,o),this.initResize(e),r.addedCols--,!0}),onDragEnd:()=>{var t,n;this.initResize(e),(t=this.rowColControls)==null||t.refresh(),this.host.scrollContainer&&(this.host.scrollContainer.scrollLeft=r.addedCols>0?this.host.scrollContainer.scrollWidth:0),(n=this.addControls)==null||n.syncRowButtonWidth(),r.addedCols=0}}),this.host.scrollContainer&&this.addControls.attachScrollContainer(this.host.scrollContainer)}initCornerDrag(e){var n;(n=this.cornerDrag)==null||n.destroy(),this.host.element&&(this.cornerDrag=new Et({wrapper:this.host.element,gridEl:e,onAddRow:()=>{this.host.runStructuralOp(()=>{this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn)})},onAddColumn:()=>{this.host.runStructuralOp(()=>{var n,r;let i=(n=this.host.model.colWidths)==null?t.G(e):n,a=this.host.model.initialColWidth===void 0?t.M(i):Math.round(this.host.model.initialColWidth/2*100)/100,o=[...i,a];this.host.grid.addColumn(e,void 0,i,a),this.host.model.addColumn(void 0,a),this.host.model.setColWidths(o),t.j(e,o),t.F(this.host.ensureScrollContainer()),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),(r=this.scrollHaze)==null||r.update()})},onRemoveLastRow:()=>{this.host.runStructuralOp(()=>{var t;let n=this.host.grid.getRowCount(e);if(n<=1)return;let{blocksToDelete:r}=this.host.model.deleteRow(n-1);(t=this.host.cellBlocks)==null||t.deleteBlocks(r),this.host.grid.deleteRow(e,n-1)})},onRemoveLastColumn:()=>{this.host.runStructuralOp(()=>{var n;let r=this.host.grid.getColumnCount(e);if(r<=1)return;let{blocksToDelete:i}=this.host.model.deleteColumn(r-1);(n=this.host.cellBlocks)==null||n.deleteBlocks(i),this.host.grid.deleteColumn(e,r-1);let a=this.host.model.colWidths;a&&t.j(e,a)})},onDragStart:()=>{var e,t,n;this.resize&&(this.resize.enabled=!1),(e=this.rowColControls)==null||e.hideAllGrips(),(t=this.rowColControls)==null||t.setGripsDisplay(!1),(n=this.addControls)==null||n.setDisplay(!1)},onDragEnd:()=>{var t,n,r;this.initResize(e),(t=this.rowColControls)==null||t.refresh(),(n=this.addControls)==null||n.setDisplay(!0),(r=this.addControls)==null||r.syncRowButtonWidth()},getTableSize:()=>({rows:this.host.model.rows,cols:this.host.model.cols}),canRemoveLastRow:()=>this.host.model.rows>1&&t.B(e,this.host.model.rows-1),canRemoveLastColumn:()=>this.host.model.cols>1&&t.z(e,this.host.model.cols-1),onClickAdd:()=>{this.host.runTransactedStructuralOp(()=>{var n,r,i;this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn);let a=(n=this.host.model.colWidths)==null?t.G(e):n,o=this.host.model.initialColWidth===void 0?t.M(a):Math.round(this.host.model.initialColWidth/2*100)/100,s=[...a,o];this.host.grid.addColumn(e,void 0,a,o),this.host.model.addColumn(void 0,o),this.host.model.setColWidths(s),t.j(e,s),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(r=this.rowColControls)==null||r.refresh(),(i=this.addControls)==null||i.syncRowButtonWidth()})}}))}initRowColControls(e){var t,n,r;(t=this.rowColControls)==null||t.destroy(),this.host.element&&(this.rowColControls=new cn({grid:e,overlay:(n=this.host.gripOverlay)==null?void 0:n,scrollContainer:(r=this.host.scrollContainer)==null?void 0:r,getColumnCount:()=>this.host.grid.getColumnCount(e),getRowCount:()=>this.host.grid.getRowCount(e),isHeadingRow:()=>this.host.model.withHeadings,isHeadingColumn:()=>this.host.model.withHeadingColumn,i18n:this.host.api.i18n,onAction:t=>this.handleRowColAction(e,t),onDragStateChange:e=>{var t,n;this.resize&&(this.resize.enabled=!e),(t=this.addControls)==null||t.setDisplay(!e),(n=this.cornerDrag)==null||n.setDisplay(!e),e&&this.host.api.toolbar.close({setExplicitlyClosed:!1})},onGripClick:(e,t)=>{if(e===`row`){var n;(n=this.cellSelection)==null||n.selectRow(t)}else{var r;(r=this.cellSelection)==null||r.selectColumn(t)}},onGripPopoverClose:()=>{if(this.pendingHighlight){var e;let{type:t,index:n}=this.pendingHighlight;this.pendingHighlight=null,(e=this.rowColControls)==null||e.setActiveGrip(t,n),requestAnimationFrame(()=>{if(t===`row`){var e;(e=this.cellSelection)==null||e.selectRow(n)}else{var r;(r=this.cellSelection)==null||r.selectColumn(n)}})}else{var t;(t=this.cellSelection)==null||t.clearActiveSelection()}}}))}handleRowColAction(e,n){let r=this.host.setDataGeneration;this.host.runTransactedStructuralOp(()=>{var i,a;if(r!==this.host.setDataGeneration||this.host.gridElement!==e)return;let o=this.host.model.colWidths,s=this.host.model.hasMerges(),{blocksToDelete:c}=this.syncModelForAction(n),l=Lt(e,n,{grid:this.host.grid,data:{colWidths:o,withHeadings:this.host.model.withHeadings,withHeadingColumn:this.host.model.withHeadingColumn,initialColWidth:this.host.model.initialColWidth,hasMerges:s},cellBlocks:this.host.cellBlocks,blocksToDelete:c,rebuildTableBody:()=>this.host.rebuildTableBody()});if(r!==this.host.setDataGeneration||this.host.gridElement!==e)return;if(this.host.model.setColWidths(l.colWidths),this.host.model.setWithHeadings(l.withHeadings),this.host.model.setWithHeadingColumn(l.withHeadingColumn),this.pendingHighlight=l.pendingHighlight,t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn),this.initResize(e),(i=this.addControls)==null||i.syncRowButtonWidth(),!(n.type===`toggle-heading`||n.type===`toggle-heading-column`)){var u;(u=this.rowColControls)==null||u.refresh()}if(!l.moveSelection)return;let{type:d,index:f}=l.moveSelection;if(d===`row`){var p;(p=this.cellSelection)==null||p.selectRow(f)}else{var m;(m=this.cellSelection)==null||m.selectColumn(f)}(a=this.rowColControls)==null||a.setActiveGrip(d,f)})}syncModelForAction(e){switch(e.type){case`insert-row-above`:this.host.model.addRow(e.index);break;case`insert-row-below`:this.host.model.addRow(e.index+1);break;case`insert-col-left`:this.host.model.addColumn(e.index);break;case`insert-col-right`:this.host.model.addColumn(e.index+1);break;case`move-row`:this.host.model.hasMerges()||this.host.model.moveRow(e.fromIndex,e.toIndex);break;case`move-col`:this.host.model.hasMerges()||this.host.model.moveColumn(e.fromIndex,e.toIndex);break;case`delete-row`:return this.host.model.deleteRow(e.index);case`delete-col`:return this.host.model.deleteColumn(e.index);case`toggle-heading`:case`toggle-heading-column`:break}return{}}initResize(e){var n,r,i;(n=this.resize)==null||n.destroy();let a=this.host.model.colWidths===void 0,o=(r=this.host.model.colWidths)==null?t.G(e):r;a||t.F(this.host.ensureScrollContainer()),this.resize=new kt(e,o,e=>{var n,r,i;this.host.model.setColWidths(e),t.F(this.host.ensureScrollContainer()),(n=this.rowColControls)==null||n.positionGrips(),(r=this.addControls)==null||r.syncRowButtonWidth(),(i=this.scrollHaze)==null||i.update()},()=>{var e;(e=this.rowColControls)==null||e.hideAllGrips()},()=>{var e,t;(e=this.addControls)==null||e.syncRowButtonWidth(),(t=this.scrollHaze)==null||t.update()},a),(i=this.scrollHaze)==null||i.update()}handleCellCopy(e,n){let r=this.collectCellBlockData(e);if(r.length===0)return;let i=t.D(r);n.setData(`text/html`,t.S(i)),n.setData(`text/plain`,t.C(i))}handleCellCopyViaButton(e){let n=this.collectCellBlockData(e);if(n.length===0)return;let r=t.D(n),i=t.S(r),a=t.C(r),o=new Blob([i],{type:`text/html`}),s=new Blob([a],{type:`text/plain`});navigator.clipboard.write([new ClipboardItem({"text/html":o,"text/plain":s})])}handleCellColorChange(e,n,r){let i=this.host.gridElement;i&&this.host.runTransactedStructuralOp(()=>{for(let a of e){let e=t.R(i,a);e&&(r===`backgroundColor`?(this.host.model.setCellColor(e.row,e.col,n==null?void 0:n),a.style.backgroundColor=n==null?``:n):(this.host.model.setCellTextColor(e.row,e.col,n==null?void 0:n),a.style.color=n==null?``:n))}})}handleCellPlacementChange(e,n){let r=this.host.gridElement;r&&this.host.runTransactedStructuralOp(()=>{for(let i of e){let e=t.R(r,i);if(!e)continue;this.host.model.setCellPlacement(e.row,e.col,n===`top-left`?void 0:n);let a=i.querySelector(`[${t.Q}]`);a&&(n===`top-left`?a.removeAttribute(`data-blok-cell-placement`):a.setAttribute(`data-blok-cell-placement`,n))}})}collectCellBlockData(e){return this.host.gridElement?e.map(e=>{var r,i,a;let o=parseInt((r=e.getAttribute(`data-blok-table-cell-row`))==null?`0`:r,10),s=parseInt((i=e.getAttribute(`data-blok-table-cell-col`))==null?`0`:i,10),c=e.querySelector(`[${t.Q}]`),l=[];if(!c)return{row:o,col:s,blocks:l};c.querySelectorAll(`[data-blok-id]`).forEach(e=>{let t=e.getAttribute(`data-blok-id`);if(!t)return;let r=this.host.api.blocks.getBlockIndex(t);if(r===void 0)return;let i=this.host.api.blocks.getBlockByIndex(r);i&&l.push(n.t({tool:i.name,data:i.preservedData},Object.keys(i.preservedTunes).length>0?{tunes:i.preservedTunes}:{}))});let u=l.length===0?((a=c.innerHTML)==null?``:a).trim():``;l.length===0&&u.length>0&&l.push({tool:`paragraph`,data:{text:u}});let d=this.host.model.getCellColor(o,s),f=this.host.model.getCellTextColor(o,s),p=this.host.model.getCellSpan(o,s);return n.t(n.t(n.t(n.t({row:o,col:s,blocks:l},d===void 0?{}:{color:d}),f===void 0?{}:{textColor:f}),p.colspan>1?{colspan:p.colspan}:{}),p.rowspan>1?{rowspan:p.rowspan}:{})}):[]}initCellSelection(e){var n;(n=this.cellSelection)==null||n.destroy();let r=this.host.api.rectangleSelection;this.cellSelection=new Ct({grid:e,rectangleSelection:r,i18n:this.host.api.i18n,isPopoverOpen:()=>{var e,t;return(e=(t=this.rowColControls)==null?void 0:t.isPopoverOpen)==null?!1:e},onPointerDragActiveChange:e=>{var t,n;(t=(n=this.host.api.blocks).setPointerDragActive)==null||t.call(n,e)},onSelectionActiveChange:e=>{var t,n,r;this.resize&&(this.resize.enabled=!e),(t=this.addControls)==null||t.setInteractive(!e),(n=this.cornerDrag)==null||n.setInteractive(!e),(r=this.rowColControls)==null||r.setGripsDisplay(!e)},onSelectionRangeChange:()=>{var e;(e=this.rowColControls)==null||e.setGripsDisplay(!0)},onClearContent:e=>{let n=this.host.cellBlocks;n&&this.host.runTransactedStructuralOp(()=>{let r=n.getBlockIdsFromCells(e);n.deleteBlocks(r);let i=this.host.gridElement;if(i)for(let n of e){let e=t.R(i,n);e&&(this.host.model.setCellColor(e.row,e.col,void 0),this.host.model.setCellTextColor(e.row,e.col,void 0),n.style.backgroundColor=``,n.style.color=``)}})},onCopy:(e,t)=>{this.handleCellCopy(e,t)},onCut:(e,t)=>{this.handleCellCopy(e,t)},onCopyViaButton:e=>{this.handleCellCopyViaButton(e)},onColorChange:(e,t,n)=>{this.handleCellColorChange(e,t,n)},onPlacementChange:(e,t)=>{this.handleCellPlacementChange(e,t)},getCellPlacement:(e,t)=>this.host.model.getCellPlacement(e,t),canMergeCells:e=>this.host.model.canMergeCells(e),onMergeCells:e=>{this.host.runTransactedStructuralOp(()=>{this.host.model.mergeCells(e),this.host.rebuildTableBody()})},isMergedCell:(e,t)=>this.host.model.isMergedCell(e,t),onSplitCell:(e,t)=>{this.host.runTransactedStructuralOp(()=>{this.host.model.splitCell(e,t),this.host.rebuildTableBody()})},getCellSpan:(e,t)=>this.host.model.getCellSpan(e,t)})}initScrollHaze(){var e;(e=this.scrollHaze)==null||e.destroy(),!(!this.host.element||!this.host.scrollContainer)&&(this.scrollHaze=new hn,this.scrollHaze.init(this.host.element,this.host.scrollContainer))}initGridPasteListener(e){let t=t=>{this.handleGridPaste(t,e)};e.addEventListener(`paste`,t),this.gridPasteCleanup=()=>{e.removeEventListener(`paste`,t)}}handleGridPaste(e,n){var r,i;if(this.host.readOnly||!e.clipboardData||e.defaultPrevented)return;let a=e.clipboardData.getData(`text/html`),o=t.T(a),s=o===null?t.E(a):null,c=o==null?s:o;if(!c||s!==null&&new DOMParser().parseFromString(a,`text/html`).querySelectorAll(`table`).length>1)return;let l=document.activeElement;if(!l)return;let u=l.closest(`[${t.ot}]`);if(!u||!n.contains(u)||!u.closest(`[data-blok-table-row]`))return;e.preventDefault(),e.stopPropagation();let d=parseInt((r=u.getAttribute(`data-blok-table-cell-row`))==null?`0`:r,10),f=parseInt((i=u.getAttribute(`data-blok-table-cell-col`))==null?`0`:i,10);if(c.rows===1&&c.cols===1){let e=c.cells[0][0];if(e.blocks.every(e=>e.tool===`paragraph`&&typeof e.data.text==`string`)){this.insertSingleCellPayloadInline(e);return}this.pastePayloadIntoCells(n,c,d,f);return}this.pastePayloadIntoCells(n,c,d,f)}insertSingleCellPayloadInline(e){let t=e.blocks.map(e=>typeof e.data.text==`string`?e.data.text:``).filter(Boolean).join(`<br>`);if(!t)return;let n=window.getSelection();if(!n||n.rangeCount===0)return;let r=n.getRangeAt(0);r.collapsed||r.deleteContents();let i=document.createDocumentFragment(),a=document.createElement(`div`);a.innerHTML=t,Array.from(a.childNodes).forEach(e=>i.appendChild(e)),i.childNodes.length===0&&i.appendChild(new Text);let o=i.lastChild;r.insertNode(i);let s=document.createRange(),c=o.nodeType===Node.TEXT_NODE?o:o.firstChild;c!==null&&c.textContent!==null&&s.setStart(c,c.textContent.length),n.removeAllRanges(),n.addRange(s)}splitMergesInRegion(e,t,n,r){let i=Array.from({length:n},(t,n)=>e+n),a=Array.from({length:r},(e,n)=>t+n),o=new Map;i.forEach(e=>{a.forEach(t=>{let n=this.host.model.getMergeOrigin(e,t);n!==null&&o.set(`${n[0]}:${n[1]}`,n)})}),o.size!==0&&(o.forEach(([e,t])=>this.host.model.splitCell(e,t)),this.host.rebuildTableBody())}pastePayloadIntoCells(e,t,n,r){this.host.runTransactedStructuralOp(()=>{var i,a;this.expandGridForPaste(e,n+t.rows,r+t.cols),this.splitMergesInRegion(n,r,t.rows,t.cols),Array.from({length:t.rows},(e,t)=>t).forEach(i=>{Array.from({length:t.cols},(e,t)=>t).forEach(a=>{let o=t.cells[i][a];if(o.covered)return;let s=this.host.grid.getCell(e,n+i,r+a);if(s){var c,l,u,d;this.pasteCellPayload(s,o);let e=(c=(l=this.host.cellBlocks)==null?void 0:l.getBlockIdsFromCells([s]))==null?[]:c;this.host.model.setCellBlocks(n+i,r+a,e);let t=n+i,f=r+a;this.host.model.setCellColor(t,f,o.color),s.style.backgroundColor=(u=o.color)==null?``:u,this.host.model.setCellTextColor(t,f,o.textColor),s.style.color=(d=o.textColor)==null?``:d}})}),this.applyPayloadMerges(e,t,n,r),this.initResize(e),(i=this.addControls)==null||i.syncRowButtonWidth(),(a=this.rowColControls)==null||a.refresh()});let i=this.host.grid.getCell(e,n+t.rows-1,r+t.cols-1);if(!i||!this.host.cellBlocks||!this.host.api.caret)return;let a=this.host.cellBlocks.getBlockIdsFromCells([i]),o=a[a.length-1];o!==void 0&&this.host.api.caret.setToBlock(o,`end`)}collectPayloadMerges(e){return e.cells.flatMap((t,n)=>t.flatMap((t,r)=>{var i,a;let o=Math.min((i=t.colspan)==null?1:i,e.cols-r),s=Math.min((a=t.rowspan)==null?1:a,e.rows-n);return o>1||s>1?[{row:n,col:r,colspan:o,rowspan:s}]:[]}))}applyPayloadMerges(e,t,n,r){let i=this.collectPayloadMerges(t);i.length!==0&&(i.forEach(({row:t,col:i,colspan:a,rowspan:o})=>{this.clearCoveredDestinationCells(e,n+t,r+i,o,a),this.host.model.mergeCells({minRow:n+t,maxRow:n+t+o-1,minCol:r+i,maxCol:r+i+a-1})}),this.host.rebuildTableBody())}clearCoveredDestinationCells(e,t,n,r,i){Array.from({length:r}).forEach((r,a)=>{Array.from({length:i}).forEach((r,i)=>{if(a===0&&i===0)return;let o=t+a,s=n+i,c=this.host.grid.getCell(e,o,s);c&&this.host.cellBlocks&&this.host.cellBlocks.deleteBlocks(this.host.cellBlocks.getBlockIdsFromCells([c])),this.host.model.setCellBlocks(o,s,[]),this.host.model.setCellColor(o,s,void 0),this.host.model.setCellTextColor(o,s,void 0)})})}expandGridForPaste(e,n,r){let i=this.host.grid.getRowCount(e),a=this.host.grid.getColumnCount(e);Array.from({length:Math.max(0,n-i)}).forEach(()=>{this.host.grid.addRow(e),this.host.model.addRow(),t.W(e,this.host.cellBlocks),t.Z(this.host.gridElement,this.host.model.withHeadings),t.X(this.host.gridElement,this.host.model.withHeadingColumn)}),Array.from({length:Math.max(0,r-a)}).forEach(()=>{var n;let r=(n=this.host.model.colWidths)==null?t.G(e):n,i=this.host.model.initialColWidth===void 0?t.M(r):Math.round(this.host.model.initialColWidth/2*100)/100;this.host.grid.addColumn(e,void 0,r,i),this.host.model.addColumn(void 0,i),this.host.model.setColWidths([...r,i]),t.W(e,this.host.cellBlocks),t.X(this.host.gridElement,this.host.model.withHeadingColumn)})}pasteCellPayload(e,n){if(this.host.cellBlocks){let t=this.host.cellBlocks.getBlockIdsFromCells([e]);this.host.cellBlocks.deleteBlocks(t)}let r=e.querySelector(`[${t.Q}]`);if(r){if(n.blocks.length===0){var i;(i=this.host.cellBlocks)==null||i.ensureCellHasBlock(e);return}for(let e of n.blocks){var a;let t=this.host.api.blocks.insert(e.tool,e.data,{},this.host.api.blocks.getBlocksCount(),!1);r.appendChild(t.holder),this.host.api.blocks.setBlockParent(t.id,(a=this.host.blockId)==null?``:a)}}}},_n=3,vn=3,yn=[`my-2`,`pr-5`],bn=[`relative`,`mb-7`,`after:content-[""]`,`after:absolute`,`after:-bottom-10`,`after:left-0`,`after:right-0`,`after:h-10`,`after:pointer-events-none`],xn=class e{constructor({data:e,config:n,api:r,readOnly:i,block:a}){this.initialContent=null,this.cellBlocks=null,this.element=null,this.gridElement=null,this.scrollContainer=null,this.gripOverlay=null,this.isNewTable=!1,this.unregisterRestrictedTools=null,this.keyboardNavCleanup=null,this.setDataGeneration=0,this.structuralOpDepth=0,this.api=r,this.readOnly=i,this.config=n==null?{}:n;let o=t.H(e,this.config);this.initialContent=o.content,this.grid=new t.ut({readOnly:i}),this.model=new Ke(o),this.blockId=a==null?void 0:a.id,this.block=a,this.subsystems=new gn(this.createSubsystemHost()),this.config.restrictedTools!==void 0&&(this.unregisterRestrictedTools=t.Lr(this.config.restrictedTools))}createSubsystemHost(){let e=this;return{get api(){return e.api},get readOnly(){return e.readOnly},get blockId(){return e.blockId},get model(){return e.model},get grid(){return e.grid},get cellBlocks(){return e.cellBlocks},get element(){return e.element},get gridElement(){return e.gridElement},get scrollContainer(){return e.scrollContainer},get gripOverlay(){return e.gripOverlay},get setDataGeneration(){return e.setDataGeneration},runStructuralOp:(t,n)=>e.runStructuralOp(t,n),runTransactedStructuralOp:(t,n)=>e.runTransactedStructuralOp(t,n),ensureScrollContainer:()=>e.ensureScrollContainer(),rebuildTableBody:()=>e.rebuildTableBody()}}runStructuralOp(e,t=!1){this.structuralOpDepth++;try{return e()}finally{this.structuralOpDepth--;let e=this.structuralOpDepth===0;if(e&&t){var n;(n=this.cellBlocks)==null||n.discardDeferredEvents()}if(e&&!t){var r;(r=this.cellBlocks)==null||r.flushDeferredEvents()}}}runTransactedStructuralOp(e,t=!1){if(!this.api.blocks.transact)return this.runStructuralOp(e,t);let n={current:void 0};return this.api.blocks.transact(()=>{n.current=this.runStructuralOp(e,t)}),n.current}teardownSubsystems(){var e;this.subsystems.teardown(),(e=this.keyboardNavCleanup)==null||e.call(this),this.keyboardNavCleanup=null}rebuildTableBody(){let e=this.gridElement;if(!e)return;let n=e.querySelector(`tbody`);if(!n)return;let r=new Map;n.querySelectorAll(`[data-blok-id]`).forEach(e=>{let t=e.getAttribute(`data-blok-id`);t&&r.set(t,e)});let i=this.grid.createGridFromModel(this.model),a=i.querySelector(`tbody`);if(!a)return;let o=this.model.snapshot().content;this.mountBlockHoldersInNewTbody(o,a,r);let s=e.querySelector(`colgroup`),c=i.querySelector(`colgroup`);s&&c&&s.querySelectorAll(`col`).length!==c.querySelectorAll(`col`).length&&s.replaceWith(c),n.replaceWith(a),this.readOnly||this.runTransactedStructuralOp(()=>{a.querySelectorAll(`[${t.ot}]`).forEach(e=>{var t;(t=this.cellBlocks)==null||t.ensureCellHasBlock(e)})},!0)}mountBlockHoldersInNewTbody(e,n,r){let i=new Set;e.forEach((e,a)=>{e.forEach((e,o)=>{if(typeof e==`string`||e.mergedInto)return;let s=n.querySelector(`[${t.ct}="${a}"][${t.st}="${o}"]`);if(!s)return;let c=s.querySelector(`[${t.Q}]`);c&&e.blocks.forEach(e=>{let t=r.get(e);t&&!i.has(e)&&(c.appendChild(t),i.add(e))})})})}modelHasMerges(){return this.model.snapshot().content.some(e=>e.some(e=>{var t,n;return typeof e!=`string`&&(((t=e.colspan)==null?1:t)>1||((n=e.rowspan)==null?1:n)>1)}))}createFlatGrid(){var e,t;let n=((e=this.initialContent)==null?void 0:e.length)||this.config.rows||_n,r=((t=this.initialContent)==null?void 0:t.reduce((e,t)=>{var n;return Math.max(e,(n=t==null?void 0:t.length)==null?0:n)},0))||this.config.cols||vn;return this.grid.createGrid(n,r,this.model.colWidths)}static get toolbox(){return{icon:o.un,titleKey:`tools.table.title`,searchTerms:[`table`,`grid`,`spreadsheet`],searchTermKeys:[`table`,`grid`,`spreadsheet`]}}static get isReadOnlySupported(){return!0}static get enableLineBreaks(){return!0}static get pasteConfig(){return{tags:[`TABLE`,`TR`,{TH:{style:!0,colspan:!0,rowspan:!0}},{TD:{style:!0,colspan:!0,rowspan:!0}}]}}static get sanitize(){return{content:{br:!0,b:!0,i:!0,strong:!0,em:!0,mark:e=>{let n=e.style,r=Array.from({length:n.length},(e,t)=>n.item(t));for(let e of r)t.x.has(e)||n.removeProperty(e);return n.length>0?{style:!0}:{}},a:{href:!0,target:`_blank`,rel:`nofollow`},input:{type:!0,checked:!0}}}}ensureScrollContainer(){if(this.scrollContainer)return this.scrollContainer;let e=document.createElement(`div`);e.setAttribute(`data-blok-table-scroll`,``);let t=this.gridElement;return t&&this.element&&(this.element.insertBefore(e,t),e.appendChild(t)),this.scrollContainer=e,this.subsystems.attachScrollContainer(e),e}render(){var e,n,i,a;let o=document.createElement(`div`);o.className=r.l(yn,!this.readOnly&&bn),o.setAttribute(t.yi.tool,`table`),this.readOnly&&o.setAttribute(`data-blok-table-readonly`,``),this.isNewTable=((e=(n=this.initialContent)==null?void 0:n.length)==null?0:e)===0;let s=((i=(a=this.initialContent)==null?void 0:a.length)==null?0:i)>0,c=s&&this.modelHasMerges(),l=c?this.grid.createGridFromModel(this.model):this.createFlatGrid();if(s&&!c){var u;this.grid.fillGrid(l,(u=this.initialContent)==null?[]:u)}if(this.model.colWidths&&t.j(l,this.model.colWidths),this.gridElement=l,this.model.colWidths||!this.readOnly){let e=document.createElement(`div`);e.setAttribute(`data-blok-table-scroll`,``);let n=this.model.colWidths?t.O:[];e.classList.add(...n),e.appendChild(l),o.appendChild(e),this.scrollContainer=e}else o.appendChild(l),this.scrollContainer=null;if(!this.readOnly){let e=document.createElement(`div`);e.setAttribute(`data-blok-table-grip-overlay`,``),e.style.position=`absolute`,e.style.inset=`0`,e.style.pointerEvents=`none`,e.style.zIndex=`3`,o.appendChild(e),this.gripOverlay=e}return this.element=o,this.model.withHeadings&&t.Z(this.gridElement,this.model.withHeadings),this.model.withHeadingColumn&&t.X(this.gridElement,this.model.withHeadingColumn),this.readOnly||(this.initCellBlocks(l),this.keyboardNavCleanup=t.q(l,this.cellBlocks)),o}rendered(){if(!this.element||this.initialContent===null)return;this.block&&(this.block.stretched=this.model.stretched);let e=this.gridElement;if(!e)return;let r=this.initialContent;if(this.initialContent=null,this.readOnly){var i;t.V(e,r,this.api,(i=this.blockId)==null?``:i);let n=this.model.snapshot();t.k(e,n.content),t.A(e,n.content),this.subsystems.initScrollHazeOnly();return}if(this.runTransactedStructuralOp(()=>{var i,a;let o=(i=(a=this.cellBlocks)==null?void 0:a.initializeCells(r))==null?r:i,s=this.isNewTable&&o.length===0?Array.from(e.querySelectorAll(`[${t.lt}]`),e=>{let n=e.querySelectorAll(`[${t.ot}]`).length;return Array.from({length:n},()=>({blocks:[]}))}):o;this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:s})),this.isNewTable&&t.W(e,this.cellBlocks),this.removeGhostChildren()},!0),this.model.initialColWidth===void 0){var a;let n=(a=this.model.colWidths)==null?t.G(e):a;this.model.setInitialColWidth(n.length>0?t.N(n):void 0)}this.subsystems.initAll(e);let o=this.model.snapshot();if(t.k(e,o.content),t.A(e,o.content),this.isNewTable){var s;(s=this.subsystems.cellSelectionSubsystem)==null||s.selectRange({minRow:0,maxRow:0,minCol:0,maxCol:0})}}setReadOnly(e){let n=this.element,r=this.gridElement;if(!(!n||!r))if(this.readOnly=e,e){var i,a;this.teardownSubsystems(),(i=this.cellBlocks)==null||i.destroy(),this.cellBlocks=null,this.gripOverlay&&(this.gripOverlay.remove(),this.gripOverlay=null),bn.forEach(e=>n.classList.remove(e)),n.setAttribute(`data-blok-table-readonly`,``),t.V(r,this.model.snapshot().content,this.api,(a=this.blockId)==null?``:a)}else{n.removeAttribute(`data-blok-table-readonly`),bn.forEach(e=>n.classList.add(e));let e=document.createElement(`div`);e.setAttribute(`data-blok-table-grip-overlay`,``),e.style.position=`absolute`,e.style.inset=`0`,e.style.pointerEvents=`none`,e.style.zIndex=`3`,n.appendChild(e),this.gripOverlay=e,this.initCellBlocks(r),this.runTransactedStructuralOp(()=>{r.querySelectorAll(`[${t.ot}]`).forEach(e=>{var t;(t=this.cellBlocks)==null||t.ensureCellHasBlock(e)})},!0),this.keyboardNavCleanup=t.q(r,this.cellBlocks),this.subsystems.initAll(r)}}removeGhostChildren(){let e=this.blockId;if(e===void 0)return;let t=this.api.blocks.getChildren(e).filter(e=>this.model.findCellForBlock(e.id)===null).map(e=>({id:e.id,index:this.api.blocks.getBlockIndex(e.id)})).filter(e=>e.index!==void 0).sort((e,t)=>t.index-e.index);for(let{index:e}of t)this.api.blocks.delete(e)}save(e){var r;let i=this.model.snapshot(),a=(r=this.blockId)==null?``:r,o=this.gridElement;return i.content=i.content.map((e,r)=>e.map((e,i)=>{if(!t.et(e))return e;let s=e.blocks.filter(e=>{var t,n,r;let i=(t=(n=this.api.blocks).getById)==null?void 0:t.call(n,e);return i!=null&&((r=i.parentId)==null?``:r)===a});if(s.length===0&&o){let s=o.querySelector(`[${t.ct}="${r}"][${t.st}="${i}"]`),c=s==null?void 0:s.querySelector(`[${t.Q}]`),l=c?Array.from(c.querySelectorAll(`[data-blok-id]`)).map(e=>{var t;return(t=e.getAttribute(`data-blok-id`))==null?``:t}).filter(e=>{var t,n,r;if(!e)return!1;let i=(t=(n=this.api.blocks).getById)==null?void 0:t.call(n,e);return i!=null&&((r=i.parentId)==null?``:r)===a}):[];if(l.length>0)return n.t(n.t({},e),{},{blocks:l})}return n.t(n.t({},e),{},{blocks:s})})),i}validate(e){return e.content.length>0&&e.content.every(e=>Array.isArray(e)&&e.length>0)}setData(e){var r,i,a,o,s;this.setDataGeneration++;let c=this.setDataGeneration,l=t.H(n.t(n.t({},this.model.snapshot()),e),this.config);this.initialContent=l.content,this.model.replaceAll(l),this.api.blocks.isSyncingFromYjs||this.runStructuralOp(()=>{var e;(e=this.cellBlocks)==null||e.deleteAllBlocks()},!0),(r=this.cellBlocks)==null||r.destroy();let u=this.element;if(!(u!=null&&u.parentNode)||c!==this.setDataGeneration)return;let d=(i=(a=this.subsystems.cellSelectionSubsystem)==null?void 0:a.getSelectedRange())==null?null:i,f=(o=(s=this.subsystems.rowColControlsSubsystem)==null?void 0:s.getVisibleGripIndices())==null?null:o;this.teardownSubsystems();let p=this.render();u.parentNode.replaceChild(p,u);let m=this.gridElement;if(!m)return;if(this.readOnly){let e=this.model.snapshot();t.k(m,e.content),t.A(m,e.content);return}if(c!==this.setDataGeneration)return;let h=this.api.blocks.isSyncingFromYjs;if(this.runStructuralOp(()=>{var e,r,i,a;let o=(e=(r=(i=this.cellBlocks)==null?void 0:i.initializeCells((a=this.initialContent)==null?[]:a))==null?this.initialContent:r)==null?[]:e;if(c===this.setDataGeneration){if(this.api.blocks.isSyncingFromYjs&&o.length===0&&m){let e=Array.from(m.querySelectorAll(`[${t.lt}]`),e=>{let n=e.querySelectorAll(`[${t.ot}]`).length;return Array.from({length:n},()=>({blocks:[]}))});this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:e}))}else this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:o}));this.initialContent=null}},!0),c!==this.setDataGeneration)return;this.subsystems.initAll(m);let g=this.subsystems.cellSelectionSubsystem;d!==null&&g!==null&&g.selectRange(d);let _=this.subsystems.rowColControlsSubsystem;f!==null&&_!==null&&_.restoreVisibleGrips(f.col,f.row);let v=this.model.snapshot();if(t.k(m,v.content),t.A(m,v.content),h){var y;(y=this.cellBlocks)==null||y.reclaimReferencedBlocks(),Promise.resolve().then(()=>{var e;c===this.setDataGeneration&&((e=this.cellBlocks)==null||e.reclaimReferencedBlocks())})}}static extractPastedCellColors(e){var n;let r=(n=e.getAttribute(`style`))==null?``:n,i={},a=/background-color\s*:\s*([^;]+)/i.exec(r);a!=null&&a[1]&&(i.color=t.kn(a[1].trim(),`bg`));let o=RegExp(`(?<![a-z-])color\\s*:\\s*([^;]+)`,`i`).exec(r);return o!=null&&o[1]&&!t.w(o[1].trim())&&(i.textColor=t.kn(o[1].trim(),`text`)),i}onPaste(r){var i,a;let o=r.detail.data,s=o.querySelectorAll(`tr`),c=t.U(s,e.extractPastedCellColors),l=o.querySelector(`thead`)!==null,u=((i=s[0])==null?void 0:i.querySelector(`th`))!==null,d=l||u;this.initialContent=c,this.model.setWithHeadings(d),this.model.setWithHeadingColumn(!1),this.model.setColWidths(void 0),this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:c})),this.runStructuralOp(()=>{var e;(e=this.cellBlocks)==null||e.deleteAllBlocks()},!0),(a=this.cellBlocks)==null||a.destroy(),this.teardownSubsystems();let f=this.element;if(!(f!=null&&f.parentNode))return;let p=this.render();f.parentNode.replaceChild(p,f);let m=this.gridElement;if(!this.readOnly&&m){this.runStructuralOp(()=>{var e,t,r,i;let a=(e=(t=(r=this.cellBlocks)==null?void 0:r.initializeCells((i=this.initialContent)==null?[]:i))==null?this.initialContent:t)==null?[]:e;this.model.replaceAll(n.t(n.t({},this.model.snapshot()),{},{content:a})),this.initialContent=null},!0),this.subsystems.initAll(m);let e=this.model.snapshot();t.k(m,e.content),t.A(m,e.content)}}destroy(){var e,t;if((e=this.unregisterRestrictedTools)==null||e.call(this),this.unregisterRestrictedTools=null,!this.api.blocks.isSyncingFromYjs){var n;(n=this.cellBlocks)==null||n.deleteAllBlocks()}this.teardownSubsystems(),(t=this.cellBlocks)==null||t.destroy(),this.cellBlocks=null,this.gridElement=null,this.scrollContainer=null,this.element=null}deleteRowWithCleanup(e){let t=this.gridElement;t&&this.runTransactedStructuralOp(()=>{var n;let{blocksToDelete:r}=this.model.deleteRow(e);(n=this.cellBlocks)==null||n.deleteBlocks(r),this.grid.deleteRow(t,e)})}deleteColumnWithCleanup(e){let t=this.gridElement;t&&this.runTransactedStructuralOp(()=>{var n;let{blocksToDelete:r}=this.model.deleteColumn(e);(n=this.cellBlocks)==null||n.deleteBlocks(r),this.grid.deleteColumn(t,e)})}getBlockIdsInRow(e){return t.L(this.element,this.cellBlocks,e)}getBlockIdsInColumn(e){return t.I(this.element,this.cellBlocks,e)}initCellBlocks(e){var n;this.cellBlocks=new t.$({api:this.api,gridElement:e,tableBlockId:(n=this.blockId)==null?``:n,model:this.model,isStructuralOpActive:()=>this.structuralOpDepth>0})}},Sn=e=>{let t=document.createElement(`div`);t.innerHTML=e.trim();let n=document.createDocumentFragment();return n.append(...Array.from(t.childNodes)),n},Cn=(e,n,r,i)=>{if(!n)return e;let a=r();return{text:a?t.Wr(a.innerHTML):e.text,isOpen:i}},wn=(e,t)=>{let{data:n,getContentElement:r}=e;n.text+=t.text;let i=r();if(i&&t.text){let n=e.parseHTML(t.text);i.appendChild(n),i.normalize()}},Tn=(e,t,r)=>{let i=r();if(!i)return{newData:e,inPlace:!1};let a=n.t(n.t({},e),t);return typeof t.text==`string`&&(i.innerHTML=t.text),{newData:a,inPlace:!0}},En=class e{constructor({data:e,config:t,api:n,readOnly:r,block:i}){var a;this._element=null,this._contentElement=null,this._arrowElement=null,this._bodyPlaceholderElement=null,this._childContainerElement=null,this.handleChildContainerInput=()=>{y(this._element,this._childContainerElement)},this.handleBlockChanged=e=>{this.isBlockChangedPayload(e)&&(e.event.type===`block-removed`||e.event.type===`block-added`)&&this.updateBodyPlaceholderVisibility()},this.api=n,this.readOnly=r,this._settings=t||{},this._data=this.normalizeData(e),this._isOpen=(a=this._data.isOpen)==null?!0:a,i&&(this.blockId=i.id,this.block=i),r||this.api.events.on(`block changed`,this.handleBlockChanged)}normalizeData(e){if(typeof e==`object`&&e&&`text`in e){let t={text:typeof e.text==`string`?e.text:``};return typeof e.isOpen==`boolean`&&(t.isOpen=e.isOpen),t}if(typeof e==`object`&&e&&`title`in e){let t=e,n={text:typeof t.title==`string`?t.title:``};return typeof t.isExpanded==`boolean`&&(n.isOpen=t.isExpanded),n}return{text:``}}get placeholder(){if(this._settings.placeholder)return this._settings.placeholder;let e=this.api.i18n.t(t.l);return e===`tools.toggle.placeholder`?`Toggle`:e}render(){let e=b({data:this._data,readOnly:this.readOnly,isOpen:this._isOpen,placeholder:this.placeholder,keydownHandler:this.readOnly?null:this.handleKeyDown.bind(this),onArrowClick:()=>this.toggleOpen(),onBodyPlaceholderClick:this.readOnly?null:()=>this.handleBodyPlaceholderClick(),bodyPlaceholderText:this.api.i18n.t(t.o),ariaLabels:{collapse:this.api.i18n.t(t.t),expand:this.api.i18n.t(t.n)}});return this._element=e.wrapper,this._contentElement=e.contentElement,this._arrowElement=e.arrowElement,this._bodyPlaceholderElement=e.bodyPlaceholderElement,this._childContainerElement=e.childContainerElement,this._childContainerElement.addEventListener(`input`,this.handleChildContainerInput),this._element}rendered(){this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility()}save(){return Cn(this._data,this._element,this.getContentElement.bind(this),this._isOpen)}validate(e){return!0}merge(e){wn({data:this._data,getContentElement:this.getContentElement.bind(this),parseHTML:Sn},e)}onPaste(n){let r=n.detail;if(!(`data`in r))return;let i=r.data,a=i.querySelector(`summary`),o=t.fr(a===null?i.innerHTML:a.innerHTML,e.sanitize.text);this._data={text:o};let s=this.getContentElement();s!==null&&(s.innerHTML=o)}setData(e){let n=Tn(this._data,e,this.getContentElement.bind(this));return this._data=n.newData,typeof this._data.isOpen==`boolean`&&(this._isOpen=this._data.isOpen),this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(t.t),expand:this.api.i18n.t(t.n)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),n.inPlace}renderSettings(){return[]}expand(){this._isOpen||this.setOpenState(!0)}collapse(){this._isOpen&&this.setOpenState(!1)}setReadOnly(e){if(!this._element)return;let t=this.readOnly;this.readOnly=e,this._contentElement&&(this._contentElement.contentEditable=e?`false`:`true`),e&&!t?this.api.events.off(`block changed`,this.handleBlockChanged):!e&&t&&this.api.events.on(`block changed`,this.handleBlockChanged),this.updateBodyPlaceholderVisibility()}removed(){this.api.events.off(`block changed`,this.handleBlockChanged)}isBlockChangedPayload(e){return typeof e==`object`&&!!e&&`event`in e&&typeof e.event==`object`&&e.event!==null&&`type`in e.event&&typeof e.event.type==`string`}getContentElement(){return this._contentElement}setOpenState(e){let n=this._isOpen!==e;if(this._isOpen=e,this._arrowElement&&this._element&&x(this._arrowElement,this._element,this._isOpen,{collapse:this.api.i18n.t(t.t),expand:this.api.i18n.t(t.n)}),this.updateChildrenVisibility(),this.updateBodyPlaceholderVisibility(),n&&!this.readOnly){var r;(r=this.block)==null||r.dispatchChange()}}toggleOpen(){this.setOpenState(!this._isOpen)}updateChildrenVisibility(){this.blockId!==void 0&&S(this.api,this.blockId,this._isOpen,this._childContainerElement,this._arrowElement)}updateBodyPlaceholderVisibility(){this.blockId!==void 0&&(C(this._bodyPlaceholderElement,this.api,this.blockId,this._isOpen,this.readOnly),y(this._element,this._childContainerElement))}handleBodyPlaceholderClick(){var e;if(this.blockId===void 0)return;let t=this.api.blocks.getBlockIndex(this.blockId);if(t===void 0)return;let n=this.api.blocks.insertInsideParent(this.blockId,t+1);this.api.caret.setToBlock(n.id,`start`),(e=this._bodyPlaceholderElement)==null||e.classList.add(`hidden`)}handleKeyDown(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),this.handleEnter();return}if(e.key===`Backspace`){this.handleBackspace(e);return}}createKeyboardContext(){return{api:this.api,blockId:this.blockId,data:this._data,element:this._element,getContentElement:this.getContentElement.bind(this),syncContentFromDOM:this.syncContentFromDOM.bind(this),isOpen:this._isOpen,setOpen:e=>{this._isOpen=e}}}async handleEnter(){var e=this;await w(e.createKeyboardContext()),e.updateBodyPlaceholderVisibility()}async handleBackspace(e){await T(this.createKeyboardContext(),e)}syncContentFromDOM(){let e=this.getContentElement();e&&(this._data.text=e.innerHTML)}static get toolbox(){return{icon:o.hn,titleKey:`toggleList`,name:t.p,searchTerms:[`toggle`,`collapse`,`expand`,`accordion`],searchTermKeys:[`toggle`,`collapse`,`expand`,`accordion`],shortcut:`>`}}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return{text:{br:!0,a:{href:!0,target:`_blank`,rel:`nofollow`},b:!0,i:!0,mark:{class:!0,style:!0},code:!0}}}static get pasteConfig(){return{tags:[`DETAILS`]}}static get isReadOnlySupported(){return!0}};function Dn(e){let{emoji:n,readOnly:r,addEmojiLabel:i}=e,a=document.createElement(`div`);a.className=t.Dn;let o=document.createElement(`button`);o.type=`button`,o.className=t.dn,o.textContent=n||``,o.setAttribute(`aria-label`,n===``?i:n),o.setAttribute(`tabindex`,`0`),o.setAttribute(`data-blok-testid`,`callout-emoji-btn`),r&&(o.disabled=!0);let s=document.createElement(`div`);return s.className=t.sn,s.setAttribute(t.u.toggleChildren,``),s.setAttribute(t.yi.nestedBlocks,``),s.setAttribute(`data-blok-child-toolbar`,``),s.setAttribute(`data-blok-mutation-free`,`true`),a.appendChild(o),a.appendChild(s),{wrapper:a,emojiButton:o,childContainer:s}}function On(e){return{emoji:e.emoji,textColor:e.textColor,backgroundColor:e.backgroundColor}}async function kn(e){if(e.calloutBlockId===void 0)return;let t=e.api.blocks.getChildren(e.calloutBlockId);if(e.event.preventDefault(),t.length<=1){await e.api.blocks.convert(e.calloutBlockId,`paragraph`);return}let n=e.api.blocks.getBlockIndex(e.firstChildBlockId);n!==void 0&&await e.api.blocks.delete(n);let r=e.api.blocks.getBlockIndex(e.calloutBlockId);r!==void 0&&r>0&&e.api.caret.setToBlock(r-1,`end`)}var An=[`💡`,`👉`,`☝️`,`✅`,`⚠️`,`🔑`,`🔥`,`📌`,`✂️`,`❓`,`🚫`,`⏰`,`♻️`,`🔒`,`📖`,`👣`,`➡️`,`📢`,`🛠️`,`⚙️`],jn={data:null};function Mn(e,t){let n=[];for(let r of e.emojis){let i=t[r];if(i===void 0)continue;let a=i.skins[0];a!==void 0&&n.push({native:a.native,skins:i.skins.map(e=>e.native),id:i.id,name:i.name,keywords:i.keywords,category:e.id})}return n}async function Nn(){if(jn.data!==null)return jn.data;let e=await Promise.resolve().then(()=>require(`./native-9bl-9eUy.cjs`)),t=`default`in e&&e.default!==void 0?e.default:e,n=t.categories.flatMap(e=>Mn(e,t.emojis));return jn.data=n,n}function Pn(e,t,n){let r=t.toLowerCase();return e.filter(e=>{if(e.name.toLowerCase().includes(r)||e.keywords.some(e=>e.includes(r)))return!0;let t=n==null?void 0:n[e.native];return t===void 0?!1:t.n.toLowerCase().includes(r)||t.k!==void 0&&t.k.some(e=>e.toLowerCase().includes(r))})}function Fn(e){let t=new Map;for(let r of e){var n;let e=(n=t.get(r.category))==null?[]:n;e.push(r),t.set(r.category,e)}return t}var In=new Map,Ln={am:()=>Promise.resolve().then(()=>require(`./am-CjQ3uVKd.cjs`)),ar:()=>Promise.resolve().then(()=>require(`./ar-DZVjGXGL.cjs`)),az:()=>Promise.resolve().then(()=>require(`./az-CqUkja1s.cjs`)),bg:()=>Promise.resolve().then(()=>require(`./bg-CzYIGKfv.cjs`)),bn:()=>Promise.resolve().then(()=>require(`./bn-xOPsQlT2.cjs`)),bs:()=>Promise.resolve().then(()=>require(`./bs-BvS24b9H.cjs`)),cs:()=>Promise.resolve().then(()=>require(`./cs-Di_MaXLX.cjs`)),da:()=>Promise.resolve().then(()=>require(`./da-Z2rPffxE.cjs`)),de:()=>Promise.resolve().then(()=>require(`./de-CKZaNwbt.cjs`)),el:()=>Promise.resolve().then(()=>require(`./el-CGMPbwk3.cjs`)),es:()=>Promise.resolve().then(()=>require(`./es-C9bpqZUJ.cjs`)),et:()=>Promise.resolve().then(()=>require(`./et-Bkd-bGb3.cjs`)),fa:()=>Promise.resolve().then(()=>require(`./fa-K8GnJb5h.cjs`)),fi:()=>Promise.resolve().then(()=>require(`./fi-7P7WHrIv.cjs`)),fil:()=>Promise.resolve().then(()=>require(`./fil-Bx8lDri1.cjs`)),fr:()=>Promise.resolve().then(()=>require(`./fr-BcSBIa9c.cjs`)),gu:()=>Promise.resolve().then(()=>require(`./gu-CKpyyh7K.cjs`)),he:()=>Promise.resolve().then(()=>require(`./he-lwkwHORf.cjs`)),hi:()=>Promise.resolve().then(()=>require(`./hi-AhHa006L.cjs`)),hr:()=>Promise.resolve().then(()=>require(`./hr-stMO8bQf.cjs`)),hu:()=>Promise.resolve().then(()=>require(`./hu-C1fDw3PF.cjs`)),hy:()=>Promise.resolve().then(()=>require(`./hy-DRAq00pq.cjs`)),id:()=>Promise.resolve().then(()=>require(`./id-DFkj4Zuh.cjs`)),it:()=>Promise.resolve().then(()=>require(`./it-DcV-PNgU.cjs`)),ja:()=>Promise.resolve().then(()=>require(`./ja-YO2zraT1.cjs`)),ka:()=>Promise.resolve().then(()=>require(`./ka-Cw0uvR2w.cjs`)),km:()=>Promise.resolve().then(()=>require(`./km-LbvTpRfk.cjs`)),kn:()=>Promise.resolve().then(()=>require(`./kn-B9wFxasy.cjs`)),ko:()=>Promise.resolve().then(()=>require(`./ko-CsiUhkoH.cjs`)),ku:()=>Promise.resolve().then(()=>require(`./ku-Cz77F0rV.cjs`)),lo:()=>Promise.resolve().then(()=>require(`./lo-C1c6htJ-.cjs`)),lt:()=>Promise.resolve().then(()=>require(`./lt-8BPh6YS3.cjs`)),lv:()=>Promise.resolve().then(()=>require(`./lv-CJGb9cTf.cjs`)),mk:()=>Promise.resolve().then(()=>require(`./mk-pCPnhm99.cjs`)),ml:()=>Promise.resolve().then(()=>require(`./ml-Cbh8doUr.cjs`)),mn:()=>Promise.resolve().then(()=>require(`./mn-Ee9Co24O.cjs`)),mr:()=>Promise.resolve().then(()=>require(`./mr-ByxXt-sg.cjs`)),ms:()=>Promise.resolve().then(()=>require(`./ms-B5NKyZeW.cjs`)),my:()=>Promise.resolve().then(()=>require(`./my-ByLLqtN6.cjs`)),ne:()=>Promise.resolve().then(()=>require(`./ne-uZhPjLwn.cjs`)),nl:()=>Promise.resolve().then(()=>require(`./nl-YSZa09db.cjs`)),no:()=>Promise.resolve().then(()=>require(`./no-RIDrhNv0.cjs`)),pa:()=>Promise.resolve().then(()=>require(`./pa-BHhDMIO_.cjs`)),pl:()=>Promise.resolve().then(()=>require(`./pl-CK0M1LS_.cjs`)),ps:()=>Promise.resolve().then(()=>require(`./ps-B5qZ_Ymh.cjs`)),pt:()=>Promise.resolve().then(()=>require(`./pt-CxNnwqMq.cjs`)),ro:()=>Promise.resolve().then(()=>require(`./ro-DZTmasAE.cjs`)),ru:()=>Promise.resolve().then(()=>require(`./ru-DBVPJZPc.cjs`)),sd:()=>Promise.resolve().then(()=>require(`./sd-CO1BHICm.cjs`)),si:()=>Promise.resolve().then(()=>require(`./si-BwUPhd40.cjs`)),sk:()=>Promise.resolve().then(()=>require(`./sk-CMyKXMQn.cjs`)),sl:()=>Promise.resolve().then(()=>require(`./sl-AgjoOGr-.cjs`)),sq:()=>Promise.resolve().then(()=>require(`./sq-iUyYbJHU.cjs`)),sr:()=>Promise.resolve().then(()=>require(`./sr-CW--Uzwj.cjs`)),sv:()=>Promise.resolve().then(()=>require(`./sv-vVNhWYKD.cjs`)),sw:()=>Promise.resolve().then(()=>require(`./sw-2_6i_yTt.cjs`)),ta:()=>Promise.resolve().then(()=>require(`./ta-CcViRAty.cjs`)),te:()=>Promise.resolve().then(()=>require(`./te-D0fw4F4l.cjs`)),th:()=>Promise.resolve().then(()=>require(`./th-DRYrBeHy.cjs`)),tr:()=>Promise.resolve().then(()=>require(`./tr-CFdLD5d-.cjs`)),ug:()=>Promise.resolve().then(()=>require(`./ug-CGa-xJ-J.cjs`)),uk:()=>Promise.resolve().then(()=>require(`./uk-dIdZ0NHL.cjs`)),ur:()=>Promise.resolve().then(()=>require(`./ur-Ck_G4LxF.cjs`)),vi:()=>Promise.resolve().then(()=>require(`./vi-BjBqjV4Q.cjs`)),zh:()=>Promise.resolve().then(()=>require(`./zh-C9qPXaPH.cjs`))};async function Rn(e){if(e===`en`)return null;let t=In.get(e);if(t!==void 0)return t;let n=Ln[e];if(n===void 0)return null;try{let t=(await n()).default;return In.set(e,t),t}catch(e){return null}}var zn={callout:t.on,people:t._n,nature:t.hn,foods:t.mn,activity:t.fn,places:t.yn,objects:t.gn,symbols:t.vn,flags:t.pn},Bn=[[`callout`,o.z],[`people`,o.L],[`nature`,o.R],[`foods`,o.B],[`activity`,o.P],[`places`,o.Z],[`objects`,o.I],[`symbols`,o.it],[`flags`,o.F]],Vn=[`✋`,`✋🏻`,`✋🏼`,`✋🏽`,`✋🏾`,`✋🏿`],Hn=`blok-emoji-skin-tone`;function Un(){try{let e=localStorage.getItem(Hn);if(e===null)return 0;let t=parseInt(e,10);return t>=0&&t<=5?t:0}catch(e){return 0}}function Wn(e){try{localStorage.setItem(Hn,String(e))}catch(e){}}var Gn=o.k,Kn=class{constructor(e){this._localeData=null,this._open=!1,this._allEmojis=[],this._skinTone=0,this._showingEmptyState=!1,this._anchorEl=null,this._previouslyFocused=null,this._backdrop=null,this._savedOverflow=``,this._navButtons=new Map,this._sectionEls=new Map,this._activeNavId=``,this._navRafId=0,this._skinToneButtons=[],this.onSelect=e.onSelect,this.onRemove=e.onRemove,this.i18n=e.i18n,this._locale=e.locale,this._element=this.buildElement();let t=this._element.querySelector(`[data-emoji-picker-body]`),n=this._element.querySelector(`[data-emoji-picker-nav]`),r=this._element.querySelector(`input[type="text"]`),i=this._element.querySelector(`[data-emoji-picker-announcer]`);if(t===null||n===null||r===null||i===null)throw Error(`EmojiPicker: failed to build required elements`);this._body=t,this._nav=n,this._filterInput=r,this._announcer=i,this._onDocumentKeydown=e=>{e.key!==`Escape`||!this._open||(this._skinTonePopover.hidden?this.close():this.closeSkinTonePopover())},this._body.addEventListener(`scroll`,()=>{cancelAnimationFrame(this._navRafId),this._navRafId=requestAnimationFrame(()=>this.updateActiveNav())},{passive:!0})}getElement(){return this._element}isOpen(){return this._open}async open(e){var t=this;let n=document.activeElement;t._previouslyFocused=n instanceof HTMLElement&&n!==document.body?n:null,t._anchorEl=e,t._open=!0,t._filterInput.value=``,t._element.setAttribute(`data-theme`,t.resolveTheme());let r=Un();if(r!==t._skinTone){t._skinTone=r,t._skinToneToggle.textContent=Vn[r];for(let[e,n]of t._skinToneButtons.entries())t.applySkinToneActiveStyle(n,e===r)}if(t._allEmojis.length===0&&(t._allEmojis=await Nn()),t._locale!==`en`&&t._localeData===null){let e=await Rn(t._locale);e!==null&&(t._localeData=e)}t.renderEmojiGrid(t._allEmojis),t.showBackdrop(),t._element.style.animation=`none`,t._element.hidden=!1,t.position(e),t._element.offsetHeight,t._element.style.animation=``,document.addEventListener(`keydown`,t._onDocumentKeydown,!0),t._filterInput.focus()}close(){var e;this._open=!1,this._element.hidden=!0,document.removeEventListener(`keydown`,this._onDocumentKeydown,!0),this.closeSkinTonePopover(),this.removeBackdrop(),this._announcer.textContent=``;let t=((e=this._previouslyFocused)==null?void 0:e.isConnected)===!0?this._previouslyFocused:this._anchorEl;this._previouslyFocused=null,t==null||t.focus()}buildElement(){let e=document.createElement(`div`);e.setAttribute(`data-blok-emoji-picker`,``),e.setAttribute(`role`,`dialog`),e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-label`,this.i18n.t(t.un)),e.className=[`fixed z-50 w-[400px] overflow-hidden rounded-xl`,`border border-neutral-200/70 bg-white shadow-2xl`,`theme-dark:border-neutral-700/50 theme-dark:bg-neutral-900`].join(` `),e.hidden=!0;let n=document.createElement(`div`);n.className=`flex items-center gap-2.5 px-3 pt-3 pb-2`;let r=document.createElement(`div`);r.className=`relative flex-1 min-w-0`;let i=document.createElement(`span`);i.className=[`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 flex items-center`,`text-neutral-400 theme-dark:text-neutral-500 [&>svg]:w-[16px] [&>svg]:h-[16px]`].join(` `),i.innerHTML=o.an;let a=document.createElement(`input`);a.type=`text`,a.setAttribute(`role`,`searchbox`),a.setAttribute(`aria-label`,this.i18n.t(t.xn)),a.placeholder=this.i18n.t(t.xn),a.className=[`w-full text-[13px] rounded-lg py-[7px] pl-8 pr-3 outline-hidden`,`bg-neutral-100 text-neutral-800 placeholder:text-neutral-400`,`theme-dark:bg-neutral-800 theme-dark:text-neutral-200 theme-dark:placeholder:text-neutral-500`,`focus:ring-2 focus:ring-neutral-300/60 theme-dark:focus:ring-neutral-600/60`,`transition-shadow duration-150`].join(` `),a.addEventListener(`input`,()=>this.handleFilterChange(a.value)),r.appendChild(i),r.appendChild(a);let s=document.createElement(`div`);s.className=`relative flex-shrink-0`;let l=document.createElement(`button`);l.type=`button`,l.setAttribute(`data-emoji-picker-skin-toggle`,``),l.setAttribute(`aria-label`,this.i18n.t(t.Tn)),l.title=this.i18n.t(t.Tn),l.className=[`w-[28px] h-[28px] flex items-center justify-center rounded-lg`,`text-[14px] leading-none cursor-pointer select-none`,`hover:bg-neutral-100 theme-dark:hover:bg-neutral-800`,`active:scale-90 transition-all duration-100`].join(` `),l.textContent=Vn[this._skinTone],l.addEventListener(`click`,()=>this.toggleSkinTonePopover()),this._skinToneToggle=l,s.appendChild(l),this._skinTonePopover=this.buildSkinTonePopover(),s.appendChild(this._skinTonePopover);let u=document.createElement(`button`);u.type=`button`,u.setAttribute(`data-emoji-picker-random`,``),u.setAttribute(`aria-label`,this.i18n.t(t.Cn)),u.className=[`flex-shrink-0 w-[34px] h-[34px] flex items-center justify-center rounded-lg`,`text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600`,`theme-dark:hover:bg-neutral-800 theme-dark:hover:text-neutral-300`,`transition-colors duration-100 cursor-pointer`].join(` `),u.innerHTML=Gn,u.addEventListener(`click`,()=>this.pickRandom()),t.ur(u,this.i18n.t(t.Cn),{placement:`bottom`});let d=document.createElement(`button`);d.type=`button`,d.setAttribute(`data-emoji-picker-remove`,``),d.setAttribute(`aria-label`,this.i18n.t(t.wn)),d.className=[`flex-shrink-0 w-[34px] h-[34px] flex items-center justify-center rounded-lg`,`text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600`,`theme-dark:hover:bg-neutral-800 theme-dark:hover:text-neutral-300`,`transition-colors duration-100 cursor-pointer`].join(` `),d.innerHTML=o.y,d.addEventListener(`click`,()=>{this.onRemove(),this.close()}),t.ur(d,this.i18n.t(t.wn),{placement:`bottom`});let f=document.createElement(`div`);f.className=`flex items-center gap-1`,f.appendChild(u),f.appendChild(d),n.appendChild(r),n.appendChild(s),n.appendChild(f),e.appendChild(n);let p=document.createElement(`div`);p.setAttribute(`data-emoji-picker-body`,``),p.className=`overflow-y-auto max-h-[260px] px-1.5 pb-2`,e.appendChild(p);let m=document.createElement(`div`);m.setAttribute(`data-emoji-picker-nav`,``),m.className=[`flex items-center gap-1 px-2 pt-1 pb-1`,`border-t border-neutral-100 theme-dark:border-neutral-800`].join(` `),e.appendChild(m);let h=document.createElement(`div`);return h.setAttribute(`data-emoji-picker-announcer`,``),h.setAttribute(`role`,`status`),h.setAttribute(`aria-live`,`polite`),h.style.position=`absolute`,h.style.width=`1px`,h.style.height=`1px`,h.style.padding=`0`,h.style.margin=`-1px`,h.style.overflow=`hidden`,h.style.clipPath=`inset(50%)`,h.style.whiteSpace=`nowrap`,h.style.border=`0`,e.appendChild(h),e.addEventListener(`mousedown`,e=>{let t=e.target;!this._skinTonePopover.hidden&&!this._skinTonePopover.contains(t)&&!this._skinToneToggle.contains(t)&&this.closeSkinTonePopover()}),e.addEventListener(`keydown`,t=>{if(t.key!==`Tab`||!this._open)return;let n=c.t(e),r=n.at(0),i=n.at(-1);if(r===void 0||i===void 0){t.preventDefault();return}let a=document.activeElement;t.shiftKey?(a===r||!e.contains(a))&&(t.preventDefault(),i.focus()):(a===i||!e.contains(a))&&(t.preventDefault(),r.focus())}),e}buildSkinTonePopover(){let e=document.createElement(`div`);e.setAttribute(`data-emoji-picker-skin-tone`,``),e.className=[`absolute right-0 top-full mt-1.5 z-20`,`flex items-center gap-0.5 p-1 rounded-xl`,`bg-white border border-neutral-200/70 shadow-lg`,`theme-dark:bg-neutral-800 theme-dark:border-neutral-700/50`].join(` `),e.hidden=!0,this._skinToneButtons=[];for(let[n,r]of Vn.entries()){let i=document.createElement(`button`);i.type=`button`,i.textContent=r,i.setAttribute(`aria-label`,`${this.i18n.t(t.Tn)} ${n+1}`),i.className=[`w-[32px] h-[32px] flex items-center justify-center rounded-lg`,`text-[1.2rem] leading-none cursor-pointer select-none`,`hover:bg-neutral-100 theme-dark:hover:bg-neutral-700`,`active:scale-90 transition-all duration-100`].join(` `),this.applySkinToneActiveStyle(i,n===this._skinTone),i.addEventListener(`click`,()=>{this.setSkinTone(n),this.closeSkinTonePopover()}),e.appendChild(i),this._skinToneButtons.push(i)}return e}applySkinToneActiveStyle(e,t){let n=[`bg-neutral-100`,`theme-dark:bg-neutral-700`,`ring-2`,`ring-neutral-300/60`,`theme-dark:ring-neutral-600/60`];e.setAttribute(`aria-pressed`,String(t)),t?e.classList.add(...n):e.classList.remove(...n)}toggleSkinTonePopover(){this._skinTonePopover.hidden=!this._skinTonePopover.hidden,this.updateSkinToneToggleActive()}closeSkinTonePopover(){this._skinTonePopover.hidden=!0,this.updateSkinToneToggleActive()}updateSkinToneToggleActive(){let e=!this._skinTonePopover.hidden,t=[`bg-neutral-100`,`theme-dark:bg-neutral-700`];e?this._skinToneToggle.classList.add(...t):this._skinToneToggle.classList.remove(...t)}setSkinTone(e){this._skinTone=e,Wn(e),this._skinToneToggle.textContent=Vn[e];for(let[t,n]of this._skinToneButtons.entries())this.applySkinToneActiveStyle(n,t===e);let t=Array.from(this._body.querySelectorAll(`[data-emoji-native]`));for(let e of t){let t=e.getAttribute(`data-emoji-native`);if(t===null)continue;let n=this._allEmojis.find(e=>e.native===t);n!==void 0&&(e.textContent=this.getSkinnedNative(n))}}pickRandom(){if(this._allEmojis.length===0)return;let e=Math.floor(Math.random()*this._allEmojis.length),t=this._allEmojis[e];t!==void 0&&this.onSelect(this.getSkinnedNative(t))}buildCategoryNav(e){this._nav.innerHTML=``,this._navButtons.clear(),this._activeNavId=``;for(let[t,n]of Bn){if(!e.has(t))continue;let r=this.translateCategory(t),i=document.createElement(`button`);i.type=`button`,i.innerHTML=n,i.title=r,i.setAttribute(`aria-label`,r),i.setAttribute(`data-emoji-nav`,t),i.className=[`flex-1 h-[36px] flex items-center justify-center`,`rounded-lg cursor-pointer opacity-50`,`text-neutral-500 theme-dark:text-neutral-400`,`[&>svg]:w-[20px] [&>svg]:h-[20px]`,`hover:opacity-100 hover:bg-neutral-100`,`theme-dark:hover:bg-neutral-800`,`transition-all duration-100`].join(` `),i.addEventListener(`click`,()=>this.scrollToSection(t)),this._nav.appendChild(i),this._navButtons.set(t,i)}}scrollToSection(e){let t=this._sectionEls.get(e);if(t===void 0)return;let n=this._body.getBoundingClientRect(),r=t.getBoundingClientRect();this._body.scrollTo({top:this._body.scrollTop+(r.top-n.top),behavior:`smooth`})}updateActiveNav(){let e=this._body.getBoundingClientRect().top,t=[...this._sectionEls.entries()].filter(([,t])=>t.getBoundingClientRect().top-e<=20).reduce((e,[t])=>t,``);if(t!==this._activeNavId){this._activeNavId=t;for(let[e,n]of this._navButtons)e===t?(n.classList.remove(`opacity-50`),n.classList.add(`opacity-100`,`bg-neutral-100`,`theme-dark:bg-neutral-800`)):(n.classList.remove(`opacity-100`,`bg-neutral-100`,`theme-dark:bg-neutral-800`),n.classList.add(`opacity-50`))}}getSkinnedNative(e){var t;return(t=e.skins[this._skinTone])==null?e.native:t}handleFilterChange(e){if(e.trim()===``){this._announcer.textContent=``,this._nav.hidden=!1,this.renderEmojiGrid(this._allEmojis);return}this._nav.hidden=!0;let t=Pn(this._allEmojis,e,this._localeData);if(this.announceResults(t.length),t.length===0)this._showingEmptyState||this.renderEmptyState();else{this._body.innerHTML=``,this._sectionEls.clear(),this._showingEmptyState=!1;let e=Fn(t);for(let[t,n]of e){let e=this.buildSection(this.translateCategory(t),n);e.setAttribute(`data-emoji-section`,t),this._sectionEls.set(t,e),this._body.appendChild(e)}}}announceResults(e){this._announcer.textContent=e===0?this.i18n.t(t.Sn):this.i18n.t(t.bn).replace(`{count}`,String(e))}renderEmojiGrid(e){this._body.innerHTML=``,this._sectionEls.clear(),this._showingEmptyState=!1;let t=new Set,n=An.map(t=>e.find(e=>e.native===t)).filter(e=>e!==void 0);if(n.length>0){t.add(`callout`);let e=this.buildSection(this.translateCategory(`callout`),n);e.setAttribute(`data-emoji-section`,`callout`),this._sectionEls.set(`callout`,e),this._body.appendChild(e)}let r=new Set(An),i=Fn(e.filter(e=>!r.has(e.native)));for(let[e,n]of i){t.add(e);let r=this.buildSection(this.translateCategory(e),n);r.setAttribute(`data-emoji-section`,e),this._sectionEls.set(e,r),this._body.appendChild(r)}this.buildCategoryNav(t),this._nav.hidden=!1,requestAnimationFrame(()=>this.updateActiveNav())}renderEmptyState(){this._body.innerHTML=``,this._showingEmptyState=!0,this._sectionEls.clear();let e=document.createElement(`div`);e.className=[`flex flex-col items-center justify-center py-10`,`text-neutral-400 theme-dark:text-neutral-500 select-none`,`animate-[blok-emoji-empty-in_300ms_ease-out_both]`].join(` `);let n=document.createElement(`span`);n.className=`mb-3 opacity-20 [&>svg]:w-9 [&>svg]:h-9`,n.innerHTML=o.an;let r=document.createElement(`span`);r.className=`text-[13px] font-medium`,r.textContent=this.i18n.t(t.Sn),e.appendChild(n),e.appendChild(r),this._body.appendChild(e)}translateCategory(e){let t=zn[e];return t===void 0?e:this.i18n.t(t)}buildSection(e,t){let n=document.createElement(`div`),r=document.createElement(`div`);return r.className=[`text-[11px] font-semibold uppercase tracking-wider px-2 pt-3 pb-1.5`,`text-neutral-400/80 theme-dark:text-neutral-500/80`,`sticky top-0 bg-white theme-dark:bg-neutral-900 z-10`].join(` `),r.textContent=e,n.appendChild(r),n.appendChild(this.buildGrid(t)),n}getDisplayName(e){var t,n;return((t=(n=this._localeData)==null||(n=n[e.native])==null?void 0:n.n)==null?e.name:t).toLocaleLowerCase()}buildGrid(e){let n=document.createElement(`div`);n.className=`grid grid-cols-10 gap-0.5 px-0.5 pt-1`;for(let r of e){let e=document.createElement(`button`);e.type=`button`,e.textContent=this.getSkinnedNative(r),e.setAttribute(`data-emoji-native`,r.native),e.className=[`aspect-square flex items-center justify-center`,`text-[1.25rem] leading-none rounded-lg cursor-pointer`,`hover:bg-neutral-100 theme-dark:hover:bg-neutral-800`,`hover:scale-110 active:scale-95`,`transition-transform duration-75`].join(` `),e.addEventListener(`click`,()=>{this.onSelect(this.getSkinnedNative(r)),this.close()}),t.ur(e,this.getDisplayName(r),{placement:`bottom`}),n.appendChild(e)}return n}resolveTheme(){let e=document.documentElement.getAttribute(`data-blok-theme`);return e===`dark`?`dark`:e===`light`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}showBackdrop(){var e;this.removeBackdrop();let t=document.createElement(`div`);t.setAttribute(`data-blok-emoji-picker-backdrop`,``),t.style.position=`fixed`,t.style.inset=`0`,t.style.zIndex=`50`,t.addEventListener(`mousedown`,e=>{e.target===t&&this.close()}),(e=this._element.parentElement)==null||e.insertBefore(t,this._element),t.appendChild(this._element),this._backdrop=t,this._savedOverflow=document.documentElement.style.overflow,document.documentElement.style.overflow=`hidden`}removeBackdrop(){var e;this._backdrop!==null&&(document.documentElement.style.overflow=this._savedOverflow,(e=this._backdrop.parentElement)==null||e.insertBefore(this._element,this._backdrop),this._backdrop.remove(),this._backdrop=null)}position(e){let t=e.getBoundingClientRect(),n=this._element.getBoundingClientRect(),r=window.innerHeight,i=window.innerWidth,a=t.bottom+n.height>r?t.top-n.height-4:t.bottom+4,o=t.left-8,s=o+n.width>i?t.right-n.width:Math.max(0,o);this._element.style.top=`${a}px`,this._element.style.left=`${s}px`}};function qn(e){return e.isEmojiVisible===!1?``:typeof e.emoji==`string`&&e.emoji.length>0?e.emoji:t.ln}var Jn={general:null,note:`blue`,important:`purple`,warning:`orange`,additional:`yellow`,recommendation:`green`,caution:`red`},Yn=class{constructor({data:e,api:t,readOnly:n,block:r,config:i}){this._dom=null,this._emojiPicker=null,this._colorPicker=null,this._pendingChildText=null,this.api=t,this.readOnly=n;let a=typeof e.__importedText==`string`?e.__importedText:null;a!==null&&a.length>0&&(this._pendingChildText=a),this._data=this.normalizeData(e),r&&(this.blockId=r.id),this._customEmojiPicker=i==null?void 0:i.emojiPicker}normalizeData(e){let n=e;return`variant`in n||`isEmojiVisible`in n?this.normalizeLegacyData(n):{emoji:typeof e.emoji==`string`?e.emoji:t.ln,textColor:typeof e.textColor==`string`?e.textColor:null,backgroundColor:typeof e.backgroundColor==`string`?e.backgroundColor:null}}normalizeLegacyData(e){let t=typeof e.variant==`string`?e.variant:`general`,n=t in Jn?Jn[t]:null;return{emoji:qn(e),textColor:null,backgroundColor:n==null?null:n}}render(){if(this._dom)return this._dom.wrapper;let e=Dn({emoji:this._data.emoji,readOnly:this.readOnly,addEmojiLabel:this.api.i18n.t(t.an)});return this._dom=e,this.applyColors(),this.readOnly||(e.emojiButton.addEventListener(`click`,()=>this.openEmojiPicker()),e.emojiButton.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.openEmojiPicker())}),e.childContainer.addEventListener(`keydown`,e=>{e.key===`Backspace`&&this.handleChildBackspace(e)})),e.wrapper}rendered(){if(this.blockId===void 0||this._dom===null)return;let e=this.api.blocks.getChildren(this.blockId);if(s.t(this._dom.childContainer,e),e.length===0){let e=this.api.blocks.getBlockIndex(this.blockId);if(e!==void 0){let t=this._pendingChildText;this._pendingChildText=null;let n=t!==null&&t.length>0?{text:t}:void 0,r=this.api.blocks.insertInsideParent(this.blockId,e+1,n);this._dom.childContainer.appendChild(r.holder),this.api.caret.setToBlock(r.id,t===null?`start`:`end`)}}}save(){return On({emoji:this._data.emoji,textColor:this._data.textColor,backgroundColor:this._data.backgroundColor})}validate(e){return!0}onPaste(e){var n;let r=(n=e.detail.data.getAttribute(`style`))==null?``:n,i=/background(?:-color)?\s*:\s*([^;]+)/i.exec(r);if(i!=null&&i[1]){let e=t.An(i[1].trim(),`bg`);e&&(this._data.backgroundColor=e)}this.applyColors()}renderSettings(){if(this._colorPicker===null){let e=K({i18n:this.api.i18n,testIdPrefix:`callout-color`,modes:[{key:`color`,labelKey:`tools.marker.textColor`,presetField:`text`},{key:`background-color`,labelKey:`tools.marker.background`,presetField:`bg`}],onColorSelect:(n,r)=>{let i=n===null?null:t.An(n,r===`color`?`text`:`bg`);r===`color`?this._data.textColor=i:this._data.backgroundColor=i,e.setActiveColor(n,r),this.applyColors()}});this._colorPicker=e}return this.syncPickerActiveColors(),[{icon:o.L,title:this.api.i18n.t(t.un),name:`callout-edit-icon`,closeOnActivate:!0,onActivate:()=>this.openEmojiPicker()},{icon:o.zt,title:this.api.i18n.t(t.cn),name:`callout-color`,children:{items:[{type:t.hr.Html,element:this._colorPicker.element}]}}]}removed(){}setReadOnly(e){this.readOnly=e,this._dom&&(this._dom.emojiButton.disabled=e)}syncPickerActiveColors(){if(this._colorPicker===null)return;let e=this._data.textColor,n=this._data.backgroundColor;this._colorPicker.setActiveColor(e===null?null:t.In(e,`text`),`color`),this._colorPicker.setActiveColor(n===null?null:t.In(n,`bg`),`background-color`)}applyColors(){if(this._dom===null)return;let{textColor:e,backgroundColor:n}=this._data;if(e===null?this._dom.wrapper.style.color=``:this._dom.wrapper.style.color=t.In(e,`text`),n!==null){let e=t.In(n,`bg`);this._dom.wrapper.style.backgroundColor=e,this._dom.wrapper.style.border=``,this._dom.wrapper.style.setProperty(`--blok-search-input-bg`,`light-dark(color-mix(in srgb, ${e} 70%, white), color-mix(in srgb, ${e} 85%, white))`)}else this._dom.wrapper.style.backgroundColor=``,this._dom.wrapper.style.border=`1px solid var(--blok-callout-default-border, #e5e7eb)`,this._dom.wrapper.style.removeProperty(`--blok-search-input-bg`),this._dom.wrapper.style.removeProperty(`--blok-search-input-border`)}handleChildBackspace(e){if(this.blockId===void 0||this._dom===null)return;let t=this.api.blocks.getChildren(this.blockId);if(t.length===0)return;let n=t[0],r=e.target;if(!n.holder.contains(r))return;let i=window.getSelection(),a=i!==null&&i.rangeCount>0&&i.getRangeAt(0).startOffset===0&&i.getRangeAt(0).collapsed;n.holder.textContent!==``||!a||kn({api:this.api,calloutBlockId:this.blockId,firstChildBlockId:n.id,event:e})}openEmojiPicker(){if(this._dom!==null){if(this._customEmojiPicker!==void 0){this._customEmojiPicker(e=>this.setEmoji(e));return}this._emojiPicker===null&&(this._emojiPicker=new Kn({onSelect:e=>this.setEmoji(e),onRemove:()=>this.setEmoji(``),i18n:this.api.i18n,locale:this.api.i18n.getLocale()}),document.body.appendChild(this._emojiPicker.getElement())),this._emojiPicker.open(this._dom.emojiButton)}}setEmoji(e){this._data.emoji=e,this._dom!==null&&(this._dom.emojiButton.textContent=e,this._dom.emojiButton.setAttribute(`aria-label`,e===``?this.api.i18n.t(t.an):e))}static get toolbox(){return{icon:o.u,titleKey:`callout`,name:t.En,searchTerms:[`callout`,`note`,`info`,`warning`,`tip`,`alert`],searchTermKeys:[`callout`,`note`,`info`,`warning`,`tip`,`alert`]}}static get conversionConfig(){return{import:e=>({emoji:t.ln,textColor:null,backgroundColor:null,__importedText:e})}}static get pasteConfig(){return{tags:[{ASIDE:{style:!0}}]}}static get sanitize(){return{emoji:!1,textColor:!1,backgroundColor:!1}}static get isReadOnlySupported(){return!0}},Xn=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`;function Zn(e,t,n){let r=n[0];if(t!=null&&e>=t)throw Error(e+` >= `+t);if(e.slice(-1)===r||t&&t.slice(-1)===r)throw Error(`trailing zero`);if(t){let i=0;for(;(e[i]||r)===t[i];)i++;if(i>0)return t.slice(0,i)+Zn(e.slice(i),t.slice(i),n)}let i=e?n.indexOf(e[0]):0,a=t==null?n.length:n.indexOf(t[0]);return a-i>1?n[Math.round(.5*(i+a))]:t&&t.length>1?t.slice(0,1):n[i]+Zn(e.slice(1),null,n)}function Qn(e){if(e.length!==$n(e[0]))throw Error(`invalid integer part of order key: `+e)}function $n(e){if(e>=`a`&&e<=`z`)return e.charCodeAt(0)-97+2;if(e>=`A`&&e<=`Z`)return 90-e.charCodeAt(0)+2;throw Error(`invalid order key head: `+e)}function er(e){let t=$n(e[0]);if(t>e.length)throw Error(`invalid order key: `+e);return e.slice(0,t)}function tr(e,t){if(e===`A`+t[0].repeat(26))throw Error(`invalid order key: `+e);let n=er(e);if(e.slice(n.length).slice(-1)===t[0])throw Error(`invalid order key: `+e)}function nr(e,t){Qn(e);let[n,...r]=e.split(``),i=!0;for(let e=r.length-1;i&&e>=0;e--){let n=t.indexOf(r[e])+1;n===t.length?r[e]=t[0]:(r[e]=t[n],i=!1)}if(i){if(n===`Z`)return`a`+t[0];if(n===`z`)return null;let e=String.fromCharCode(n.charCodeAt(0)+1);return e>`a`?r.push(t[0]):r.pop(),e+r.join(``)}else return n+r.join(``)}function rr(e,t){Qn(e);let[n,...r]=e.split(``),i=!0;for(let e=r.length-1;i&&e>=0;e--){let n=t.indexOf(r[e])-1;n===-1?r[e]=t.slice(-1):(r[e]=t[n],i=!1)}if(i){if(n===`a`)return`Z`+t.slice(-1);if(n===`A`)return null;let e=String.fromCharCode(n.charCodeAt(0)-1);return e<`Z`?r.push(t.slice(-1)):r.pop(),e+r.join(``)}else return n+r.join(``)}function ir(e,t,n=Xn){if(e!=null&&tr(e,n),t!=null&&tr(t,n),e!=null&&t!=null&&e>=t)throw Error(e+` >= `+t);if(e==null){if(t==null)return`a`+n[0];let e=er(t),r=t.slice(e.length);if(e===`A`+n[0].repeat(26))return e+Zn(``,r,n);if(e<t)return e;let i=rr(e,n);if(i==null)throw Error(`cannot decrement any more`);return i}if(t==null){let t=er(e),r=e.slice(t.length),i=nr(t,n);return i==null?t+Zn(r,null,n):i}let r=er(e),i=e.slice(r.length),a=er(t),o=t.slice(a.length);if(r===a)return r+Zn(i,o,n);let s=nr(r,n);if(s==null)throw Error(`cannot increment any more`);return s<t?s:r+Zn(i,null,n)}var ar={notStarted:[`Not`,`started`].join(` `),inProgress:[`In`,`progress`].join(` `),done:[`Do`,`ne`].join(``)},or=class e{constructor(t){if(this.rows=[],(t==null?void 0:t.schema)!==void 0&&t.schema.length>0?this.schema=t.schema.map(e=>n.t({},e)):this.schema=e.createDefaultSchema(),(t==null?void 0:t.views)!==void 0&&t.views.length>0)this.views=t.views.map(e=>n.t(n.t({},e),{},{sorts:[...e.sorts],filters:[...e.filters],visibleProperties:[...e.visibleProperties]}));else{let t=this.schema.find(e=>e.type===`select`);this.views=[e.createDefaultView(t==null?void 0:t.id)]}this.activeViewId=(t==null?void 0:t.activeViewId)||(this.views.length>0?this.views[0].id:``)}getSchema(){return[...this.schema]}getProperty(e){return this.schema.find(t=>t.id===e)}addProperty(e,r,i){let a=this.schema.length>0?this.schema[this.schema.length-1].position:null,o=n.t({id:t.qr(),name:e,type:r,position:ir(a,null)},i===void 0?{}:{config:i});return this.schema.push(o),o}updateProperty(e,t){let n=this.schema.find(t=>t.id===e);n!==void 0&&(t.name!==void 0&&(n.name=t.name),t.config!==void 0&&(n.config=t.config))}deleteProperty(e){this.schema=this.schema.filter(t=>t.id!==e)}setRows(e){this.rows=e}getOrderedRows(){return[...this.rows].sort((e,t)=>e.position.localeCompare(t.position))}getRow(e){return this.rows.find(t=>t.id===e)}createRowData(e){let n=this.getOrderedRows(),r=n.length>0?n[n.length-1].position:null;return{id:t.qr(),position:ir(r,null),properties:e==null?{}:e}}getRowsGroupedBy(e){let t=new Map,n=this.getOrderedRows();for(let r of n){let n=r.properties[e],i=this.toGroupKey(n),a=t.get(i);a===void 0?t.set(i,[r]):a.push(r)}return t}getSelectOptions(e){var t,n;let r=this.getProperty(e);return r===void 0||r.type!==`select`&&r.type!==`multiSelect`?[]:[...(t=(n=r.config)==null?void 0:n.options)==null?[]:t].sort((e,t)=>e.position<t.position?-1:1)}getViews(){return[...this.views]}getView(e){return this.views.find(t=>t.id===e)}addView(e,n,r={}){var i,a,o;let s=[...this.views].sort((e,t)=>e.position<t.position?-1:1),c=s.length>0?s[s.length-1].position:null,l={id:t.qr(),name:e,type:n,position:ir(c,null),groupBy:r.groupBy,sorts:(i=r.sorts)==null?[]:i,filters:(a=r.filters)==null?[]:a,visibleProperties:(o=r.visibleProperties)==null?[]:o};return this.views.push(l),l}updateView(e,t){let n=this.views.find(t=>t.id===e);n!==void 0&&Object.assign(n,t)}deleteView(e){this.views=this.views.filter(t=>t.id!==e)}hydrate(e){e.schema!==void 0&&(this.schema=structuredClone(e.schema)),e.views!==void 0&&(this.views=structuredClone(e.views))}snapshot(){return{schema:structuredClone(this.schema),views:structuredClone(this.views),activeViewId:this.activeViewId}}toGroupKey(e){return e==null?``:typeof e==`string`?e:typeof e==`boolean`||typeof e==`number`?String(e):``}static positionBetween(e,t){return ir(e,t)}static createDefaultSchema(){return[{id:t.qr(),name:`Title`,type:`title`,position:`a0`},{id:t.qr(),name:`Status`,type:`select`,position:`a1`,config:{options:[{id:t.qr(),label:ar.notStarted,color:`gray`,position:`a0`},{id:t.qr(),label:ar.inProgress,color:`blue`,position:`a1`},{id:t.qr(),label:ar.done,color:`green`,position:`a2`}]}}]}static createDefaultView(e){return{id:t.qr(),name:`Board`,type:`board`,position:`a0`,groupBy:e,sorts:[],filters:[],visibleProperties:[]}}},sr=new Set([`INPUT`,`BUTTON`,`SELECT`,`TEXTAREA`]),cr=e=>sr.has(e.tagName)?!0:e.tagName===`A`&&e.hasAttribute(`href`);function lr(e){let{target:t,currentValue:n,label:r,onCommit:i,onCancel:a,onInput:o,buildRestored:s,configureInput:c}=e,l=document.createElement(`input`);l.type=`text`,l.value=n,l.setAttribute(`aria-label`,r),c==null||c(l),o!==void 0&&l.addEventListener(`input`,()=>{o(l.value)});let u={done:!1},d=e=>{let t=s(e),n=document.activeElement===l;l.replaceWith(t),n&&(!t.hasAttribute(`tabindex`)&&!cr(t)&&t.setAttribute(`tabindex`,`-1`),t.focus())},f=()=>{if(u.done)return;u.done=!0;let e=l.value.trim()||n;d(e),i(e)},p=()=>{u.done||(u.done=!0,d(n),a==null||a())};l.addEventListener(`blur`,f),l.addEventListener(`keydown`,e=>{e.stopPropagation(),e.key===`Enter`?f():e.key===`Escape`&&(l.removeEventListener(`blur`,f),p())}),t.replaceWith(l),l.focus(),l.select()}var ur=class{constructor({readOnly:e,i18n:t,options:n,getRows:r,titlePropertyId:i,onTitleEdit:a}){this.readOnly=e,this.i18n=t,this.options=n,this.getRows=r,this.titlePropertyId=i,this.onTitleEdit=a}createView(){let e=document.createElement(`div`);e.setAttribute(`data-blok-tool`,`database`),e.setAttribute(`role`,`region`),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.kanbanBoard`)),e.style.display=`flex`;let t=document.createElement(`div`);t.setAttribute(`data-blok-database-board`,``),t.style.display=`flex`,t.style.overflowX=`auto`,t.style.alignItems=`flex-start`,t.style.gap=`12px`,t.style.paddingBottom=`24px`,t.style.flex=`1`,t.style.minWidth=`0`;for(let e of this.options){let n=this.createColumnElement(e,this.getRows(e.id),this.titlePropertyId);t.appendChild(n)}if(!this.readOnly){let e=document.createElement(`button`);e.setAttribute(`data-blok-database-add-column`,``),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.addColumn`)),e.textContent=`+ `+this.i18n.t(`tools.database.addColumn`),e.style.minWidth=`260px`,e.style.flex=`0 0 260px`,t.appendChild(e)}return e.appendChild(t),e}appendRow(e,t){let n=this.createCardElement(t,this.titlePropertyId);e.appendChild(n),this.updateColumnCount(e)}removeRow(e,t){let n=e.querySelector(`[data-row-id="${t}"]`),r=n==null?void 0:n.closest(`[data-blok-database-cards]`);n==null||n.remove(),r!==null&&this.updateColumnCount(r)}updateRowTitle(e,t,n){let r=e.querySelector(`[data-row-id="${t}"]`),i=r==null?void 0:r.querySelector(`[data-blok-database-card-title]`);i!=null&&(n?(i.textContent=n,i.removeAttribute(`data-placeholder`),r==null||r.removeAttribute(`data-empty`)):(i.textContent=this.i18n.t(`tools.database.cardTitlePlaceholder`),i.setAttribute(`data-placeholder`,``),r==null||r.setAttribute(`data-empty`,``)))}appendGroup(e,t){let n=this.createColumnElement(t,[],``),r=e.querySelector(`[data-blok-database-board]`),i=r==null?e:r,a=i.querySelector(`[data-blok-database-add-column]`);a?i.insertBefore(n,a):i.appendChild(n)}removeGroup(e,t){let n=e.querySelector(`[data-option-id="${t}"]`);n==null||n.remove()}createColumnElement(e,t,n){let r=document.createElement(`div`);r.setAttribute(`data-blok-database-column`,``),r.setAttribute(`data-option-id`,e.id),r.setAttribute(`role`,`group`),r.setAttribute(`aria-label`,e.label),r.style.display=`flex`,r.style.flexDirection=`column`,r.style.minWidth=`260px`,r.style.flex=`0 0 260px`,e.color!==void 0&&(r.style.backgroundColor=`var(--blok-color-${e.color}-bg)`,r.setAttribute(`data-color`,e.color));let i=document.createElement(`div`);i.setAttribute(`data-blok-database-column-header`,``),i.style.display=`flex`,i.style.alignItems=`center`,i.style.padding=`0 0 6px 0`,i.style.borderRadius=`4px`,i.style.gap=`6px`,i.style.cursor=`grab`;let a=document.createElement(`div`);if(a.setAttribute(`data-blok-database-column-pill`,``),e.color!==void 0){a.style.backgroundColor=`color-mix(in srgb, var(--blok-color-${e.color}-text) 20%, var(--blok-color-${e.color}-bg))`,a.style.color=`var(--blok-color-${e.color}-text)`;let t=document.createElement(`span`);t.setAttribute(`data-blok-database-column-dot`,``),t.style.backgroundColor=`var(--blok-color-${e.color}-text)`,a.appendChild(t)}let s=document.createElement(`div`);s.setAttribute(`data-blok-database-column-title`,``),s.textContent=e.label,a.appendChild(s),i.appendChild(a);let c=document.createElement(`span`);c.setAttribute(`data-blok-database-column-count`,``),c.textContent=String(t.length),e.color!==void 0&&(c.style.color=`var(--blok-color-${e.color}-text)`),i.appendChild(c),r.appendChild(i);let l=document.createElement(`div`);l.setAttribute(`data-blok-database-cards`,``),l.setAttribute(`role`,`list`),l.style.display=`flex`,l.style.flexDirection=`column`,l.style.gap=`8px`,l.style.paddingTop=`6px`,l.style.minHeight=`40px`;for(let e of t){let t=this.createCardElement(e,n);l.appendChild(t)}if(r.appendChild(l),!this.readOnly){let t=document.createElement(`button`);t.setAttribute(`data-blok-database-add-card`,``),t.setAttribute(`data-option-id`,e.id),t.setAttribute(`aria-label`,this.i18n.t(`tools.database.addCard`));let n=document.createElement(`span`);n.setAttribute(`data-blok-database-add-card-icon`,``),n.innerHTML=o.en,t.appendChild(n);let i=document.createElement(`span`);i.textContent=this.i18n.t(`tools.database.newPage`),t.appendChild(i),e.color!==void 0&&(t.style.borderColor=`color-mix(in srgb, var(--blok-color-${e.color}-text) 30%, transparent)`,t.style.color=`var(--blok-color-${e.color}-text)`),r.appendChild(t)}return r}createCardElement(e,t){var n;let r=document.createElement(`div`),i=(n=e.properties[t])==null?``:n;r.setAttribute(`data-blok-database-card`,``),r.setAttribute(`data-row-id`,e.id),r.setAttribute(`role`,`listitem`),r.style.padding=`10px 12px`,r.style.borderRadius=`10px`,r.style.cursor=`pointer`,r.style.position=`relative`,r.style.backgroundColor=`var(--blok-database-card-bg)`,r.style.boxShadow=`var(--blok-database-card-shadow)`;let a=document.createElement(`div`);if(a.setAttribute(`data-blok-database-card-title`,``),i?a.textContent=i:(a.textContent=this.i18n.t(`tools.database.cardTitlePlaceholder`),a.setAttribute(`data-placeholder`,``),r.setAttribute(`data-empty`,``)),r.appendChild(a),!this.readOnly){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-card-actions`,``);let n=document.createElement(`button`);n.setAttribute(`data-blok-database-edit-card`,``),n.setAttribute(`data-row-id`,e.id),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.editCardTitle`)),n.innerHTML=o.Bt,n.addEventListener(`click`,t=>{t.stopPropagation(),this.startCardTitleEdit(r,e.id)});let i=document.createElement(`button`);i.setAttribute(`data-blok-database-card-menu`,``),i.setAttribute(`data-row-id`,e.id),i.setAttribute(`aria-label`,this.i18n.t(`tools.database.cardMenuLabel`)),i.innerHTML=o.j,t.appendChild(n),t.appendChild(i),r.appendChild(t)}return r}startCardTitleEdit(e,t){var n;let r=e.querySelector(`[data-blok-database-card-title]`);if(r===null)return;let i=(n=r.textContent)==null?``:n;lr({target:r,currentValue:i,label:this.i18n.t(`tools.database.editCardTitle`),configureInput:e=>{e.setAttribute(`data-blok-database-card-title-input`,``),e.style.setProperty(`width`,`100%`),e.style.setProperty(`box-sizing`,`border-box`)},buildRestored:e=>{let t=document.createElement(`div`);return t.setAttribute(`data-blok-database-card-title`,``),t.textContent=e,t},onCommit:n=>{if(n!==i){var r;(r=this.onTitleEdit)==null||r.call(this,t,n)}n&&e.removeAttribute(`data-empty`)}})}updateColumnCount(e){let t=e.closest(`[data-blok-database-column]`);if(t===null)return;let n=t.querySelector(`[data-blok-database-column-count]`);if(n!==null){let t=e.querySelectorAll(`[data-blok-database-card]`).length;n.textContent=String(t)}}},dr=class{constructor({readOnly:e,i18n:t,rows:n,titlePropertyId:r,schema:i,visiblePropertyIds:a,options:o,getRows:s}){this.readOnly=e,this.i18n=t,this.rows=n,this.titlePropertyId=r,this.schema=i,this.visiblePropertyIds=a,this.groupOptions=o,this.getGroupRows=s}createView(){let e=document.createElement(`div`);if(e.setAttribute(`data-blok-database-list`,``),this.groupOptions!==void 0&&this.groupOptions.length>0&&this.getGroupRows!==void 0)for(let t of this.groupOptions){let n=this.getGroupRows(t.id),r=this.createGroupElement(t,n);e.appendChild(r)}else{e.setAttribute(`role`,`list`),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.listView`));for(let t of this.rows){let n=this.createRowElement(t);e.appendChild(n)}if(!this.readOnly){let t=this.createAddRowButton();e.appendChild(t)}}return e}createGroupElement(e,t){let n=document.createElement(`div`);n.setAttribute(`data-blok-database-list-group`,``),n.setAttribute(`data-option-id`,e.id);let r=document.createElement(`div`);r.setAttribute(`data-blok-database-list-group-header`,``);let i=document.createElement(`span`);i.setAttribute(`data-blok-database-list-group-toggle`,``),i.textContent=`▼`;let a=document.createElement(`span`);a.setAttribute(`data-blok-database-list-group-dot`,``),e.color!==void 0&&(a.style.backgroundColor=`var(--blok-color-${e.color}-text)`);let o=document.createElement(`span`);o.setAttribute(`data-blok-database-list-group-title`,``),o.textContent=e.label;let s=document.createElement(`span`);s.setAttribute(`data-blok-database-list-group-count`,``),s.textContent=String(t.length),r.appendChild(i),r.appendChild(a),r.appendChild(o),r.appendChild(s);let c=document.createElement(`div`);c.setAttribute(`data-blok-database-list-rows`,``),c.setAttribute(`role`,`list`);for(let e of t){let t=this.createRowElement(e);c.appendChild(t)}let l=this.readOnly?null:this.createAddRowButton(e.id);return r.addEventListener(`click`,()=>{let e=c.style.display===`none`;c.style.display=e?``:`none`,i.textContent=e?`▼`:`▶`,l!==null&&(l.style.display=e?``:`none`)}),n.appendChild(r),n.appendChild(c),l!==null&&n.appendChild(l),n}appendRow(e,t){let n=this.createRowElement(t),r=e.querySelector(`[data-blok-database-add-row]`);r===null?e.appendChild(n):e.insertBefore(n,r)}removeRow(e,t){let n=e.querySelector(`[data-row-id="${t}"]`);n==null||n.remove()}updateRowTitle(e,t,n){let r=e.querySelector(`[data-row-id="${t}"]`),i=r==null?void 0:r.querySelector(`[data-blok-database-list-row-title]`);i!=null&&(n?(i.textContent=n,i.removeAttribute(`data-placeholder`)):(i.textContent=this.i18n.t(`tools.database.rowTitlePlaceholder`),i.setAttribute(`data-placeholder`,``)))}createRowElement(e){var t;let n=document.createElement(`div`),r=(t=e.properties[this.titlePropertyId])==null?``:t;n.setAttribute(`data-blok-database-list-row`,``),n.setAttribute(`data-row-id`,e.id),n.setAttribute(`role`,`listitem`);let i=document.createElement(`div`);i.setAttribute(`data-blok-database-list-row-title`,``),r?i.textContent=r:(i.textContent=this.i18n.t(`tools.database.rowTitlePlaceholder`),i.setAttribute(`data-placeholder`,``)),n.appendChild(i);let a=this.createPropertiesElement(e);return n.appendChild(a),n}createPropertiesElement(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-list-row-properties`,``);for(let n of this.visiblePropertyIds){let r=this.schema.find(e=>e.id===n);if(r===void 0)continue;let i=e.properties[n],a=this.createPropertyBadge(r,i);a!==null&&t.appendChild(a)}let n=document.createElement(`button`);if(n.setAttribute(`data-blok-database-list-row-open`,``),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.openRow`)),t.appendChild(n),!this.readOnly){let n=document.createElement(`button`);n.setAttribute(`data-blok-database-delete-row`,``),n.setAttribute(`data-row-id`,e.id),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.deleteRow`)),n.textContent=`×`,t.appendChild(n)}return t}createPropertyBadge(e,t){if(t==null)return null;let n=document.createElement(`span`);if(n.setAttribute(`data-blok-database-list-row-property`,``),n.setAttribute(`data-property-id`,e.id),e.type===`select`){var r,i;let a=((r=(i=e.config)==null?void 0:i.options)==null?[]:r).find(e=>e.id===t);if(a===void 0)return null;n.textContent=a.label,a.color!==void 0&&(n.style.backgroundColor=`var(--blok-color-${a.color}-bg)`,n.style.color=`var(--blok-color-${a.color}-text)`)}else if(e.type===`checkbox`){let e=t===!0,r=document.createElement(`span`);r.setAttribute(`data-blok-database-checkbox-glyph`,``),r.setAttribute(`aria-hidden`,`true`),r.setAttribute(`data-state`,e?`checked`:`unchecked`),r.textContent=e?`✓`:``,n.appendChild(r);let i=document.createElement(`span`);i.style.position=`absolute`,i.style.width=`1px`,i.style.height=`1px`,i.style.padding=`0`,i.style.margin=`-1px`,i.style.overflow=`hidden`,i.style.clipPath=`inset(50%)`,i.style.whiteSpace=`nowrap`,i.style.border=`0`,i.textContent=this.i18n.t(e?`tools.database.checkboxChecked`:`tools.database.checkboxUnchecked`),n.appendChild(i)}else if(typeof t==`string`||typeof t==`number`)n.textContent=String(t);else return null;return n}createAddRowButton(e){let t=document.createElement(`button`);return t.setAttribute(`data-blok-database-add-row`,``),t.setAttribute(`aria-label`,this.i18n.t(`tools.database.addRow`)),t.textContent=`+ `+this.i18n.t(`tools.database.newRow`),e!==void 0&&t.setAttribute(`data-option-id`,e),t}},fr=500,pr=class{constructor(e,t){this.pendingTimers=new Map,this.pendingUpdates=new Map,this.pendingPropertyTimers=new Map,this.pendingPropertyUpdates=new Map,this.adapter=e,this.onError=t}async safeCall(e){var t=this;if(t.adapter!==void 0)try{return await e(t.adapter)}catch(e){var n;(n=t.onError)==null||n.call(t,e);return}}async syncLoadDatabase(){return this.safeCall(e=>e.loadDatabase())}async syncCreateRow(e){return this.safeCall(t=>t.createRow(e))}syncUpdateRow(e){if(this.adapter===void 0)return;let{rowId:t}=e,r=this.pendingTimers.get(t);r!==void 0&&clearTimeout(r);let i=this.pendingUpdates.get(t);this.pendingUpdates.set(t,i===void 0?e:n.t(n.t(n.t({},i),e),{},{properties:n.t(n.t({},i.properties),e.properties)})),this.pendingTimers.set(t,setTimeout(()=>{this.flushRow(t)},fr))}async syncMoveRow(e){var t=this;return t.flushRow(e.rowId),t.safeCall(t=>t.moveRow(e))}async syncDeleteRow(e){await this.safeCall(t=>t.deleteRow(e))}async syncCreateProperty(e){return this.safeCall(t=>t.createProperty(e))}async syncUpdateProperty(e){return this.safeCall(t=>t.updateProperty(e))}syncUpdatePropertyDebounced(e){if(this.adapter===void 0)return;let{propertyId:t}=e,n=this.pendingPropertyTimers.get(t);n!==void 0&&clearTimeout(n),this.pendingPropertyUpdates.set(t,e),this.pendingPropertyTimers.set(t,setTimeout(()=>{this.flushProperty(t)},fr))}async syncDeleteProperty(e){await this.safeCall(t=>t.deleteProperty(e))}async syncCreateView(e){return this.safeCall(t=>t.createView(e))}async syncUpdateView(e){return this.safeCall(t=>t.updateView(e))}async syncDeleteView(e){await this.safeCall(t=>t.deleteView(e))}flushPendingUpdates(){for(let e of this.pendingTimers.keys())this.flushRow(e)}flushPendingPropertyUpdates(){for(let e of this.pendingPropertyTimers.keys())this.flushProperty(e)}destroy(){for(let e of this.pendingTimers.values())clearTimeout(e);this.pendingTimers.clear(),this.pendingUpdates.clear();for(let e of this.pendingPropertyTimers.values())clearTimeout(e);this.pendingPropertyTimers.clear(),this.pendingPropertyUpdates.clear()}flushRow(e){let t=this.pendingTimers.get(e);t!==void 0&&clearTimeout(t),this.pendingTimers.delete(e);let n=this.pendingUpdates.get(e);this.pendingUpdates.delete(e),n!==void 0&&this.safeCall(e=>e.updateRow(n))}flushProperty(e){let t=this.pendingPropertyTimers.get(e);t!==void 0&&clearTimeout(t),this.pendingPropertyTimers.delete(e);let n=this.pendingPropertyUpdates.get(e);this.pendingPropertyUpdates.delete(e),n!==void 0&&this.safeCall(e=>e.updateProperty(n))}},mr=10,hr=class{constructor(e){this.isDragging=!1,this.rowId=``,this.startX=0,this.startY=0,this.ghostEl=null,this.sourceCard=null,this.sourceCardHeight=0,this.ghostOffsetX=0,this.ghostOffsetY=0,this.gapTarget=null,this.gapContainer=null,this.wrapper=e.wrapper,this.onDrop=e.onDrop,this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this)}beginTracking(e,t,n){this.cleanup(),this.rowId=e,this.startX=t,this.startY=n,this.isDragging=!1,this.sourceCard=this.wrapper.querySelector(`[data-row-id="${e}"]`),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerCancel),document.addEventListener(`keydown`,this.boundKeyDown)}cleanup(){var e;document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerCancel),document.removeEventListener(`keydown`,this.boundKeyDown),(e=this.ghostEl)==null||e.remove(),this.ghostEl=null,this.clearGap(),this.wrapper.removeAttribute(`data-blok-database-dragging`),this.sourceCard&&(this.sourceCard.style.opacity=``,this.sourceCard=null),this.isDragging=!1,this.rowId=``,this.sourceCardHeight=0,this.ghostOffsetX=0,this.ghostOffsetY=0}destroy(){this.cleanup()}handlePointerMove(e){let t=Math.abs(e.clientX-this.startX),n=Math.abs(e.clientY-this.startY);!this.isDragging&&(t>mr||n>mr)&&(this.isDragging=!0,this.startActiveDrag(e)),this.isDragging&&(this.updateGhostPosition(e),this.updateDropIndicator(e))}handlePointerUp(e){this.isDragging&&this.commitDrop(e),this.cleanup()}handlePointerCancel(){this.cleanup()}handleKeyDown(e){e.key===`Escape`&&this.cleanup()}startActiveDrag(e){if(this.sourceCard){let e=this.sourceCard.getBoundingClientRect();this.sourceCardHeight=e.height,this.ghostOffsetX=this.startX-e.left,this.ghostOffsetY=this.startY-e.top,this.sourceCard.style.opacity=`0.4`}this.wrapper.setAttribute(`data-blok-database-dragging`,``),this.createGhost(e)}createGhost(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-ghost`,``),t.setAttribute(`contenteditable`,`false`);let n=t.style;if(n.position=`fixed`,n.pointerEvents=`none`,n.opacity=`0.85`,n.zIndex=`50`,n.boxShadow=`0 12px 28px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.1)`,n.borderRadius=`8px`,n.overflow=`hidden`,n.transform=`rotate(2deg) scale(1.02)`,n.transformOrigin=`center center`,this.sourceCard){let r=this.sourceCard.cloneNode(!0);r.style.opacity=``,t.appendChild(r);let i=this.sourceCard.getBoundingClientRect();n.left=`${e.clientX-this.ghostOffsetX}px`,n.top=`${e.clientY-this.ghostOffsetY}px`,n.width=`${i.width}px`}else n.left=`${e.clientX}px`,n.top=`${e.clientY}px`;document.body.appendChild(t),this.ghostEl=t}updateGhostPosition(e){this.ghostEl&&(this.ghostEl.style.left=`${e.clientX-this.ghostOffsetX}px`,this.ghostEl.style.top=`${e.clientY-this.ghostOffsetY}px`)}updateDropIndicator(e){let t=this.findTargetColumn(e.clientX);if(!t){this.clearGap();return}let n=this.getDropPosition(t,e.clientY).beforeEl;if(n){if(n===this.gapTarget)return;this.clearGap(),n.style.marginTop=`${this.sourceCardHeight}px`,this.gapTarget=n}else{let e=t.querySelector(`[data-blok-database-cards]`);if(!e){this.clearGap();return}if(e===this.gapContainer)return;this.clearGap(),e.style.paddingBottom=`${this.sourceCardHeight}px`,this.gapContainer=e}}clearGap(){this.gapTarget&&(this.gapTarget.style.marginTop=``,this.gapTarget=null),this.gapContainer&&(this.gapContainer.style.paddingBottom=``,this.gapContainer=null)}findTargetColumn(e){let t=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-column]`));for(let n of t){let t=n.getBoundingClientRect();if(e>=t.left&&e<=t.right)return n}return null}getDropPosition(e,t){let n=Array.from(e.querySelectorAll(`[data-blok-database-card]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId);for(let e of n){let n=e.getBoundingClientRect();if(t<n.top+n.height/2)return{beforeEl:e}}return{beforeEl:null}}resolveAfterRowId(e,t,n){return e?n>0?t[n-1].getAttribute(`data-row-id`):null:t.length>0?t[t.length-1].getAttribute(`data-row-id`):null}commitDrop(e){var t;let n=this.findTargetColumn(e.clientX);if(!n)return;let r=(t=n.getAttribute(`data-option-id`))==null?``:t,i=this.getDropPosition(n,e.clientY),a=Array.from(n.querySelectorAll(`[data-blok-database-card]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId),o=i.beforeEl?i.beforeEl.getAttribute(`data-row-id`):null,s=i.beforeEl?a.indexOf(i.beforeEl):-1,c=this.resolveAfterRowId(i.beforeEl,a,s);this.onDrop({rowId:this.rowId,toOptionId:r,beforeRowId:o,afterRowId:c})}},gr=10,_r=class{constructor(e){this.isDragging=!1,this.optionId=``,this.startX=0,this.startY=0,this.ghostEl=null,this.sourceColumn=null,this.sourceColumnWidth=0,this.ghostOffsetX=0,this.gapTarget=null,this.gapContainer=null,this.wrapper=e.wrapper,this.onDrop=e.onDrop,this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this)}beginTracking(e,t,n){this.cleanup(),this.optionId=e,this.startX=t,this.startY=n,this.isDragging=!1,this.sourceColumn=this.wrapper.querySelector(`[data-option-id="${e}"]`),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerCancel),document.addEventListener(`keydown`,this.boundKeyDown)}cleanup(){var e;document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerCancel),document.removeEventListener(`keydown`,this.boundKeyDown),(e=this.ghostEl)==null||e.remove(),this.ghostEl=null,this.clearGap(),this.wrapper.removeAttribute(`data-blok-database-column-reordering`),this.sourceColumn&&(this.sourceColumn.style.opacity=``,this.sourceColumn=null),this.isDragging=!1,this.optionId=``,this.sourceColumnWidth=0,this.ghostOffsetX=0}destroy(){this.cleanup()}handlePointerMove(e){let t=Math.abs(e.clientX-this.startX);!this.isDragging&&t>gr&&(this.isDragging=!0,this.startActiveDrag(e)),this.isDragging&&(this.updateGhostPosition(e),this.updateDropIndicator(e.clientX))}handlePointerUp(e){this.isDragging&&this.commitDrop(e),this.cleanup()}handlePointerCancel(){this.cleanup()}handleKeyDown(e){e.key===`Escape`&&this.cleanup()}startActiveDrag(e){if(this.sourceColumn){let e=this.sourceColumn.getBoundingClientRect();this.sourceColumnWidth=e.width,this.ghostOffsetX=this.startX-e.left,this.sourceColumn.style.opacity=`0.4`}this.wrapper.setAttribute(`data-blok-database-column-reordering`,``),this.createGhost(e)}createGhost(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-column-ghost`,``),t.setAttribute(`contenteditable`,`false`);let n=t.style;if(n.position=`fixed`,n.pointerEvents=`none`,n.opacity=`0.85`,n.zIndex=`50`,n.boxShadow=`0 12px 28px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.1)`,n.borderRadius=`10px`,n.overflow=`hidden`,n.transform=`rotate(1deg) scale(1.02)`,n.transformOrigin=`center center`,this.sourceColumn){let r=this.sourceColumn.cloneNode(!0);r.style.opacity=``,t.appendChild(r);let i=this.sourceColumn.getBoundingClientRect();n.left=`${e.clientX-this.ghostOffsetX}px`,n.top=`${i.top}px`,n.width=`${i.width}px`}else n.left=`${e.clientX}px`,n.top=`${e.clientY}px`;document.body.appendChild(t),this.ghostEl=t}updateGhostPosition(e){this.ghostEl&&(this.ghostEl.style.left=`${e.clientX-this.ghostOffsetX}px`)}updateDropIndicator(e){let t=this.getDropPosition(e);if(t.beforeColumn){if(t.beforeColumn===this.gapTarget)return;this.clearGap(),t.beforeColumn.style.marginLeft=`${this.sourceColumnWidth}px`,this.gapTarget=t.beforeColumn}else this.applyEndGap()}applyEndGap(){let e=this.wrapper.querySelector(`[data-blok-database-board]`);!e||e===this.gapContainer||(this.clearGap(),e.style.paddingRight=`${this.sourceColumnWidth}px`,this.gapContainer=e)}clearGap(){this.gapTarget&&(this.gapTarget.style.marginLeft=``,this.gapTarget=null),this.gapContainer&&(this.gapContainer.style.paddingRight=``,this.gapContainer=null)}getDropPosition(e){let t=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-column]`)).filter(e=>e.getAttribute(`data-option-id`)!==this.optionId);for(let n of t){let r=n.getBoundingClientRect();if(e<r.left+r.width/2){let e=t.indexOf(n);return{beforeColumn:n,afterColumn:e>0?t[e-1]:null}}}return{beforeColumn:null,afterColumn:t.length>0?t[t.length-1]:null}}commitDrop(e){let t=this.getDropPosition(e.clientX),n=t.beforeColumn?t.beforeColumn.getAttribute(`data-option-id`):null,r=t.afterColumn?t.afterColumn.getAttribute(`data-option-id`):null;this.onDrop({optionId:this.optionId,beforeOptionId:n,afterOptionId:r})}},vr=class{constructor(e){this.options=e,this.i18n=e.i18n}makeEditable(e,t){let n=e.querySelector(`[data-blok-database-column-title]`);if(n){var r;let e=document.createElement(`input`);e.type=`text`,e.value=(r=n.textContent)==null?``:r,e.setAttribute(`data-blok-database-column-title-input`,``),e.setAttribute(`aria-label`,this.i18n.t(`tools.database.renameColumn`));let i=()=>{e.size=Math.max(e.value.length,1)};i(),e.addEventListener(`input`,i),e.addEventListener(`change`,()=>{this.options.onRename(t,e.value)}),n.replaceWith(e)}this.appendDeleteButton(e,t)}appendDeleteButton(e,t){let n=document.createElement(`button`);n.setAttribute(`data-blok-database-delete-column`,``),n.setAttribute(`aria-label`,this.i18n.t(`tools.database.deleteColumn`)),n.setAttribute(`data-option-id`,t),n.addEventListener(`click`,()=>{this.options.onDelete(t)}),e.appendChild(n)}makePillTitleEditable(e,t){let n=e.querySelector(`[data-blok-database-column-title]`);n!==null&&(n.style.cursor=`text`,n.addEventListener(`click`,r=>{var i;r.stopPropagation();let a=(i=n.textContent)==null?``:i;lr({target:n,currentValue:a,label:this.i18n.t(`tools.database.renameColumn`),configureInput:e=>{e.setAttribute(`data-blok-database-column-title-input`,``);let t=()=>{e.setAttribute(`size`,String(Math.max(e.value.length,1)))};t(),e.addEventListener(`input`,t)},onInput:e=>{var n,r;(n=(r=this.options).onRenameInput)==null||n.call(r,t,e)},buildRestored:e=>{let t=document.createElement(`div`);return t.setAttribute(`data-blok-database-column-title`,``),t.style.cursor=`text`,t.textContent=e,t},onCommit:n=>{if(this.makePillTitleEditable(e,t),n!==a){var r,i;(r=(i=this.options).onRenameCommit)==null||r.call(i,t,n),this.options.onRename(t,n)}},onCancel:()=>{this.makePillTitleEditable(e,t)}})}))}destroy(){}},yr=10,br=class{constructor(e){this.isDragging=!1,this.rowId=``,this.startY=0,this.ghostEl=null,this.sourceRow=null,this.sourceRowHeight=0,this.ghostOffsetY=0,this.gapTarget=null,this.wrapper=e.wrapper,this.onDrop=e.onDrop,this.boundPointerMove=this.handlePointerMove.bind(this),this.boundPointerUp=this.handlePointerUp.bind(this),this.boundPointerCancel=this.handlePointerCancel.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this)}beginTracking(e,t,n){this.cleanup(),this.rowId=e,this.startY=n,this.isDragging=!1,this.sourceRow=this.wrapper.querySelector(`[data-row-id="${e}"]`),document.addEventListener(`pointermove`,this.boundPointerMove),document.addEventListener(`pointerup`,this.boundPointerUp),document.addEventListener(`pointercancel`,this.boundPointerCancel),document.addEventListener(`keydown`,this.boundKeyDown)}cleanup(){var e;document.removeEventListener(`pointermove`,this.boundPointerMove),document.removeEventListener(`pointerup`,this.boundPointerUp),document.removeEventListener(`pointercancel`,this.boundPointerCancel),document.removeEventListener(`keydown`,this.boundKeyDown),(e=this.ghostEl)==null||e.remove(),this.ghostEl=null,this.clearGap(),this.sourceRow&&(this.sourceRow.style.opacity=``,this.sourceRow=null),this.isDragging=!1,this.rowId=``,this.sourceRowHeight=0,this.ghostOffsetY=0}destroy(){this.cleanup()}handlePointerMove(e){let t=Math.abs(e.clientY-this.startY);!this.isDragging&&t>yr&&(this.isDragging=!0,this.startActiveDrag(e)),this.isDragging&&(this.updateGhostPosition(e),this.updateDropIndicator(e))}handlePointerUp(e){this.isDragging&&this.commitDrop(e),this.cleanup()}handlePointerCancel(){this.cleanup()}handleKeyDown(e){e.key===`Escape`&&this.cleanup()}startActiveDrag(e){if(this.sourceRow){let e=this.sourceRow.getBoundingClientRect();this.sourceRowHeight=e.height,this.ghostOffsetY=this.startY-e.top,this.sourceRow.style.opacity=`0.4`}this.createGhost(e)}createGhost(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-ghost`,``),t.setAttribute(`contenteditable`,`false`);let n=t.style;if(n.position=`fixed`,n.pointerEvents=`none`,n.opacity=`0.85`,n.zIndex=`50`,n.boxShadow=`0 12px 28px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.1)`,n.borderRadius=`8px`,n.overflow=`hidden`,this.sourceRow){let r=this.sourceRow.cloneNode(!0);r.style.opacity=``,t.appendChild(r);let i=this.sourceRow.getBoundingClientRect();n.left=`${i.left}px`,n.top=`${e.clientY-this.ghostOffsetY}px`,n.width=`${i.width}px`}else n.left=`0px`,n.top=`${e.clientY}px`;document.body.appendChild(t),this.ghostEl=t}updateGhostPosition(e){this.ghostEl&&(this.ghostEl.style.top=`${e.clientY-this.ghostOffsetY}px`)}updateDropIndicator(e){let t=this.getDropPosition(e.clientY).beforeEl;if(t){if(t===this.gapTarget)return;this.clearGap(),t.style.marginTop=`${this.sourceRowHeight}px`,this.gapTarget=t}else this.clearGap()}clearGap(){this.gapTarget&&(this.gapTarget.style.marginTop=``,this.gapTarget=null)}getDropPosition(e){let t=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-list-row]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId);for(let n of t){let t=n.getBoundingClientRect();if(e<t.top+t.height/2)return{beforeEl:n}}return{beforeEl:null}}commitDrop(e){let t=this.getDropPosition(e.clientY),n=Array.from(this.wrapper.querySelectorAll(`[data-blok-database-list-row]`)).filter(e=>e.getAttribute(`data-row-id`)!==this.rowId),r=t.beforeEl?t.beforeEl.getAttribute(`data-row-id`):null,i=t.beforeEl?n.indexOf(t.beforeEl):-1,a=this.resolveAfterRowId(t.beforeEl,n,i);this.onDrop({rowId:this.rowId,beforeRowId:r,afterRowId:a})}resolveAfterRowId(e,t,n){return e?n>0?t[n-1].getAttribute(`data-row-id`):null:t.length>0?t[t.length-1].getAttribute(`data-row-id`):null}},xr=[{type:`text`,icon:o.dn,labelKey:`tools.database.propertyTypeText`},{type:`number`,icon:o.it,labelKey:`tools.database.propertyTypeNumber`},{type:`select`,icon:o.on,labelKey:`tools.database.propertyTypeSelect`},{type:`multiSelect`,icon:o.Lt,labelKey:`tools.database.propertyTypeMultiSelect`},{type:`date`,icon:o.l,labelKey:`tools.database.propertyTypeDate`},{type:`checkbox`,icon:o.Ct,labelKey:`tools.database.propertyTypeCheckbox`},{type:`url`,icon:o.Z,labelKey:`tools.database.propertyTypeUrl`}],Sr=class{constructor(e){this.popoverEl=null,this.boundOutsideClick=null,this.onSelect=e.onSelect,this.i18n=e.i18n}open(e){var t,n;this.close();let r=document.createElement(`div`);r.setAttribute(`data-blok-popover`,``),r.setAttribute(`data-blok-popover-opened`,``),r.setAttribute(`data-blok-database-property-type-popover`,``),r.style.position=`fixed`,r.style.zIndex=`1000`;let i=e.getBoundingClientRect();r.style.top=`${i.bottom+4}px`,r.style.left=`${i.left}px`;let a=document.createElement(`div`);a.setAttribute(`data-blok-database-property-type-heading`,``),a.textContent=(t=(n=this.i18n)==null?void 0:n.t(`tools.database.propertyTypeHeading`))==null?`tools.database.propertyTypeHeading`:t,r.appendChild(a);for(let e of xr){var o,s;let t=document.createElement(`div`);t.setAttribute(`data-blok-database-property-type-option`,e.type);let n=document.createElement(`div`);n.setAttribute(`data-blok-database-property-type-option-icon`,``),n.innerHTML=e.icon,t.appendChild(n);let i=document.createElement(`span`);i.textContent=(o=(s=this.i18n)==null?void 0:s.t(e.labelKey))==null?e.labelKey:o,t.appendChild(i),t.addEventListener(`click`,()=>{this.onSelect(e.type),this.close()}),r.appendChild(t)}document.body.appendChild(r),this.popoverEl=r,this.boundOutsideClick=t=>{let n=t.target;!r.contains(n)&&!e.contains(n)&&this.close()},document.addEventListener(`mousedown`,this.boundOutsideClick)}close(){this.popoverEl!==null&&(this.popoverEl.remove(),this.popoverEl=null),this.boundOutsideClick!==null&&(document.removeEventListener(`mousedown`,this.boundOutsideClick),this.boundOutsideClick=null)}destroy(){this.close()}},Cr=class{constructor(e){this.drawer=null,this.currentRowId=null,this.currentRow=null,this.blokInstance=null,this.escapeHandler=null,this.outsideClickHandler=null,this.propertyTypePopover=null,this.wrapper=e.wrapper,this.readOnly=e.readOnly,this.i18n=e.i18n,this.toolsConfig=e.toolsConfig,this.titlePropertyId=e.titlePropertyId,this.descriptionPropertyId=e.descriptionPropertyId,this.schema=e.schema,this.onTitleChange=e.onTitleChange,this.onDescriptionChange=e.onDescriptionChange,this.onClose=e.onClose,this.onAddProperty=e.onAddProperty}get isOpen(){return this.drawer!==null}open(e){var t,n,r,i,a,s,c;if(this.drawer){if(e.id===this.currentRowId)return;this.loadCard(e);return}let l=this.wrapper.querySelector(`[data-blok-database-drawer]`);l==null||l.remove(),this.currentRowId=e.id,this.currentRow=e,this.updateActiveCard(e.id);let u=(t=e.properties[this.titlePropertyId])==null?``:t,d=document.createElement(`div`);d.setAttribute(`data-blok-database-drawer`,``),d.setAttribute(`role`,`complementary`),d.setAttribute(`aria-label`,(n=(r=this.i18n)==null?void 0:r.t(`tools.database.cardDetails`))==null?`tools.database.cardDetails`:n);let f=document.createElement(`div`);f.setAttribute(`data-blok-database-drawer-toolbar`,``);let p=document.createElement(`button`);p.setAttribute(`data-blok-database-drawer-close`,``),p.setAttribute(`aria-label`,`Close`),p.innerHTML=o._+o._,p.addEventListener(`click`,()=>{this.close()}),f.appendChild(p),d.appendChild(f);let m=document.createElement(`div`);m.setAttribute(`data-blok-database-drawer-content`,``);let h=document.createElement(`textarea`);h.setAttribute(`data-blok-database-drawer-title`,``),h.setAttribute(`aria-label`,(i=(a=this.i18n)==null?void 0:a.t(`tools.database.cardTitle`))==null?`tools.database.cardTitle`:i),h.placeholder=(s=(c=this.i18n)==null?void 0:c.t(`tools.database.cardTitlePlaceholder`))==null?`Empty page`:s,h.value=u,h.rows=1,h.readOnly=this.readOnly,h.addEventListener(`input`,()=>{this.currentRowId!==null&&this.onTitleChange(this.currentRowId,h.value),this.autoResizeTitle(h)}),h.addEventListener(`keydown`,e=>{e.key===`Enter`&&e.preventDefault()}),m.appendChild(h);let g=this.getRenderableSchema();m.appendChild(this.buildPropsSection(g,e));let _=document.createElement(`hr`);m.appendChild(_);let v=document.createElement(`div`);v.setAttribute(`data-blok-database-drawer-editor`,``),m.appendChild(v),d.appendChild(m),this.wrapper.appendChild(d),this.drawer=d,requestAnimationFrame(()=>{d.style.width=`45%`,d.addEventListener(`transitionend`,()=>{this.autoResizeTitle(h),u||h.focus()},{once:!0})}),this.initNestedEditor(v,e),this.escapeHandler=e=>{if(e.key!==`Escape`)return;let t=e.target;t&&v.contains(t)||this.close()},document.addEventListener(`keydown`,this.escapeHandler),this.outsideClickHandler=e=>{let t=e.target;t&&d.contains(t)||t instanceof Element&&t.closest(`[data-blok-popover-opened]`)!==null||t instanceof Element&&t.closest(`[data-blok-database-tab-bar]`)!==null||this.close()},document.addEventListener(`mousedown`,this.outsideClickHandler),h.focus()}loadCard(e){var t,n,r;if(this.drawer===null)return;this.cleanupEditor(),this.currentRowId=e.id,this.currentRow=e,this.updateActiveCard(e.id);let i=(t=e.properties[this.titlePropertyId])==null?``:t,a=this.drawer.querySelector(`[data-blok-database-drawer-title]`);a!==null&&(a.value=i,this.autoResizeTitle(a),i||a.focus()),(n=this.drawer.querySelector(`[data-blok-database-drawer-props]`))==null||n.remove();let o=this.getRenderableSchema(),s=this.drawer.querySelector(`[data-blok-database-drawer-content]`),c=(r=s==null?void 0:s.querySelector(`hr`))==null?null:r;s!==null&&s.insertBefore(this.buildPropsSection(o,e),c);let l=this.drawer.querySelector(`[data-blok-database-drawer-editor]`);l!==null&&(l.innerHTML=``,this.initNestedEditor(l,e))}close(){let e=this.drawer!==null;if(this.updateActiveCard(null),this.cleanupListeners(),this.cleanupEditor(),this.drawer){let e=this.drawer;this.drawer=null,e.style.width=`0px`,e.addEventListener(`transitionend`,()=>{e.remove()},{once:!0})}this.currentRowId=null,this.currentRow=null,e&&this.onClose()}destroy(){var e;this.cleanupListeners(),this.cleanupEditor(),(e=this.propertyTypePopover)==null||e.destroy(),this.propertyTypePopover=null,this.drawer&&(this.drawer.remove(),this.drawer=null);let t=this.wrapper.querySelector(`[data-blok-database-drawer]`);t==null||t.remove(),this.currentRowId=null,this.currentRow=null}refreshSchema(e){var t,n;if(this.schema=e,this.drawer===null||this.currentRow===null)return;(t=this.drawer.querySelector(`[data-blok-database-drawer-props]`))==null||t.remove();let r=this.getRenderableSchema(),i=this.drawer.querySelector(`[data-blok-database-drawer-content]`),a=(n=i==null?void 0:i.querySelector(`hr`))==null?null:n;i!==null&&i.insertBefore(this.buildPropsSection(r,this.currentRow),a)}buildPropsSection(e,t){let n=document.createElement(`div`);n.setAttribute(`data-blok-database-drawer-props`,``);for(let i of e){var r;n.appendChild(this.createPropertyRow(i,(r=t.properties[i.id])==null?null:r))}if(!this.readOnly){let e=document.createElement(`button`);e.setAttribute(`data-blok-database-drawer-add-prop`,``),e.textContent=`+ Add a property`,e.addEventListener(`click`,()=>{this.propertyTypePopover===null&&(this.propertyTypePopover=new Sr({onSelect:e=>{var t,n;(t=this.onAddProperty)==null||t.call(this,e),(n=this.propertyTypePopover)==null||n.close()},i18n:this.i18n})),this.propertyTypePopover.open(e)}),n.appendChild(e)}return n}getRenderableSchema(){return[...this.schema].filter(e=>e.type!==`title`&&e.type!==`richText`).sort((e,t)=>e.position<t.position?-1:+(e.position>t.position))}createSelectPill(e){let t=document.createElement(`span`);if(t.setAttribute(`data-blok-database-drawer-prop-pill`,``),e.color!==void 0){t.style.backgroundColor=`var(--blok-color-${e.color}-bg)`,t.style.color=`var(--blok-color-${e.color}-text)`;let n=document.createElement(`span`);n.setAttribute(`data-blok-database-drawer-prop-dot`,``),n.style.backgroundColor=`var(--blok-color-${e.color}-text)`,t.appendChild(n)}let n=document.createElement(`span`);return n.textContent=e.label,t.appendChild(n),t}createPropertyRow(e,t){let n=document.createElement(`div`);n.setAttribute(`data-blok-database-drawer-prop-row`,``);let r=document.createElement(`span`);r.setAttribute(`data-blok-database-drawer-prop-label`,``),r.textContent=e.name,n.appendChild(r);let i=document.createElement(`span`);if(i.setAttribute(`data-blok-database-drawer-prop-value`,``),e.type===`select`){let n=e.config,r=typeof t==`string`?t:null,a=n==null?void 0:n.options.find(e=>e.id===r);a!==void 0&&i.appendChild(this.createSelectPill(a))}else if(e.type===`multiSelect`){let n=e.config;(Array.isArray(t)?t:[]).map(e=>n==null?void 0:n.options.find(t=>t.id===e)).filter(e=>e!==void 0).forEach(e=>i.appendChild(this.createSelectPill(e)))}else (typeof t==`string`||typeof t==`number`||typeof t==`boolean`)&&(i.textContent=String(t));return n.appendChild(i),n}updateActiveCard(e){let t=this.wrapper.querySelector(`[data-blok-database-card-active]`);if(t==null||t.removeAttribute(`data-blok-database-card-active`),e!==null){let t=this.wrapper.querySelector(`[data-blok-database-card][data-row-id="${e}"]`);t==null||t.setAttribute(`data-blok-database-card-active`,``)}}cleanupListeners(){this.escapeHandler&&(document.removeEventListener(`keydown`,this.escapeHandler),this.escapeHandler=null),this.outsideClickHandler&&(document.removeEventListener(`mousedown`,this.outsideClickHandler),this.outsideClickHandler=null)}cleanupEditor(){if(this.blokInstance){try{let e=this.blokInstance,t=this.currentRowId;e.save().then(n=>{t!==null&&this.onDescriptionChange(t,n),e.destroy()}).catch(()=>{e.destroy()})}catch(e){}this.blokInstance=null}}autoResizeTitle(e){let{style:t}=e;t.height=`auto`,e.scrollHeight>0&&(t.height=`${e.scrollHeight}px`)}initNestedEditor(e,t){var r=this;Promise.resolve().then(()=>require(`../blok.cjs`)).then(({Blok:i})=>{let a=t.id,o=this.descriptionPropertyId===void 0?void 0:t.properties[this.descriptionPropertyId],s=new i(n.t(n.t({},this.toolsConfig),{},{holder:e,data:o,readOnly:this.readOnly,onChange:async()=>{try{var e;let t=await((e=r.blokInstance)==null?void 0:e.save());t!==void 0&&r.onDescriptionChange(a,t)}catch(e){}}}));this.blokInstance=s}).catch(()=>{})}},wr=class{constructor(e){this.boundKeydown=null,this.wrapper=e.wrapper,this.onEscape=e.onEscape}attach(){this.boundKeydown=e=>{e.key===`Escape`&&this.onEscape()&&e.stopPropagation()},this.wrapper.addEventListener(`keydown`,this.boundKeydown)}destroy(){this.boundKeydown&&(this.wrapper.removeEventListener(`keydown`,this.boundKeydown),this.boundKeydown=null)}},Tr=[{type:`board`,icon:o.o,labelKey:`tools.database.viewTypeBoard`,descriptionKey:`tools.database.viewTypeBoardDescription`},{type:`list`,icon:o.xt,labelKey:`tools.database.viewTypeList`,descriptionKey:`tools.database.viewTypeListDescription`}],Er=class{constructor(e){this.popover=null,this.onSelect=e.onSelect,this.onClose=e.onClose,this.api=e.api}translate(e,t){var n,r;return(n=(r=this.api)==null?void 0:r.i18n.t(e))==null?t:n}open(e){this.close();let n=document.createElement(`div`);n.setAttribute(`data-blok-database-view-popover-heading`,``),n.textContent=this.translate(`tools.database.addView`,[`Add`,`view`].join(` `));let r=[{type:t.hr.Html,element:n},...Tr.map(e=>{let n=this.createViewItem(e);return{type:t.hr.Html,element:n,closeOnActivate:!0}})];this.popover=new t._t({items:r,trigger:e,width:`auto`,minWidth:`200px`,flippable:!1,autoFocusFirstItem:!1}),this.popover.on(t.xt.Closed,()=>{if(this.popover!==null){var e;let t=this.popover;this.popover=null,t.destroy(),(e=this.onClose)==null||e.call(this)}}),this.popover.show()}createViewItem(e){let t=document.createElement(`div`);t.setAttribute(`data-blok-database-view-option`,e.type);let n=document.createElement(`div`);n.setAttribute(`data-blok-database-view-option-icon`,``),n.innerHTML=e.icon,t.appendChild(n);let r=document.createElement(`div`);r.setAttribute(`data-blok-database-view-option-text`,``);let i=document.createElement(`span`);i.setAttribute(`data-blok-database-view-option-label`,``),i.textContent=this.translate(e.labelKey,``),r.appendChild(i);let a=document.createElement(`span`);return a.setAttribute(`data-blok-database-view-option-desc`,``),a.textContent=this.translate(e.descriptionKey,``),r.appendChild(a),t.appendChild(r),t.addEventListener(`click`,()=>{this.onSelect(e.type)}),t}close(){if(this.popover!==null){var e;let t=this.popover;this.popover=null,t.destroy(),(e=this.onClose)==null||e.call(this)}}destroy(){this.close()}},Dr=10,Or={board:o.o,list:o.xt},kr=class{constructor(e){var t;this.element=null,this.barEl=null,this.addBtnEl=null,this.viewPopover=null,this.contextPopover=null,this.overflowDropdownEl=null,this.boundOverflowClose=null,this.moreBtnEl=null,this.isDragging=!1,this.dragViewId=``,this.dragStartX=0,this.ghostEl=null,this.options=e,this.views=e.views,this.onReorder=e.onReorder,this.readOnly=(t=e.readOnly)==null?!1:t,this.boundDragMove=this.handleDragMove.bind(this),this.boundDragUp=this.handleDragUp.bind(this),this.boundDragCancel=this.cleanupDrag.bind(this),this.boundDragKeyDown=e=>{e.key===`Escape`&&this.cleanupDrag()}}render(){let e=document.createElement(`div`);e.setAttribute(`data-blok-database-tab-bar`,``),this.barEl=e,this.element=e;let t=[...this.options.views].sort((e,t)=>e.position<t.position?-1:1);for(let n of t)e.appendChild(this.createTab(n));let n=document.createElement(`button`);return n.setAttribute(`data-blok-database-add-view`,``),n.innerHTML=o.en,n.addEventListener(`click`,()=>{this.openViewPopover(n)}),this.addBtnEl=n,this.readOnly||e.appendChild(n),e.addEventListener(`click`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(!(t instanceof HTMLElement))return;let n=t.getAttribute(`data-view-id`);n!==null&&(t.hasAttribute(`data-active`)||this.options.onTabClick(n))}),e.addEventListener(`contextmenu`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(!(t instanceof HTMLElement))return;e.preventDefault();let n=t.getAttribute(`data-view-id`);n!==null&&this.openContextPopover(t,n)}),e.addEventListener(`dblclick`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(!(t instanceof HTMLElement))return;let n=t.getAttribute(`data-view-id`);n!==null&&this.openContextPopover(t,n)}),e.addEventListener(`pointerdown`,e=>{let t=e.target.closest(`[data-blok-database-tab]`);if(t===null)return;let n=t.getAttribute(`data-view-id`);n!==null&&(this.dragViewId=n,this.dragStartX=e.clientX,this.isDragging=!1,document.addEventListener(`pointermove`,this.boundDragMove),document.addEventListener(`pointerup`,this.boundDragUp),document.addEventListener(`pointercancel`,this.boundDragCancel),document.addEventListener(`keydown`,this.boundDragKeyDown))}),typeof ResizeObserver<`u`&&new ResizeObserver(()=>{var e;if(this.element===null)return;let t=Array.from(this.element.querySelectorAll(`[data-blok-database-tab]`));for(let e of t)e.style.display=``;(e=this.moreBtnEl)==null||e.remove(),this.moreBtnEl=null;let n=this.element.clientWidth,r=t.findIndex((e,r)=>40+t.slice(0,r+1).reduce((e,t)=>e+t.offsetWidth+2,0)>n),i=r===-1?t.length:r;i<t.length&&this.handleOverflow(i)}).observe(e),e}createTab(e){var t;let n=document.createElement(`div`);n.setAttribute(`data-blok-database-tab`,``),n.setAttribute(`data-view-id`,e.id),e.id===this.options.activeViewId&&n.setAttribute(`data-active`,``);let r=document.createElement(`span`);r.innerHTML=(t=Or[e.type])==null?``:t,n.appendChild(r);let i=document.createElement(`span`);return i.setAttribute(`data-blok-database-tab-name`,``),i.textContent=e.name,n.appendChild(i),n}openContextPopover(e,n){this.closeContextPopover();let r=this.options.views.length>1,i=(e,t)=>{var n,r;return(n=(r=this.options.api)==null?void 0:r.i18n.t(e))==null?t:n},a=[{icon:o.Bt,title:i(`tools.database.renameView`,`Rename`),closeOnActivate:!0,onActivate:()=>{this.startTabRename(e,n)}},{icon:o.w,title:i(`tools.database.duplicateView`,`Duplicate`),closeOnActivate:!0,onActivate:()=>{this.options.onDuplicate(n)}}],s=r?[{type:t.hr.Separator},{icon:o.gn,title:i(`tools.database.deleteView`,`Delete`),isDestructive:!0,closeOnActivate:!0,onActivate:()=>{this.options.onDelete(n)}}]:[];this.contextPopover=new t._t({trigger:e,width:`auto`,minWidth:`160px`,autoFocusFirstItem:!1,items:[...a,...s]}),this.contextPopover.on(t.xt.Closed,()=>{if(this.contextPopover!==null){let e=this.contextPopover;this.contextPopover=null,e.destroy()}}),this.contextPopover.show()}closeContextPopover(){if(this.contextPopover!==null){let e=this.contextPopover;this.contextPopover=null,e.destroy()}}startTabRename(e,t){var n,r,i;let a=e.querySelector(`[data-blok-database-tab-name]`);if(!(a instanceof HTMLElement))return;let o=(n=a.textContent)==null?``:n;lr({target:a,currentValue:o,label:(r=(i=this.options.api)==null?void 0:i.i18n.t(`tools.database.renameView`))==null?`Rename`:r,configureInput:e=>{e.setAttribute(`data-blok-database-tab-rename-input`,``)},buildRestored:e=>{let t=document.createElement(`span`);return t.setAttribute(`data-blok-database-tab-name`,``),t.textContent=e,t},onCommit:e=>{e!==o&&this.options.onRename(t,e)}})}openViewPopover(e){var t;this.viewPopover!==null&&this.viewPopover.destroy(),e.setAttribute(`data-popover-open`,``),(t=this.barEl)==null||t.setAttribute(`data-popover-open`,``),this.viewPopover=new Er({onSelect:e=>{this.options.onAddView(e)},onClose:()=>{var t;e.removeAttribute(`data-popover-open`),(t=this.barEl)==null||t.removeAttribute(`data-popover-open`)},api:this.options.api}),this.viewPopover.open(e)}handleOverflow(e){var t;if(this.element===null)return;(t=this.moreBtnEl)==null||t.remove();let n=[...this.views].sort((e,t)=>e.position<t.position?-1:1).length-e;if(n<=0)return;let r=Array.from(this.element.querySelectorAll(`[data-blok-database-tab]`));for(let t of r.slice(e))t.style.display=`none`;let i=document.createElement(`div`);i.setAttribute(`data-blok-database-tab-more`,``),i.textContent=`${n} more...`,i.style.cursor=`pointer`,i.addEventListener(`click`,()=>{this.openOverflowDropdown(i)});let a=this.element.querySelector(`[data-blok-database-add-view]`);a===null?this.element.appendChild(i):this.element.insertBefore(i,a),this.moreBtnEl=i}openOverflowDropdown(e){var t;this.closeOverflowDropdown();let n=document.createElement(`div`);n.setAttribute(`data-blok-popover`,``),n.setAttribute(`data-blok-database-tab-overflow-dropdown`,``),n.style.position=`fixed`,n.style.zIndex=`1000`;let r=e.getBoundingClientRect();n.style.top=`${r.bottom+4}px`,n.style.left=`${r.left}px`;let i=[...this.views].sort((e,t)=>e.position<t.position?-1:1);for(let e of i){var a;let t=document.createElement(`div`);t.setAttribute(`data-blok-database-tab-overflow-item`,``),t.setAttribute(`data-view-id`,e.id),e.id===this.options.activeViewId&&t.setAttribute(`data-active`,``);let r=document.createElement(`span`);r.innerHTML=(a=Or[e.type])==null?``:a,t.appendChild(r);let i=document.createElement(`span`);i.textContent=e.name,t.appendChild(i),t.addEventListener(`click`,()=>{e.id!==this.options.activeViewId&&this.options.onTabClick(e.id),this.closeOverflowDropdown()}),n.appendChild(t)}let o=document.createElement(`div`);o.setAttribute(`data-blok-database-tab-overflow-separator`,``),n.appendChild(o);let s=(t=this.element)==null?void 0:t.querySelector(`[data-blok-database-add-view]`),c=document.createElement(`div`);c.setAttribute(`data-blok-database-tab-overflow-new`,``),c.textContent=`+ New view`,c.addEventListener(`click`,()=>{this.closeOverflowDropdown(),s!=null&&this.openViewPopover(s)}),n.appendChild(c),document.body.appendChild(n),this.overflowDropdownEl=n,this.boundOverflowClose=t=>{let r=t.target;!n.contains(r)&&!e.contains(r)&&this.closeOverflowDropdown()},document.addEventListener(`mousedown`,this.boundOverflowClose)}closeOverflowDropdown(){this.overflowDropdownEl!==null&&(this.overflowDropdownEl.remove(),this.overflowDropdownEl=null),this.boundOverflowClose!==null&&(document.removeEventListener(`mousedown`,this.boundOverflowClose),this.boundOverflowClose=null)}handleDragMove(e){let t=Math.abs(e.clientX-this.dragStartX);if(!(!this.isDragging&&t<Dr)){if(!this.isDragging){var n,r;this.isDragging=!0,(n=this.element)==null||n.setAttribute(`data-dragging`,``);let e=(r=this.element)==null?void 0:r.querySelector(`[data-view-id="${this.dragViewId}"]`);if(e!==null){this.ghostEl=e.cloneNode(!0),this.ghostEl.setAttribute(`data-blok-database-tab-ghost`,``),this.ghostEl.style.position=`fixed`,this.ghostEl.style.pointerEvents=`none`,this.ghostEl.style.zIndex=`50`,this.ghostEl.style.opacity=`0.7`;let t=e.getBoundingClientRect();this.ghostEl.style.top=`${t.top}px`,this.ghostEl.style.width=`${t.width}px`,document.body.appendChild(this.ghostEl),e.style.opacity=`0.4`}}this.ghostEl!==null&&(this.ghostEl.style.left=`${e.clientX-50}px`)}}handleDragUp(e){var t,n,r,i;if(!this.isDragging){this.removeDragListeners();return}let a=Array.from((t=(n=this.element)==null?void 0:n.querySelectorAll(`[data-blok-database-tab]`))==null?[]:t).filter(e=>e.getAttribute(`data-view-id`)!==this.dragViewId),o=a.findIndex(t=>{let n=t.getBoundingClientRect();return e.clientX<(n.left+n.right)/2}),s=o>=0?a[o].getAttribute(`data-view-id`):null,c=o>0?a[o-1].getAttribute(`data-view-id`):o===-1&&a.length>0?a[a.length-1].getAttribute(`data-view-id`):null,l=[...this.views].sort((e,t)=>e.position<t.position?-1:1),u=s===null?null:l.find(e=>e.id===s),d=c===null?null:l.find(e=>e.id===c),f=ir((r=d==null?void 0:d.position)==null?null:r,(i=u==null?void 0:u.position)==null?null:i);this.cleanupDrag(),this.onReorder(this.dragViewId,f)}cleanupDrag(){var e,t;this.ghostEl!==null&&(this.ghostEl.remove(),this.ghostEl=null),(e=this.element)==null||e.removeAttribute(`data-dragging`);let n=(t=this.element)==null?void 0:t.querySelector(`[data-view-id="${this.dragViewId}"]`);n!==null&&(n.style.opacity=``),this.isDragging=!1,this.removeDragListeners()}removeDragListeners(){document.removeEventListener(`pointermove`,this.boundDragMove),document.removeEventListener(`pointerup`,this.boundDragUp),document.removeEventListener(`pointercancel`,this.boundDragCancel),document.removeEventListener(`keydown`,this.boundDragKeyDown)}setReadOnly(e){this.readOnly!==e&&(this.readOnly=e,!(this.barEl===null||this.addBtnEl===null)&&(e?this.addBtnEl.remove():this.addBtnEl.isConnected||this.barEl.appendChild(this.addBtnEl)))}destroy(){this.cleanupDrag(),this.closeContextPopover(),this.closeOverflowDropdown(),this.viewPopover!==null&&(this.viewPopover.destroy(),this.viewPopover=null)}getAddBtnEl(){return this.addBtnEl}},Ar=class{constructor({data:e,config:t,api:n,block:r,readOnly:i}){var a,o;this.element=null,this.titleElement=null,this.titleRowElement=null,this.boardContainer=null,this.tabBar=null,this.cardDrag=null,this.columnDrag=null,this.columnControls=null,this.listRowDrag=null,this.cardDrawer=null,this.keyboard=null,this.cardMenuPopover=null,this.api=n,this.block=r,this.readOnly=i,this.config=t==null?{}:t,this.title=(a=e==null?void 0:e.title)==null?``:a,this.model=new or(e);let s=this.model.getViews();this.activeViewId=(o=e==null?void 0:e.activeViewId)==null?s.length>0?s[0].id:``:o,this.activateView(this.activeViewId)}static get toolbox(){return[{icon:o.O,titleKey:`database`,name:`database`,searchTerms:[`database`,`kanban`,`board`,`cards`,`columns`]},{icon:o.o,titleKey:`board`,name:`board`,searchTerms:[`board`,`kanban`,`cards`,`columns`,`database`]}]}static get isReadOnlySupported(){return!0}render(){let e=document.createElement(`div`);e.setAttribute(`data-blok-tool`,`database`),e.setAttribute(`data-blok-database-wrapper`,``),e.style.display=`flex`,e.style.flexDirection=`column`,this.element=e;let t=this.createTitleElement();this.titleElement=t;let n=document.createElement(`div`);n.setAttribute(`data-blok-database-title-row`,``),n.appendChild(t),this.titleRowElement=n,e.appendChild(n),this.tabBar=this.createTabBar(),e.appendChild(this.tabBar.render()),this.syncTitleRowAddBtn();let r=document.createElement(`div`);r.setAttribute(`data-blok-database-board-container`,``),r.style.overflow=`hidden`,r.style.position=`relative`,this.boardContainer=r,e.appendChild(r),this.syncRowsFromBlocks();let i=this.renderActiveView();return r.appendChild(i),this.readOnly||(this.attachViewListeners(i),this.initSubsystems(i)),e}createTitleElement(){let e=document.createElement(`div`);return e.setAttribute(`data-blok-database-title`,``),e.textContent=this.title,e.style.fontSize=`1.5rem`,e.style.fontWeight=`600`,e.style.lineHeight=`1.3`,e.style.color=`var(--blok-text-primary)`,e.style.outline=`none`,e.style.cursor=`text`,e.style.wordBreak=`break-word`,e.className=t.Qn(`always`).join(` `),t.er(e,`New database`),this.readOnly||(e.setAttribute(`contenteditable`,`true`),e.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===`Tab`)&&(t.preventDefault(),e.blur())})),e}rendered(){this.block.stretched=!0;let e=this.model.getOrderedRows().length>0;this.syncRowsFromBlocks(),!e&&this.model.getOrderedRows().length>0&&this.rerenderView(),this.config.adapter!==void 0&&this.loadFromBackend()}async loadFromBackend(){var e=this;let t=await e.sync.syncLoadDatabase();if(t===void 0)return;e.model.hydrate(t);let n=e.model.getViews();n.length>0&&!n.some(t=>t.id===e.activeViewId)&&(e.activeViewId=n[0].id),e.rerenderView()}save(e){var t,r;let i=(t=(r=this.titleElement)==null?void 0:r.textContent)==null?this.title:t;return n.t(n.t({},this.model.snapshot()),{},{title:i,activeViewId:this.activeViewId})}validate(e){var t,n,r,i;let a=((t=(n=e.schema)==null?void 0:n.filter(e=>e.type===`title`).length)==null?0:t)===1,o=e.views!==void 0&&e.views.length>0,s=(r=(i=e.views)==null?void 0:i.filter(e=>e.type===`board`).every(e=>e.groupBy!==void 0))==null?!0:r;return a&&o&&s}destroy(){var e,t,n,r,i,a,o;(e=this.cardDrag)==null||e.destroy(),(t=this.columnDrag)==null||t.destroy(),(n=this.columnControls)==null||n.destroy(),(r=this.listRowDrag)==null||r.destroy(),this.listRowDrag=null,(i=this.cardDrawer)==null||i.destroy(),(a=this.keyboard)==null||a.destroy(),(o=this.tabBar)==null||o.destroy(),this.sync.flushPendingUpdates(),this.sync.flushPendingPropertyUpdates(),this.sync.destroy(),this.element=null,this.boardContainer=null,this.tabBar=null}setReadOnly(e){var t;this.readOnly!==e&&(this.readOnly=e,this.titleElement!==null&&this.titleElement.setAttribute(`contenteditable`,e?`false`:`true`),(t=this.tabBar)==null||t.setReadOnly(e),this.syncTitleRowAddBtn(),this.rerenderView())}getToolbarAnchorElement(){var e;return(e=this.titleElement)==null?void 0:e}syncRowsFromBlocks(){let e=this.api.blocks.getChildren(this.block.id).filter(e=>e.name===`database-row`).map(e=>{var t,n,r,i;return{id:e.id,position:(t=(n=e.preservedData)==null?void 0:n.position)==null?``:t,properties:(r=(i=e.preservedData)==null?void 0:i.properties)==null?{}:r}});this.model.setRows(e)}deleteRowBlock(e){let t=this.api.blocks.getBlockIndex(e);t!==void 0&&this.api.blocks.delete(t),this.syncRowsFromBlocks()}updateRowBlock(e,t){let n=this.api.blocks.getChildren(this.block.id).find(t=>t.id===e);n!==void 0&&(n.call(`updateProperties`,t),n.dispatchChange()),this.syncRowsFromBlocks()}moveRowBlock(e,t){let n=this.api.blocks.getChildren(this.block.id).find(t=>t.id===e);n!==void 0&&(n.call(`updatePosition`,{position:t}),n.dispatchChange()),this.syncRowsFromBlocks()}activateView(e){this.model.getView(e)!==void 0&&(this.activeViewId=e,this.sync=new pr(this.config.adapter,e=>{let t=String(e).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`);this.api.notifier.show({message:t,style:`error`})}))}switchView(e){var t,n,r,i,a;if(e===this.activeViewId||this.boardContainer===null)return;(t=this.cardDrag)==null||t.destroy(),(n=this.columnDrag)==null||n.destroy(),(r=this.columnControls)==null||r.destroy(),(i=this.listRowDrag)==null||i.destroy(),(a=this.keyboard)==null||a.destroy(),this.cardDrag=null,this.columnDrag=null,this.columnControls=null,this.listRowDrag=null,this.keyboard=null,this.sync.flushPendingUpdates(),this.sync.flushPendingPropertyUpdates(),this.sync.destroy(),this.activateView(e),this.boardContainer.innerHTML=``,this.syncRowsFromBlocks();let o=this.renderActiveView();this.boardContainer.appendChild(o),this.readOnly||(this.attachViewListeners(o),this.initSubsystems(o)),this.rebuildTabBar()}addView(e){let t=this.model.getSchema().find(e=>e.type===`select`),n=e===`list`?`List`:`Board`,r=this.model.addView(n,e,{groupBy:e===`board`?t==null?void 0:t.id:void 0});this.sync.syncCreateView({id:r.id,name:r.name,type:r.type,position:r.position,groupBy:r.groupBy}),this.switchView(r.id)}renameView(e,t){this.model.updateView(e,{name:t}),this.sync.syncUpdateView({viewId:e,changes:{name:t}})}duplicateView(e){let t=this.model.getView(e);if(t===void 0)return;let n=this.model.addView(t.name,t.type,{groupBy:t.groupBy,sorts:[...t.sorts],filters:[...t.filters],visibleProperties:[...t.visibleProperties]});this.sync.syncCreateView({id:n.id,name:n.name,type:n.type,position:n.position,groupBy:n.groupBy}),this.switchView(n.id)}deleteView(e){let t=this.model.getViews();if(t.length<=1)return;let n=t.findIndex(t=>t.id===e);if(n===-1)return;let r=e===this.activeViewId;if(this.model.deleteView(e),this.sync.syncDeleteView({viewId:e}),r){let e=this.model.getViews(),t=Math.min(n,e.length-1);this.switchView(e[t].id)}else this.rebuildTabBar()}reorderView(e,t){this.model.updateView(e,{position:t}),this.sync.syncUpdateView({viewId:e,changes:{position:t}}),this.rebuildTabBar()}rebuildTabBar(){if(this.element===null||this.tabBar===null)return;let e=this.element.querySelector(`[data-blok-database-tab-bar]`);this.tabBar.destroy(),this.tabBar=this.createTabBar();let t=this.tabBar.render();e===null?this.element.insertBefore(t,this.boardContainer):e.replaceWith(t),this.syncTitleRowAddBtn()}syncTitleRowAddBtn(){if(this.element===null||this.titleRowElement===null||this.tabBar===null)return;let e=this.element.querySelector(`[data-blok-database-tab-bar]`),t=this.model.getViews(),n=this.tabBar.getAddBtnEl();t.length===1&&!this.readOnly&&n!==null?(this.titleRowElement.appendChild(n),this.titleRowElement.setAttribute(`data-single-view`,``),e instanceof HTMLElement&&(e.style.display=`none`)):(this.titleRowElement.removeAttribute(`data-single-view`),this.titleRowElement.querySelectorAll(`[data-blok-database-add-view]`).forEach(e=>{e.remove()}),!this.readOnly&&n!==null&&e!==null&&!e.contains(n)&&e.appendChild(n),e instanceof HTMLElement&&(e.style.display=t.length>=2?``:`none`))}createTabBar(){return new kr({views:this.model.getViews(),activeViewId:this.activeViewId,onTabClick:e=>this.switchView(e),onAddView:e=>this.addView(e),onRename:(e,t)=>this.renameView(e,t),onDuplicate:e=>this.duplicateView(e),onDelete:e=>this.deleteView(e),onReorder:(e,t)=>this.reorderView(e,t),readOnly:this.readOnly})}renderActiveView(){var e;let t=this.model.getView(this.activeViewId),n=this.model.getSchema().find(e=>e.type===`title`),r=(e=n==null?void 0:n.id)==null?``:e,i=t==null?void 0:t.groupBy;return(t==null?void 0:t.type)===`list`?this.renderListView(r,i,t):this.renderBoardView(r,i)}renderBoardView(e,t){let n=t===void 0?[]:this.model.getSelectOptions(t),r=t===void 0?new Map:this.model.getRowsGroupedBy(t);return this.view=new ur({readOnly:this.readOnly,i18n:this.api.i18n,options:n,getRows:e=>{var t;return(t=r.get(e))==null?[]:t},titlePropertyId:e,onTitleEdit:(e,t)=>{var n;let r=this.model.getSchema().find(e=>e.type===`title`),i=(n=r==null?void 0:r.id)==null?``:n;this.updateRowBlock(e,{[i]:t}),this.sync.syncUpdateRow({rowId:e,properties:{[i]:t}})}}),this.view.createView()}renderListView(e,t,n){let r=this.model.getSchema();if(t!==void 0){let i=this.model.getSelectOptions(t),a=this.model.getRowsGroupedBy(t);this.view=new dr({readOnly:this.readOnly,i18n:this.api.i18n,rows:[],titlePropertyId:e,schema:r,visiblePropertyIds:n.visibleProperties,options:i,getRows:e=>{var t;return(t=a.get(e))==null?[]:t}})}else this.view=new dr({readOnly:this.readOnly,i18n:this.api.i18n,rows:this.model.getOrderedRows(),titlePropertyId:e,schema:r,visiblePropertyIds:n.visibleProperties});return this.view.createView()}attachViewListeners(e){e.addEventListener(`click`,t=>{let n=t.target,r=n.closest(`[data-blok-database-add-card]`);if(r!==null){let t=r.getAttribute(`data-option-id`);t!==null&&this.handleAddRow(t,e);return}if(n.closest(`[data-blok-database-add-column]`)!==null){this.handleAddColumn(e);return}let i=n.closest(`[data-blok-database-card-menu]`);if(i instanceof HTMLElement){let n=i.getAttribute(`data-row-id`),r=i.closest(`[data-blok-database-card]`);n!==null&&r instanceof HTMLElement&&(t.stopPropagation(),this.openCardMenu(i,r,n,e));return}let a=n.closest(`[data-blok-database-add-row]`);if(a!==null){let t=a.getAttribute(`data-option-id`);this.handleAddListRow(t,e);return}let o=n.closest(`[data-blok-database-delete-row]`);if(o!==null){let n=o.getAttribute(`data-row-id`);n!==null&&(t.stopPropagation(),this.deleteRowBlock(n),this.view.removeRow(e,n),this.sync.syncDeleteRow({rowId:n}));return}let s=n.closest(`[data-blok-database-list-row]`);if(s!==null){let e=s.getAttribute(`data-row-id`);e!==null&&this.handleRowClick(e);return}let c=n.closest(`[data-blok-database-card]`);if(c!==null){let e=c.getAttribute(`data-row-id`);e!==null&&this.handleRowClick(e)}})}openCardMenu(e,n,r,i){n.setAttribute(`data-popover-open`,``),this.cardMenuPopover=new t._t({trigger:e,width:`auto`,minWidth:`140px`,autoFocusFirstItem:!1,items:[{type:t.hr.Default,title:this.api.i18n.t(`tools.database.deleteCard`),icon:o.gn,onActivate:()=>{this.deleteRowBlock(r),this.view.removeRow(i,r),this.sync.syncDeleteRow({rowId:r})}}]}),this.cardMenuPopover.on(t.xt.Closed,()=>{if(n.removeAttribute(`data-popover-open`),this.cardMenuPopover!==null){let e=this.cardMenuPopover;this.cardMenuPopover=null,e.destroy()}}),this.cardMenuPopover.show()}handleAddListRow(e,t){var n,r;let i=this.model.getSchema().find(e=>e.type===`title`),a=(n=i==null?void 0:i.id)==null?``:n,o=this.model.getView(this.activeViewId),s=o==null?void 0:o.groupBy,c={[a]:``};s!==void 0&&e!==null&&(c[s]=e);let l=this.model.createRowData(c),u=(r=this.api.blocks.getBlockIndex(this.block.id))==null?0:r;this.api.blocks.insert(`database-row`,{properties:l.properties,position:l.position},{},u+1,!1,!1,l.id),this.api.blocks.setBlockParent(l.id,this.block.id),this.syncRowsFromBlocks(),this.view.appendRow(t,l),this.sync.syncCreateRow({id:l.id,properties:l.properties,position:l.position})}handleAddRow(e,t){var n,r;let i=this.model.getView(this.activeViewId),a=i==null?void 0:i.groupBy;if(a===void 0)return;let o=this.model.getSchema().find(e=>e.type===`title`),s=(n=o==null?void 0:o.id)==null?``:n,c=this.model.createRowData({[s]:``,[a]:e}),l=(r=this.api.blocks.getBlockIndex(this.block.id))==null?0:r;this.api.blocks.insert(`database-row`,{properties:c.properties,position:c.position},{},l+1,!1,!1,c.id),this.api.blocks.setBlockParent(c.id,this.block.id),this.syncRowsFromBlocks();let u=t.querySelector(`[data-option-id="${e}"][data-blok-database-column]`);if(u===null)return;let d=u.querySelector(`[data-blok-database-cards]`);d!==null&&(this.view.appendRow(d,c),this.sync.syncCreateRow({id:c.id,properties:c.properties,position:c.position}))}handleAddColumn(e){var n,r;let i=this.model.getView(this.activeViewId),a=i==null?void 0:i.groupBy;if(a===void 0)return;let o=this.model.getProperty(a);if((o==null?void 0:o.config)===void 0)return;let s=o.config.options,c=s.length>0?s[s.length-1].position:null,l={id:t.qr(),label:this.api.i18n.t(`tools.database.columnTitlePlaceholder`),position:or.positionBetween(c,null)};this.model.updateProperty(a,{config:{options:[...s,l]}}),(n=(r=this.view).appendGroup)==null||n.call(r,e,l),this.sync.syncUpdateProperty({propertyId:a,changes:{config:{options:[...s,l]}}})}initSubsystems(e){var t;if(this.element===null)return;let r=this.model.getView(this.activeViewId),i=(r==null?void 0:r.type)===`list`,a=this.model.getSchema().find(e=>e.type===`title`),o=(t=a==null?void 0:a.id)==null?``:t,s=this.model.getSchema().find(e=>e.type===`richText`),c=s==null?void 0:s.id;i?this.listRowDrag=new br({wrapper:e,onDrop:e=>this.handleListRowDrop(e)}):(this.cardDrag=new hr({wrapper:e,onDrop:e=>this.handleRowDrop(e)}),this.columnDrag=new _r({wrapper:e,onDrop:e=>this.handleGroupDrop(e)}),this.columnControls=new vr({i18n:this.api.i18n,onRename:(e,t)=>this.handleOptionRename(e,t),onDelete:t=>this.handleOptionDelete(t,e),onRenameInput:(e,t)=>{this.handleOptionRename(e,t)},onRenameCommit:(e,t)=>{let r=this.model.getView(this.activeViewId),i=r==null?void 0:r.groupBy;if(i===void 0)return;let a=this.model.getProperty(i);if((a==null?void 0:a.config)===void 0)return;let o=a.config.options.map(r=>r.id===e?n.t(n.t({},r),{},{label:t}):r);this.sync.syncUpdatePropertyDebounced({propertyId:i,changes:{config:{options:o}}})}}),this.makeColumnHeadersEditable(e)),this.cardDrawer===null&&(this.cardDrawer=new Cr({wrapper:this.element,readOnly:this.readOnly,i18n:this.api.i18n,toolsConfig:this.api.tools.getToolsConfig(),titlePropertyId:o,descriptionPropertyId:c,schema:this.model.getSchema(),onTitleChange:(e,t)=>{var n,r,i;this.updateRowBlock(e,{[o]:t});let a=(n=(r=this.boardContainer)==null?void 0:r.querySelector(`[data-blok-database-board]`))==null?(i=this.boardContainer)==null?void 0:i.querySelector(`[data-blok-database-list]`):n;a!=null&&this.view.updateRowTitle(a,e,t),this.sync.syncUpdateRow({rowId:e,properties:{[o]:t}})},onDescriptionChange:(e,t)=>{c!==void 0&&(this.updateRowBlock(e,{[c]:t}),this.sync.syncUpdateRow({rowId:e,properties:{[c]:t}}))},onClose:()=>{},onAddProperty:e=>{var t;let n=this.model.addProperty(`Property`,e);this.sync.syncCreateProperty({id:n.id,name:n.name,type:n.type,position:n.position}),(t=this.cardDrawer)==null||t.refreshSchema(this.model.getSchema())}})),this.keyboard=new wr({wrapper:e,onEscape:()=>{var e;return(e=this.cardDrawer)!=null&&e.isOpen?(this.cardDrawer.close(),!0):!1}}),this.keyboard.attach(),e.addEventListener(`pointerdown`,e=>{let t=e.target,n=t.closest(`[data-blok-database-column-header]`);if(n!==null){var r;if(t.closest(`[data-blok-database-column-pill]`)!==null)return;let a=n.closest(`[data-blok-database-column]`),o=(r=a==null?void 0:a.getAttribute(`data-option-id`))==null?null:r;if(o!==null){var i;e.preventDefault(),e.stopPropagation(),(i=this.columnDrag)==null||i.beginTracking(o,e.clientX,e.clientY)}return}let a=t.closest(`[data-blok-database-card]`);if(a!==null){let t=a.getAttribute(`data-row-id`);if(t!==null){var o;e.preventDefault(),e.stopPropagation(),(o=this.cardDrag)==null||o.beginTracking(t,e.clientX,e.clientY)}return}let s=t.closest(`[data-blok-database-list-row]`);if(s!==null){let t=s.getAttribute(`data-row-id`);if(t!==null){var c;e.preventDefault(),e.stopPropagation(),(c=this.listRowDrag)==null||c.beginTracking(t,e.clientX,e.clientY)}}})}makeColumnHeadersEditable(e){if(this.columnControls===null)return;let t=Array.from(e.querySelectorAll(`[data-blok-database-column-header]`));for(let e of t){let t=e.closest(`[data-blok-database-column]`),n=t==null?void 0:t.getAttribute(`data-option-id`);n!=null&&(this.columnControls.makePillTitleEditable(e,n),this.columnControls.appendDeleteButton(e,n))}}handleListRowDrop(e){var t,n;let{rowId:r,beforeRowId:i,afterRowId:a}=e,o=i===null?void 0:this.model.getRow(i),s=a===null?void 0:this.model.getRow(a),c=or.positionBetween((t=s==null?void 0:s.position)==null?null:t,(n=o==null?void 0:o.position)==null?null:n);this.moveRowBlock(r,c),this.rerenderView(),this.sync.syncMoveRow({rowId:r,position:c})}handleRowDrop(e){var t,n;let{rowId:r,toOptionId:i,beforeRowId:a,afterRowId:o}=e,s=this.model.getView(this.activeViewId),c=s==null?void 0:s.groupBy;if(c===void 0)return;let l=a===null?void 0:this.model.getRow(a),u=o===null?void 0:this.model.getRow(o),d=or.positionBetween((t=u==null?void 0:u.position)==null?null:t,(n=l==null?void 0:l.position)==null?null:n);this.updateRowBlock(r,{[c]:i}),this.moveRowBlock(r,d),this.rerenderView(),this.sync.syncUpdateRow({rowId:r,properties:{[c]:i}}),this.sync.syncMoveRow({rowId:r,position:d})}handleGroupDrop(e){var t,r;let{optionId:i,beforeOptionId:a,afterOptionId:o}=e,s=this.model.getView(this.activeViewId),c=s==null?void 0:s.groupBy;if(c===void 0)return;let l=this.model.getProperty(c);if((l==null?void 0:l.config)===void 0)return;let u=[...l.config.options],d=u.findIndex(e=>e.id===i);if(d===-1)return;let f=a===null?void 0:u.find(e=>e.id===a),p=o===null?void 0:u.find(e=>e.id===o),m=or.positionBetween((t=p==null?void 0:p.position)==null?null:t,(r=f==null?void 0:f.position)==null?null:r);u[d]=n.t(n.t({},u[d]),{},{position:m}),this.model.updateProperty(c,{config:{options:u}}),this.moveColumnInDom(i,a),this.sync.syncUpdateProperty({propertyId:c,changes:{config:{options:u}}})}moveColumnInDom(e,t){var n;let r=(n=this.boardContainer)==null?void 0:n.querySelector(`[data-blok-database-board]`);if(r==null)return;let i=r.querySelector(`[data-option-id="${e}"]`);if(i!==null)if(t!==null){let e=r.querySelector(`[data-option-id="${t}"]`);e!==null&&r.insertBefore(i,e)}else{let e=r.querySelector(`[data-blok-database-add-column]`);e===null?r.appendChild(i):r.insertBefore(i,e)}}handleOptionRename(e,t){let r=this.model.getView(this.activeViewId),i=r==null?void 0:r.groupBy;if(i===void 0)return;let a=this.model.getProperty(i);if((a==null?void 0:a.config)===void 0)return;let o=a.config.options.map(r=>r.id===e?n.t(n.t({},r),{},{label:t}):r);this.model.updateProperty(i,{config:{options:o}}),this.sync.syncUpdateProperty({propertyId:i,changes:{config:{options:o}}})}handleOptionDelete(e,t){var n,r,i;let a=this.model.getView(this.activeViewId),o=a==null?void 0:a.groupBy;if(o===void 0)return;let s=this.model.getProperty(o);if((s==null?void 0:s.config)===void 0||s.config.options.length<=1)return;let c=(n=this.model.getRowsGroupedBy(o).get(e))==null?[]:n;for(let e of c)this.deleteRowBlock(e.id),this.sync.syncDeleteRow({rowId:e.id});let l=s.config.options.filter(t=>t.id!==e);this.model.updateProperty(o,{config:{options:l}}),(r=(i=this.view).removeGroup)==null||r.call(i,t,e),this.sync.syncUpdateProperty({propertyId:o,changes:{config:{options:l}}})}handleRowClick(e){var t;let n=this.model.getRow(e);n!==void 0&&((t=this.cardDrawer)==null||t.open(n))}rerenderView(){var e,t,n,r,i,a,o,s,c,l;if(this.boardContainer===null)return;let u=(e=(t=(n=this.boardContainer.querySelector(`[data-blok-database-board]`))==null?void 0:n.closest(`[data-blok-tool]`))==null?this.boardContainer.querySelector(`[data-blok-database-list]`):t)==null?this.boardContainer.firstElementChild:e,d=this.boardContainer.querySelector(`[data-blok-database-board]`),f=(r=d==null?void 0:d.scrollLeft)==null?0:r;(i=this.cardDrag)==null||i.destroy(),(a=this.columnDrag)==null||a.destroy(),(o=this.columnControls)==null||o.destroy(),(s=this.listRowDrag)==null||s.destroy(),this.listRowDrag=null,(c=this.cardDrawer)==null||c.destroy(),this.cardDrawer=null,(l=this.keyboard)==null||l.destroy(),this.syncRowsFromBlocks();let p=this.renderActiveView();u==null?this.boardContainer.appendChild(p):u.replaceWith(p);let m=p.querySelector(`[data-blok-database-board]`);m!==null&&(m.scrollLeft=f),this.attachViewListeners(p),this.initSubsystems(p)}},jr=class{constructor({data:e}){var t,n;this._data={properties:(t=e.properties)==null?{}:t,position:(n=e.position)==null?`a0`:n}}render(){let e=document.createElement(`div`);return e.setAttribute(`data-blok-tool`,`database-row`),e}save(e){return{properties:this._data.properties,position:this._data.position}}validate(e){return e.properties!==null&&e.properties!==void 0&&typeof e.properties==`object`}updateProperties(e){Object.assign(this._data.properties,e)}updatePosition(e){this._data.position=e.position}getProperties(){return this._data.properties}getPosition(){return this._data.position}static get isReadOnlySupported(){return!0}setReadOnly(e){}},Mr=class{constructor(e){this.element=null}render(){let e=document.createElement(`div`);e.className=r.l(`py-3`,`leading-[1px]`);let t=document.createElement(`hr`);return t.setAttribute(`data-blok-divider`,``),t.className=r.l(`border-t`,`border-border-primary`,`border-b-0`,`border-l-0`,`border-r-0`),e.appendChild(t),this.element=e,e}save(){return{}}validate(e){return!0}static get toolbox(){return{icon:o.A,titleKey:`divider`,shortcut:`---`,searchTerms:[`hr`,`line`,`separator`,`rule`,`---`,`divider`,`delimiter`,`splitter`],searchTermKeys:[`divider`,`separator`,`delimiter`,`splitter`]}}static get isReadOnlySupported(){return!0}static get pasteConfig(){return{tags:[`HR`],patterns:{divider:/^-{3,}$/}}}onPaste(e){}setReadOnly(e){}static get sanitize(){return{}}},Nr=`tools.quote.placeholder`,Pr=[`border-l-[3px]`,`border-current`,`pl-[0.9em]`,`pr-[0.9em]`,`py-[0.2em]`,`leading-[1.5]`,`outline-hidden`,`mt-[0.3em]`,`mb-[0.3em]`],Fr=`text-[1.2em]`,Ir=class{constructor({data:e,api:t,readOnly:n}){var r,i;this.placeholderCleanup=null,this._element=null,this.api=t,this.readOnly=n,this._data={text:(r=e==null?void 0:e.text)==null?``:r,size:(i=e==null?void 0:e.size)==null?`default`:i},this.onKeyUp=this.onKeyUp.bind(this)}onKeyUp(e){e.code!==`Backspace`&&e.code!==`Delete`||this._element&&this._element.textContent===``&&(this._element.innerHTML=``)}drawView(){let e=document.createElement(`blockquote`);return e.className=r.l(this.api.styles.block,Pr,t.Qn(`focus`),this._data.size===`large`?Fr:``),e.setAttribute(t.yi.tool,`quote`),e.contentEditable=`false`,this._data.text?e.innerHTML=this._data.text:this.readOnly&&(e.innerHTML=`<br>`),this.readOnly||(e.contentEditable=`true`,e.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(e,this.api.i18n.t(Nr),`data-blok-placeholder-active`,`focus`)),e}render(){return this._element||(this._element=this.drawView()),this._element}setReadOnly(e){this._element&&(this.readOnly=e,e?(this._element.contentEditable=`false`,this._element.removeEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup&&(this.placeholderCleanup(),this.placeholderCleanup=null),t.$n(this._element)&&(this._element.innerHTML=`<br>`)):(this._element.contentEditable=`true`,this._element.addEventListener(`keyup`,this.onKeyUp),this.placeholderCleanup=t.er(this._element,this.api.i18n.t(Nr),`data-blok-placeholder-active`,`focus`),this._element.innerHTML===`<br>`&&(this._element.innerHTML=``)))}save(e){return{text:t.Wr(e.innerHTML),size:this._data.size}}validate(e){return e.text.trim()!==``}merge(e){if(!this._element)return;this._data.text+=e.text;let t=document.createElement(`div`);t.innerHTML=e.text.trim();let n=document.createDocumentFragment();n.append(...Array.from(t.childNodes)),this._element.appendChild(n),this._element.normalize()}renderSettings(){return[{icon:o.nn,title:this.api.i18n.t(`tools.quote.size`),name:`quote-size`,children:{items:[{icon:o.nn,title:this.api.i18n.t(`tools.quote.defaultSize`),onActivate:()=>this.setSize(`default`),closeOnActivate:!0,isActive:this._data.size===`default`},{icon:o.nn,title:this.api.i18n.t(`tools.quote.largeSize`),onActivate:()=>this.setSize(`large`),closeOnActivate:!0,isActive:this._data.size===`large`}]}}]}setSize(e){this._data.size=e,this._element&&(this._element.className=r.l(this.api.styles.block,Pr,t.Qn(`focus`),e===`large`?Fr:``))}onPaste(e){let t=e.detail;if(!(`data`in t))return;let n=t.data;this._data={text:n.innerHTML,size:this._data.size},this._element&&(this._element.innerHTML=this._data.text||``)}static get toolbox(){return{icon:o.nn,titleKey:`quote`,shortcut:`"`,searchTerms:[`quote`,`blockquote`,`citation`],searchTermKeys:[`quote`,`blockquote`,`citation`]}}static get conversionConfig(){return{export:`text`,import:`text`}}static get sanitize(){return{text:{br:!0,b:!0,i:!0,a:!0,mark:{style:!0}}}}static get isReadOnlySupported(){return!0}static get pasteConfig(){return{tags:[`BLOCKQUOTE`]}}};function Lr(e){let n=document.createElement(`div`);n.className=t.rn,n.setAttribute(`role`,`group`),n.setAttribute(`data-blok-testid`,`code-view-mode`);let r=[{mode:`code`,icon:o.b,label:e.code},{mode:`preview`,icon:o.tn,label:e.preview},{mode:`split`,icon:o.cn,label:e.split}];for(let{mode:e,icon:i,label:a}of r){let r=document.createElement(`button`);r.type=`button`,r.className=t.nn,r.innerHTML=i,r.setAttribute(`aria-label`,a),r.setAttribute(`aria-pressed`,`false`),r.setAttribute(`data-blok-testid`,`code-mode-${e}`),r.setAttribute(`data-mode`,e),n.appendChild(r)}let i=document.createElement(`div`);i.className=t.Jt,i.setAttribute(`data-blok-testid`,`code-preview`);let a=document.createElement(`div`);return a.className=t.$t,a.setAttribute(`data-blok-testid`,`code-split-container`),{viewModeContainer:n,previewElement:i,splitContainer:a}}function Rr(e,n){let r=Array.from(e.querySelectorAll(`[data-mode]`));for(let e of r){let r=e.getAttribute(`data-mode`)===n;e.setAttribute(`aria-pressed`,String(r)),e.className=r?t.tn:t.nn}}function zr(e){var n,r,i;let{code:a,languageName:s,readOnly:c,copyLabel:l,previewable:u,viewModeLabels:d}=e,f=document.createElement(`div`);f.className=t.in;let p=document.createElement(`div`);p.className=t.Ht;let m=document.createElement(`button`);m.type=`button`,m.className=t.Gt,m.setAttribute(`aria-haspopup`,`listbox`),m.setAttribute(`data-blok-testid`,`code-language-btn`);let h=document.createElement(`span`);h.textContent=s,m.appendChild(h);let g=document.createElement(`span`);g.className=`inline-flex items-center ml-0.5 -mr-0.5`,g.innerHTML=o.h,m.appendChild(g);let _=document.createElement(`div`);_.className=`flex-1`;let v=!c&&d?Lr(d):null,y=(n=v==null?void 0:v.viewModeContainer)==null?null:n,b=(r=v==null?void 0:v.previewElement)==null?null:r,x=(i=v==null?void 0:v.splitContainer)==null?null:i;y&&(y.hidden=!u);let S=document.createElement(`button`);S.type=`button`,S.className=u?t.zt:t.Bt,S.innerHTML=o.w,S.setAttribute(`aria-label`,l),S.setAttribute(`data-blok-testid`,`code-copy-btn`);let C=document.createElement(`code`);C.className=t.At,C.setAttribute(`data-blok-testid`,`code-content`),a&&(C.textContent=a),c||(C.setAttribute(`contenteditable`,`plaintext-only`),C.setAttribute(`spellcheck`,`false`));let w=document.createElement(`div`);w.className=t.Rt,w.setAttribute(`aria-hidden`,`true`),w.setAttribute(`data-blok-testid`,`code-gutter`);let T=a?a.split(`
2
2
  `).length:1;Array.from({length:T},(e,n)=>{let r=document.createElement(`div`);r.className=t.Lt,r.textContent=String(n+1),r.setAttribute(`data-line-index`,String(n)),w.appendChild(r)}),p.appendChild(m),p.appendChild(_);let E=document.createElement(`div`);E.className=t.Vt,y&&E.appendChild(y),E.appendChild(S),p.appendChild(E);let D=document.createElement(`pre`);D.className=`flex-1 min-w-0`,D.appendChild(C);let O=document.createElement(`div`);if(O.className=t.jt,O.appendChild(w),O.appendChild(D),f.appendChild(p),x&&b){let e=document.createElement(`div`);e.className=t.en,e.appendChild(O);let n=document.createElement(`div`);n.className=t.en,n.appendChild(b),x.appendChild(e),x.appendChild(n),f.appendChild(x)}else f.appendChild(O);return{wrapper:f,languageButton:m,copyButton:S,preElement:D,codeElement:C,gutterElement:w,viewModeContainer:y,previewElement:b,splitContainer:x}}function Br(e,t,n){return e.key===`Enter`&&e.shiftKey?(n(),!0):e.key===`Enter`?(Hr(t),!0):e.key===`Tab`&&!e.shiftKey?(Gr(),!0):e.key===`Tab`&&e.shiftKey?(qr(t),!0):!1}var Vr={"{":`}`,"(":`)`,"[":`]`};function Hr(e){var t;let n=window.getSelection();if(!n||n.rangeCount===0)return;let r=n.getRangeAt(0),i=Wr(e,r.startContainer,r.startOffset),a=Wr(e,r.endContainer,r.endOffset),o=(t=e.textContent)==null?``:t,s=o.substring(0,i),c=o.substring(a),l=s.lastIndexOf(`
3
3
  `)+1,u=s.substring(l).match(/^[ \t]*/),d=u?u[0]:``,f=Vr[s.length>0?s.charAt(s.length-1):``],p=c.charAt(0),{inserted:m,caretDelta:h}=Ur({indent:d,afterOpener:f!==void 0,betweenMatchedPair:f!==void 0&&p===f});for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(s+m+c)),Jr(e,i+h)}function Ur(e){let{indent:t,afterOpener:n,betweenMatchedPair:r}=e;return r?{inserted:`\n${t} \n${t}`,caretDelta:1+t.length+2}:n?{inserted:`\n${t} `,caretDelta:1+t.length+2}:{inserted:`\n${t}`,caretDelta:1+t.length}}function Wr(e,t,n){let r=document.createRange();return r.selectNodeContents(e),r.setEnd(t,n),r.toString().length}function Gr(){let e=window.getSelection();if(!e||e.rangeCount===0)return;let t=e.getRangeAt(0);t.deleteContents();let n=document.createTextNode(` `);t.insertNode(n),t.setStartAfter(n),t.collapse(!0),e.removeAllRanges(),e.addRange(t)}function Kr(e){let t=Math.min(2,e.length),n=e.substring(0,t).match(/^ */);return n?n[0].length:0}function qr(e){var t;let n=window.getSelection();if(!n||n.rangeCount===0)return;let r=n.getRangeAt(0),i=(t=e.textContent)==null?``:t,a=r.cloneRange();a.selectNodeContents(e),a.setEnd(r.startContainer,r.startOffset);let o=a.toString().length,s=i.lastIndexOf(`
4
4
  `,o-1)+1,c=Kr(i.substring(s));if(c===0)return;let l=i.substring(0,s)+i.substring(s+c);for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(l)),Jr(e,Math.max(s,o-c))}function Jr(e,t){let n=window.getSelection();if(!n)return;let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),i=e=>{var a;let o=r.nextNode();if(!o)return;let s=((a=o.textContent)==null?``:a).length;if(e+s>=t){let r=document.createRange();r.setStart(o,t-e),r.collapse(!0),n.removeAllRanges(),n.addRange(r);return}i(e+s)};i(0)}var Yr={katexPromise:null,cssInjected:!1};function Xr(){if(Yr.cssInjected)return;Yr.cssInjected=!0;let e=document.createElement(`link`);e.rel=`stylesheet`,e.setAttribute(`data-katex-css`,``),e.href=`https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css`,document.head.appendChild(e)}async function Zr(){return Yr.katexPromise||(Yr.katexPromise=Promise.resolve().then(()=>require(`./katex-vNDqqRZg.cjs`)).then(e=>e.n).then(e=>e.default)),Yr.katexPromise}async function Qr(e,t={}){Xr();try{var n;return(await Zr()).renderToString(e,{throwOnError:!1,trust:!1,strict:`ignore`,maxSize:50,maxExpand:1e3,displayMode:(n=t.displayMode)==null?!0:n})}catch(e){return`<span class="text-red-500 text-sm">${e instanceof Error?e.message:`Unknown error`}</span>`}}var $r={mermaidPromise:null,initialized:!1};async function ei(){$r.mermaidPromise||($r.mermaidPromise=Promise.resolve().then(()=>require(`./mermaid.core-B82wmj00.cjs`)).then(e=>e.default));let e=await $r.mermaidPromise;return $r.initialized||($r.initialized=!0,e.initialize({startOnLoad:!1,securityLevel:`strict`})),e}async function ti(e){try{let t=await ei();if(await t.parse(e,{suppressErrors:!0})===!1)return`<span class="text-red-500 text-sm">Invalid Mermaid syntax</span>`;let n=`mermaid-${crypto.randomUUID()}`;return(await t.render(n,e)).svg}catch(e){return`<span class="text-red-500 text-sm">${e instanceof Error?e.message:`Unknown error`}</span>`}}var ni=e.t(((e,t)=>{var n=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/\u00a0/g,` `)},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,`__id`,{value:++n}),e.__id},clone:function e(t,n){n=n||{};var r,a;switch(i.util.type(t)){case`Object`:if(a=i.util.objId(t),n[a])return n[a];for(var o in r={},n[a]=r,t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case`Array`:return a=i.util.objId(t),n[a]?n[a]:(r=[],n[a]=r,t.forEach(function(t,i){r[i]=e(t,n)}),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return`none`},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,`gi`),``),e.classList.add(`language-`+n)},currentScript:function(){if(typeof document>`u`)return null;if(document.currentScript&&document.currentScript.tagName===`SCRIPT`)return document.currentScript;try{throw Error()}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName(`script`);for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r=`no-`+t;e;){var i=e.classList;if(i.contains(t))return!0;if(i.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=i.util.clone(i.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r=r||i.languages;var a=r[e],o={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(o[c]=n[c]);n.hasOwnProperty(s)||(o[s]=a[s])}var l=r[e];return r[e]=o,i.languages.DFS(i.languages,function(t,n){n===l&&t!=e&&(this[t]=o)}),o},DFS:function e(t,n,r,a){a=a||{};var o=i.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var c=t[s],l=i.util.type(c);l===`Object`&&!a[o(c)]?(a[o(c)]=!0,e(c,n,null,a)):l===`Array`&&!a[o(c)]&&(a[o(c)]=!0,e(c,n,s,a))}}},plugins:{},highlightAll:function(e,t){i.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:`code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code`};i.hooks.run(`before-highlightall`,r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),i.hooks.run(`before-all-elements-highlight`,r);for(var a=0,o;o=r.elements[a++];)i.highlightElement(o,t===!0,r.callback)},highlightElement:function(t,n,r){var a=i.util.getLanguage(t),o=i.languages[a];i.util.setLanguage(t,a);var s=t.parentElement;s&&s.nodeName.toLowerCase()===`pre`&&i.util.setLanguage(s,a);var c={element:t,language:a,grammar:o,code:t.textContent};function l(e){c.highlightedCode=e,i.hooks.run(`before-insert`,c),c.element.innerHTML=c.highlightedCode,i.hooks.run(`after-highlight`,c),i.hooks.run(`complete`,c),r&&r.call(c.element)}if(i.hooks.run(`before-sanity-check`,c),s=c.element.parentElement,s&&s.nodeName.toLowerCase()===`pre`&&!s.hasAttribute(`tabindex`)&&s.setAttribute(`tabindex`,`0`),!c.code){i.hooks.run(`complete`,c),r&&r.call(c.element);return}if(i.hooks.run(`before-highlight`,c),!c.grammar){l(i.util.encode(c.code));return}if(n&&e.Worker){var u=new Worker(i.filename);u.onmessage=function(e){l(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else l(i.highlight(c.code,c.grammar,c.language))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(i.hooks.run(`before-tokenize`,r),!r.grammar)throw Error(`The language "`+r.language+`" has no grammar.`);return r.tokens=i.tokenize(r.code,r.grammar),i.hooks.run(`after-tokenize`,r),a.stringify(i.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var i=new c;return l(i,i.head,e),s(e,i,t,i.head,0),d(i)},hooks:{all:{},add:function(e,t){var n=i.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=i.hooks.all[e];if(!(!n||!n.length))for(var r=0,a;a=n[r++];)a(t)}},Token:a};e.Prism=i;function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||``).length|0}a.stringify=function e(t,n){if(typeof t==`string`)return t;if(Array.isArray(t)){var r=``;return t.forEach(function(t){r+=e(t,n)}),r}var a={type:t.type,content:e(t.content,n),tag:`span`,classes:[`token`,t.type],attributes:{},language:n},o=t.alias;o&&(Array.isArray(o)?Array.prototype.push.apply(a.classes,o):a.classes.push(o)),i.hooks.run(`wrap`,a);var s=``;for(var c in a.attributes)s+=` `+c+`="`+(a.attributes[c]||``).replace(/"/g,`&quot;`)+`"`;return`<`+a.tag+` class="`+a.classes.join(` `)+`"`+s+`>`+a.content+`</`+a.tag+`>`};function o(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var a=i[1].length;i.index+=a,i[0]=i[0].slice(a)}return i}function s(e,t,n,r,c,d){for(var f in n)if(!(!n.hasOwnProperty(f)||!n[f])){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+`,`+m)return;var h=p[m],g=h.inside,_=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var b=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,b+`g`)}for(var x=h.pattern||h,S=r.next,C=c;S!==t.tail&&!(d&&C>=d.reach);C+=S.value.length,S=S.next){var w=S.value;if(t.length>e.length)return;if(!(w instanceof a)){var T=1,E;if(v){if(E=o(x,C,e,_),!E||E.index>=e.length)break;var D=E.index,O=E.index+E[0].length,k=C;for(k+=S.value.length;D>=k;)S=S.next,k+=S.value.length;if(k-=S.value.length,C=k,S.value instanceof a)continue;for(var A=S;A!==t.tail&&(k<O||typeof A.value==`string`);A=A.next)T++,k+=A.value.length;T--,w=e.slice(C,k),E.index-=C}else if(E=o(x,0,w,_),!E)continue;var D=E.index,j=E[0],M=w.slice(0,D),N=w.slice(D+j.length),P=C+w.length;d&&P>d.reach&&(d.reach=P);var F=S.prev;M&&(F=l(t,F,M),C+=M.length),u(t,F,T);var I=new a(f,g?i.tokenize(j,g):j,y,j);if(S=l(t,F,I),N&&l(t,S,N),T>1){var L={cause:f+`,`+m,reach:P};s(e,t,n,S.prev,C,L),d&&L.reach>d.reach&&(d.reach=L.reach)}}}}}}function c(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function u(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}function d(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}if(!e.document)return e.addEventListener&&(i.disableWorkerMessageHandler||e.addEventListener(`message`,function(t){var n=JSON.parse(t.data),r=n.language,a=n.code,o=n.immediateClose;e.postMessage(i.highlight(a,i.languages[r],r)),o&&e.close()},!1)),i;var f=i.util.currentScript();f&&(i.filename=f.src,f.hasAttribute(`data-manual`)&&(i.manual=!0));function p(){i.manual||i.highlightAll()}if(!i.manual){var m=document.readyState;m===`loading`||m===`interactive`&&f&&f.defer?document.addEventListener(`DOMContentLoaded`,p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return i}(typeof window<`u`?window:typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope?self:{});t!==void 0&&t.exports&&(t.exports=n),typeof global<`u`&&(global.Prism=n),n.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:`attr-equals`},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:`named-entity`},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside[`attr-value`].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside[`internal-subset`].inside=n.languages.markup,n.hooks.add(`wrap`,function(e){e.type===`entity`&&(e.attributes.title=e.content.replace(/&amp;/,`&`))}),Object.defineProperty(n.languages.markup.tag,`addInlined`,{value:function(e,t){var r={};r[`language-`+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:n.languages[t]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i[`language-`+t]={pattern:/[\s\S]+/,inside:n.languages[t]};var a={};a[e]={pattern:RegExp(`(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)`.replace(/__/g,function(){return e}),`i`),lookbehind:!0,greedy:!0,inside:i},n.languages.insertBefore(`markup`,`cdata`,a)}}),Object.defineProperty(n.languages.markup.tag,`addAttribute`,{value:function(e,t){n.languages.markup.tag.inside[`special-attr`].push({pattern:RegExp(`(^|["'\\s])(?:`+e+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,`i`),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,`language-`+t],inside:n.languages[t]},punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}}}})}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend(`markup`,{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+t.source+`)*?(?:;|(?=\\s*\\{))`),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:`selector`},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp(`\\burl\\((?:`+t.source+`|(?:[^\\\\\\r\\n()"']|\\\\[\\s\\S])*)\\)`,`i`),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp(`^`+t.source+`$`),alias:`url`}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+`)*(?=\\s*\\{)`),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined(`style`,`css`),n.tag.addAttribute(`style`,`css`))})(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend(`clike`,{"class-name":[n.languages.clike[`class-name`],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(`(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])`),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript[`class-name`][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,n.languages.insertBefore(`javascript`,`keyword`,{regex:{pattern:RegExp(`((?:^|[^$\\w\\xA0-\\uFFFF."'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))`),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:`language-regex`,inside:n.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:`function`},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore(`javascript`,`string`,{hashbang:{pattern:/^#!.*/,greedy:!0,alias:`comment`},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:`string`},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:`punctuation`},rest:n.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:`property`}}),n.languages.insertBefore(`javascript`,`operator`,{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:`property`}}),n.languages.markup&&(n.languages.markup.tag.addInlined(`script`,`javascript`),n.languages.markup.tag.addAttribute(`on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)`,`javascript`)),n.languages.js=n.languages.javascript,(function(){if(n===void 0||typeof document>`u`)return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e=`Loading…`,t=function(e,t){return`✖ Error `+e+` while fetching file: `+t},r=`✖ Error: File does not exist or is empty`,i={js:`javascript`,py:`python`,rb:`ruby`,ps1:`powershell`,psm1:`powershell`,sh:`bash`,bat:`batch`,h:`c`,tex:`latex`},a=`data-src-status`,o=`loading`,s=`loaded`,c=`failed`,l=`pre[data-src]:not([`+a+`="`+s+`"]):not([`+a+`="`+o+`"])`;function u(e,n,i){var a=new XMLHttpRequest;a.open(`GET`,e,!0),a.onreadystatechange=function(){a.readyState==4&&(a.status<400&&a.responseText?n(a.responseText):a.status>=400?i(t(a.status,a.statusText)):i(r))},a.send(null)}function d(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||``);if(t){var n=Number(t[1]),r=t[2],i=t[3];return r?i?[n,Number(i)]:[n,void 0]:[n,n]}}n.hooks.add(`before-highlightall`,function(e){e.selector+=`, `+l}),n.hooks.add(`before-sanity-check`,function(t){var r=t.element;if(r.matches(l)){t.code=``,r.setAttribute(a,o);var f=r.appendChild(document.createElement(`CODE`));f.textContent=e;var p=r.getAttribute(`data-src`),m=t.language;if(m===`none`){var h=(/\.(\w+)$/.exec(p)||[,`none`])[1];m=i[h]||h}n.util.setLanguage(f,m),n.util.setLanguage(r,m);var g=n.plugins.autoloader;g&&g.loadLanguages(m),u(p,function(e){r.setAttribute(a,s);var t=d(r.getAttribute(`data-range`));if(t){var i=e.split(/\r\n?|\n/g),o=t[0],c=t[1]==null?i.length:t[1];o<0&&(o+=i.length),o=Math.max(0,Math.min(o-1,i.length)),c<0&&(c+=i.length),c=Math.max(0,Math.min(c,i.length)),e=i.slice(o,c).join(`