kritzel-stencil 0.0.128 → 0.0.129
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/kritzel-brush-style_22.cjs.entry.js +35 -17
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +17 -4
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +29 -13
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +4 -0
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +5 -2
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +5 -8
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +6 -3
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +4 -4
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-hSuNJiIq.js → p-C6OxvITm.js} +31 -15
- package/dist/components/p-C6OxvITm.js.map +1 -0
- package/dist/components/p-CJKA5zIE.js +10 -0
- package/dist/components/p-CJKA5zIE.js.map +1 -0
- package/dist/components/{p-DV4ERZv5.js → p-Dozs0Zfn.js} +8 -5
- package/dist/components/p-Dozs0Zfn.js.map +1 -0
- package/dist/components/{p-sQmW5NRu.js → p-aaxf-h5S.js} +10 -7
- package/dist/components/p-aaxf-h5S.js.map +1 -0
- package/dist/components/{p-BB22cVkU.js → p-yZFrTtMQ.js} +4 -9
- package/dist/components/p-yZFrTtMQ.js.map +1 -0
- package/dist/esm/kritzel-brush-style_22.entry.js +35 -17
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/p-43202395.entry.js +2 -0
- package/dist/stencil/p-43202395.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +3 -1
- package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +2 -1
- package/package.json +1 -1
- package/dist/components/p-BB22cVkU.js.map +0 -1
- package/dist/components/p-DV4ERZv5.js.map +0 -1
- package/dist/components/p-hSuNJiIq.js.map +0 -1
- package/dist/components/p-sQmW5NRu.js.map +0 -1
- package/dist/stencil/p-4a0009e7.entry.js +0 -2
- package/dist/stencil/p-4a0009e7.entry.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,H as s,g as o}from"./p-NiIEUDzj.js";import{K as n,a as r,b as l,c as a,D as h,d as c,e as d,f as u,g as f,h as b,i as p,j as v,O as g,k,R as y,l as x,B as w,A as m,m as z,n as C,U as I,o as j,p as M,q as D}from"./p-J4NpPimy.js";const B=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.brush-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:default;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}";const S=class{constructor(i){t(this,i);this.typeChange=e(this,"typeChange");this.type="pen";this.brushOptions=[{value:"pen",label:"Pen"},{value:"highlighter",label:"Highlighter"}]}handleDropdownValueChange(t){this.typeChange.emit(t.detail)}render(){const t=this.brushOptions.map((t=>({value:t.value,label:t.label})));return i(s,{key:"d7af382fe6f613aa16a5146785990ad2faa17f60"},i("kritzel-dropdown",{key:"6d6d330d415c210058834b2968774b3db2ab7fc4",options:t,value:this.type,onValueChanged:t=>this.handleDropdownValueChange(t)},i("button",{key:"c9fb33795b8e25f68c1d2ae248dc82a6de29e199",class:"brush-style-button",slot:"prefix"},i("kritzel-icon",{key:"975c95b545a1c27ae2984405ac298592eec9743d",name:this.type,size:16}))))}};S.style=B;const E=":host{display:flex}.checkerboard-bg{background:repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;position:relative;overflow:hidden}.color-circle{width:24px;height:24px;border-radius:50%;box-sizing:border-box;display:block}.color-circle.white{border:1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc)}";const T=class{constructor(e){t(this,e);this.size=24}isLightColor(t){if(!t)return false;let e=0,i=0,s=0;let o=t.startsWith("#")?t.slice(1):t;if(o.length===3){e=parseInt(o[0]+o[0],16);i=parseInt(o[1]+o[1],16);s=parseInt(o[2]+o[2],16)}else if(o.length===6){e=parseInt(o.substring(0,2),16);i=parseInt(o.substring(2,4),16);s=parseInt(o.substring(4,6),16)}else{return false}if(isNaN(e)||isNaN(i)||isNaN(s)){return false}const n=.299*e+.587*i+.114*s;return n>220}render(){const t=this.isLightColor(this.value);return i(s,{key:"1468f3502f7d10d182ac72a05ce4b1e520353f8a"},i("div",{key:"d30d47667b1b72a970c4ee0da887dd59a663eae7",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},i("div",{key:"073fd85967e53b609103a9fe47028bcda849e5ec",class:{"color-circle":true,white:t},style:{backgroundColor:this.value,width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",position:"absolute",top:"0",left:"0",display:"inline-block"}})))}};T.style=E;const $=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;width:100%;box-sizing:border-box}.color-grid{width:100%;display:grid;grid-template-columns:repeat(6, 32px);gap:8px;justify-items:center;overflow:hidden;height:40px;transition:height 0.1s ease-in-out}.color-grid.expanded{height:500px}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.color-container:hover{background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.color-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-color-palette-selected-background-color)}";const O=class{constructor(i){t(this,i);this.colorChange=e(this,"colorChange");this.colors=[];this.selectedColor=null;this.isExpanded=false;this.isOpaque=false}handleColorClick(t){this.selectedColor=t;this.colorChange.emit(t)}calculateHeight(){const t=6;const e=32;const i=8;const s=Math.ceil(this.colors.length/t);return`${s*e+(s-1)*i}px`}render(){const t=this.isExpanded?this.colors:this.colors.slice(0,6);const e=this.isExpanded?this.calculateHeight():"32px";return i(s,{key:"dddc32b0904800092d45727e833181af32eb8766"},i("div",{key:"293cbed8e9c62b5f409b7dcdca0df5de9d65b758",class:{"color-grid":true,expanded:this.isExpanded},style:{height:e}},t.map((t=>i("div",{class:{"color-container":true,selected:this.selectedColor===t},onClick:()=>this.handleColorClick(t)},i("kritzel-color",{value:t}))))))}};O.style=$;const W=":host{display:block}.menu-container{display:flex;flex-direction:column;background-color:var(--kritzel-context-menu-background-color, #ffffff);border-radius:var(--kritzel-context-menu-border-radius, 12px);box-shadow:var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));border:var(--kritzel-context-menu-border, 1px solid #ebebeb);padding:var(--kritzel-context-menu-padding,4px)}.menu-item{display:flex;align-items:center;gap:var(--kritzel-context-menu-item-gap, 8px);background:none;border:none;text-align:left;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 12px);cursor:pointer;font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);white-space:nowrap;-webkit-tap-highlight-color:transparent}.menu-item:not(.disabled):hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa);cursor:default}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.label{flex-grow:1}";const F=class{constructor(i){t(this,i);this.actionSelected=e(this,"actionSelected");this.processedItems=[]}componentWillLoad(){this.updateMenuItems()}onItemsChanged(){this.updateMenuItems()}handleItemClick(t,e){if(!e){this.actionSelected.emit(t)}}async evaluateProperty(t,e){if(typeof t==="boolean"){return t}if(typeof t==="function"){return await Promise.resolve(t(null,this.objects))}return e}async updateMenuItems(){const t=[];for(const e of this.items){const i=await this.evaluateProperty(e.visible,true);if(i){const i=await this.evaluateProperty(e.disabled,false);t.push({item:e,isDisabled:i})}}this.processedItems=t}render(){return i(s,{key:"96569454f806a6d17380315b4d0200236fe22550"},i("div",{key:"0e5899a2901e1e9ab9d657824e105121ce785bdc",class:"menu-container"},this.processedItems.map((({item:t,isDisabled:e},s)=>i("button",{key:`${t.label}-${s}`,class:{"menu-item":true,disabled:e},onClick:()=>this.handleItemClick(t,e),onTouchStart:()=>this.handleItemClick(t,e),disabled:e},t.icon&&i("kritzel-icon",{name:t.icon,size:16}),i("span",{class:"label"},t.label))))))}get hostElement(){return o(this)}static get watchers(){return{items:["onItemsChanged"]}}};F.style=W;const A=":host{display:flex;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const R=class{constructor(i){t(this,i);this.toolChange=e(this,"toolChange");this.isExpanded=false;this.palette=[]}handleToolChange(t){this.palette=t.palettes[t.type]}componentWillLoad(){this.palette=this.tool.palettes[this.tool.type]}handleToggleExpand(){this.isExpanded=!this.isExpanded}handleTypeChange(t){this.palette=this.tool.palettes[t.detail];this.tool.type=t.detail;this.tool.color=this.palette[0];this.toolChange.emit(this.tool)}handleColorChange(t){this.tool.color=t.detail;this.toolChange.emit(this.tool)}handleSizeChange(t){this.tool.size=t.detail;this.toolChange.emit(this.tool)}render(){return i(s,{key:"d099d1c6722678fdfb06c34eb0860e8819dd17ca"},i("div",{key:"0856f0150666415ee452a0fcec5c76b6d25b82c4",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},i("kritzel-brush-style",{key:"364e6026d1b280a02c3618c7ded11f40c7e3cba4",type:this.tool.type,onTypeChange:t=>this.handleTypeChange(t)}),i("button",{key:"fc58c9ceb9e92ef8c79836e686b9a64653f91210",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},i("kritzel-icon",{key:"ab219c72a9ace56853c725ba75767be2079a3c10",name:this.isExpanded?"chevron-up":"chevron-down"}))),i("kritzel-color-palette",{key:"8757c754217a3de88dad2c465ff748571716ae64",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:true,onColorChange:t=>this.handleColorChange(t)}),i("kritzel-stroke-size",{key:"056b227dd9a92b06588816739b55a80f5ce80835",selectedSize:this.tool.size,onSizeChange:t=>this.handleSizeChange(t)}))}static get watchers(){return{tool:["handleToolChange"]}}};R.style=A;const P=":host{display:block;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const _=class{constructor(i){t(this,i);this.toolChange=e(this,"toolChange");this.isExpanded=false}handleToggleExpand(){this.isExpanded=!this.isExpanded}handleFamilyChange(t){this.tool.fontFamily=t.detail;this.toolChange.emit(this.tool)}handleColorChange(t){this.tool.fontColor=t.detail;this.toolChange.emit(this.tool)}handleSizeChange(t){this.tool.fontSize=t.detail;this.toolChange.emit(this.tool)}render(){return i(s,{key:"f0d35cc43f1fe58a5a26f21dad99f1a733b66cce"},i("div",{key:"efc7d31c11460015a41185b4215e9ff45970abdd",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},i("kritzel-font-family",{key:"7f7d3ccb061d4b0e5e0f181ba4224f3de430a88c",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:t=>this.handleFamilyChange(t)}),i("button",{key:"6676fcfa245874d54fa9933888c242c6f611c58c",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand"},i("kritzel-icon",{key:"0734f636889c77f9087a2de2899a28ebd8df30a2",name:this.isExpanded?"chevron-up":"chevron-down"}))),i("kritzel-color-palette",{key:"68373ef79578d6a73028da681f1e3b0e8e3e5874",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:t=>this.handleColorChange(t)}),i("kritzel-font-size",{key:"56e6828f6ceaac3d37910b7d092a30bacbd84519",selectedSize:this.tool.fontSize,fontFamily:this.tool.fontFamily,onSizeChange:t=>this.handleSizeChange(t)}))}};_.style=P;class L{static isTouchDevice(){return window.matchMedia("(any-pointer: coarse)").matches}}const V=":host{display:flex;flex-direction:column;user-select:none}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;outline:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;font-weight:bold}.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.mobile) .kritzel-control:hover{background-color:unset}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}:host(.mobile) .kritzel-control:active{background-color:unset}.kritzel-control.selected,.kritzel-control.selected:hover,.kritzel-control.selected:active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-divider{width:var(--kritzel-controls-divider-width, 1px);height:var(--kritzel-controls-divider-height, 24px);background-color:var(--kritzel-controls-divider-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;width:40px;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.kritzel-config{display:flex;justify-content:center;align-items:center;cursor:pointer}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.font-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{position:fixed;bottom:66px;left:50%;transform:translateX(-50%);z-index:10001}";const N=class{constructor(i){t(this,i);this.isControlsReady=e(this,"isControlsReady");this.controls=[];this.activeControl=null;this.isUtilityPanelVisible=true;this.firstConfig=null;this.isTooltipVisible=false;this.isTouchDevice=L.isTouchDevice();this.kritzelEngine=null}handleDocumentClick(t){const e=t.target;if(!this.kritzelEngine||e.closest(".kritzel-tooltip")){return}this.isTooltipVisible=false}handleKeyDown(t){var e;if(t.key==="Escape"){t.preventDefault();this.closeTooltip();(e=this.kritzelEngine)===null||e===void 0?void 0:e.enable()}}async handleActiveToolChange(t){var e;this.activeControl=this.controls.find((e=>e.tool===t.detail))||null;await((e=this.kritzelEngine)===null||e===void 0?void 0:e.setFocus())}async closeTooltip(){this.isTooltipVisible=false}get activeToolAsTextTool(){var t;return(t=this.activeControl)===null||t===void 0?void 0:t.tool}get activeToolAsBrushTool(){var t;return(t=this.activeControl)===null||t===void 0?void 0:t.tool}async componentWillLoad(){await this.initializeEngine();await this.initializeTools();this.isControlsReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngine=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngine){throw new Error("kritzel-engine not found in parent element.")}}async initializeTools(){for(const t of this.controls){if(t.type==="tool"&&t.tool){t.tool=await this.kritzelEngine.registerTool(t.name,t.tool,t.config)}if(t.type==="tool"&&t.isDefault&&t.tool){await this.kritzelEngine.changeActiveTool(t.tool);this.activeControl=t}if(t.type==="config"){if(this.firstConfig===null){this.firstConfig=t}else{console.warn("Only one config control is allowed. The first one will be used.")}}}}async handleControlClick(t){this.activeControl=t;if(this.activeControl.type==="tool"){await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}}handleConfigClick(t){var e;t.stopPropagation();this.isTooltipVisible=!this.isTooltipVisible;(e=this.kritzelEngine)===null||e===void 0?void 0:e.disable()}async handleToolChange(t){this.activeControl=Object.assign(Object.assign({},this.activeControl),{tool:t.detail});await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}render(){var t,e;const o=((t=this.activeControl)===null||t===void 0?void 0:t.config)===undefined||((e=this.activeControl)===null||e===void 0?void 0:e.config)===null;return i(s,{key:"af04746b6eaa04a51482cd9d25ba3ab303d631f1",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&i("kritzel-utility-panel",{key:"d6ecb1087a332162f3fc809ed4321fc48f72c3e7",style:{position:"absolute",bottom:"56px",left:"12px"},onUndo:()=>{var t;return(t=this.kritzelEngine)===null||t===void 0?void 0:t.undo()},onRedo:()=>{var t;return(t=this.kritzelEngine)===null||t===void 0?void 0:t.redo()},onDelete:()=>{var t;return(t=this.kritzelEngine)===null||t===void 0?void 0:t.delete()}}),i("div",{key:"34723e47249d53fd544848d2d577deba4df1f131",class:"kritzel-controls"},this.controls.map((t=>{var e,s,l,a,h,c,d,u;if(t.type==="tool"){return i("button",{class:{"kritzel-control":true,selected:((e=this.activeControl)===null||e===void 0?void 0:e.name)===(t===null||t===void 0?void 0:t.name)},key:t.name,onClick:e=>{var i;return(i=this.handleControlClick)===null||i===void 0?void 0:i.call(this,t)}},i("kritzel-icon",{name:t.icon}))}if(t.type==="divider"){return i("div",{class:"kritzel-divider",key:t.name})}if(t.type==="config"&&t.name===((s=this.firstConfig)===null||s===void 0?void 0:s.name)&&this.activeControl){return i("div",{class:"kritzel-config-container",key:t.name},i("kritzel-tooltip",{isVisible:this.isTooltipVisible,anchorElement:(l=this.host.shadowRoot)===null||l===void 0?void 0:l.querySelector(".kritzel-config-container")},i("div",{style:{width:"294px",height:"100%"}},this.activeControl.name==="brush"&&i("kritzel-control-brush-config",{tool:this.activeToolAsBrushTool,onToolChange:t=>{var e;return(e=this.handleToolChange)===null||e===void 0?void 0:e.call(this,t)}}),this.activeControl.name==="text"&&i("kritzel-control-text-config",{tool:this.activeToolAsTextTool,onToolChange:t=>{var e;return(e=this.handleToolChange)===null||e===void 0?void 0:e.call(this,t)}}))),i("div",{class:"kritzel-config",onClick:t=>{var e;return(e=this.handleConfigClick)===null||e===void 0?void 0:e.call(this,t)},style:{cursor:this.activeControl.config?"pointer":"default",pointerEvents:o?"none":"auto"}},this.activeControl.tool instanceof n&&i("div",{class:"color-container"},i("kritzel-color",{value:(a=this.activeToolAsBrushTool)===null||a===void 0?void 0:a.color,size:(h=this.activeToolAsBrushTool)===null||h===void 0?void 0:h.size,style:{borderRadius:"50%",border:"none"}})),this.activeControl.tool instanceof r&&i("div",{class:"font-container"},i("kritzel-font",{fontFamily:(c=this.activeToolAsTextTool)===null||c===void 0?void 0:c.fontFamily,size:(d=this.activeToolAsTextTool)===null||d===void 0?void 0:d.fontSize,color:(u=this.activeToolAsTextTool)===null||u===void 0?void 0:u.fontColor})),o&&i("div",{class:"no-config"})))}}))))}static get assetsDirs(){return["../assets"]}get host(){return o(this)}};N.style=V;const H=":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";const Y=class{constructor(e){t(this,e);this.cursorTrailPoints=[];this.isLeftButtonDown=false;this.TRAIL_DURATION_MS=100;this.MAX_TRAIL_POINTS=50}componentDidLoad(){this.trailCleanupIntervalId=window.setInterval((()=>{const t=Date.now();const e=this.cursorTrailPoints.filter((e=>t-e.timestamp<this.TRAIL_DURATION_MS));if(e.length!==this.cursorTrailPoints.length){this.cursorTrailPoints=e}}),50)}disconnectedCallback(){if(this.trailCleanupIntervalId){window.clearInterval(this.trailCleanupIntervalId)}}handleMouseDown(t){if(t.pointerType==="mouse"){if(t.button===l.Left){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.store.state.pointers.size===1){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}}handlePointerMove(t){if(!this.isLeftButtonDown){return}const e={x:t.clientX,y:t.clientY,timestamp:Date.now()};const i=[e,...this.cursorTrailPoints];if(i.length>this.MAX_TRAIL_POINTS){this.cursorTrailPoints=i.slice(0,this.MAX_TRAIL_POINTS)}else{this.cursorTrailPoints=i}}handlePointerUp(t){if(t.pointerType==="mouse"){if(t.button===l.Left){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.store.state.pointers.size===0){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}}render(){return i(s,{key:"c519ab89ffb793de887a870bafe8772f7584f097"},this.cursorTrailPoints.length>1&&i("svg",{key:"db7ac0975c5a39c0b68d8fd4af4edd4d15f439f3",class:"cursor-trail-svg",xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",opacity:"var(--kritzel-cursor-trail-opacity, 0.6)",zIndex:"9000"}},this.cursorTrailPoints.slice(1).map(((t,e)=>{const s=this.cursorTrailPoints[e];const o=Date.now();const n=o-t.timestamp;const r=Math.max(0,Math.min(1,n/this.TRAIL_DURATION_MS));if(r>=1)return null;const l=Math.max(2,15*(1-r));return i("line",{key:`trail-segment-${t.timestamp}`,x1:s.x.toString(),y1:s.y.toString(),x2:t.x.toString(),y2:t.y.toString(),stroke:"var(--kritzel-cursor-trail-color, rgb(228, 228, 228))","stroke-width":l.toString(),"stroke-linecap":"round"})}))))}};Y.style=H;const K=':host{display:inline-flex;vertical-align:middle;width:100%;}.dropdown-wrapper{display:flex;align-items:center;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);overflow:hidden;height:32px;width:100%}.custom-select{padding:0 8px;padding-right:30px;height:100%;width:100%;box-sizing:border-box;border-radius:0;border:none;background-color:#fff;cursor:pointer;outline:none;font-size:inherit;color:var(--kritzel-controls-text-color, #333333);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23333333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>\');background-size:16px 16px;background-repeat:no-repeat;background-position:right 8px center}.custom-select.has-suffix-border{border-right:1px solid #333333}.custom-select.has-prefix-border{border-left:1px solid #333333}::slotted(*){height:100%;box-sizing:border-box}';const X=class{constructor(i){t(this,i);this.valueChanged=e(this,"valueChanged");this.options=[];this.selectStyles={};this.hasSuffixContent=false;this.hasPrefixContent=false;this.handleSelectChange=t=>{const e=t.target.value;if(this.internalValue!==e){this.internalValue=e;this.valueChanged.emit(this.internalValue)}};this.evaluateSuffixContent=()=>{if(this.suffixSlotElement){const t=this.suffixSlotElement.assignedNodes({flatten:true}).length>0;if(this.hasSuffixContent!==t){this.hasSuffixContent=t}}else{if(this.hasSuffixContent!==false){this.hasSuffixContent=false}}};this.evaluatePrefixContent=()=>{if(this.prefixSlotElement){const t=this.prefixSlotElement.assignedNodes({flatten:true}).length>0;if(this.hasPrefixContent!==t){this.hasPrefixContent=t}}else{if(this.hasPrefixContent!==false){this.hasPrefixContent=false}}}}componentWillLoad(){this.updateInternalValue(this.value,false);this.evaluateSuffixContent();this.evaluatePrefixContent()}externalValueChanged(t){if(t!==this.internalValue){this.updateInternalValue(t,false)}}optionsChanged(){this.updateInternalValue(this.internalValue,true)}updateInternalValue(t,e){let i=t;if(this.options&&this.options.length>0){const t=this.options.some((t=>t.value===i));if(!i||!t){i=this.options[0].value}}else{i=undefined}if(this.internalValue!==i){this.internalValue=i;if(e||t!==i&&t!==undefined){this.valueChanged.emit(this.internalValue)}}}render(){const t={"custom-select":true,"has-suffix-border":this.hasSuffixContent,"has-prefix-border":this.hasPrefixContent};return i(s,{key:"32c5f5a4f807c1e316c91b795c005b8d30ce6189"},i("div",{key:"b1cbeff18e688da4a2f7472be290b9527a619f07",class:"dropdown-wrapper"},i("slot",{key:"b3bbb7e21c6f5620cab41aa4b1c7206b6c75fd86",name:"prefix",ref:t=>this.prefixSlotElement=t,onSlotchange:this.evaluatePrefixContent}),i("select",{key:"8b2dcdc125bee59cf29fce7c980b755e78d5816e",class:t,style:Object.assign(Object.assign({},this.selectStyles),{width:this.width}),onInput:this.handleSelectChange},this.options.map((t=>i("option",{value:t.value,style:t.style,selected:t.value===this.internalValue},t.label)))),i("slot",{key:"8d83f0dea41ac959bf2392948efef33bb70d0154",name:"suffix",ref:t=>this.suffixSlotElement=t,onSlotchange:this.evaluateSuffixContent})))}static get watchers(){return{value:["externalValueChanged"],options:["optionsChanged"]}}};X.style=K;class U{static register(t,e){if(this.registry.has(t)){console.warn(`[IconRegistry] Icon "${t}" is already registered. It will be overwritten.`)}this.registry.set(t,e)}static get(t){return this.registry.get(t)}static registerIcons(t){for(const e in t){if(Object.prototype.hasOwnProperty.call(t,e)){this.register(e,t[e])}}}static has(t){return this.registry.has(t)}}U.registry=new Map;U.registerIcons({cursor:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z"/></svg>',pen:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/></svg>',highlighter:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-highlighter-icon lucide-highlighter"><path d="m9 11-6 6v3h9l3-3"/><path d="m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"/></svg>',eraser:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"/><path d="M22 21H7"/><path d="m5 11 9 9"/></svg>',type:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" x2="15" y1="20" y2="20"/><line x1="12" x2="12" y1="4" y2="20"/></svg>',image:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>',"chevron-down":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>',"chevron-up":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m18 15-6-6-6 6"/></svg>',copy:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy-icon lucide-copy"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>',paste:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-paste-icon lucide-clipboard-paste"><path d="M11 14h10"/><path d="M16 4h2a2 2 0 0 1 2 2v1.344"/><path d="m17 18 4-4-4-4"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113"/><rect x="8" y="2" width="8" height="4" rx="1"/></svg>',cut:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scissors-icon lucide-scissors"><circle cx="6" cy="6" r="3"/><path d="M8.12 8.12 12 12"/><path d="M20 4 8.12 15.88"/><circle cx="6" cy="18" r="3"/><path d="M14.8 14.8 20 20"/></svg>',delete:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2-icon lucide-trash-2"><path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/></svg>',"bring-to-front":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-to-line-icon lucide-arrow-up-to-line"><path d="M5 3h14"/><path d="m18 13-6-6-6 6"/><path d="M12 7v14"/></svg>',"send-to-back":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line-icon lucide-arrow-down-to-line"><path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/></svg>',"select-all":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-mouse-pointer-icon lucide-square-mouse-pointer"><path d="M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z"/><path d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6"/></svg>',download:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download-icon lucide-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/></svg>',undo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-undo-icon lucide-undo"><path d="M3 7v6h6"/><path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"/></svg>',redo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-redo-icon lucide-redo"><path d="M21 7v6h-6"/><path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"/></svg>',plus:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus-icon lucide-plus"><path d="M5 12h14"/><path d="M12 5v14"/></svg>',"ellipsis-vertical":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis-vertical-icon lucide-ellipsis-vertical"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>',x:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x-icon lucide-x"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>',check:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>'});const q=1e3;const G=1e-4;const Z="kritzel-editor{display:flex;margin:0;position:relative;overflow:hidden;width:100%;height:100%;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}kritzel-workspace-manager{position:absolute;top:14px;left:14px}kritzel-controls{position:absolute;bottom:28px}";const J=class{constructor(i){t(this,i);this.isReady=e(this,"isReady");this.scaleMax=q;this.scaleMin=G;this.controls=[{name:"selection",type:"tool",tool:a,icon:"cursor"},{name:"brush",type:"tool",tool:n,icon:"pen",isDefault:true,config:h},{name:"eraser",type:"tool",tool:c,icon:"eraser"},{name:"text",type:"tool",tool:r,icon:"type",config:d},{name:"image",type:"tool",tool:u,icon:"image"},{name:"divider",type:"divider"},{name:"config",type:"config"}];this.globalContextMenuItems=[{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,action:t=>this.engineRef.paste(t.x,t.y)},{label:"Select All",icon:"select-all",action:()=>this.selectAllObjectsInViewport()}];this.objectContextMenuItems=[{label:"Edit",icon:"pen",visible:(t,e)=>e.length===1&&e[0].isEditable,action:(t,e)=>{if(e.length===1){const t=e[0];if(t.isEditable){t.edit()}}}},{label:"Copy",icon:"copy",action:()=>this.engineRef.copy()},{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,action:(t,e)=>this.engineRef.paste(t.x,t.y)},{label:"Delete",icon:"delete",action:()=>this.engineRef.delete()},{label:"Bring to Front",icon:"bring-to-front",action:()=>this.engineRef.bringToFront()},{label:"Send to Back",icon:"send-to-back",action:()=>this.engineRef.sendToBack()}];this.customSvgIcons={};this.isControlsVisible=true;this.isUtilityPanelVisible=true;this.isEngineReady=false;this.isControlsReady=false;this.isWorkspaceManagerReady=false;this.workspaces=[]}onIsEngineReady(t){if(t&&this.isControlsReady){this.checkIsReady()}}onIsControlsReady(t){if(t&&this.isEngineReady){this.checkIsReady()}}async getObjectById(t){return this.engineRef.getObjectById(t)}async addObject(t){return this.engineRef.addObject(t)}async updateObject(t,e){return this.engineRef.updateObject(t,e)}async removeObject(t){return this.engineRef.removeObject(t)}async getSelectedObjects(){return this.engineRef.getSelectedObjects()}async selectObjects(t){return this.engineRef.selectObjects(t)}async selectAllObjectsInViewport(){return this.engineRef.selectAllObjectsInViewport()}async clearSelection(){this.engineRef.clearSelection()}async centerObjectInViewport(t){return this.engineRef.centerObjectInViewport(t)}handleTouchStart(t){if(t.cancelable){t.preventDefault()}}componentDidLoad(){this.registerCustomSvgIcons()}async checkIsReady(){await customElements.whenDefined("kritzel-editor");await customElements.whenDefined("kritzel-workspace-manager");await customElements.whenDefined("kritzel-controls");await customElements.whenDefined("kritzel-engine");if(!this.isEngineReady||!this.isControlsReady||!this.isWorkspaceManagerReady){return}this.isReady.emit(this.host)}onEngineReady(t){this.isEngineReady=true;this.activeWorkspace=t.detail.activeWorkspace;this.workspaces=t.detail.workspaces}registerCustomSvgIcons(){for(const[t,e]of Object.entries(this.customSvgIcons)){U.register(t,e)}}render(){return i(s,{key:"9fe00d70c1a875076e545ca447e2f8d817ebb2fd"},i("kritzel-workspace-manager",{key:"ca9ce9f8f277e92f78315e7eaba2bc523da5b9cb",workspaces:this.workspaces,activeWorkspace:this.activeWorkspace,onWorkspaceChange:t=>this.activeWorkspace=t.detail,onIsWorkspaceManagerReady:()=>this.isWorkspaceManagerReady=true}),i("kritzel-engine",{key:"098a4690198f0678e7b4c6c897f86ad1698f510f",ref:t=>this.engineRef=t,workspace:this.activeWorkspace,scaleMax:this.scaleMax,scaleMin:this.scaleMin,globalContextMenuItems:this.globalContextMenuItems,objectContextMenuItems:this.objectContextMenuItems,onIsEngineReady:t=>this.onEngineReady(t),onWorkspacesChange:t=>this.workspaces=t.detail}),i("kritzel-controls",{key:"e1795f5a7460617628c09766f213c212e48f25e5",ref:t=>this.controlsRef=t,controls:this.controls,isUtilityPanelVisible:this.isUtilityPanelVisible,style:this.isControlsVisible?{display:"flex"}:{display:"none"},onIsControlsReady:()=>this.isControlsReady=true}))}get host(){return o(this)}static get watchers(){return{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"]}}};J.style=Z;class Q{constructor(t,e){this.initialTouchDistance=0;this.startX=0;this.startY=0;this._store=t;this._store.state.host=e;this._store.state.viewportWidth=e.clientWidth;this._store.state.viewportHeight=e.clientHeight;this._store.state.startX=0;this._store.state.startY=0;this._store.state.translateX=0;this._store.state.translateY=0}handleResize(){this._store.state.viewportWidth=this._store.state.host.clientWidth;this._store.state.viewportHeight=this._store.state.host.clientHeight;this._store.state.hasViewportChanged=true;this._store.rerender()}handlePointerDown(t){if(t.pointerType==="mouse"){const e=t.clientX-this._store.offsetX;const i=t.clientY-this._store.offsetY;if(t.button===l.Right){this._store.state.isPanning=true;this._store.state.startX=e;this._store.state.startY=i}}if(t.pointerType==="touch"){const t=Array.from(this._store.state.pointers.values());if(t.length===2){this._store.state.currentPath=null;this._store.state.isScaling=true;const e=t[0].clientX-this._store.offsetX;const i=t[0].clientY-this._store.offsetY;const s=t[1].clientX-this._store.offsetX;const o=t[1].clientY-this._store.offsetY;this.initialTouchDistance=Math.sqrt(Math.pow(e-s,2)+Math.pow(i-o,2));this.startX=(e+s)/2;this.startY=(i+o)/2;this._store.rerender()}}}handlePointerMove(t){if(t.pointerType==="mouse"){const e=this._store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;this._store.state.pointerX=(i-this._store.state.translateX)/this._store.state.scale;this._store.state.pointerY=(s-this._store.state.translateY)/this._store.state.scale;if(this._store.state.isPanning){this._store.state.translateX-=this._store.state.startX-i;this._store.state.translateY-=this._store.state.startY-s;this._store.state.startX=i;this._store.state.startY=s;this._store.state.hasViewportChanged=true;this._store.state.skipContextMenu=true;this._store.rerender();this._store.updateWorkspaceViewport(this._store.state.translateX,this._store.state.translateY,this._store.state.scale)}}if(t.pointerType==="touch"){const e=this._store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;this._store.state.pointerX=(i-this._store.state.translateX)/this._store.state.scale;this._store.state.pointerY=(s-this._store.state.translateY)/this._store.state.scale;const o=Array.from(this._store.state.pointers.values());if(o.length===2){const t=o[0].clientX-this._store.offsetX;const e=o[0].clientY-this._store.offsetY;const i=o[1].clientX-this._store.offsetX;const s=o[1].clientY-this._store.offsetY;const n=Math.sqrt(Math.pow(t-i,2)+Math.pow(e-s,2));const r=(t+i)/2;const l=(e+s)/2;const a=n/this.initialTouchDistance;const h=this._store.state.scale*a;if(h>this._store.state.scaleMax||h<this._store.state.scaleMin){this._store.state.translateX+=r-this.startX;this._store.state.translateY+=l-this.startY}else{const t=(r-this._store.state.translateX)*(a-1);const e=(l-this._store.state.translateY)*(a-1);this._store.state.translateX+=r-this.startX-t;this._store.state.translateY+=l-this.startY-e;this._store.state.scale=h;this.initialTouchDistance=n}this.startX=r;this.startY=l;this._store.state.hasViewportChanged=true;this._store.rerender();this._store.updateWorkspaceViewport(this._store.state.translateX,this._store.state.translateY,this._store.state.scale)}}}handlePointerUp(t){if(t.pointerType==="mouse"){if(this._store.state.isPanning){this._store.state.isPanning=false;this._store.rerender()}}if(t.pointerType==="touch"){this._store.state.isScaling=false;this._store.rerender()}}handleWheel(t){t.preventDefault();if(t.ctrlKey===true&&f.isMainMouseWheel(t)){this.handleZoom(t)}if(!t.ctrlKey){this.handlePan(t)}}handleZoom(t){const e=this._store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;this._store.state.pointerX=(i-this._store.state.translateX)/this._store.state.scale;this._store.state.pointerY=(s-this._store.state.translateY)/this._store.state.scale;const o=t.deltaY>0?-this._store.state.scaleStep*this._store.state.scale:this._store.state.scaleStep*this._store.state.scale;const n=Math.min(this._store.state.scaleMax,Math.max(this._store.state.scaleMin,this._store.state.scale+o));const r=n/this._store.state.scale;const l=(i-this._store.state.translateX)*(r-1);const a=(s-this._store.state.translateY)*(r-1);this._store.state.scale=n;this._store.state.translateX-=l;this._store.state.translateY-=a;this._store.state.hasViewportChanged=true;this._store.rerender();this._store.updateWorkspaceViewport(this._store.state.translateX,this._store.state.translateY,this._store.state.scale)}handlePan(t){const e=.8;this._store.state.translateX-=t.deltaX*e;this._store.state.translateY-=t.deltaY*e;this._store.state.hasViewportChanged=true;this._store.rerender();this._store.updateWorkspaceViewport(this._store.state.translateX,this._store.state.translateY,this._store.state.scale)}}class tt extends b{constructor(t,e,i,s=false){super(t,e,s);this.previousViewport=i;this.currentViewport={scale:this._store.state.scale,translateX:this._store.state.translateX,translateY:this._store.state.translateY}}execute(){this._store.state.scale=this.currentViewport.scale;this._store.state.translateX=this.currentViewport.translateX;this._store.state.translateY=this.currentViewport.translateY}undo(){this._store.state.scale=this.previousViewport.scale;this._store.state.translateX=this.previousViewport.translateX;this._store.state.translateY=this.previousViewport.translateY}}class et{constructor(t){this.head=0;this.tail=0;this.size=0;this.capacity=t;this.buffer=new Array(t).fill(null)}add(t){this.buffer[this.head]=t;this.head=(this.head+1)%this.capacity;if(this.size<this.capacity){this.size++}else{this.tail=(this.tail+1)%this.capacity}}pop(){if(this.size===0){return null}this.head=(this.head-1+this.capacity)%this.capacity;const t=this.buffer[this.head];this.buffer[this.head]=null;this.size--;return t}peek(){if(this.size===0){return null}const t=(this.head-1+this.capacity)%this.capacity;return this.buffer[t]}isEmpty(){return this.size===0}clear(){this.buffer.fill(null);this.head=0;this.tail=0;this.size=0}}class it{constructor(t){this._store=t;this.undoStack=new et(this._store.state.historyBufferSize);this.redoStack=new et(this._store.state.historyBufferSize);this.previousViewport={scale:this._store.state.scale,scaleStep:this._store.state.scaleStep,translateX:this._store.state.translateX,translateY:this._store.state.translateY}}reset(){this.undoStack.clear();this.redoStack.clear();this.previousViewport={scale:this._store.state.scale,scaleStep:this._store.state.scaleStep,translateX:this._store.state.translateX,translateY:this._store.state.translateY}}executeCommand(t){if(this._store.state.hasViewportChanged){this.addUpdateViewportCommand()}t.execute();if(t.skipHistory===false){if(this._store.state.debugInfo.logCommands){console.info("add",t)}this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}}this._store.rerender()}undo(){if(this._store.state.hasViewportChanged){const t=new tt(this._store,this,this.previousViewport);t.undo();this._store.state.hasViewportChanged=false;this._store.rerender();return}const t=this.undoStack.pop();if(t){t.undo();if(this._store.state.debugInfo.logCommands)console.info("undo",t);this.redoStack.add(t)}this._store.rerender()}redo(){const t=this.redoStack.pop();if(t){t.execute();if(this._store.state.debugInfo.logCommands)console.info("redo",t);this.undoStack.add(t)}this._store.rerender()}addUpdateViewportCommand(){const t=new tt(this._store,this,this.previousViewport);t.execute();this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}this._store.state.hasViewportChanged=false;this.previousViewport={scale:this._store.state.scale,scaleStep:this._store.state.scaleStep,translateX:this._store.state.translateX,translateY:this._store.state.translateY}}}class st{constructor(t,e=8){this.objects=[];this.children=null;this.bounds=t;this.capacity=e}reset(){this.objects=[];this.children=null}insert(t){if(!this.intersects(t.rotatedBoundingBox,this.bounds)){return false}if(this.objects.length<this.capacity&&this.children===null){this.objects.push(t);return true}if(this.children===null){this.subdivide()}for(const e of this.children){if(e.insert(t)){return true}}return false}update(t){const e=this.objects.findIndex((e=>e.id===t.id));if(e!==-1){this.objects[e]=t;return true}if(this.children!==null){for(const e of this.children){if(e.update(t)){return true}}}return false}remove(t){const e=this.objects.findIndex((e=>t(e)));if(e!==-1){this.objects.splice(e,1)}if(this.children!==null){for(const e of this.children){e.remove(t)}}}query(t){const e=[];if(!this.intersects(t,this.bounds)){return e}for(const i of this.objects){if(this.intersects(i.rotatedBoundingBox,t)){e.push(i)}}if(this.children!==null){for(const i of this.children){e.push(...i.query(t))}}return e}filter(t){const e=this.objects.filter((e=>t(e)));if(this.children!==null){for(const i of this.children){e.push(...i.filter(t))}}return e}allObjects(){const t=[...this.objects];if(this.children!==null){for(const e of this.children){t.push(...e.allObjects())}}return t}subdivide(){const{x:t,y:e,z:i,width:s,height:o,depth:n}=this.bounds;const r=s/2;const l=o/2;const a=n/2;this.children=[new st({x:t,y:e,z:i,width:r,height:l,depth:a},this.capacity),new st({x:t+r,y:e,z:i,width:r,height:l,depth:a},this.capacity),new st({x:t,y:e+l,z:i,width:r,height:l,depth:a},this.capacity),new st({x:t+r,y:e+l,z:i,width:r,height:l,depth:a},this.capacity),new st({x:t,y:e,z:i+a,width:r,height:l,depth:a},this.capacity),new st({x:t+r,y:e,z:i+a,width:r,height:l,depth:a},this.capacity),new st({x:t,y:e+l,z:i+a,width:r,height:l,depth:a},this.capacity),new st({x:t+r,y:e+l,z:i+a,width:r,height:l,depth:a},this.capacity)]}intersects(t,e){return!(t.x>=e.x+e.width||t.x+t.width<=e.x||t.y>=e.y+e.height||t.y+t.height<=e.y)}}const ot={activeWorkspace:null,activeTool:null,activeText:null,currentPath:null,copiedObjects:null,objectsOctree:null,selectionBox:null,selectionGroup:null,resizeHandleType:null,hasViewportChanged:false,isReady:false,isEnabled:true,isScaling:false,isPanning:false,isFocused:false,isSelecting:false,isResizing:false,isResizeHandleSelected:false,isRotating:false,isRotationHandleSelected:false,isDragging:false,isDrawing:false,isErasing:false,isWriting:false,isCtrlKeyPressed:false,isContextMenuVisible:false,contextMenuItems:[],contextMenuX:0,contextMenuY:0,skipContextMenu:false,debugInfo:{showObjectInfo:false,showViewportInfo:false,logCommands:false,logDatabase:false},host:null,pointerX:0,pointerY:0,scale:1,scaleMax:1,scaleMin:1,scaleStep:.075,startX:0,startY:0,translateX:0,translateXMax:400,translateXMin:0,translateY:0,translateYMax:400,translateYMin:0,viewportWidth:0,viewportHeight:0,historyBufferSize:1e3,longTouchTimeout:null,longTouchDelay:300,pointers:new Map,workspaces:[]};class nt{constructor(t,e,i=false){this.db=null;this.dbName=t;this.dbVersion=e;this.isLoggingEnabled=i}async open(t){return new Promise(((e,i)=>{if(this.db){e();return}if(this.isLoggingEnabled){console.log(`[IndexedDB] Opening database: ${this.dbName}, version: ${this.dbVersion}`)}const s=indexedDB.open(this.dbName,this.dbVersion);s.onerror=()=>{console.error("IndexedDB error:",s.error);i(s.error)};s.onsuccess=()=>{this.db=s.result;if(this.isLoggingEnabled){console.log(`[IndexedDB] Database opened successfully.`)}e()};s.onupgradeneeded=e=>{if(this.isLoggingEnabled){console.log(`[IndexedDB] Upgrade needed for database: ${this.dbName}`)}const i=e.target.result;t.forEach((t=>{if(!i.objectStoreNames.contains(t.name)){if(this.isLoggingEnabled){console.log(`[IndexedDB] Creating store: ${t.name}`)}const e=i.createObjectStore(t.name,t.options);if(t.indices){t.indices.forEach((i=>{if(this.isLoggingEnabled){console.log(`[IndexedDB] Creating index: ${i.name} on store: ${t.name}`)}e.createIndex(i.name,i.keyPath,i.options)}))}}}))}}))}close(){if(this.db){if(this.isLoggingEnabled){console.log(`[IndexedDB] Closing database: ${this.dbName}`)}this.db.close();this.db=null}}async add(t,e){if(this.isLoggingEnabled){console.log("[IndexedDB] Add:",{storeName:t,item:e})}return this.executeTransaction(t,"readwrite",(t=>t.add(e)))}async get(t,e){if(this.isLoggingEnabled){console.log("[IndexedDB] Get:",{storeName:t,key:e})}return this.executeTransaction(t,"readonly",(t=>t.get(e)))}async getAll(t){if(this.isLoggingEnabled){console.log("[IndexedDB] GetAll:",{storeName:t})}return this.executeTransaction(t,"readonly",(t=>t.getAll()))}async update(t,e){if(this.isLoggingEnabled){console.log("[IndexedDB] Update:",{storeName:t,item:e})}return this.executeTransaction(t,"readwrite",(t=>t.put(e)))}async delete(t,e){if(this.isLoggingEnabled){console.log("[IndexedDB] Delete:",{storeName:t,key:e})}return this.executeTransaction(t,"readwrite",(t=>t.delete(e)))}async deleteByRange(t,e){if(this.isLoggingEnabled){console.log("[IndexedDB] DeleteByRange:",{storeName:t,range:e})}return this.executeTransaction(t,"readwrite",(t=>t.delete(e)))}async getAllByRange(t,e){if(this.isLoggingEnabled){console.log("[IndexedDB] GetAllByRange:",{storeName:t,range:e})}return this.executeTransaction(t,"readonly",(t=>t.getAll(e)))}async getAllByIndex(t,e,i){if(this.isLoggingEnabled){console.log("[IndexedDB] GetAllByIndex:",{storeName:t,indexName:e,query:i})}return this.executeTransaction(t,"readonly",(t=>{const s=t.index(e);return s.getAll(i)}))}async executeTransaction(t,e,i){if(!this.db){throw new Error("Database is not open.")}return new Promise(((s,o)=>{const n=this.db.transaction(t,e);const r=n.objectStore(t);const l=i(r);let a;n.oncomplete=()=>{s(a)};n.onabort=()=>{var t;o((t=n.error)!==null&&t!==void 0?t:new Error("Transaction aborted"))};n.onerror=()=>{o(n.error)};l.onsuccess=()=>{a=l.result}}))}async batch(t){if(!this.db){throw new Error("Database is not open.")}const e=await this.extractStoreNamesFromActions(t);if(this.isLoggingEnabled){console.log("[IndexedDB] Starting batch transaction:",{storeNames:e})}return new Promise(((i,s)=>{const o=this.db.transaction(e,"readwrite");const n=[];const r=[];const l={add:(t,e)=>this.add(t,e),get:(t,e)=>this.get(t,e),getAll:t=>this.getAll(t),update:(t,e)=>this.update(t,e),delete:(t,e)=>this.delete(t,e),deleteByRange:(t,e)=>this.deleteByRange(t,e),getAllByRange:(t,e)=>this.getAllByRange(t,e),getAllByIndex:(t,e,i)=>this.getAllByIndex(t,e,i),executeTransaction:(t,e,i)=>new Promise(((s,n)=>{if(this.isLoggingEnabled){console.log("[IndexedDB] Executing batch action:",{storeName:t,mode:e})}const r=o.objectStore(t);const l=i(r);l.onsuccess=()=>{if(this.isLoggingEnabled){console.log("[IndexedDB] Batch action request successful:",{result:l.result})}s(l.result)};l.onerror=()=>{console.error("[IndexedDB] Batch action request error:",l.error);n(l.error)}}))};o.oncomplete=()=>{if(this.isLoggingEnabled){console.log("[IndexedDB] Batch transaction complete.")}Promise.all(r).then((()=>i(n)))};o.onabort=()=>{var t;console.error("[IndexedDB] Batch transaction aborted:",o.error);s((t=o.error)!==null&&t!==void 0?t:new Error("Transaction aborted"))};o.onerror=()=>{console.error("[IndexedDB] Batch transaction error:",o.error);s(o.error)};t.forEach(((t,e)=>{const i=t(l).then((t=>{n[e]=t})).catch((t=>{if(!o.error){o.abort()}s(t)}));r.push(i)}))}))}async extractStoreNamesFromActions(t){const e=new Set;const i=new Proxy(this,{get:(t,i)=>{if(["add","get","getAll","update","delete","deleteByRange","getAllByRange","getAllByIndex"].includes(i)){return t=>{e.add(t);return Promise.resolve()}}return t[i]}});await Promise.all(t.map((t=>t(i))));return Array.from(e)}}class rt{constructor(t,e,i={translateX:0,translateY:0,scale:1}){this.id=t;this.name=e;this.createdAt=new Date;this.updatedAt=new Date;this.viewport=i}}class lt{get history(){return this._history}get database(){return this._database}get state(){return this._state}get currentZIndex(){return this._state.objectsOctree.filter((t=>!(t instanceof p)&&!(t instanceof v))).length}get allObjects(){return this._state.objectsOctree.allObjects()}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof p))).filter((t=>t.isSelected))}get offsetX(){return this._state.host.getBoundingClientRect().left}get offsetY(){return this._state.host.getBoundingClientRect().top}get isDisabled(){return this._state.isEnabled===false||this._state.isReady===false||this._state.activeWorkspace===null}constructor(t){this._listeners=new Map;this.objects=[];this._state=ot;this._kritzelEngine=t;this._history=new it(this);this._database=new nt("kritzelDB",1,this._state.debugInfo.logDatabase);this._state.objectsOctree=new st({x:-Infinity,y:-Infinity,z:-Infinity,width:Infinity,height:Infinity,depth:Infinity})}async initializeDatabase(){await this._database.open([{name:"objects",options:{keyPath:["workspaceId","id"]}},{name:"workspaces",options:{keyPath:"id"}}]);this.rerender()}async initializeWorkspace(t){var e;const i=await this.getWorkspaces();const s=[...i].sort(((t,e)=>e.updatedAt.getTime()-t.updatedAt.getTime()))[0];const o=new rt(g.generateUUID(),"New Workspace");this._state.activeWorkspace=(e=t!==null&&t!==void 0?t:s)!==null&&e!==void 0?e:o;const n=await this.getWorkspace(this._state.activeWorkspace.id);if(n){await this.updateWorkspace(this._state.activeWorkspace)}else{await this.createWorkspace(this._state.activeWorkspace)}this._state.workspaces=await this.getWorkspaces();this.state.translateX=this._state.activeWorkspace.viewport.translateX;this.state.translateY=this._state.activeWorkspace.viewport.translateY;this.state.scale=this._state.activeWorkspace.viewport.scale;await this.initializeWorkspaceObjects(this._state.activeWorkspace.id)}async initializeWorkspaceObjects(t){this._state.objectsOctree.reset();this._history.reset();const e=await this._database.getAllByRange("objects",IDBKeyRange.bound([t],[t,""]));const i=new k(this);e.forEach((t=>{const e=i.revive(t);this._state.objectsOctree.insert(e)}));this.rerender()}async updateWorkspaceViewport(t,e,i){if(!this.state.activeWorkspace){throw new Error("Workspace not initialized")}this.state.activeWorkspace.viewport={translateX:t,translateY:e,scale:i};this.state.activeWorkspace.updatedAt=new Date;await this._database.update("workspaces",this.state.activeWorkspace)}async addObjectToDatabase(t){if(!this._database){throw new Error("Database not initialized")}if(!this.state.activeWorkspace){throw new Error("Workspace not initialized")}this.state.activeWorkspace.updatedAt=new Date;await this._database.batch([e=>e.add("objects",t),t=>t.update("workspaces",this.state.activeWorkspace)]).catch((t=>{console.error("Error adding object to database:",t)}))}async updateObjectInDatabase(t){if(!this._database){throw new Error("Database not initialized")}if(!this.state.activeWorkspace){throw new Error("Workspace not initialized")}this.state.activeWorkspace.updatedAt=new Date;await this._database.batch([e=>e.update("objects",t),t=>t.update("workspaces",this.state.activeWorkspace)]).catch((t=>{console.error("Error updating object in database:",t)}))}async deleteObjectFromDatabase(t){if(!this._database){throw new Error("Database not initialized")}if(!this.state.activeWorkspace){throw new Error("Workspace not initialized")}this.state.activeWorkspace.updatedAt=new Date;await this._database.batch([e=>e.delete("objects",[this.state.activeWorkspace.id,t]),t=>t.update("workspaces",this.state.activeWorkspace)]).catch((t=>{console.error("Error deleting object from database:",t)}))}getWorkspace(t){if(!this._database){throw new Error("Database not initialized")}return this._database.get("workspaces",t)}getWorkspaces(){if(!this._database){throw new Error("Database not initialized")}return this._database.getAll("workspaces")}async createWorkspace(t){if(!this._database){throw new Error("Database not initialized")}t.createdAt=new Date;t.updatedAt=new Date;await this._database.add("workspaces",t);this.state.workspaces.push(t)}async updateWorkspace(t){if(!this._database){throw new Error("Database not initialized")}t.updatedAt=new Date;await this._database.update("workspaces",t);const e=this.state.workspaces.findIndex((e=>e.id===t.id));if(e!==-1){this.state.workspaces[e]=t}}async deleteWorkspace(t){if(!this._database){throw new Error("Database not initialized")}const e=IDBKeyRange.bound([t.id],[t.id,""]);await this._database.deleteByRange("objects",e);await this._database.delete("workspaces",t.id)}rerender(){if(this._kritzelEngine){this._kritzelEngine.forceUpdate++}}findObjectById(t){for(const e of this.allObjects){if(e.id===t){return e}}return null}deselectAllObjects(){if(this._state.selectionGroup){this._history.executeCommand(new y(this,this))}}onStateChange(t,e){if(!this._listeners.has(t)){this._listeners.set(t,new Set)}this._listeners.get(t).add(e)}setState(t,e){const i=this._state[t];if(i!==e){this._state[t]=e;if(this._listeners.has(t)){this._listeners.get(t).forEach((s=>s(e,i,String(t))))}}}delete(){if(!this.state.selectionGroup){return}const t=this.state.selectionGroup.objects.map((t=>new x(this,this.state.selectionGroup,t)));const e=new y(this,this.state.selectionGroup);const i=[...t,e];this.history.executeCommand(new w(this,this.state.selectionGroup,i))}deleteObject(t,e=false){const i=this.findObjectById(t);if(i){const t=new x(this,this,i,e);this.history.executeCommand(t)}}copy(){this.state.copiedObjects=this.state.selectionGroup.copy()}paste(t,e){this.state.copiedObjects.isSelected=true;const i=t!==undefined?t:this.state.copiedObjects.translateX+25;const s=e!==undefined?e:this.state.copiedObjects.translateY+25;this.state.copiedObjects.updatePosition(i,s);const o=[];if(this.state.selectionGroup!==null){o.push(new y(this,this.state.selectionGroup))}const n=this.state.copiedObjects.objects.map((t=>new m(this,this,t)));const r=new z(this,this,this.state.copiedObjects);o.push(...n,r);this.history.executeCommand(new w(this,this,o));this.state.isSelecting=false;this.state.copiedObjects=this.state.selectionGroup.copy();this.setState("activeTool",C.getTool("selection"))}bringForward(t){const e=this.allObjects.length+1;const i=t?[t]:this.state.selectionGroup.objects;const s=i.map((t=>{if(t.zIndex===e){return}return new I(this,this,t,{zIndex:t.zIndex+1})}));this.history.executeCommand(new w(this,this,s))}sendBackward(t){const e=0;const i=t?[t]:this.state.selectionGroup.objects;const s=i.map((t=>{if(t.zIndex===e){return}return new I(this,this,t,{zIndex:t.zIndex-1})}));this.history.executeCommand(new w(this,this,s))}bringToFront(t){const e=Math.max(...this.allObjects.map((t=>t.zIndex)))+1;const i=t?[t]:this.state.selectionGroup.objects;const s=i.map((t=>new I(this,this,t,{zIndex:e})));this.history.executeCommand(new w(this,this,s))}sendToBack(t){const e=Math.min(...this.allObjects.map((t=>t.zIndex)))-1;const i=t?[t]:this.state.selectionGroup.objects;const s=i.map((t=>new I(this,this,t,{zIndex:e})));this.history.executeCommand(new w(this,this,s))}selectObjects(t){if(t.length===0){return}const e=p.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this.state.selectionGroup=e;if(t.length===1){e.rotation=e.objects[0].rotation}this.history.executeCommand(new z(this,this,e))}selectAllObjectsInViewport(){const t=this._state.objectsOctree.query({x:-this._state.translateX/this._state.scale,y:-this._state.translateY/this._state.scale,z:this._state.scale,width:this._state.viewportWidth/this._state.scale,height:this._state.viewportHeight/this._state.scale,depth:100}).filter((t=>!(t instanceof p)&&!(t instanceof v)&&!(t instanceof F)));if(t.length>0){const e=p.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this.state.isSelecting=false;if(t.length===1){e.rotation=e.objects[0].rotation}this.history.executeCommand(new z(this,this,e));this.setState("activeTool",C.getTool("selection"))}}clearSelection(){const t=new y(this,this.state.selectionGroup);this.history.executeCommand(t);this.state.selectionGroup=null;this.state.selectionBox=null;this.state.isSelecting=false;this.state.isResizeHandleSelected=false;this.state.isRotationHandleSelected=false}resetActiveText(){if(this.state.activeText&&this.state.activeText.value===" "){this.deleteObject(this.state.activeText.id,true)}this.state.activeText=null}getObjectFromPointerEvent(t,e=".object"){var i;const s=(i=this.state.host)===null||i===void 0?void 0:i.shadowRoot;if(!s)return null;const o=t.clientX;const n=t.clientY;const r=s.elementFromPoint(o,n);if(!r)return null;const l=r.closest(e);if(l){return this.allObjects.find((t=>l.id===t.id))}return null}getObjectsFromPointerEvent(t,e=".object"){var i;const s=(i=this.state.host)===null||i===void 0?void 0:i.shadowRoot;if(!s)return[];const o=t.clientX;const n=t.clientY;const r=s.elementsFromPoint(o,n);if(!r||r.length===0)return[];const l=new Set;r.forEach((t=>{const i=t.closest(e);if(i&&i.id){l.add(i.id)}}));if(l.size>0){return this.allObjects.filter((t=>l.has(t.id))).sort(((t,e)=>e.zIndex-t.zIndex))}return[]}getCanvasPoint(t){if(!this.state.host){return{x:0,y:0}}const e=this.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;const o=i-this.state.translateX;const n=s-this.state.translateY;const r=o/this.state.scale;const l=n/this.state.scale;return{x:r,y:l}}}class at extends j{constructor(t){super(t)}handleKeyDown(t){if(this._store.state.isFocused===false){return}this._store.state.isCtrlKeyPressed=t.ctrlKey;if(this._store.state.isCtrlKeyPressed){t.preventDefault()}if(t.key==="Escape"&&this._store.state.selectionGroup){this._store.clearSelection()}if(t.key==="Delete"&&this._store.state.selectionGroup){this._store.delete()}if(t.key==="z"&&t.ctrlKey){this._store.history.undo()}if(t.key==="y"&&t.ctrlKey){this._store.history.redo()}if(t.key==="s"&&t.ctrlKey){this._store.setState("activeTool",C.getTool("selection"));this._store.deselectAllObjects()}if(t.key==="b"&&t.ctrlKey){this._store.setState("activeTool",C.getTool("brush"));this._store.deselectAllObjects()}if(t.key==="e"&&t.ctrlKey){this._store.setState("activeTool",C.getTool("eraser"));this._store.deselectAllObjects()}if(t.key==="i"&&t.ctrlKey){this._store.setState("activeTool",C.getTool("image"));this._store.deselectAllObjects()}if(t.key==="x"&&t.ctrlKey){this._store.setState("activeTool",C.getTool("text"));this._store.deselectAllObjects()}if(t.key==="c"&&t.ctrlKey&&this._store.state.selectionGroup){this._store.copy();this._store.rerender()}if(t.key==="v"&&t.ctrlKey&&this._store.state.copiedObjects){this._store.paste()}if(t.key==="+"&&t.ctrlKey&&this._store.state.selectionGroup){this._store.bringForward()}if(t.key==="-"&&t.ctrlKey&&this._store.state.selectionGroup){this._store.sendBackward()}if(t.key==="*"&&t.shiftKey&&this._store.state.selectionGroup){this._store.bringToFront()}if(t.key==="_"&&t.shiftKey&&this._store.state.selectionGroup){this._store.sendToBack()}if(t.key==="a"&&t.ctrlKey&&this._store.state.activeText){this._store.state.activeText.selectAll()}if(t.key==="v"&&t.ctrlKey&&this._store.state.activeText){this._store.state.activeText.insertFromClipboard()}}handleKeyUp(t){if(this._store.state.isFocused===false){return}this._store.state.isCtrlKeyPressed=t.ctrlKey}}class ht extends j{constructor(t,e,i){super(t);this.globalContextMenuItems=[];this.objectContextMenuItems=[];this.globalContextMenuItems=e;this.objectContextMenuItems=i}handleContextMenu(t){if(this._store.state.skipContextMenu){this._store.state.skipContextMenu=false;return}const e=this._store.getObjectFromPointerEvent(t,".object");if(e&&!(e instanceof p)){this._store.state.selectionGroup=p.create(this._store);this._store.state.selectionGroup.addOrRemove(e);this._store.state.selectionGroup.isSelected=true;this._store.state.selectionGroup.rotation=e.rotation;this._store.state.isSelecting=false;this._store.history.executeCommand(new z(this._store,this,this._store.state.selectionGroup))}this._store.state.contextMenuItems=this._store.state.selectionGroup?this.objectContextMenuItems:this.globalContextMenuItems;let i=t.clientX-this._store.offsetX;let s=t.clientY-this._store.offsetY;const o=150;const n=200;const r=10;if(i+o>window.innerWidth-r){i=window.innerWidth-o-r}if(s+n>window.innerHeight-r){s=window.innerHeight-n-r}i=Math.max(r,i);s=Math.max(r,s);this._store.state.contextMenuX=i;this._store.state.contextMenuY=s;this._store.state.isContextMenuVisible=true;this._store.state.isEnabled=false;this._store.rerender()}}class ct{static isInstanceOf(t,e){return!!t&&t.__class__===e}}const dt=":host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.debug-panel{position:absolute;pointer-events:none;top:0;right:0}.origin{position:relative;top:0;left:0;height:0;width:0;pointer-events:none;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top left;overflow:visible}.object{overflow:visible}textarea{all:unset;box-sizing:border-box;outline:none !important;border:none !important;overflow:visible}.resize-handle-overlay.top-left,.resize-handle-overlay.bottom-right{cursor:nwse-resize}.resize-handle-overlay.top-right,.resize-handle-overlay.bottom-left{cursor:nesw-resize}.rotation-handle-overlay{cursor:grab}";const ut=class{onWorkspaceChange(t){if(t){this.store.initializeWorkspace(t)}}validateScaleMax(t){if(t>q){console.warn(`scaleMax cannot be greater than ${q}.`);this.scaleMax=q;this.store.state.scaleMax=this.scaleMax}else{this.store.state.scaleMax=t}}validateScaleMin(t){if(t<G){console.warn(`scaleMin cannot be less than ${G}.`);this.scaleMin=G;this.store.state.scaleMin=this.scaleMin}else{this.store.state.scaleMin=t}}get isSelecting(){return this.store.state.activeTool instanceof a&&this.store.state.isSelecting}get isSelectionActive(){return this.store.state.activeTool instanceof a&&this.store.state.selectionGroup!==null}constructor(i){t(this,i);this.isEngineReady=e(this,"isEngineReady");this.activeToolChange=e(this,"activeToolChange");this.workspacesChange=e(this,"workspacesChange");this.scaleMax=q;this.scaleMin=G;this.forceUpdate=0;this.contextMenuElement=null;this.store=new lt(this)}componentWillLoad(){this.validateScaleMax(this.scaleMax);this.validateScaleMin(this.scaleMin)}async componentDidLoad(){this.contextMenuHandler=new ht(this.store,this.globalContextMenuItems,this.objectContextMenuItems);this.keyHandler=new at(this.store);this.viewport=new Q(this.store,this.host);this._registerStateChangeListeners();await this.store.initializeDatabase();await this.store.initializeWorkspace(this.workspace);if(this.store.state.isReady===false){this.store.state.isReady=true;this.isEngineReady.emit(this.store.state)}}handleWheel(t){var e,i;if(this.store.isDisabled){return}if(this.store.state.isContextMenuVisible){this.hideContextMenu()}this.viewport.handleWheel(t);(i=(e=this.store.state)===null||e===void 0?void 0:e.activeTool)===null||i===void 0?void 0:i.handleWheel(t)}handlePointerDown(t){var e,i;if(this.store.isDisabled){return}if(f.isPointerEventOnContextMenu(t)===false&&this.store.state.isContextMenuVisible){this.hideContextMenu();return}f.onLongTouchPress(t,(t=>{if(!(this.store.state.activeTool instanceof a)){return}this.contextMenuHandler.handleContextMenu(t)}));this.host.setPointerCapture(t.pointerId);this.store.state.pointers.set(t.pointerId,t);this.viewport.handlePointerDown(t);(i=(e=this.store.state)===null||e===void 0?void 0:e.activeTool)===null||i===void 0?void 0:i.handlePointerDown(t)}handlePointerMove(t){var e,i;if(this.store.isDisabled){return}this.store.state.pointers.set(t.pointerId,t);this.viewport.handlePointerMove(t);(i=(e=this.store.state)===null||e===void 0?void 0:e.activeTool)===null||i===void 0?void 0:i.handlePointerMove(t)}handlePointerUp(t){var e,i;if(this.store.isDisabled){return}this.store.state.pointers.delete(t.pointerId);this.host.releasePointerCapture(t.pointerId);this.viewport.handlePointerUp(t);(i=(e=this.store.state)===null||e===void 0?void 0:e.activeTool)===null||i===void 0?void 0:i.handlePointerUp(t)}handlePointerCancel(t){var e,i;if(this.store.isDisabled){return}this.host.releasePointerCapture(t.pointerId);this.store.state.pointers.delete(t.pointerId);this.viewport.handlePointerUp(t);(i=(e=this.store.state)===null||e===void 0?void 0:e.activeTool)===null||i===void 0?void 0:i.handlePointerUp(t)}handleContextMenu(t){t.preventDefault();if(this.store.isDisabled){return}if(t.pointerType==="touch"){return}this.contextMenuHandler.handleContextMenu(t)}handleResize(){this.viewport.handleResize()}handleKeyDown(t){this.keyHandler.handleKeyDown(t)}handleKeyUp(t){this.keyHandler.handleKeyUp(t)}updateFocus(t){if(this.store.isDisabled){return}const e=this.store.state.host.getBoundingClientRect();const i=t.clientX>=e.left&&t.clientX<=e.right&&t.clientY>=e.top&&t.clientY<=e.bottom;const s=t.composedPath();const o=this.host.closest("kritzel-engine");const n=s.includes(o||this.host);this.store.setState("isFocused",i&&n)}handleClick(){this.enable()}async registerTool(t,e,i){if(typeof e!=="function"||!(e.prototype instanceof M)){console.error(`Failed to register tool "${t}": Tool class must be a constructor function`);return null}const s=C.registerTool(t,e,this.store);if(i){Object.entries(i).forEach((([t,e])=>{s[t]=e}))}return Promise.resolve(s)}async changeActiveTool(t){var e;(e=this.store.state.activeTool)===null||e===void 0?void 0:e.onDeactivate();this.store.setState("activeTool",t);this.store.deselectAllObjects();t===null||t===void 0?void 0:t.onActivate()}async setFocus(){this.host.focus();this.store.state.isFocused=true}async disable(){this.store.state.isEnabled=false;this.forceUpdate++}async enable(){this.store.state.isEnabled=true;this.forceUpdate++}async delete(){this.store.delete()}async copy(){this.store.copy()}async paste(t,e){this.store.paste(t,e)}async bringForward(t){this.store.bringForward(t)}async sendBackward(t){this.store.sendBackward(t)}async bringToFront(t){this.store.bringToFront(t)}async sendToBack(t){this.store.sendToBack(t)}async undo(){this.store.history.undo()}async redo(){this.store.history.redo()}async hideContextMenu(){this.store.state.pointers.clear();this.store.state.isContextMenuVisible=false;this.store.state.selectionBox=null;this.store.state.isSelecting=false}async getObjectById(t){const e=this.store.objects.find((e=>e.id===t));return e||null}async addObject(t){this.store.deselectAllObjects();t.id=t.generateId();t._store=this.store;t.scale=t.scale?t.scale:this.store.state.scale;t.zIndex=this.store.currentZIndex;const e=new m(this.store,this,t);this.store.history.executeCommand(e);return t}async updateObject(t,e){this.store.deselectAllObjects();const i=new I(this.store,this,t,e);this.store.history.executeCommand(i);return t}async removeObject(t){this.store.deselectAllObjects();const e=new x(this.store,this,t);this.store.history.executeCommand(e);return t}async getSelectedObjects(){return this.store.state.selectionGroup?this.store.state.selectionGroup.objects:[]}async selectObjects(t){var e;(e=this.store.state.activeTool)===null||e===void 0?void 0:e.onDeactivate();this.store.setState("activeTool",C.getTool("selection"));this.store.deselectAllObjects();this.store.selectObjects(t)}async selectAllObjectsInViewport(){var t;(t=this.store.state.activeTool)===null||t===void 0?void 0:t.onDeactivate();this.store.setState("activeTool",C.getTool("selection"));this.store.deselectAllObjects();this.store.selectAllObjectsInViewport()}async clearSelection(){this.store.clearSelection()}async centerObjectInViewport(t){t.centerInViewport();const e=new I(this.store,this,t,t);this.store.history.executeCommand(e);return t}async getCopiedObjects(){var t;return((t=this.store.state.copiedObjects)===null||t===void 0?void 0:t.objects)||[]}async createWorkspace(t){return this.store.createWorkspace(t).then((()=>{this.workspacesChange.emit(this.store.state.workspaces)}))}async updateWorkspace(t){return this.store.updateWorkspace(t).then((()=>{this.workspacesChange.emit(this.store.state.workspaces)}))}async deleteWorkspace(t){return this.store.deleteWorkspace(t).then((()=>{this.workspacesChange.emit(this.store.state.workspaces.filter((e=>e.id!==t.id)))}))}async getWorkspaces(){return this.store.getWorkspaces()}_registerStateChangeListeners(){this.store.onStateChange("activeTool",this._handleActiveToolChange.bind(this));this.store.onStateChange("isFocused",this._handleIsFocusedChange.bind(this))}_handleActiveToolChange(t){if(!(t instanceof a)){this.store.clearSelection()}this.store.state.skipContextMenu=false;this.activeToolChange.emit(t);D.forceHideKeyboard()}_handleIsFocusedChange(t){if(!t){this.store.resetActiveText()}}render(){var t,e,o,n,r,l,a,h,d,u,f,b,p,v,g,k,y,x,w,m,z,C,I,j,M,D,B,S,E,T,$,O,W;const F=window.getComputedStyle(this.host);const A=F.getPropertyValue("--kritzel-selection-handle-size").trim()||"6px";const R=parseFloat(A);const P=R*2<14?14:R;return i(s,{key:"c7e747aa6106e7904cf9f44db37fa285a6fb4434"},i("div",{key:"b75652ab9f9531dce765cbe448ad3131c172d06a",class:"debug-panel",style:{display:this.store.state.debugInfo.showViewportInfo?"block":"none"}},i("div",{key:"fd1355bd640b9296949f6bbcf084589578654db6"},"ActiveWorkspaceId: ",(e=(t=this.store.state)===null||t===void 0?void 0:t.activeWorkspace)===null||e===void 0?void 0:e.id),i("div",{key:"8520e3e774e97ebc42ee86401fbfbafbe41c88e8"},"ActiveWorkspaceName: ",(n=(o=this.store.state)===null||o===void 0?void 0:o.activeWorkspace)===null||n===void 0?void 0:n.name),i("div",{key:"f247b4d76cd018e787a9b59829deedeb6c5c5272"},"TranslateX: ",(r=this.store.state)===null||r===void 0?void 0:r.translateX),i("div",{key:"e0438479bc9e950ef2cbe88ed0aa0b8ec1888890"},"TranslateY: ",(l=this.store.state)===null||l===void 0?void 0:l.translateY),i("div",{key:"1735fde66588e285039bcc090dee71630608d666"},"ViewportWidth: ",(a=this.store.state)===null||a===void 0?void 0:a.viewportWidth),i("div",{key:"15f8b3305c27a395b8aa6463c5acec42bb3e3ddd"},"ViewportHeight: ",(h=this.store.state)===null||h===void 0?void 0:h.viewportHeight),i("div",{key:"d2e39bae191c7256967d0140f38e75dccf95f24c"},"ObjectsInViewport. ",this.store.objects.length),i("div",{key:"cd3f53ff4a8f119a2ef975133f69fc3798fe0f71"},"Scale: ",(d=this.store.state)===null||d===void 0?void 0:d.scale),i("div",{key:"b1f8c77589a80fe49d0947602bda46438921f7a8"},"ActiveTool: ",(f=(u=this.store.state)===null||u===void 0?void 0:u.activeTool)===null||f===void 0?void 0:f.name),i("div",{key:"41cd94f58f71cd5c1cffc679ada5fc51f6ceeea7"},"HasViewportChanged: ",((b=this.store.state)===null||b===void 0?void 0:b.hasViewportChanged)?"true":"false"),i("div",{key:"bf8495bb924673aad3a9ca57ed0bf9ac23874dfb"},"IsEnabled: ",((p=this.store.state)===null||p===void 0?void 0:p.isEnabled)?"true":"false"),i("div",{key:"3823936f5b46b100742f94fac8d7e87ed93ddb58"},"IsScaling: ",((v=this.store.state)===null||v===void 0?void 0:v.isScaling)?"true":"false"),i("div",{key:"62eb836fff78b050cdab8cbef54f88f9d5b644ba"},"IsPanning: ",((g=this.store.state)===null||g===void 0?void 0:g.isPanning)?"true":"false"),i("div",{key:"dac6b8d18ae8f6317bdd318ad48a9612f9942613"},"IsFocused: ",this.store.state.isFocused?"true":"false"),i("div",{key:"af232e2cd738e255029f5611531c246ac63a28ce"},"IsSelecting: ",this.isSelecting?"true":"false"),i("div",{key:"95a44fef4b6befe95bfadfc62957103b48bf76b6"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),i("div",{key:"e8162d4de449a0d6756c2f540fca28353c193438"},"IsResizeHandleSelected: ",this.store.state.isResizeHandleSelected?"true":"false"),i("div",{key:"4440d023cd4982c834736e06863698c3baf72353"},"IsRotationHandleSelected: ",this.store.state.isRotationHandleSelected?"true":"false"),i("div",{key:"d3e467dd18e53850df4d5bedf2b69f54b1fbe5c6"},"IsDrawing: ",this.store.state.isDrawing?"true":"false"),i("div",{key:"df6e4bca16cbe4346786a544d6f6c53d87bdb699"},"IsWriting: ",this.store.state.isWriting?"true":"false"),i("div",{key:"532aebf1ff35cc578f12e36cdaf00713ffc76b97"},"PointerX: ",(k=this.store.state)===null||k===void 0?void 0:k.pointerX),i("div",{key:"f710f8c8d27979da4a40e50452e2cdd63cdefa98"},"PointerY: ",(y=this.store.state)===null||y===void 0?void 0:y.pointerY),i("div",{key:"0175010e1d5a22be81ca0b2d88dd1aff217eacfd"},"SelectedObjects: ",((x=this.store.state.selectionGroup)===null||x===void 0?void 0:x.objects.length)||0)),i("div",{key:"dc2964c479405ed147bd5f090e24262595a474e2",id:"origin",class:"origin",style:{transform:`matrix(${(w=this.store.state)===null||w===void 0?void 0:w.scale}, 0, 0, ${(m=this.store.state)===null||m===void 0?void 0:m.scale}, ${(z=this.store.state)===null||z===void 0?void 0:z.translateX}, ${(C=this.store.state)===null||C===void 0?void 0:C.translateY})`}},(I=this.store.state.objectsOctree.allObjects())===null||I===void 0?void 0:I.map((t=>{var e,s,o,n,r,l,a,h,c,d,u,f,b,p,v,g,k,y,x;return i("div",{key:t.id,style:{display:t.isInViewport()?"block":"none",transform:t===null||t===void 0?void 0:t.transformationMatrix,transformOrigin:"top left",zIndex:t.zIndex.toString(),position:"absolute"}},i("svg",{xmlns:"http://www.w3.org/2000/svg",id:t.id,class:"object",style:{height:t===null||t===void 0?void 0:t.totalHeight.toString(),width:t===null||t===void 0?void 0:t.totalWidth.toString(),left:"0",top:"0",position:"absolute",transform:`rotate(${t.rotationDegrees}deg)`,transformOrigin:"center",opacity:t.markedForRemoval?"0.5":t.opacity.toString(),pointerEvents:t.markedForRemoval?"none":"auto"}},i("foreignObject",{x:"0",y:"0",width:t.totalWidth.toString(),height:t.totalHeight.toString(),style:{minHeight:"0",minWidth:"0",backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth+"px",borderStyle:"solid",padding:t.padding+"px",overflow:"visible"}},ct.isInstanceOf(t,"KritzelPath")&&i("svg",{ref:e=>e?t.mount(e):t.unmount(),xmlns:"http://www.w3.org/2000/svg",style:{height:t===null||t===void 0?void 0:t.height.toString(),width:t===null||t===void 0?void 0:t.width.toString(),position:"absolute",overflow:"visible"},viewBox:t===null||t===void 0?void 0:t.viewBox},i("path",{d:t===null||t===void 0?void 0:t.d,fill:t.fill,stroke:t===null||t===void 0?void 0:t.stroke})),ct.isInstanceOf(t,"KritzelImage")&&i("img",{ref:e=>e?t.mount(e):t.unmount(),src:t.src,style:{width:"100%",height:"100%",userSelect:"none",pointerEvents:"none"},draggable:false,onDragStart:t=>t.preventDefault()}),ct.isInstanceOf(t,"KritzelText")&&i("textarea",{ref:e=>e?t.mount(e):t.unmount(),value:t.value,onKeyDown:e=>t.handleKeyDown(e),onInput:e=>t.handleInput(e),rows:t.rows,style:{width:"100%",height:"100%",color:t.fontColor,fontSize:((e=t.fontSize)===null||e===void 0?void 0:e.toString())+"px",fontFamily:t.fontFamily,border:"none",outline:"none",resize:"none",overflow:"hidden",display:"block",padding:"1px",whiteSpace:"nowrap",pointerEvents:t.isReadonly?"none":"auto",cursor:t.isReadonly?"default":"text",caretColor:t.isReadonly?"transparent":"auto"}}),ct.isInstanceOf(t,"KritzelCustomElement")&&i("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),ct.isInstanceOf(t,"KritzelSelectionGroup")&&i("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%"}}),ct.isInstanceOf(t,"KrtizelSelectionBox")&&i("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%"}})),i("line",{x1:"0",y1:"0",x2:t.totalWidth,y2:"0",style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${(s=this.store.state)===null||s===void 0?void 0:s.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),i("line",{x1:"0",y1:"0",x2:"0",y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${(o=this.store.state)===null||o===void 0?void 0:o.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),i("line",{x1:"0",y1:t.totalHeight,x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${(n=this.store.state)===null||n===void 0?void 0:n.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),i("line",{x1:t.totalWidth,y1:"0",x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${(r=this.store.state)===null||r===void 0?void 0:r.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),i("circle",{class:"resize-handle top-left",cx:"0",cy:"0",r:`${R*t.scale/((l=this.store.state)===null||l===void 0?void 0:l.scale)}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"resize-handle-overlay top-left",cx:"0",cy:"0",r:`${P*t.scale/((a=this.store.state)===null||a===void 0?void 0:a.scale)}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"resize-handle top-right",cx:t.totalWidth,cy:"0",r:`${R*t.scale/((h=this.store.state)===null||h===void 0?void 0:h.scale)}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"resize-handle-overlay top-right",cx:t.totalWidth,cy:"0",r:`${P*t.scale/((c=this.store.state)===null||c===void 0?void 0:c.scale)}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"resize-handle bottom-left",cx:"0",cy:t.totalHeight,r:`${R*t.scale/((d=this.store.state)===null||d===void 0?void 0:d.scale)}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"resize-handle-overlay bottom-left",cx:"0",cy:t.totalHeight,r:`${P*t.scale/((u=this.store.state)===null||u===void 0?void 0:u.scale)}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"resize-handle bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${R*t.scale/((f=this.store.state)===null||f===void 0?void 0:f.scale)}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"resize-handle-overlay bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${P*t.scale/((b=this.store.state)===null||b===void 0?void 0:b.scale)}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("line",{x1:t.totalWidth/2,y1:"0",x2:t.totalWidth/2,y2:-(15*t.scale/((p=this.store.state)===null||p===void 0?void 0:p.scale)),style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${(v=this.store.state)===null||v===void 0?void 0:v.scale})`},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"rotation-handle",cx:t.totalWidth/2,cy:-(15*t.scale/((g=this.store.state)===null||g===void 0?void 0:g.scale)),r:`${R*t.scale/((k=this.store.state)===null||k===void 0?void 0:k.scale)}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("circle",{class:"rotation-handle-overlay",cx:t.totalWidth/2,cy:-(15*t.scale/((y=this.store.state)===null||y===void 0?void 0:y.scale)),r:`${P*t.scale/((x=this.store.state)===null||x===void 0?void 0:x.scale)}`,style:{fill:"transparent",cursor:"grab"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),i("g",{style:{display:this.store.state.debugInfo.showObjectInfo?"block":"none",pointerEvents:"none"}},i("foreignObject",{x:t.totalWidth.toString(),y:"0",width:"400px",height:"160px",style:{minHeight:"0",minWidth:"0",display:t.isDebugInfoVisible?"block":"none"}},i("div",{style:{width:"100%",height:"100%"}},i("div",{style:{whiteSpace:"nowrap"}},"zIndex: ",t.zIndex),i("div",{style:{whiteSpace:"nowrap"}},"translateX: ",t.translateX),i("div",{style:{whiteSpace:"nowrap"}},"translateY: ",t.translateY),i("div",{style:{whiteSpace:"nowrap"}},"width: ",t.width),i("div",{style:{whiteSpace:"nowrap"}},"height: ",t.height),i("div",{style:{whiteSpace:"nowrap"}},"scale: ",t.scale),i("div",{style:{whiteSpace:"nowrap"}},"rotation: ",t.rotation),i("div",{style:{whiteSpace:"nowrap"}},"x: ",t.x),i("div",{style:{whiteSpace:"nowrap"}},"y: ",t.y))))))})),i("svg",{key:"86f9a08bea3ac2d261b14b2eec471fafd20ca11f",class:"object",xmlns:"http://www.w3.org/2000/svg",style:{height:(j=this.store.state.currentPath)===null||j===void 0?void 0:j.height.toString(),width:(M=this.store.state.currentPath)===null||M===void 0?void 0:M.width.toString(),left:"0",top:"0",zIndex:(D=this.store.state.currentPath)===null||D===void 0?void 0:D.zIndex.toString(),position:"absolute",transform:(B=this.store.state.currentPath)===null||B===void 0?void 0:B.transformationMatrix,transformOrigin:"top left",overflow:"visible"},viewBox:(S=this.store.state.currentPath)===null||S===void 0?void 0:S.viewBox},i("path",{key:"66ebcf1791c993d62b34a2e4da1d4279428a17dd",d:(E=this.store.state.currentPath)===null||E===void 0?void 0:E.d,fill:(T=this.store.state.currentPath)===null||T===void 0?void 0:T.fill,stroke:($=this.store.state.currentPath)===null||$===void 0?void 0:$.stroke}))),this.store.state.isContextMenuVisible&&i("kritzel-context-menu",{key:"af91784e3afc84b71d5186237d287c31d472d80a",class:"context-menu",ref:t=>this.contextMenuElement=t,items:this.store.state.contextMenuItems,objects:((O=this.store.state.selectionGroup)===null||O===void 0?void 0:O.objects)||[],style:{position:"fixed",left:`${this.store.state.contextMenuX}px`,top:`${this.store.state.contextMenuY}px`,zIndex:"10000"},onActionSelected:t=>{var e;t.detail.action({x:(-this.store.state.translateX+this.store.state.contextMenuX)/this.store.state.scale,y:(-this.store.state.translateY+this.store.state.contextMenuY)/this.store.state.scale},(e=this.store.state.selectionGroup)===null||e===void 0?void 0:e.objects);this.hideContextMenu()}}),((W=this.store.state)===null||W===void 0?void 0:W.activeTool)instanceof c&&!this.store.state.isScaling&&i("kritzel-cursor-trail",{key:"573a4422b742044df5f240b260bc66e83d004520",store:this.store}))}get host(){return o(this)}static get watchers(){return{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}}};ut.style=dt;const ft=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const bt=class{constructor(e){t(this,e);this.fontFamily="Arial, sans-serif";this.size=24;this.color="#000000"}render(){return i(s,{key:"d318355704f1bf66468dd793e5e38da827076d3b"},i("div",{key:"447b4fba97f5d1900060859943438733667aed08",class:"font-preview",style:{fontFamily:this.fontFamily,fontSize:`${this.size}px`,color:this.color}},"A"))}};bt.style=ft;const pt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:pointer;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}.font-style-button.italic-text{font-style:italic}";const vt=class{constructor(i){t(this,i);this.fontFamilyChange=e(this,"fontFamilyChange");this.fontOptions=[{value:"arial",label:"Arial"},{value:"verdana",label:"Verdana"},{value:"helvetica",label:"Helvetica"},{value:"tahoma",label:"Tahoma"},{value:"trebuchet ms",label:"Trebuchet MS"},{value:"times new roman",label:"Times New Roman"},{value:"georgia",label:"Georgia"},{value:"garamond",label:"Garamond"},{value:"courier new",label:"Courier New"},{value:"brush script mt",label:"Brush Script MT"}];this.handleDropdownValueChange=t=>{this.fontFamilyChange.emit(t.detail)}}componentWillLoad(){if(this.fontOptions&&this.fontOptions.length>0){const t=this.fontOptions.some((t=>t.value===this.selectedFontFamily));if(!this.selectedFontFamily||!t){this.selectedFontFamily=this.fontOptions[0].value}}}render(){const t=this.fontOptions.map((t=>({value:t.value,label:t.label,style:{fontFamily:t.value}})));return i(s,{key:"801b1dbc2b7da7d00fb00ed6a8d8ee7be3e9ef17"},i("kritzel-dropdown",{key:"5f774c0b31ca16a1c8acda1c73ea3aacc2784649",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}},i("button",{key:"3c101155ff08854f665750f8988fb3691a77c04a",class:"font-style-button",slot:"suffix"},"B"),i("button",{key:"48d2ead137a8a35f06fb8b5487431e2ce613c755",class:"font-style-button italic-text",slot:"suffix"},"I")))}};vt.style=pt;const gt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:4px;cursor:pointer;border:2px solid transparent;box-sizing:border-box;border-radius:50%}.size-container:hover{background-color:var(--kritzel-font-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-font-size-selected-background-color, #e0e0e0)}";const kt=class{constructor(i){t(this,i);this.sizeChange=e(this,"sizeChange");this.sizes=[8,10,12,16,20,24];this.selectedSize=null;this.fontFamily="Arial"}handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return i(s,{key:"08571feed86b37208956608b170ca1f782b7fb18"},this.sizes.map((t=>i("div",{class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},i("kritzel-font",{fontFamily:this.fontFamily,size:t})))))}};kt.style=gt;const yt=":host{display:inline-flex;justify-content:center;align-items:center;}span{display:flex;align-items:center;width:100%;height:100%;}span>svg{width:100%;height:100%}";const xt=class{constructor(e){t(this,e);this.size=24}render(){const t=U.get(this.name);if(!t){console.error(`[kritzel-icon] Icon "${this.name}" not found in registry.`);return i("span",{class:"error-icon","aria-label":`Error: Icon ${this.name} not found`},"?")}const e={width:`${this.size}px`,height:`${this.size}px`};return i(s,{style:e},i("span",{"aria-hidden":!this.label,role:this.label?"img":undefined,"aria-label":this.label,innerHTML:t}))}};xt.style=yt;const wt=":host{display:flex;flex-direction:column;min-width:180px;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 12px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-item-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin}button{all:unset;background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;line-height:inherit;text-align:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;border-radius:0;-webkit-tap-highlight-color:transparent}button:focus{outline:none}:host(:focus){outline:none}.menu-item{display:flex;align-items:center;justify-content:space-between;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 12px);cursor:pointer;font-family:sans-serif;font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);gap:var(--kritzel-context-menu-item-gap, 12px)}.menu-item:focus,.menu-item:focus-within{outline:none;background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item:not(.disabled):not(.inactive):not(.active):hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):not(.inactive):not(.active):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.active{color:var(--kritzel-controls-background-color, #ffffff);background-color:var(--kritzel-controls-control-selected-background-color, #007aff)}.menu-item.active kritzel-icon{filter:brightness(0) invert(1)}.menu-item.active:hover{background-color:var(--kritzel-controls-control-selected-hover-background-color, #0075f1)}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa);background-color:transparent;cursor:default}.menu-item.child-open{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%)) !important}.menu-item.active.menu-item.child-open{background-color:var(--kritzel-controls-control-selected-active-background-color, #0075f1) !important}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.menu-item.edit-mode input{background:transparent;border:none;outline:none;font-size:inherit;font-family:inherit;color:inherit;padding:0;width:100%;padding:2px 0px;border-bottom:1px solid var(--kritzel-context-menu-item-color, #333333)}.menu-item.active.edit-mode input{border-bottom:1px solid var(--kritzel-controls-background-color, #ffffff)}.menu-item.edit-mode input::selection{background-color:var(--kritzel-controls-control-selected-background-color, #007aff);border-radius:4px;color:var(--kritzel-controls-background-color, #ffffff)}.menu-item.active.edit-mode input::selection{background-color:var(--kritzel-menu-item-selected-input-background-color, #ffffff34)}.menu-item-button{background:transparent;border:none;outline:none;cursor:pointer;padding:4px;border-radius:8px;display:flex;align-items:center;justify-content:center}.menu-item-button:hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item-button:focus{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.edit-container,.view-container{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--kritzel-context-menu-item-gap, 4px)}";const mt=class{constructor(i){t(this,i);this.close=e(this,"close");this.items=[];this.parentIndex=null;this.parent=null;this.activeItemIndex=null;this.editingIndex=null;this.openChildMenuIndex=null;this.childMenuAnchor=null;this.cancelButton=null;this.saveButton=null}onEditingIndexChange(t){if(t===null){this.openChildMenuIndex=null;this.editInput=undefined;return}}handleWindowClick(t){if(this.openChildMenuIndex===null){return}const e=t.target;if(!this.host.contains(e)){this.openChildMenuIndex=null}}handleEscape(t){var e;if(t.key==="Escape"){if(this.openChildMenuIndex!==null){return}if(this.editingIndex!==null){(e=this.cancelButton)===null||e===void 0?void 0:e.click();return}this.close.emit()}}handleEnter(t){var e;if(t.key==="Enter"){if(this.editingIndex!==null){(e=this.saveButton)===null||e===void 0?void 0:e.click();return}}}componentDidLoad(){requestAnimationFrame((()=>{this.host.focus()}))}isViewMode(t){return this.editingIndex!==t}handleSelect(t){var e;if(t.disabled||this.editingIndex!==null||this.openChildMenuIndex!==null){return}(e=t.select)===null||e===void 0?void 0:e.call(t,t)}render(){return i(s,{key:"6d98c1d40c1af36b7b36c45ddc96fb89ab6ebdca",tabIndex:0},this.items.map(((t,e)=>i("button",{tabIndex:0,class:{"menu-item":true,disabled:t.disabled,inactive:this.openChildMenuIndex!==null&&this.openChildMenuIndex!==e,"child-open":this.openChildMenuIndex===e,"edit-mode":this.editingIndex===e,active:this.activeItemIndex===e},onClick:()=>this.handleSelect(t)},this.isViewMode(e)===true&&i("div",{class:"view-container"},i("span",{class:"menu-item-label"},t.label),i("div",null,t.children&&t.children.length>0&&i("button",{class:"menu-item-button",tabIndex:0,onClick:t=>{if(this.editingIndex!==null)return;t.stopPropagation();this.childMenuAnchor=this.openChildMenuIndex===e?null:t.currentTarget;this.openChildMenuIndex=this.openChildMenuIndex===e?null:e}},i("kritzel-icon",{name:"ellipsis-vertical",size:16})),this.openChildMenuIndex===e&&i("kritzel-portal",{anchor:this.childMenuAnchor,offsetY:4,onClose:()=>this.openChildMenuIndex=null},i("kritzel-menu",{style:{minWidth:"100px"},items:t.children,parentIndex:e,parent:t,onClose:()=>{var t;this.openChildMenuIndex=null;(t=this.childMenuAnchor)===null||t===void 0?void 0:t.focus()}})))),this.isViewMode(e)===false&&i("div",{class:"edit-container"},i("input",{tabIndex:0,ref:t=>{this.editInput=t;requestAnimationFrame((()=>{var t,e;(t=this.editInput)===null||t===void 0?void 0:t.focus();(e=this.editInput)===null||e===void 0?void 0:e.select()}))},type:"text",name:"menu-item-"+e,value:t.label,onInput:e=>t.label=e.target.value}),i("div",{style:{display:"flex",gap:"8px"}},i("button",{ref:t=>this.cancelButton=t,class:"menu-item-button",tabIndex:0,onClick:()=>{var e;return(e=t.cancel)===null||e===void 0?void 0:e.call(t,t)}},i("kritzel-icon",{name:"x",size:16})),i("button",{ref:t=>this.saveButton=t,class:"menu-item-button",tabIndex:0,onClick:()=>{var e;return(e=t.save)===null||e===void 0?void 0:e.call(t,t)}},i("kritzel-icon",{name:"check",size:16}))))))))}get host(){return o(this)}static get watchers(){return{editingIndex:["onEditingIndexChange"]}}};mt.style=wt;class zt{static getNumericValueFromStyle(t,e){const i=window.getComputedStyle(t).getPropertyValue(e);return parseFloat(i)||0}static getScrollableParent(t){var e,i;if(!t){return window}const s=(i=(e=t.parentNode)===null||e===void 0?void 0:e.host)!==null&&i!==void 0?i:t.parentElement;if(!s||s.tagName==="BODY"){return window}const o=window.getComputedStyle(s);if(o.overflow==="auto"||o.overflowY==="auto"||o.overflow==="scroll"||o.overflowY==="scroll"){return s}return this.getScrollableParent(s)}static isElementInViewport(t){if(!t){return false}const e=this.getScrollableParent(t);const i=t.getBoundingClientRect();if(e===window){const t=window.innerHeight||document.documentElement.clientHeight;const e=window.innerWidth||document.documentElement.clientWidth;return i.top>=0&&i.left>=0&&i.bottom<=t&&i.right<=e}const s=e.getBoundingClientRect();return i.top>=s.top&&i.left>=s.left&&i.bottom<=s.bottom&&i.right<=s.right}}const Ct=0;const It=0;const jt="9005";const Mt="portal";const Dt=class{constructor(i){t(this,i);this.close=e(this,"close");this.autoFocus=true;this.moved=false;this.handleScroll=()=>{const t=zt.isElementInViewport(this.anchor);if(!t){this.close.emit();return}this.calculatePosition()}}anchorChanged(t){if(t){this.calculatePosition()}}handleResize(){this.calculatePosition()}calculateLeft(){var t;if(!this.anchor||!this.portal)return 0;const e=this.anchor.getBoundingClientRect();const i=this.portal.getBoundingClientRect();const s=(t=this.offsetX)!==null&&t!==void 0?t:Ct;let o=e.left+s;const n=window.innerWidth-i.width-It;if(o<It)o=It;if(o>n)o=n;return Math.round(o+window.scrollX)}calculateTop(){var t;if(!this.anchor||!this.portal)return 0;const e=this.anchor.getBoundingClientRect();const i=this.portal.getBoundingClientRect();const s=(t=this.offsetY)!==null&&t!==void 0?t:Ct;let o=e.bottom+s;if(o+i.height>window.innerHeight){o=e.top-i.height-s}return Math.round(o+window.scrollY)}createPortal(){this.portal=document.createElement("div");this.portal.setAttribute("id",Mt);this.portal.style.zIndex=jt;this.portal.style.position="absolute";this.portal.style.top="0px";this.portal.style.left="0px";document.body.append(this.portal)}moveElementToPortal(){this.portal.appendChild(this.element);this.moved=true}calculatePosition(){if(!this.anchor||!this.portal)return;const t=this.calculateTop();const e=this.calculateLeft();this.portal.style.top=`${t}px`;this.portal.style.left=`${e}px`}componentWillLoad(){this.createPortal()}componentDidLoad(){var t;this.moveElementToPortal();if(this.anchor){this.calculatePosition();this.scrollableParent=zt.getScrollableParent(this.anchor);(t=this.scrollableParent)===null||t===void 0?void 0:t.addEventListener("scroll",this.handleScroll)}}disconnectedCallback(){var t;this.moved?this.portal.remove():this.moved=true;(t=this.scrollableParent)===null||t===void 0?void 0:t.removeEventListener("scroll",this.handleScroll)}render(){return i(s,{key:"e39525c3e9ddbf738b63ac0c08d8c1e2264783b1",ref:t=>this.element=t},i("slot",{key:"95202c5bea32c77dc1dde0a12a58ac9bcebd8812"}))}static get watchers(){return{anchor:["anchorChanged"]}}};const Bt=":host{position:relative;display:flex;align-items:center;font-family:sans-serif;z-index:1;padding:var(--kritzel-controls-padding, 4px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 12px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);gap:var(--kritzel-context-menu-item-gap, 4px)}:host(:focus){outline:none}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:all;-webkit-tap-highlight-color:transparent}.split-main-button,.split-menu-button{height:auto;display:flex;align-items:center;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 12px);font-size:var(--kritzel-context-menu-item-font-size, 14px)}.split-main-button:hover,.split-menu-button:hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button:focus,.split-menu-button:focus{outline:none;background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button{gap:var(--kritzel-context-menu-item-gap, 4px)}.split-menu-button{border-left:none;justify-content:center}.split-divider{width:var(--kritzel-controls-divider-width, 1px);height:24px;background-color:var(--kritzel-controls-divider-background-color, hsl(0, 0%, 0%, 4.3%))}";const St=class{constructor(i){t(this,i);this.buttonClick=e(this,"buttonClick");this.optionSelect=e(this,"optionSelect");this.menuOpened=e(this,"menuOpened");this.menuClosed=e(this,"menuClosed");this.dropdownIcon="chevron-down";this.options=[];this.disabled=false;this.activeItemIndex=null;this.editingIndex=null;this.isMenuOpen=false;this.handleDocumentClick=t=>{const e=t.composedPath&&t.composedPath()||[];const i=e.some((t=>(t===null||t===void 0?void 0:t.tagName)==="KRITZEL-SPLIT-BUTTON"||(t===null||t===void 0?void 0:t.tagName)==="KRITZEL-MENU"));if(!i){this.closeMenu()}else if(this.isMenuOpen){document.addEventListener("click",this.handleDocumentClick,{once:true})}};this.toggleMenu=()=>{if(this.isMenuOpen){this.closeMenu()}else{this.openMenu()}};this.handleButtonClick=()=>{if(!this.disabled){this.buttonClick.emit()}}}async openMenu(){if(this.disabled||this.isMenuOpen)return;this.isMenuOpen=true;this.menuOpened.emit();document.addEventListener("click",this.handleDocumentClick,{once:true})}async closeMenu(){if(this.disabled||!this.isMenuOpen)return;this.isMenuOpen=false;this.menuClosed.emit();this.host.focus()}render(){return i(s,{key:"cf133b2867dffe6b9d70259c7d44b86342411d38",tabIndex:0},i("button",{key:"3044cd9cbe02dde919a276b9f1d8f1f24b8514e9",class:"split-main-button",tabIndex:0,onClick:this.handleButtonClick,disabled:this.disabled},this.buttonIcon&&i("kritzel-icon",{key:"4ed314f7288df567bb35a909c4919cf353788dd2",name:this.buttonIcon}),this.buttonText&&i("span",{key:"68b2148200e4698468aae137d16a4b5f17764f9f"},this.buttonText," (",this.options.length,")")),i("div",{key:"5047a2aea1d31e80fba8f6350e4b64572198c87d",class:"split-divider"}),i("button",{key:"d7b33d9c717553d7cff3c3d2fafe90ce9dce1e67",ref:t=>this.splitMenuButton=t,class:"split-menu-button",tabIndex:0,onClick:this.toggleMenu,disabled:this.disabled},i("kritzel-icon",{key:"a3d485aee5e9843c2d07d367a0d5743bfc8f3d5c",name:this.dropdownIcon})),i("kritzel-portal",{key:"2bb8f5c58884e6c73d3d7025a8e6efce770ab039",anchor:this.host,offsetY:4},this.isMenuOpen&&i("kritzel-menu",{key:"3f2bb51a43ec78ff8664d5f625afa21cf9ecfb8c",style:{maxHeight:"300px",width:"180px"},items:this.options,activeItemIndex:this.activeItemIndex,editingIndex:this.editingIndex,onClose:()=>this.closeMenu()})))}get host(){return o(this)}};St.style=Bt;const Et=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}";const Tt=class{constructor(i){t(this,i);this.sizeChange=e(this,"sizeChange");this.sizes=[4,6,8,12,16,24];this.selectedSize=null}handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return i(s,{key:"0185d3243c35c49169324c98f87df6a286fc3d31"},this.sizes.map((t=>i("div",{class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},i("kritzel-color",{value:"#000000",size:t})))))}};Tt.style=Et;const $t=":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}";const Ot=768;const Wt=class{constructor(e){t(this,e);this.isVisible=false;this.arrowSize=8;this.offsetY=24;this.positionX=0;this.arrowOffset="0px";this.isMobileView=window.innerWidth<Ot}handleWindowResize(){this.isMobileView=window.innerWidth<Ot;this.calculateAdjustedPosition()}componentWillLoad(){this.isMobileView=window.innerWidth<Ot;this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}calculateAdjustedPosition(){var t;if(this.isVisible&&this.anchorElement){const e=this.anchorElement.getBoundingClientRect();const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip-content");if(!this.isMobileView){this.positionX=e.left+e.width/2;this.arrowOffset=`calc(${50}% - ${this.arrowSize}px)`}else{const t=i.getBoundingClientRect();this.positionX=e.left+e.width/2-t.width/2;this.arrowOffset=`${e.left+e.width/2-t.left-this.arrowSize}px`}}}render(){return i(s,{key:"7610e8185e037813cc363daa3212a4164a20daaf",style:{position:"fixed",zIndex:"9999",transition:"opacity 0.3s ease-in-out, transform 0.3s ease-in-out",visibility:this.isVisible?"visible":"hidden",left:!this.isMobileView?`${this.positionX}px`:"50%",marginBottom:`${this.offsetY+this.arrowSize}px`}},i("div",{key:"bd5c1f0f7ff3afddfcf2469277189d026e79b453",class:"tooltip-content",onClick:t=>t.stopPropagation()},i("slot",{key:"547e5a8fcb8131225461881a1ad0125fa4b0d55b"}),i("div",{key:"de1d30c31667a81a36873d32bec20fcc911ec89f",class:"tooltip-arrow-wrapper",style:{position:"fixed",left:this.arrowOffset,bottom:`-${this.arrowSize*2}px`}},i("div",{key:"ebbf83bd4d35e252b0258a7c81ebcef48ac10004",class:"tooltip-arrow",style:{borderLeft:`${this.arrowSize}px solid transparent`,borderRight:`${this.arrowSize}px solid transparent`,borderTop:`${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,filter:"drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))"}}),i("div",{key:"918ca46c438657dc4f72ccc73f81d58076d637c5",class:"tooltip-arrow-rect",style:{position:"relative",width:`${this.arrowSize*2}px`,height:`${this.arrowSize}px`,backgroundColor:"var(--kritzel-controls-tooltip-background-color, #ffffff)",bottom:`${this.arrowSize*2}px`}}))))}get el(){return o(this)}};Wt.style=$t;const Ft=":host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:rgb(226, 226, 226);width:fit-content;user-select:none}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;outline:none;background:none;cursor:pointer;color:#333333;-webkit-tap-highlight-color:transparent}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";const At=class{constructor(i){t(this,i);this.undo=e(this,"undo");this.redo=e(this,"redo");this.delete=e(this,"delete")}handleUndo(t){if(t.cancelable){t.preventDefault();t.stopPropagation();this.undo.emit()}}handleRedo(t){t.preventDefault();t.stopPropagation();this.redo.emit()}render(){return i(s,{key:"cf7b5c501b6535fda22b17ea218e90bd60223c6e"},i("button",{key:"05db2cee7f2e191674167ef503e70718200bf904",class:"utility-button",onClick:t=>this.handleUndo(t)},i("kritzel-icon",{key:"10412c038b9d4e66851c8a0c9b51b99607bac397",name:"undo"})),i("button",{key:"edf0289de8ce5cddd9341bc1855eae095274226c",class:"utility-button",onClick:t=>this.handleRedo(t)},i("kritzel-icon",{key:"46263e3d3f166b224c9a18ba383085e020fac51a",name:"redo"})),i("div",{key:"3a6c0eca21f44887683d6308ca5741b095eceb77",class:"utility-separator"}),i("button",{key:"ced83e0c47fc920edabdc5b3379a8805f1827374",class:"utility-button"},i("kritzel-icon",{key:"d49c6412d778d34fe21e86482f2114631621106a",name:"delete",onClick:()=>this.delete.emit()})))}};At.style=Ft;const Rt=":host{display:flex;flex-direction:column;z-index:1}";const Pt=class{constructor(i){t(this,i);this.isWorkspaceManagerReady=e(this,"isWorkspaceManagerReady");this.workspaceChange=e(this,"workspaceChange");this.workspaces=[];this.editingIndex=null;this.newWorkspace=null;this.kritzelEngine=null;this.handleNewWorkspace=async()=>{var t;await((t=this.splitButtonRef)===null||t===void 0?void 0:t.openMenu());requestAnimationFrame((()=>{this.newWorkspace=new rt(g.generateUUID(),"New Workspace");this.editingIndex=0}))};this.handleMenuClosed=()=>{this.editingIndex=null;this.newWorkspace=null};this.handleSave=async t=>{const e=t.value;const i=Object.assign(Object.assign({},e),{name:t.label});if(this.newWorkspace){await this.kritzelEngine.createWorkspace(i);this.selectWorkspace(i)}else{await this.kritzelEngine.updateWorkspace(i)}this.editingIndex=null;this.newWorkspace=null};this.handleRename=t=>{this.editingIndex=t};this.handleDelete=async t=>{var e;await this.kritzelEngine.deleteWorkspace(t);if(((e=this.activeWorkspace)===null||e===void 0?void 0:e.id)===t.id){const e=this.sortedWorkspaces.find((e=>e.id!==t.id))||null;this.selectWorkspace(e)}}}get sortedWorkspaces(){const t=[...new Map(this.workspaces.map((t=>[t.id,t]))).values()];return[this.newWorkspace,...t].filter((t=>t!==null)).sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}get activeItemIndex(){return this.sortedWorkspaces.findIndex((t=>{var e;return t.id===((e=this.activeWorkspace)===null||e===void 0?void 0:e.id)}))}async componentWillLoad(){await this.initializeEngine();this.isWorkspaceManagerReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngine=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngine){throw new Error("kritzel-engine not found in parent element.")}}handleSelect(t){this.selectWorkspace(t)}selectWorkspace(t){if(this.editingIndex!==null)return;this.activeWorkspace=this.sortedWorkspaces.find((e=>e.id===t.id));this.workspaceChange.emit(t)}render(){const t=this.sortedWorkspaces.map(((t,e)=>({label:t.name,value:t,select:()=>this.handleSelect(t),cancel:this.handleMenuClosed,save:this.handleSave,children:[{label:"Rename",value:"rename",select:()=>this.handleRename(e)},{label:"Delete",value:"delete",disabled:this.sortedWorkspaces.length<=1,select:()=>this.handleDelete(t)}]})));return i(s,{key:"1703451717d5583d6520edfbcdbe38a5b8f6840f"},i("kritzel-split-button",{key:"efd5d9b714ee72b23fd28c9b20ea6985957fe9b9",ref:t=>this.splitButtonRef=t,buttonIcon:"plus",options:t,activeItemIndex:this.activeItemIndex,editingIndex:this.editingIndex,onButtonClick:this.handleNewWorkspace,onMenuClosed:this.handleMenuClosed}))}get host(){return o(this)}};Pt.style=Rt;export{S as kritzel_brush_style,T as kritzel_color,O as kritzel_color_palette,F as kritzel_context_menu,R as kritzel_control_brush_config,_ as kritzel_control_text_config,N as kritzel_controls,Y as kritzel_cursor_trail,X as kritzel_dropdown,J as kritzel_editor,ut as kritzel_engine,bt as kritzel_font,vt as kritzel_font_family,kt as kritzel_font_size,xt as kritzel_icon,mt as kritzel_menu,Dt as kritzel_portal,St as kritzel_split_button,Tt as kritzel_stroke_size,Wt as kritzel_tooltip,At as kritzel_utility_panel,Pt as kritzel_workspace_manager};
|
|
2
|
-
//# sourceMappingURL=p-4a0009e7.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["registerInstance","createEvent","h","Host","getElement","KritzelBrushTool","KritzelTextTool","KritzelMouseButton","KritzelSelectionTool","DEFAULT_BRUSH_CONFIG","KritzelEraserTool","DEFAULT_TEXT_CONFIG","KritzelImageTool","KritzelEventHelper","KritzelBaseCommand","KritzelSelectionGroup","KrtizelSelectionBox","ObjectHelper","KritzelReviver","RemoveSelectionGroupCommand","RemoveObjectCommand","BatchCommand","AddObjectCommand","AddSelectionGroupCommand","KritzelToolRegistry","UpdateObjectCommand","KritzelBaseHandler","KritzelBaseTool","KritzelKeyboardHelper","kritzelBrushStyleCss","KritzelBrushStyle","constructor","hostRef","this","typeChange","type","brushOptions","value","label","handleDropdownValueChange","event","emit","detail","render","dropdownOptions","map","option","key","options","onValueChanged","class","slot","name","size","style","kritzelColorCss","KritzelColor","isLightColor","hexColor","r","g","b","sanitizedHex","startsWith","slice","length","parseInt","substring","isNaN","luminance","isColorVeryLight","width","height","borderRadius","display","position","white","backgroundColor","top","left","kritzelColorPaletteCss","KritzelColorPalette","colorChange","colors","selectedColor","isExpanded","isOpaque","handleColorClick","color","calculateHeight","colorsPerRow","rowHeight","gap","rowCount","Math","ceil","displayedColors","expandedHeight","expanded","selected","onClick","kritzelContextMenuCss","KritzelContextMenu","actionSelected","processedItems","componentWillLoad","updateMenuItems","onItemsChanged","handleItemClick","item","isDisabled","evaluateProperty","defaultValue","Promise","resolve","objects","processed","items","isVisible","visible","disabled","push","index","onTouchStart","icon","hostElement","watchers","kritzelControlBrushConfigCss","KritzelControlBrushConfig","toolChange","palette","handleToolChange","newTool","palettes","tool","handleToggleExpand","handleTypeChange","handleColorChange","handleSizeChange","flexDirection","alignItems","justifyContent","onTypeChange","title","visibillity","visibility","onColorChange","selectedSize","onSizeChange","kritzelControlTextConfigCss","KritzelControlTextConfig","handleFamilyChange","fontFamily","fontColor","fontSize","selectedFontFamily","onFontFamilyChange","KritzelDevicesHelper","isTouchDevice","window","matchMedia","matches","kritzelControlsCss","KritzelControls","isControlsReady","controls","activeControl","isUtilityPanelVisible","firstConfig","isTooltipVisible","kritzelEngine","handleDocumentClick","element","target","closest","handleKeyDown","_a","preventDefault","closeTooltip","enable","handleActiveToolChange","find","control","setFocus","activeToolAsTextTool","activeToolAsBrushTool","initializeEngine","initializeTools","customElements","whenDefined","host","parentElement","querySelector","Error","c","registerTool","config","isDefault","changeActiveTool","console","warn","handleControlClick","handleConfigClick","stopPropagation","disable","Object","assign","_b","hasNoConfig","undefined","mobile","bottom","onUndo","undo","onRedo","redo","onDelete","delete","_c","_d","_e","_f","_g","_h","_event","call","anchorElement","shadowRoot","onToolChange","cursor","pointerEvents","border","assetsDirs","kritzelCursorTrailCss","KritzelCursorTrail","cursorTrailPoints","isLeftButtonDown","TRAIL_DURATION_MS","MAX_TRAIL_POINTS","componentDidLoad","trailCleanupIntervalId","setInterval","now","Date","newTrailPoints","filter","p","timestamp","disconnectedCallback","clearInterval","handleMouseDown","ev","pointerType","button","Left","store","state","pointers","handlePointerMove","newPoint","x","clientX","y","clientY","updatedTrail","handlePointerUp","xmlns","opacity","zIndex","point","prevPoint","age","progress","max","min","baseStrokeWidth","x1","toString","y1","x2","y2","stroke","kritzelDropdownCss","KritzelDropdown","valueChanged","selectStyles","hasSuffixContent","hasPrefixContent","handleSelectChange","newValue","internalValue","evaluateSuffixContent","suffixSlotElement","newHasContent","assignedNodes","flatten","evaluatePrefixContent","prefixSlotElement","updateInternalValue","externalValueChanged","optionsChanged","proposedValue","emitChange","finalValue","isValidValue","some","opt","selectClasses","ref","el","onSlotchange","onInput","KritzelIconRegistry","register","svgContent","registry","has","set","get","registerIcons","icons","prototype","hasOwnProperty","Map","pen","highlighter","eraser","image","copy","paste","cut","download","plus","check","ABSOLUTE_SCALE_MAX","ABSOLUTE_SCALE_MIN","kritzelEditorCss","KritzelEditor","isReady","scaleMax","scaleMin","globalContextMenuItems","async","engineRef","getCopiedObjects","action","menu","selectAllObjectsInViewport","objectContextMenuItems","_","isEditable","object","edit","bringToFront","sendToBack","customSvgIcons","isControlsVisible","isEngineReady","isWorkspaceManagerReady","workspaces","onIsEngineReady","checkIsReady","onIsControlsReady","getObjectById","id","addObject","updateObject","updatedProperties","removeObject","getSelectedObjects","selectObjects","clearSelection","centerObjectInViewport","handleTouchStart","cancelable","registerCustomSvgIcons","onEngineReady","activeWorkspace","svg","entries","onWorkspaceChange","onIsWorkspaceManagerReady","workspace","onWorkspacesChange","controlsRef","KritzelViewport","initialTouchDistance","startX","startY","_store","viewportWidth","clientWidth","viewportHeight","clientHeight","translateX","translateY","handleResize","hasViewportChanged","rerender","handlePointerDown","adjustedClientX","offsetX","adjustedClientY","offsetY","Right","isPanning","activePointers","Array","from","values","currentPath","isScaling","firstTouchX","firstTouchY","secondTouchX","secondTouchY","sqrt","pow","hostRect","getBoundingClientRect","xRelativeToHost","yRelativeToHost","pointerX","scale","pointerY","skipContextMenu","updateWorkspaceViewport","currentTouchDistance","midpointX","midpointY","scaleRatio","newScale","translateXAdjustment","translateYAdjustment","handleWheel","ctrlKey","isMainMouseWheel","handleZoom","handlePan","rect","delta","deltaY","scaleStep","panSpeed","deltaX","UpdateViewportCommand","initiator","previousViewport","skipHistory","super","currentViewport","execute","KritzelCircularBuffer","capacity","head","tail","buffer","fill","add","pop","peek","lastIndex","isEmpty","clear","KritzelHistory","undoStack","historyBufferSize","redoStack","reset","executeCommand","command","addUpdateViewportCommand","debugInfo","logCommands","info","KritzelOctree","bounds","children","insert","intersects","rotatedBoundingBox","subdivide","child","update","findIndex","o","remove","predicate","splice","query","range","results","allObjects","z","depth","halfWidth","halfHeight","halfDepth","a","DEFAULT_ENGINE_STATE","activeTool","activeText","copiedObjects","objectsOctree","selectionBox","selectionGroup","resizeHandleType","isEnabled","isFocused","isSelecting","isResizing","isResizeHandleSelected","isRotating","isRotationHandleSelected","isDragging","isDrawing","isErasing","isWriting","isCtrlKeyPressed","isContextMenuVisible","contextMenuItems","contextMenuX","contextMenuY","showObjectInfo","showViewportInfo","logDatabase","translateXMax","translateXMin","translateYMax","translateYMin","longTouchTimeout","longTouchDelay","KritzelDatabase","dbName","dbVersion","isLoggingEnabled","db","open","stores","reject","log","request","indexedDB","onerror","error","onsuccess","result","onupgradeneeded","forEach","storeConfig","objectStoreNames","contains","createObjectStore","indices","createIndex","keyPath","close","storeName","executeTransaction","getAll","put","deleteByRange","getAllByRange","getAllByIndex","indexName","mode","transaction","objectStore","requestResult","oncomplete","onabort","batch","actions","storeNames","extractStoreNamesFromActions","promises","tempDbInstance","resolveRequest","rejectRequest","all","then","promise","catch","err","abort","storeNamesSet","Set","storeNameCollector","Proxy","prop","includes","KritzelWorkspace","viewport","createdAt","updatedAt","KritzelStore","history","_history","database","_database","_state","currentZIndex","selectedObjects","isSelected","_listeners","_kritzelEngine","Infinity","initializeDatabase","initializeWorkspace","getWorkspaces","mostRecentWorkspace","sort","getTime","fallbackWorkspace","generateUUID","isExistingWorkspace","getWorkspace","updateWorkspace","createWorkspace","initializeWorkspaceObjects","workspaceId","objectsFromDb","IDBKeyRange","bound","reviver","revivedObject","revive","addObjectToDatabase","updateObjectInDatabase","deleteObjectFromDatabase","objectId","w","deleteWorkspace","objectRange","forceUpdate","findObjectById","deselectAllObjects","onStateChange","property","listener","setState","oldValue","String","deleteSelectedObjectsCommand","obj","removeSelectionGroupCommand","commands","deleteObject","removeObjectCommand","adjustedX","adjustedY","updatePosition","addCopiedObjectsCommands","addCopiedObjectsAsSelectionGroupCommand","getTool","bringForward","increaseZIndexCommands","sendBackward","decreaseZIndexCommands","create","addOrRemove","rotation","objectsInViewport","resetActiveText","getObjectFromPointerEvent","selector","elementAtPoint","elementFromPoint","selectedObject","getObjectsFromPointerEvent","elementsAtPoint","elementsFromPoint","objectIds","getCanvasPoint","xWithoutTranslate","yWithoutTranslate","worldX","worldY","KritzelKeyHandler","shiftKey","selectAll","insertFromClipboard","handleKeyUp","KritzelContextMenuHandler","handleContextMenu","menuWidthEstimate","menuHeightEstimate","margin","innerWidth","innerHeight","KritzelClassHelper","isInstanceOf","className","__class__","kritzelEngineCss","KritzelEngine","newWorkspace","validateScaleMax","validateScaleMin","isSelectionActive","activeToolChange","workspacesChange","contextMenuElement","contextMenuHandler","keyHandler","_registerStateChangeListeners","hideContextMenu","isPointerEventOnContextMenu","onLongTouchPress","setPointerCapture","pointerId","releasePointerCapture","handlePointerCancel","updateFocus","isInside","right","path","composedPath","kritzelEngineElement","isInKritzelEngine","handleClick","toolName","toolClass","toolConfig","registeredTool","onDeactivate","onActivate","focus","generateId","centerInViewport","ws","_handleActiveToolChange","bind","_handleIsFocusedChange","forceHideKeyboard","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","_1","_2","_3","_4","_5","_6","_7","_8","computedStyle","getComputedStyle","baseHandleSizePx","getPropertyValue","trim","baseHandleSize","parseFloat","baseHandleTouchSize","transform","isInViewport","transformationMatrix","transformOrigin","totalHeight","totalWidth","rotationDegrees","markedForRemoval","minHeight","minWidth","borderColor","borderWidth","borderStyle","padding","overflow","mount","unmount","viewBox","d","src","userSelect","draggable","onDragStart","e","onKeyDown","handleInput","rows","outline","resize","whiteSpace","isReadonly","caretColor","strokeWidth","strokeLinecap","cx","cy","isDebugInfoVisible","onActionSelected","kritzelFontCss","KritzelFont","kritzelFontFamilyCss","KritzelFontFamily","fontFamilyChange","fontOptions","isValidCurrentFont","kritzelFontSizeCss","KritzelFontSize","sizeChange","sizes","handleSizeClick","kritzelIconCss","KritzelIcon","styles","role","innerHTML","kritzelMenuCss","KritzelMenu","parentIndex","parent","activeItemIndex","editingIndex","openChildMenuIndex","childMenuAnchor","cancelButton","saveButton","onEditingIndexChange","editInput","handleWindowClick","handleEscape","click","handleEnter","requestAnimationFrame","isViewMode","handleSelect","select","tabIndex","inactive","active","currentTarget","anchor","onClose","cancel","save","KritzelHTMLHelper","getNumericValueFromStyle","getScrollableParent","parentNode","tagName","overflowY","isElementInViewport","scrollableParent","document","documentElement","parentRect","DEFAULT_OFFSET","MIN_LEFT_POSITION","Z_INDEX","ID_PORTAL","KritzelPortal","autoFocus","moved","handleScroll","isAnchorInViewport","calculatePosition","anchorChanged","calculateLeft","portal","refRect","portalRect","offset","maxLeft","round","scrollX","calculateTop","scrollY","createPortal","createElement","setAttribute","body","append","moveElementToPortal","appendChild","addEventListener","removeEventListener","kritzelSplitButtonCss","KritzelSplitButton","buttonClick","optionSelect","menuOpened","menuClosed","dropdownIcon","isMenuOpen","clickedInside","node","closeMenu","once","toggleMenu","openMenu","handleButtonClick","buttonIcon","buttonText","splitMenuButton","maxHeight","kritzelStrokeSizeCss","KritzelStrokeSize","kritzelTooltipCss","MOBILE_BREAKPOINT","KritzelTooltip","arrowSize","positionX","arrowOffset","isMobileView","handleWindowResize","calculateAdjustedPosition","componentWillUpdate","anchorRect","tooltipContent","tooltipRect","transition","marginBottom","borderLeft","borderRight","borderTop","kritzelUtilityPanelCss","KritzelUtilityPanel","handleUndo","handleRedo","kritzelWorkspaceManagerCss","KritzelWorkspaceManager","workspaceChange","handleNewWorkspace","splitButtonRef","handleMenuClosed","handleSave","updatedWorkspace","selectWorkspace","handleRename","handleDelete","workspaceToDelete","newActiveWorkspace","sortedWorkspaces","uniqueWorkspaces","workspaceSelectionOptions","onButtonClick","onMenuClosed"],"sources":["0"],"mappings":"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","ignoreList":[]}
|