kritzel-stencil 0.0.141 → 0.0.143

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.
Files changed (94) hide show
  1. package/dist/cjs/{index-BKstgWru.js → index-Cg50mv2K.js} +293 -811
  2. package/dist/cjs/index-Cg50mv2K.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/kritzel-color_22.cjs.entry.js +116 -79
  5. package/dist/collection/classes/commands/add-object.command.js +1 -0
  6. package/dist/collection/classes/commands/add-object.command.js.map +1 -1
  7. package/dist/collection/classes/commands/base.command.js +2 -0
  8. package/dist/collection/classes/commands/base.command.js.map +1 -1
  9. package/dist/collection/classes/commands/remove-object.command.js +1 -3
  10. package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
  11. package/dist/collection/classes/commands/update-object.command.js +2 -0
  12. package/dist/collection/classes/commands/update-object.command.js.map +1 -1
  13. package/dist/collection/classes/core/command-manager.class.js +51 -0
  14. package/dist/collection/classes/core/command-manager.class.js.map +1 -0
  15. package/dist/collection/classes/core/core.class.js +23 -14
  16. package/dist/collection/classes/core/core.class.js.map +1 -1
  17. package/dist/collection/classes/core/history.class.js +2 -40
  18. package/dist/collection/classes/core/history.class.js.map +1 -1
  19. package/dist/collection/classes/core/viewport.class.js +17 -7
  20. package/dist/collection/classes/core/viewport.class.js.map +1 -1
  21. package/dist/collection/classes/handlers/context-menu.handler.js +1 -1
  22. package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
  23. package/dist/collection/classes/handlers/move.handler.js +11 -6
  24. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  25. package/dist/collection/classes/handlers/resize.handler.js +29 -5
  26. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  27. package/dist/collection/classes/handlers/rotation.handler.js +2 -2
  28. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  29. package/dist/collection/classes/handlers/selection.handler.js +4 -4
  30. package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
  31. package/dist/collection/classes/objects/base-object.class.js +15 -14
  32. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  33. package/dist/collection/classes/objects/custom-element.class.js +7 -1
  34. package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
  35. package/dist/collection/classes/objects/text.class.js +126 -52
  36. package/dist/collection/classes/objects/text.class.js.map +1 -1
  37. package/dist/collection/classes/tools/brush-tool.class.js +2 -2
  38. package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
  39. package/dist/collection/classes/tools/eraser-tool.class.js +2 -2
  40. package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
  41. package/dist/collection/classes/tools/image-tool.class.js +1 -1
  42. package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
  43. package/dist/collection/classes/tools/selection-tool.class.js +2 -2
  44. package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
  45. package/dist/collection/classes/tools/text-tool.class.js +17 -11
  46. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  47. package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +1 -1
  48. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +22 -16
  49. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  50. package/dist/collection/helpers/event.helper.js +0 -3
  51. package/dist/collection/helpers/event.helper.js.map +1 -1
  52. package/dist/collection/interfaces/object.interface.js.map +1 -1
  53. package/dist/components/index.js +2 -2
  54. package/dist/components/kritzel-controls.js +1 -1
  55. package/dist/components/kritzel-editor.js +3 -3
  56. package/dist/components/kritzel-engine.js +1 -1
  57. package/dist/components/{p-ChLi4Ufe.js → p-BAw249L9.js} +3 -3
  58. package/dist/components/{p-ChLi4Ufe.js.map → p-BAw249L9.js.map} +1 -1
  59. package/dist/components/{p-BuDVaqTF.js → p-CoFmi-t6.js} +182 -734
  60. package/dist/components/p-CoFmi-t6.js.map +1 -0
  61. package/dist/components/{p-C4nj29RW.js → p-EO13AYoE.js} +229 -158
  62. package/dist/components/p-EO13AYoE.js.map +1 -0
  63. package/dist/esm/{index-D0Q2MKPn.js → index-Bj5QIJYQ.js} +294 -812
  64. package/dist/esm/index-Bj5QIJYQ.js.map +1 -0
  65. package/dist/esm/index.js +1 -1
  66. package/dist/esm/kritzel-color_22.entry.js +116 -79
  67. package/dist/stencil/index.esm.js +1 -1
  68. package/dist/stencil/p-Bj5QIJYQ.js +2 -0
  69. package/dist/stencil/p-Bj5QIJYQ.js.map +1 -0
  70. package/dist/stencil/p-b4185842.entry.js +2 -0
  71. package/dist/stencil/p-b4185842.entry.js.map +1 -0
  72. package/dist/stencil/stencil.esm.js +1 -1
  73. package/dist/types/classes/commands/add-object.command.d.ts +2 -2
  74. package/dist/types/classes/commands/base.command.d.ts +2 -1
  75. package/dist/types/classes/commands/remove-object.command.d.ts +2 -2
  76. package/dist/types/classes/commands/update-object.command.d.ts +2 -2
  77. package/dist/types/classes/core/command-manager.class.d.ts +16 -0
  78. package/dist/types/classes/core/core.class.d.ts +4 -0
  79. package/dist/types/classes/core/history.class.d.ts +0 -8
  80. package/dist/types/classes/core/viewport.class.d.ts +2 -0
  81. package/dist/types/classes/handlers/resize.handler.d.ts +1 -0
  82. package/dist/types/classes/objects/base-object.class.d.ts +6 -4
  83. package/dist/types/classes/objects/text.class.d.ts +13 -2
  84. package/dist/types/helpers/event.helper.d.ts +0 -1
  85. package/dist/types/interfaces/object.interface.d.ts +1 -3
  86. package/package.json +1 -1
  87. package/dist/cjs/index-BKstgWru.js.map +0 -1
  88. package/dist/components/p-BuDVaqTF.js.map +0 -1
  89. package/dist/components/p-C4nj29RW.js.map +0 -1
  90. package/dist/esm/index-D0Q2MKPn.js.map +0 -1
  91. package/dist/stencil/p-73784709.entry.js +0 -2
  92. package/dist/stencil/p-73784709.entry.js.map +0 -1
  93. package/dist/stencil/p-D0Q2MKPn.js +0 -2
  94. package/dist/stencil/p-D0Q2MKPn.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,H as i,c as s,g as o}from"./p-Cw77zP6g.js";import{K as n,a as r,b as a,c as l,D as c,d as h,e as d,f as u,g as f,h as p,i as b,j as g,k,l as y,m as v,B as m,R as x,A as w,n as z,O as C,o as I,p as M,q as S,U as j,r as D}from"./p-D0Q2MKPn.js";const B=":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)}value;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 e(i,{key:"000e54c604c8ceca2c44365e95ec1f5bfb1b729a"},e("div",{key:"77b2abeae70e4a80714e1364eb4e11e67f16d066",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},e("div",{key:"df71720cf51d845a36598499adb900a30770c503",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=B;const E=":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:focus-visible{outline:var(--kritzel-color-palette-focus-outline, 2px auto #e3e3e3)}.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(e){t(this,e);this.colorChange=s(this,"colorChange")}colors=[];selectedColor=null;isExpanded=false;isOpaque=false;colorChange;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 s=this.isExpanded?this.calculateHeight():"32px";return e(i,{key:"d533725a8ab2019ae963959727283fbbf833c56a"},e("div",{key:"7fb50c16d79e9b7330100b0f4e116f8f07b20827",class:{"color-grid":true,expanded:this.isExpanded},style:{height:s}},t.map((t=>e("div",{tabIndex:0,class:{"color-container":true,selected:this.selectedColor===t},onClick:()=>this.handleColorClick(t)},e("kritzel-color",{value:t}))))))}};O.style=E;const A=":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 W=class{constructor(e){t(this,e);this.actionSelected=s(this,"actionSelected");this.close=s(this,"close")}get host(){return o(this)}items;onItemsChanged(){this.updateMenuItems()}objects;actionSelected;close;processedItems=[];handleOutsideClick(t){const e=t.composedPath();if(!e.includes(this.host)){this.close.emit()}}componentWillLoad(){this.updateMenuItems()}handleItemClick(t,e){if(!e){this.actionSelected.emit(t)}}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}async evaluateProperty(t,e){if(typeof t==="boolean"){return t}if(typeof t==="function"){return await Promise.resolve(t(null,this.objects))}return e}render(){return e(i,{key:"45b9652285f9c3fe7568cbe222667d23c151622f"},e("div",{key:"9aecc01027f297fa4d991780efaaf51b8d4542dc",class:"menu-container"},this.processedItems.map((({item:t,isDisabled:i},s)=>e("button",{key:`${t.label}-${s}`,class:{"menu-item":true,disabled:i},onClick:()=>this.handleItemClick(t,i),disabled:i},t.icon&&e("kritzel-icon",{name:t.icon,size:16}),e("span",{class:"label"},t.label))))))}static get watchers(){return{items:["onItemsChanged"]}}};W.style=A;const $=":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:focus-visible{outline:var(--kritzel-color-palette-focus-outline, 2px auto #e3e3e3)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const R=class{constructor(e){t(this,e);this.toolChange=s(this,"toolChange")}tool;handleToolChange(t){this.palette=t.palettes[t.type]}isExpanded=false;toolChange;palette=[];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 e(i,{key:"4b060826312e6d5a2117f5ba9522553af9b02d6f"},e("div",{key:"0975a250184d5bb2d38cc60263bd718157230d8c",style:{display:"flex",flexDirection:"row",alignItems:this.isExpanded?"flex-start":"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-color-palette",{key:"df84a6fdda01bc7bf3aff42e3b88c4bd9dca500f",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:true,onColorChange:t=>this.handleColorChange(t)}),e("button",{key:"e43c19612807fc4f9cd1bf04f4fb79a048cfd62b",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},e("kritzel-icon",{key:"915cce6c4744ad175f3836c946330882de840880",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-stroke-size",{key:"c07eebae3ba1785e2644c6b5a22d23f76be950fb",selectedSize:this.tool.size,onSizeChange:t=>this.handleSizeChange(t)}))}static get watchers(){return{tool:["handleToolChange"]}}};R.style=$;const F=":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 P=class{constructor(e){t(this,e);this.toolChange=s(this,"toolChange")}tool;isExpanded=false;toolChange;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 e(i,{key:"82e611092700f057bd36823e7f7503fe7a0423ed"},e("div",{key:"37ed39adeeeb58981a917918cd185e96d589e973",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-font-family",{key:"cd8afc5c4a1eee087610cd3d5a6c05210cfda6b3",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:t=>this.handleFamilyChange(t)}),e("button",{key:"085f1bba060bde27a7b64dc5477bb51305b76235",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand"},e("kritzel-icon",{key:"3ff8fec207120e67f43315c6dace72fc2f6bd0f1",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-color-palette",{key:"2e29d01a6b5c0e4a8ec347e63b6a2698c282db40",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:t=>this.handleColorChange(t)}),e("kritzel-font-size",{key:"c972068f1251d66e756b8de72fbdd1b6002d1daa",selectedSize:this.tool.fontSize,fontFamily:this.tool.fontFamily,onSizeChange:t=>this.handleSizeChange(t)}))}};P.style=F;class _{static isTouchDevice(){return window.matchMedia("(any-pointer: coarse)").matches}static isAndroid(){return/android/i.test(navigator.userAgent)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)}static detectOS(){if(this.isIOS()){return"iOS"}else if(this.isAndroid()){return"Android"}else{return"Other"}}static isFirefox(){return/firefox/i.test(navigator.userAgent)}}const V=":host{display:flex;flex-direction:column;user-select:none}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.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:focus,.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.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-control.selected:focus{background-color:var(--kritzel-controls-control-selected-background-color, #007bffe3) !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;border-radius:50%}.kritzel-config:focus{outline:var(--kritzel-menu-focus-outline, 2px solid #e3e3e3)}.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:56px;left:50%;transform:translateX(-50%);z-index:10001}";const L=class{constructor(e){t(this,e);this.isControlsReady=s(this,"isControlsReady")}get host(){return o(this)}controls=[];activeControl=null;isUtilityPanelVisible=true;isControlsReady;firstConfig=null;isTooltipVisible=false;isTouchDevice=_.isTouchDevice();handleDocumentClick(t){const e=t.target;if(!this.kritzelEngine||e.closest(".kritzel-tooltip")){return}this.isTooltipVisible=false}handleKeyDown(t){if(t.key==="Escape"){t.preventDefault();this.closeTooltip();this.kritzelEngine?.enable()}}async handleActiveToolChange(t){this.activeControl=this.controls.find((e=>e.tool===t.detail))||null}async closeTooltip(){this.isTooltipVisible=false}kritzelEngine=null;tooltipRef=null;get activeToolAsTextTool(){return this.activeControl?.tool}get activeToolAsBrushTool(){return this.activeControl?.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){t.stopPropagation();this.isTooltipVisible=!this.isTooltipVisible;if(this.isTooltipVisible){this.kritzelEngine?.disable()}else{this.kritzelEngine?.enable()}setTimeout((()=>{this.tooltipRef?.focusContent()}),100)}async handleToolChange(t){this.activeControl={...this.activeControl,tool:t.detail};await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}handleTooltipClosed(){this.isTooltipVisible=false;this.kritzelEngine?.enable()}render(){const t=this.activeControl?.config===undefined||this.activeControl?.config===null;return e(i,{key:"ab3e5f078d6d197c6e10c9dee180c04ef85281bf",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&e("kritzel-utility-panel",{key:"290ceb6f2c46eb7e869a4741dd6600bc7c47bbb4",style:{position:"absolute",bottom:"56px",left:"12px"},onUndo:()=>this.kritzelEngine?.undo(),onRedo:()=>this.kritzelEngine?.redo(),onDelete:()=>this.kritzelEngine?.delete()}),e("div",{key:"d2590bc56b709e77910e7159296741c8859158d7",class:"kritzel-controls"},this.controls.map((i=>{if(i.type==="tool"){return e("button",{class:{"kritzel-control":true,selected:this.activeControl?.name===i?.name},key:i.name,onClick:t=>this.handleControlClick?.(i)},e("kritzel-icon",{name:i.icon}))}if(i.type==="divider"){return e("div",{class:"kritzel-divider",key:i.name})}if(i.type==="config"&&i.name===this.firstConfig?.name&&this.activeControl){return e("div",{class:"kritzel-config-container",key:i.name},e("kritzel-tooltip",{ref:t=>this.tooltipRef=t,isVisible:this.isTooltipVisible,anchorElement:this.host.shadowRoot?.querySelector(".kritzel-config-container"),onTooltipClosed:()=>this.handleTooltipClosed()},e("div",{style:{width:"294px",height:"100%"}},this.activeControl.name==="brush"&&e("kritzel-control-brush-config",{tool:this.activeToolAsBrushTool,onToolChange:t=>this.handleToolChange?.(t)}),this.activeControl.name==="text"&&e("kritzel-control-text-config",{tool:this.activeToolAsTextTool,onToolChange:t=>this.handleToolChange?.(t)}))),e("div",{tabIndex:0,class:"kritzel-config",onClick:t=>this.handleConfigClick?.(t),onKeyDown:t=>{if(t.key==="Enter"){this.handleConfigClick?.(t)}},style:{cursor:this.activeControl.config?"pointer":"default",pointerEvents:t?"none":"auto"}},this.activeControl.tool instanceof n&&e("div",{class:"color-container"},e("kritzel-color",{value:this.activeToolAsBrushTool?.color,size:this.activeToolAsBrushTool?.size,style:{borderRadius:"50%",border:"none"}})),this.activeControl.tool instanceof r&&e("div",{class:"font-container"},e("kritzel-font",{fontFamily:this.activeToolAsTextTool?.fontFamily,size:this.activeToolAsTextTool?.fontSize,color:this.activeToolAsTextTool?.fontColor})),t&&e("div",{class:"no-config"})))}}))))}static get assetsDirs(){return["../assets"]}};L.style=V;const N=":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";const H=class{constructor(e){t(this,e)}core;cursorTrailPoints=[];isLeftButtonDown=false;handleMouseDown(t){if(t.pointerType==="mouse"){if(t.button===a.Left){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.core.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===a.Left){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.core.store.state.pointers.size===0){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}}trailCleanupIntervalId;TRAIL_DURATION_MS=100;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)}}render(){return e(i,{key:"10ef620f19d72a8a5c3a12d0d98686bc69308a30"},this.cursorTrailPoints.length>1&&e("svg",{key:"d03403051e53422aaa28d6360aaa9c0391e3ef6a",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,i)=>{const s=this.cursorTrailPoints[i];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 a=Math.max(2,15*(1-r));return e("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":a.toString(),"stroke-linecap":"round"})}))))}};H.style=N;const Y=':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 K=class{constructor(e){t(this,e);this.valueChanged=s(this,"valueChanged")}options=[];optionsChanged(){this.updateInternalValue(this.internalValue,true)}value;externalValueChanged(t){if(t!==this.internalValue){this.updateInternalValue(t,false)}}width;selectStyles={};internalValue;hasSuffixContent=false;hasPrefixContent=false;valueChanged;suffixSlotElement;prefixSlotElement;componentWillLoad(){this.updateInternalValue(this.value,false);this.evaluateSuffixContent();this.evaluatePrefixContent()}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)}}}handleSelectChange=t=>{const e=t.target.value;if(this.internalValue!==e){this.internalValue=e;this.valueChanged.emit(this.internalValue)}};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}}};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}}};render(){const t={"custom-select":true,"has-suffix-border":this.hasSuffixContent,"has-prefix-border":this.hasPrefixContent};return e(i,{key:"f24911715685ced571843ba7be6631248c8519b7"},e("div",{key:"520fdb74afdef8bd5228f76074e51981f44b910d",class:"dropdown-wrapper"},e("slot",{key:"cf6628437946b57ad0b27c066639e0b64b5a28f8",name:"prefix",ref:t=>this.prefixSlotElement=t,onSlotchange:this.evaluatePrefixContent}),e("select",{key:"3203ccd5b9c8b84e8f41bddfcb07786e879f0035",class:t,style:{...this.selectStyles,width:this.width},onInput:this.handleSelectChange},this.options.map((t=>e("option",{value:t.value,style:t.style,selected:t.value===this.internalValue},t.label)))),e("slot",{key:"d0abb52e082db81860c09d2c48b7c065adb406f3",name:"suffix",ref:t=>this.suffixSlotElement=t,onSlotchange:this.evaluateSuffixContent})))}static get watchers(){return{options:["optionsChanged"],value:["externalValueChanged"]}}};K.style=Y;class X{static registry=new Map;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)}}X.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 U=1e3;const q=1e-4;const G="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:var(--kritzel-editor-workspace-manager-top, 14px);left:var(--kritzel-editor-workspace-manager-left, 14px)}kritzel-controls{position:absolute;bottom:var(--kritzel-editor-controls-bottom, 14px);transition:transform var(--kritzel-editor-controls-transition-duration, 0.1s) var(--kritzel-editor-controls-transition, ease-in-out)}kritzel-controls.keyboard-open{transform:var(--kritzel-editor-controls-transform, translateY(300%))}";const Z=class{constructor(e){t(this,e);this.isReady=s(this,"isReady")}get host(){return o(this)}scaleMax=U;scaleMin=q;controls=[{name:"selection",type:"tool",isDefault:true,tool:l,icon:"cursor"},{name:"brush",type:"tool",tool:n,icon:"pen",config:c},{name:"eraser",type:"tool",tool:h,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"}];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()}];objectContextMenuItems=[{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()}];customSvgIcons={};isControlsVisible=true;isUtilityPanelVisible=true;isReady;isEngineReady=false;isControlsReady=false;isWorkspaceManagerReady=false;workspaces=[];activeWorkspace;isVirtualKeyboardOpen=false;onIsEngineReady(t){if(t&&this.isControlsReady){this.checkIsReady()}}onIsControlsReady(t){if(t&&this.isEngineReady){this.checkIsReady()}}handleTouchStart(t){if(t.cancelable){t.preventDefault()}}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)}async createWorkspace(t,e){const i=new f(`workspace-${Date.now()}`,t,e);return this.engineRef.createWorkspace(i)}async updateWorkspace(t){return this.engineRef.updateWorkspace(t)}async deleteWorkspace(t){return this.engineRef.deleteWorkspace(t)}async getWorkspaces(){return this.engineRef.getWorkspaces()}async getActiveWorkspace(){return this.engineRef.getActiveWorkspace()}engineRef;controlsRef;splitButtonRef;componentDidLoad(){this.registerCustomSvgIcons();this.listenForMobileKeyboard();this.setOsSpecificCssVariables()}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)){X.register(t,e)}}listenForMobileKeyboard(){p.onKeyboardVisibleChanged((t=>{this.isVirtualKeyboardOpen=t}))}setOsSpecificCssVariables(){const t=_.detectOS();switch(t){case"iOS":this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px");this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px");this.host.style.setProperty("--kritzel-editor-controls-bottom","14px");this.host.style.setProperty("--kritzel-editor-controls-transition","cubic-bezier(0.25, 0.1, 0.25, 1.0)");this.host.style.setProperty("--kritzel-editor-controls-transform","translateY(200%)");this.host.style.setProperty("--kritzel-editor-controls-transition-duration","0.25s");break;case"Android":this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px");this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px");this.host.style.setProperty("--kritzel-editor-controls-bottom","24px");break;default:this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px");this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px");this.host.style.setProperty("--kritzel-editor-controls-bottom","14px");break}}render(){return e(i,{key:"8dc4fa4d4c3512d3a0ac40d5ab67566720b8a3e4"},e("kritzel-workspace-manager",{key:"b7a032b8bb01b27af192719b46a3891037770a28",workspaces:this.workspaces,activeWorkspace:this.activeWorkspace,onWorkspaceChange:t=>this.activeWorkspace=t.detail,onIsWorkspaceManagerReady:()=>this.isWorkspaceManagerReady=true}),e("kritzel-engine",{key:"163c4aea9d07290c89e63931ed4a4cf0184757be",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}),e("kritzel-controls",{key:"4c9307c3831f2b179a446265f3226b0ae1541afc",class:{"keyboard-open":this.isVirtualKeyboardOpen},style:{display:this.isControlsVisible?"flex":"none"},ref:t=>this.controlsRef=t,controls:this.controls,isUtilityPanelVisible:this.isUtilityPanelVisible,onIsControlsReady:()=>this.isControlsReady=true}))}static get watchers(){return{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"]}}};Z.style=G;class Q{_core;initialTouchDistance=0;startX=0;startY=0;constructor(t,e){this._core=t;this._core.store.state.host=e;this._core.store.state.viewportWidth=e.clientWidth;this._core.store.state.viewportHeight=e.clientHeight;this._core.store.state.startX=0;this._core.store.state.startY=0;this._core.store.state.translateX=0;this._core.store.state.translateY=0}handleResize(){this._core.store.state.viewportWidth=this._core.store.state.host.clientWidth;this._core.store.state.viewportHeight=this._core.store.state.host.clientHeight;this._core.store.state.hasViewportChanged=true;this._core.rerender()}handlePointerDown(t){if(t.pointerType==="mouse"){const e=t.clientX-this._core.store.offsetX;const i=t.clientY-this._core.store.offsetY;if(t.button===a.Right){this._core.store.state.isPanning=true;this._core.store.state.startX=e;this._core.store.state.startY=i}}if(t.pointerType==="touch"){const t=Array.from(this._core.store.state.pointers.values());if(t.length===2){this._core.store.state.currentPath=null;this._core.store.state.isScaling=true;const e=t[0].clientX-this._core.store.offsetX;const i=t[0].clientY-this._core.store.offsetY;const s=t[1].clientX-this._core.store.offsetX;const o=t[1].clientY-this._core.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._core.rerender()}}}handlePointerMove(t){if(t.pointerType==="mouse"){const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale;this._core.store.state.pointerY=(s-this._core.store.state.translateY)/this._core.store.state.scale;if(this._core.store.state.isPanning){const t=i-this._core.store.state.startX;const e=s-this._core.store.state.startY;this._core.store.state.translateX+=t;this._core.store.state.translateY+=e;this._core.store.state.startX=i;this._core.store.state.startY=s;this._core.store.state.hasViewportChanged=true;this._core.store.state.skipContextMenu=true;this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}}if(t.pointerType==="touch"){const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale;this._core.store.state.pointerY=(s-this._core.store.state.translateY)/this._core.store.state.scale;const o=Array.from(this._core.store.state.pointers.values());if(o.length===2){const t=o[0].clientX-this._core.store.offsetX;const e=o[0].clientY-this._core.store.offsetY;const i=o[1].clientX-this._core.store.offsetX;const s=o[1].clientY-this._core.store.offsetY;const n=Math.sqrt(Math.pow(t-i,2)+Math.pow(e-s,2));const r=(t+i)/2;const a=(e+s)/2;const l=n/this.initialTouchDistance;const c=this._core.store.state.scale*l;if(c>this._core.store.state.scaleMax||c<this._core.store.state.scaleMin){this._core.store.state.translateX=this._core.store.state.translateX+r-this.startX;this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY}else{const t=(r-this._core.store.state.translateX)*(l-1);const e=(a-this._core.store.state.translateY)*(l-1);this._core.store.state.translateX=this._core.store.state.translateX+r-this.startX-t;this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY-e;this._core.store.state.scale=c;this.initialTouchDistance=n}this.startX=r;this.startY=a;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}}}handlePointerUp(t){if(t.pointerType==="mouse"){if(this._core.store.state.isPanning){this._core.store.state.isPanning=false;this._core.rerender()}}if(t.pointerType==="touch"){this._core.store.state.isScaling=false;this._core.rerender()}}handleWheel(t){t.preventDefault();if(t.ctrlKey===true&&b.isMainMouseWheel(t)){this.handleZoom(t)}if(!t.ctrlKey){this.handlePan(t)}}centerInViewport(t){const{scale:e,viewportWidth:i,viewportHeight:s}=this._core.store.state;const{x:o,y:n,width:r,height:a}=t.rotatedBoundingBox;const l=o+r/2;const c=n+a/2;this._core.store.state.translateX=i/2-l*e;this._core.store.state.translateY=s/2-c*e;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}centerFitInViewport(t){const e=this._core.store.state.viewportWidth/(t.rotatedBoundingBox.width*1.1);const i=this._core.store.state.viewportHeight/(t.rotatedBoundingBox.height*1.1);const s=Math.min(e,i,this._core.store.state.scaleMax);const o=Math.max(s,this._core.store.state.scaleMin);this._core.store.state.scale=o;this.centerInViewport(t)}handleZoom(t){this._core.store.state.isScaling=true;const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale;this._core.store.state.pointerY=(s-this._core.store.state.translateY)/this._core.store.state.scale;const o=t.deltaY>0?-this._core.store.state.scaleStep*this._core.store.state.scale:this._core.store.state.scaleStep*this._core.store.state.scale;const n=Math.min(this._core.store.state.scaleMax,Math.max(this._core.store.state.scaleMin,this._core.store.state.scale+o));const r=n/this._core.store.state.scale;const a=(i-this._core.store.state.translateX)*(r-1);const l=(s-this._core.store.state.translateY)*(r-1);this._core.store.state.scale=n;this._core.store.state.translateX=this._core.store.state.translateX-a;this._core.store.state.translateY=this._core.store.state.translateY-l;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale);setTimeout((()=>{this._core.store.state.isScaling=false}),300)}handlePan(t){const e=.8;this._core.store.state.translateX=this._core.store.state.translateX-t.deltaX*e;this._core.store.state.translateY=this._core.store.state.translateY-t.deltaY*e;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}}class J extends g{shortcuts=[{key:"Escape",condition:t=>!!t.store.state.selectionGroup,action:t=>t.clearSelection()},{key:"Delete",condition:t=>!!t.store.state.selectionGroup,action:t=>t.delete()},{key:"z",ctrl:true,action:t=>t.history.undo()},{key:"y",ctrl:true,action:t=>t.history.redo()},{key:"s",ctrl:true,action:()=>this.switchTool("selection")},{key:"b",ctrl:true,action:()=>this.switchTool("brush")},{key:"e",ctrl:true,action:()=>this.switchTool("eraser")},{key:"i",ctrl:true,action:()=>this.switchTool("image")},{key:"x",ctrl:true,action:()=>this.switchTool("text")},{key:"c",ctrl:true,condition:t=>!!t.store.state.selectionGroup,action:t=>{t.copy();t.rerender()}},{key:"v",ctrl:true,condition:t=>!!t.store.state.copiedObjects&&!t.store.state.activeText,action:t=>t.paste()},{key:"+",ctrl:true,condition:t=>!!t.store.state.selectionGroup,action:t=>t.bringForward()},{key:"-",ctrl:true,condition:t=>!!t.store.state.selectionGroup,action:t=>t.sendBackward()},{key:"*",shift:true,condition:t=>!!t.store.state.selectionGroup,action:t=>t.bringToFront()},{key:"_",shift:true,condition:t=>!!t.store.state.selectionGroup,action:t=>t.sendToBack()}];constructor(t){super(t)}switchTool(t){const e=k.getTool(t);this._core.store.setState("activeTool",e);this._core.deselectAllObjects();e.onActivate()}handleKeyDown(t){this._core.store.state.isCtrlKeyPressed=t.ctrlKey;const e=this.shortcuts.find((e=>e.key===t.key&&!!e.ctrl===t.ctrlKey&&!!e.shift===t.shiftKey&&(!e.condition||e.condition(this._core))));if(e){t.preventDefault();e.action(this._core)}}handleKeyUp(t){this._core.store.state.isCtrlKeyPressed=t.ctrlKey}}class tt extends g{globalContextMenuItems=[];objectContextMenuItems=[];constructor(t,e,i){super(t);this.globalContextMenuItems=e;this.objectContextMenuItems=i}handleContextMenu(t){if(!(this._core.store.state.activeTool instanceof l)){return}if(this._core.store.state.skipContextMenu){this._core.store.state.skipContextMenu=false;return}const e=this._core.store.state.activeTool;e?.moveHandler?.cancelPendingDrag();if(this._core.store.state.selectionBox){this._core.store.state.objectsMap.remove((t=>t instanceof y));this._core.store.state.selectionBox=null;this._core.store.state.isSelecting=false}const i=this._core.getObjectFromPointerEvent(t,".object");if(i&&!(i instanceof v)&&!(i instanceof y)){const t=v.create(this._core);t.addOrRemove(i);t.isSelected=true;t.rotation=i.rotation;this._core.store.state.isSelecting=false;const e=new m(this._core,this,[new x(this._core,this._core.store.state.selectionGroup),new w(this._core,this,t)]);this._core.history.executeCommand(e)}this._core.store.state.contextMenuItems=this._core.store.state.selectionGroup?this.objectContextMenuItems:this.globalContextMenuItems;let s=t.clientX-this._core.store.offsetX;let o=t.clientY-this._core.store.offsetY;const n=150;const r=200;const a=10;if(s+n>window.innerWidth-a){s=window.innerWidth-n-a}if(o+r>window.innerHeight-a){o=window.innerHeight-r-a}s=Math.max(a,s);o=Math.max(a,o);this._core.store.state.contextMenuX=s;this._core.store.state.contextMenuY=o;this._core.store.state.isContextMenuVisible=true;this._core.store.state.isEnabled=false;this._core.rerender()}}class et{static isInstanceOf(t,e){return!!t&&t.__class__===e}}const it={activeWorkspace:null,activeTool:null,activeText:null,currentPath:null,copiedObjects:null,objectsMap:null,selectionBox:null,selectionGroup:null,resizeHandleType:null,hasViewportChanged:false,hasObjectsChanged:false,isReady:false,isEnabled:true,isScaling:false,isPanning: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 st{db=null;dbName;dbVersion;isLoggingEnabled;constructor(t,e,i=false){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.info(`[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.info(`[IndexedDB] Database opened successfully.`)}e()};s.onupgradeneeded=e=>{if(this.isLoggingEnabled){console.info(`[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.info(`[IndexedDB] Creating store: ${t.name}`)}const e=i.createObjectStore(t.name,t.options);if(t.indices){t.indices.forEach((i=>{if(this.isLoggingEnabled){console.info(`[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.info(`[IndexedDB] Closing database: ${this.dbName}`)}this.db.close();this.db=null}}async add(t,e){if(this.isLoggingEnabled){console.info("[IndexedDB] Add:",{storeName:t,item:e})}if(e.serialize===undefined){throw new Error("Item does not implement KritzelSerializable interface.")}const i=e.serialize();return this.executeTransaction(t,"readwrite",(t=>t.add(i)))}async get(t,e){if(this.isLoggingEnabled){console.info("[IndexedDB] Get:",{storeName:t,key:e})}return this.executeTransaction(t,"readonly",(t=>t.get(e)))}async getAll(t){if(this.isLoggingEnabled){console.info("[IndexedDB] GetAll:",{storeName:t})}return this.executeTransaction(t,"readonly",(t=>t.getAll()))}async update(t,e){if(this.isLoggingEnabled){console.info("[IndexedDB] Update:",{storeName:t,item:e})}if(e.serialize===undefined){throw new Error("Item does not implement KritzelSerializable interface.")}const i=e.serialize();return this.executeTransaction(t,"readwrite",(t=>t.put(i)))}async delete(t,e){if(this.isLoggingEnabled){console.info("[IndexedDB] Delete:",{storeName:t,key:e})}return this.executeTransaction(t,"readwrite",(t=>t.delete(e)))}async deleteByRange(t,e){if(this.isLoggingEnabled){console.info("[IndexedDB] DeleteByRange:",{storeName:t,range:e})}return this.executeTransaction(t,"readwrite",(t=>t.delete(e)))}async getAllByRange(t,e){if(this.isLoggingEnabled){console.info("[IndexedDB] GetAllByRange:",{storeName:t,range:e})}return this.executeTransaction(t,"readonly",(t=>t.getAll(e)))}async getAllByIndex(t,e,i){if(this.isLoggingEnabled){console.info("[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 a=i(r);let l;n.oncomplete=()=>{s(l)};n.onabort=()=>{o(n.error??new Error("Transaction aborted"))};n.onerror=()=>{o(n.error)};a.onsuccess=()=>{l=a.result}}))}async batch(t){if(!this.db){throw new Error("Database is not open.")}const e=await this.extractStoreNamesFromActions(t);if(this.isLoggingEnabled){console.info("[IndexedDB] Starting batch transaction:",{storeNames:e})}return new Promise(((i,s)=>{const o=this.db.transaction(e,"readwrite");const n=[];const r=[];const a={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.info("[IndexedDB] Executing batch action:",{storeName:t,mode:e})}const r=o.objectStore(t);const a=i(r);a.onsuccess=()=>{if(this.isLoggingEnabled){console.info("[IndexedDB] Batch action request successful:",{result:a.result})}s(a.result)};a.onerror=()=>{console.error("[IndexedDB] Batch action request error:",a.error);n(a.error)}}))};o.oncomplete=()=>{if(this.isLoggingEnabled){console.info("[IndexedDB] Batch transaction complete.")}Promise.all(r).then((()=>i(n)))};o.onabort=()=>{console.error("[IndexedDB] Batch transaction aborted:",o.error);s(o.error??new Error("Transaction aborted"))};o.onerror=()=>{console.error("[IndexedDB] Batch transaction error:",o.error);s(o.error)};t.forEach(((t,e)=>{const i=t(a).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 ot extends z{currentViewport;previousViewport;constructor(t,e,i,s=false){super(t,e,s);this.previousViewport=i;this.currentViewport={scale:this._core.store.state.scale,translateX:this._core.store.state.translateX,translateY:this._core.store.state.translateY}}execute(){this._core.store.state.scale=this.currentViewport.scale;this._core.store.state.translateX=this.currentViewport.translateX;this._core.store.state.translateY=this.currentViewport.translateY}undo(){this._core.store.state.scale=this.previousViewport.scale;this._core.store.state.translateX=this.previousViewport.translateX;this._core.store.state.translateY=this.previousViewport.translateY}}class nt{buffer;capacity;head=0;tail=0;size=0;constructor(t){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 rt{_core;undoStack;redoStack;previousViewport;constructor(t){this._core=t;this.undoStack=new nt(this._core.store.state.historyBufferSize);this.redoStack=new nt(this._core.store.state.historyBufferSize);this.previousViewport={scale:this._core.store.state.scale,scaleStep:this._core.store.state.scaleStep,translateX:this._core.store.state.translateX,translateY:this._core.store.state.translateY}}reset(){this.undoStack.clear();this.redoStack.clear();this.previousViewport={scale:this._core.store.state.scale,scaleStep:this._core.store.state.scaleStep,translateX:this._core.store.state.translateX,translateY:this._core.store.state.translateY}}executeCommand(t){if(this._core.store.state.hasViewportChanged){this.addUpdateViewportCommand()}t.execute();if(t.skipHistory===false){if(this._core.store.state.debugInfo.logCommands){console.info("add",t)}this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}}this._core.rerender()}undo(){if(this._core.store.state.hasViewportChanged){const t=new ot(this._core,this,this.previousViewport);t.undo();this._core.store.state.hasViewportChanged=false;this._core.rerender();return}const t=this.undoStack.pop();if(t){t.undo();if(this._core.store.state.debugInfo.logCommands)console.info("undo",t);this.redoStack.add(t)}this._core.store.state.copiedObjects=null;this._core.rerender()}redo(){const t=this.redoStack.pop();if(t){t.execute();if(this._core.store.state.debugInfo.logCommands)console.info("redo",t);this.undoStack.add(t)}this._core.rerender()}addUpdateViewportCommand(){const t=new ot(this._core,this,this.previousViewport);t.execute();this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}this._core.store.state.hasViewportChanged=false;this.previousViewport={scale:this._core.store.state.scale,scaleStep:this._core.store.state.scaleStep,translateX:this._core.store.state.translateX,translateY:this._core.store.state.translateY}}}class at{map;constructor(){this.map=new Map}reset(){this.map.clear()}insert(t){if(!t.id){return false}this.map.set(t.id,t);return true}update(t){if(!t.id||!this.map.has(t.id)){return false}this.map.set(t.id,t);return true}remove(t){for(const[e,i]of this.map){if(t(i)){this.map.delete(e)}}}filter(t){const e=[];for(const i of this.map.values()){if(t(i)){e.push(i)}}return e}allObjects(){return Array.from(this.map.values())}}class lt{_state;_listeners=new Map;get state(){return this._state}get currentZIndex(){return Math.max(0,...this._state.objectsMap.filter((t=>!(t instanceof v)&&!(t instanceof y))).map((t=>t.zIndex)))+1}get allObjects(){return this._state.objectsMap.allObjects()}get allNonSelectionObjects(){return this._state.objectsMap.allObjects().filter((t=>!(t instanceof v)&&!(t instanceof y)))}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof v))).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._state=t;this._state.objectsMap=new at}onStateChange(t,e){if(!this._listeners.has(t)){this._listeners.set(t,new Set)}this._listeners.get(t).add(e)}getState(t){return this._state[t]}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))))}}}}class ct{_kritzelEngine;_store;_history;_database;get engine(){return this._kritzelEngine}get history(){return this._history}get database(){return this._database}get store(){return this._store}constructor(t){this._kritzelEngine=t;this._store=new lt(it);this._history=new rt(this);this._database=new st("kritzelDB",1,this._store.state.debugInfo.logDatabase)}async initializeDatabase(){await this._database.open([{name:"objects",options:{keyPath:["workspaceId","id"]}},{name:"workspaces",options:{keyPath:"id"}}]);this.rerender()}async initializeWorkspace(t){const e=await this.getWorkspaces();const i=[...e].sort(((t,e)=>e.updatedAt.getTime()-t.updatedAt.getTime()))[0];const s=new f(C.generateUUID(),"New Workspace");const o=t??i??s;const n=await this.getWorkspace(o.id);if(n){this._store.state.activeWorkspace=n;await this.updateWorkspace(this._store.state.activeWorkspace)}else{this._store.state.activeWorkspace=o;await this.createWorkspace(this._store.state.activeWorkspace)}this._store.state.workspaces=await this.getWorkspaces();const r=this._store.state.activeWorkspace.viewport??{translateX:0,translateY:0,scale:1};this._store.state.translateX=r.translateX??0;this._store.state.translateY=r.translateY??0;this._store.state.scale=r.scale??1;await this.initializeWorkspaceObjects(this._store.state.activeWorkspace.id)}async initializeWorkspaceObjects(t){this._store.state.objectsMap.reset();this._history.reset();const e=await this._database.getAllByRange("objects",IDBKeyRange.bound([t],[t,"￿"]));const i=new I(this);e.forEach((t=>{const e=i.revive(t);this._store.state.objectsMap.insert(e)}));this.rerender()}async updateWorkspaceViewport(t,e,i){const s=this._store.state.activeWorkspace;if(!s){throw new Error("Workspace not initialized")}s.viewport={translateX:t,translateY:e,scale:i};s.updatedAt=new Date;await this._database.update("workspaces",s)}async addObjectToDatabase(t){if(!this._database){throw new Error("Database not initialized")}const e=this._store.state.activeWorkspace;if(!e){throw new Error("Workspace not initialized")}e.updatedAt=new Date;await this._database.batch([e=>e.add("objects",t),t=>t.update("workspaces",e)]).catch((t=>{console.error("Error adding object to database:",t)}))}async updateObjectInDatabase(t){if(!this._database){throw new Error("Database not initialized")}const e=this._store.state.activeWorkspace;if(!e){throw new Error("Workspace not initialized")}e.updatedAt=new Date;await this._database.batch([e=>e.update("objects",t),t=>t.update("workspaces",e)]).catch((t=>{console.error("Error updating object in database:",t)}))}async deleteObjectFromDatabase(t){if(!this._database){throw new Error("Database not initialized")}const e=this._store.state.activeWorkspace;if(!e){throw new Error("Workspace not initialized")}e.updatedAt=new Date;await this._database.batch([i=>i.delete("objects",[e.id,t]),t=>t.update("workspaces",e)]).catch((t=>{console.error("Error deleting object from database:",t)}))}async getWorkspace(t){if(!this._database){throw new Error("Database not initialized")}const e=new I(this);return this._database.get("workspaces",t).then((t=>t?e.revive(t):null))}async getWorkspaces(){if(!this._database){throw new Error("Database not initialized")}const t=new I(this);return this._database.getAll("workspaces").then((e=>e.map((e=>t.revive(e)))))}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._store.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._store.state.workspaces;const i=e.findIndex((e=>e.id===t.id));if(i!==-1){e[i]=t;this._store.state.workspaces=e}}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);this._store.state.workspaces=this._store.state.workspaces.filter((e=>e.id!==t.id))}rerender(){if(this._kritzelEngine){this._kritzelEngine.forceUpdate++}}findObjectById(t){for(const e of this._store.allObjects){if(e.id===t){return e}}return null}deselectAllObjects(){if(this._store.state.selectionGroup){this._history.executeCommand(new x(this,this))}}delete(){if(!this._store.state.selectionGroup){return}const t=this._store.state.selectionGroup.objects.map((t=>new M(this,this._store.state.selectionGroup,t)));const e=new x(this,this._store.state.selectionGroup);const i=[...t,e];this.history.executeCommand(new m(this,this._store.state.selectionGroup,i))}deleteObject(t,e=false){const i=this.findObjectById(t);if(i){const t=new M(this,this,i,e);this.history.executeCommand(t)}}copy(){this._store.state.copiedObjects=this._store.state.selectionGroup.copy()}paste(t,e){const i=this._store.state.copiedObjects;i.isSelected=true;this._store.state.copiedObjects=i;const s=t!==undefined?t:this._store.state.copiedObjects.translateX+25/this._store.state.scale;const o=e!==undefined?e:this._store.state.copiedObjects.translateY+25/this._store.state.scale;this._store.state.copiedObjects.updatePosition(s,o);this._store.state.copiedObjects.updateZIndices(this._store.currentZIndex);const n=this._store.state.activeWorkspace;if(this.store.state.copiedObjects.workspaceId!==n.id){this.store.state.copiedObjects.updateWorkspaceId(n.id);if(t!==undefined&&e!==undefined){this._store.state.copiedObjects.updatePosition(t,e)}else{this.store.state.copiedObjects.centerInViewport()}this.engine.viewport.centerFitInViewport(i)}const r=[];let a=null;if(this._store.state.selectionGroup!==null){a=this._store.state.selectionGroup;r.push(new x(this,this._store.state.selectionGroup))}const l=this._store.state.copiedObjects.objects.map((t=>new S(this,this,t)));const c=new w(this,this,this._store.state.copiedObjects,a);r.push(...l,c);this.history.executeCommand(new m(this,this,r));this._store.state.isSelecting=false;this._store.state.copiedObjects=this._store.state.selectionGroup.copy();this._store.setState("activeTool",k.getTool("selection"))}bringForward(t){const e=t?[t]:this._store.state.selectionGroup.objects;const i=this._store.allNonSelectionObjects.filter((t=>e.findIndex((e=>e.id===t.id))===-1));const s=i.length>0?Math.max(...i.map((t=>t.zIndex)))+1:0;const o=e.map((t=>{if(t.zIndex===s){return}return new j(this,this,t,{zIndex:t.zIndex+1})}));this.history.executeCommand(new m(this,this,o))}sendBackward(t){const e=t?[t]:this._store.state.selectionGroup.objects;const i=this._store.allNonSelectionObjects.filter((t=>e.findIndex((e=>e.id===t.id))===-1));const s=i.length>0?Math.min(...i.map((t=>t.zIndex)))-1:0;const o=e.map((t=>{if(t.zIndex===s){return}return new j(this,this,t,{zIndex:t.zIndex-1})}));this.history.executeCommand(new m(this,this,o))}bringToFront(t){const e=t?[t]:this._store.state.selectionGroup.objects;const i=this._store.allNonSelectionObjects.filter((t=>e.findIndex((e=>e.id===t.id))===-1));const s=Math.max(...i.map((t=>t.zIndex)))+1;const o=e.map((t=>new j(this,this,t,{zIndex:s})));this.history.executeCommand(new m(this,this,o))}sendToBack(t){const e=t?[t]:this._store.state.selectionGroup.objects;const i=this._store.allNonSelectionObjects.filter((t=>e.findIndex((e=>e.id===t.id))===-1));const s=Math.min(...i.map((t=>t.zIndex)))-1;const o=e.map((t=>new j(this,this,t,{zIndex:s})));this.history.executeCommand(new m(this,this,o))}selectObjects(t){if(t.length===0){return}const e=v.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this._store.state.selectionBox=e;if(t.length===1){e.rotation=e.objects[0].rotation}this.history.executeCommand(new w(this,this,e))}selectAllObjectsInViewport(){const t=this._store.state.objectsMap.filter((t=>t.isInViewport())).filter((t=>!(t instanceof v)&&!(t instanceof y)&&!(t instanceof W)));if(t.length>0){const e=v.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this._store.state.isSelecting=false;if(t.length===1){e.rotation=e.objects[0].rotation}this.history.executeCommand(new w(this,this,e));this._store.setState("activeTool",k.getTool("selection"))}}clearSelection(){const t=new x(this,this._store.state.selectionGroup);this.history.executeCommand(t);this._store.state.selectionGroup=null;this._store.state.selectionBox=null;this._store.state.isSelecting=false;this._store.state.isResizeHandleSelected=false;this._store.state.isRotationHandleSelected=false;this.rerender()}resetActiveText(){if(this._store.state.activeText){if(this._store.state.activeText.isEmpty){console.log("Deleting empty text object",this._store.state.activeText.id);this.deleteObject(this._store.state.activeText.id,true)}else{console.log("Saving active text object before resetting",this._store.state.activeText.id);this._store.state.activeText.save()}}this._store.state.activeText=null}getObjectFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return null;const s=t.clientX;const o=t.clientY;const n=i.elementFromPoint(s,o);if(!n)return null;const r=n.closest(e);if(r){const t=this._store.allObjects.find((t=>r.id===t.id));const e=t?.hitTest(s,o);return e?t:null}return null}getObjectsFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return[];const s=t.clientX;const o=t.clientY;const n=i.elementsFromPoint(s,o);if(!n||n.length===0)return[];const r=new Set;n.forEach((t=>{const i=t.closest(e);if(i&&i.id){r.add(i.id)}}));if(r.size>0){return this._store.allObjects.filter((t=>r.has(t.id))).sort(((t,e)=>e.zIndex-t.zIndex))}return[]}getCanvasPoint(t){if(!this._store.state.host){return{x:0,y:0}}const e=this._store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;const o=i-this._store.state.translateX;const n=s-this._store.state.translateY;const r=o/this._store.state.scale;const a=n/this._store.state.scale;return{x:r,y:a}}}const ht=":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}.ProseMirror{outline:none}p{margin:0;padding:0}.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}.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}.PlaygroundEditorTheme__quote{margin:0;margin-left:20px;margin-bottom:10px;font-size:15px;color:rgb(101, 103, 107);border-left-color:rgb(206, 208, 212);border-left-width:4px;border-left-style:solid;padding-left:16px}";const dt=class{get host(){return o(this)}workspace;onWorkspaceChange(t){if(this.core.store.state.activeWorkspace!==t){this.core.initializeWorkspace(t)}}activeTool;globalContextMenuItems;objectContextMenuItems;scaleMax=U;validateScaleMax(t){if(t>U){console.warn(`scaleMax cannot be greater than ${U}.`);this.scaleMax=U;this.core.store.state.scaleMax=this.scaleMax}else{this.core.store.state.scaleMax=t}}scaleMin=q;validateScaleMin(t){if(t<q){console.warn(`scaleMin cannot be less than ${q}.`);this.scaleMin=q;this.core.store.state.scaleMin=this.scaleMin}else{this.core.store.state.scaleMin=t}}isEngineReady;activeToolChange;workspacesChange;longpress;forceUpdate=0;handleWheel(t){if(this.core.store.isDisabled){return}if(this.core.store.state.isContextMenuVisible){this.hideContextMenu()}this.viewport.handleWheel(t);this.core.store.state?.activeTool?.handleWheel(t)}handlePointerDown(t){if(this.core.store.isDisabled){return}if(_.isTouchDevice()){b.onLongPress(t,(t=>this.longpress.emit(t)))}this.host.setPointerCapture(t.pointerId);this.core.store.state.pointers.set(t.pointerId,t);this.viewport.handlePointerDown(t);this.core.store.state?.activeTool?.handlePointerDown(t)}handlePointerMove(t){if(this.core.store.isDisabled){return}this.core.store.state.pointers.set(t.pointerId,t);this.viewport.handlePointerMove(t);this.core.store.state?.activeTool?.handlePointerMove(t)}handlePointerUp(t){if(this.core.store.isDisabled){return}this.core.store.state.pointers.delete(t.pointerId);this.host.releasePointerCapture(t.pointerId);this.viewport.handlePointerUp(t);this.core.store.state?.activeTool?.handlePointerUp(t)}handlePointerCancel(t){if(this.core.store.isDisabled){return}this.host.releasePointerCapture(t.pointerId);this.core.store.state.pointers.delete(t.pointerId);this.viewport.handlePointerUp(t);this.core.store.state?.activeTool?.handlePointerUp(t)}handleLongPress(t){this.contextMenuHandler.handleContextMenu(t.detail)}handleContextMenu(t){t.preventDefault();if(this.core.store.isDisabled){return}if(t.pointerType==="touch"){return}this.contextMenuHandler.handleContextMenu(t)}handleResize(){this.viewport.handleResize()}handleKeyDown(t){if(this.core.store.isDisabled){return}this.keyHandler.handleKeyDown(t)}handleKeyUp(t){if(this.core.store.isDisabled){return}this.keyHandler.handleKeyUp(t)}preventDoubleTapZoomOnTouchDevices(t){t.preventDefault()}async registerTool(t,e,i){if(typeof e!=="function"||!(e.prototype instanceof D)){console.error(`Failed to register tool "${t}": Tool class must be a constructor function`);return null}const s=k.registerTool(t,e,this.core);if(i){Object.entries(i).forEach((([t,e])=>{s[t]=e}))}return Promise.resolve(s)}async changeActiveTool(t){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",t);this.core.deselectAllObjects();t?.onActivate()}async disable(){this.core.store.state.isEnabled=false;this.core.rerender()}async enable(){this.core.store.state.isEnabled=true;this.core.rerender()}async delete(){this.core.delete()}async copy(){this.core.copy()}async paste(t,e){this.core.paste(t,e)}async bringForward(t){this.core.bringForward(t)}async sendBackward(t){this.core.sendBackward(t)}async bringToFront(t){this.core.bringToFront(t)}async sendToBack(t){this.core.sendToBack(t)}async undo(){this.core.history.undo()}async redo(){this.core.history.redo()}async hideContextMenu(){this.core.store.state.pointers.clear();this.core.store.state.isContextMenuVisible=false;this.core.store.state.selectionBox=null;this.core.store.state.isSelecting=false;this.core.store.state.isEnabled=true;this.core.rerender()}async getObjectById(t){const e=this.core.store.allObjects.find((e=>e.id===t));return e||null}async addObject(t){this.core.deselectAllObjects();t.id=t.generateId();t._core=this.core;t.scale=t.scale?t.scale:this.core.store.state.scale;t.zIndex=this.core.store.currentZIndex;const e=new S(this.core,this,t);this.core.history.executeCommand(e);return t}async updateObject(t,e){this.core.deselectAllObjects();const i=new j(this.core,this,t,e);this.core.history.executeCommand(i);return t}async removeObject(t){this.core.deselectAllObjects();const e=new M(this.core,this,t);this.core.history.executeCommand(e);return t}async getSelectedObjects(){return this.core.store.state.selectionGroup?this.core.store.state.selectionGroup.objects:[]}async selectObjects(t){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",k.getTool("selection"));this.core.deselectAllObjects();this.core.selectObjects(t)}async selectAllObjectsInViewport(){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",k.getTool("selection"));this.core.deselectAllObjects();this.core.selectAllObjectsInViewport()}async clearSelection(){this.core.clearSelection()}async centerObjectInViewport(t){t.centerInViewport();const e=new j(this.core,this,t,t);this.core.history.executeCommand(e);return t}async getCopiedObjects(){return this.core.store.state.copiedObjects?.objects||[]}async createWorkspace(t){t._core=this.core;await this.core.createWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces);return t}async updateWorkspace(t){await this.core.updateWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces)}async deleteWorkspace(t){await this.core.deleteWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces)}async getWorkspaces(){return this.core.getWorkspaces()}async getActiveWorkspace(){return this.core.store.state.activeWorkspace}core;viewport;contextMenuHandler;keyHandler;contextMenuElement=null;get isSelecting(){return this.core.store.state.activeTool instanceof l&&this.core.store.state.isSelecting}get isSelectionActive(){return this.core.store.state.activeTool instanceof l&&this.core.store.state.selectionGroup!==null}constructor(e){t(this,e);this.isEngineReady=s(this,"isEngineReady");this.activeToolChange=s(this,"activeToolChange");this.workspacesChange=s(this,"workspacesChange");this.longpress=s(this,"longpress");this.core=new ct(this)}componentWillLoad(){this.validateScaleMax(this.scaleMax);this.validateScaleMin(this.scaleMin)}async componentDidLoad(){this.contextMenuHandler=new tt(this.core,this.globalContextMenuItems,this.objectContextMenuItems);this.keyHandler=new J(this.core);this.viewport=new Q(this.core,this.host);await this.core.initializeDatabase();await this.core.initializeWorkspace(this.workspace);this._registerStateChangeListeners();if(this.core.store.state.isReady===false){this.core.store.state.isReady=true;this.isEngineReady.emit(this.core.store.state)}}_registerStateChangeListeners(){this.core.store.onStateChange("activeTool",this._handleActiveToolChange.bind(this))}_handleActiveToolChange(t){if(!(t instanceof l)){this.core.clearSelection()}this.core.store.state.skipContextMenu=false;this.core.store.state.copiedObjects=null;this.activeToolChange.emit(t);p.forceHideKeyboard()}render(){const t=window.getComputedStyle(this.host);const s=t.getPropertyValue("--kritzel-selection-handle-size").trim()||"6px";const o=parseFloat(s);const n=o*2<14?14:o;const r=this.core.store.state.viewportWidth/2+this.core.store.state.translateX;const a=this.core.store.state.viewportHeight/2+this.core.store.state.translateY;return e(i,{key:"caabd1ecbf2faccdf7fa50d087a8957df4dd1039"},e("div",{key:"d757e7133ed9dd190c17c383fb716f760f2b3906",class:"debug-panel",style:{display:this.core.store.state.debugInfo.showViewportInfo?"block":"none"}},e("div",{key:"00ced12dd956b6eecff7ac80429c0fd05cc7d1c3"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"771f3269627fbe1ef962027f017cf6bdec7bcf8f"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"0e49a60afdfb776a61f46b53bd6488786778bf77"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"e0438479bc9e950ef2cbe88ed0aa0b8ec1888890"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"41d7261ed6b893a97fefb4bb6b199ffea51bd5fe"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"7b6470008968eeebc5097252b3b9e3d172fd5d22"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"4012ebdc3234ee2775021b38f385dfa0917736cb"},"Scale: ",this.core.store.state?.scale),e("div",{key:"964d26a0ff4ff93dfa1cc928330c4fbdb0ec9b3d"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"cd68a81778d3e0f83f9453cd813538b2223541e8"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"2ea80f3b4216a5e3d727c6c94d8b1782fbde80eb"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"02966d69182e95a8e91d5252f3dcfc19237caafd"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"85c06265f3af2b793d1827a40bb74b8837690ce3"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"1a2847a815fabc37cae3b7659844975df0c79a81"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"d1482aa165ed6b430ec0e640971c47e233103e87"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"3534e455918183d822374edbc80b621939100bd1"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"7b061a4b08956660ee305316eea2e1d13d66d5de"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"61998d0f4ffc65f5bb155dfe434a3a07667ca5ee"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"bdaeb0af59e844351eb46caf7bbe7e246174ccfe"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"47518514eb67c486583ee61e6747104b4720924a"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"9b2ef1c30ecb09bc7df7f765e099f87ea836d697"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"72a65218942809918fb5fa1978af83f9442c3ed8"},"SelectedObjects: ",this.core.store.state.selectionGroup?.objects.length||0),e("div",{key:"1f2ad6b79f28306becd7e83f21ca877c7d15941d"},"ViewportCenter: (",r.toFixed(2),", ",a.toFixed(2),")")),e("div",{key:"ae8afa17ce2a1c0a06a3579091d6f1616fe9b9a7",id:"origin",class:"origin",style:{transform:`matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`}},this.core.store.state.objectsMap.allObjects()?.map((t=>e("div",{key:t.id,style:{display:t.isInViewport()?"block":"none",transform:t?.transformationMatrix,transformOrigin:"top left",zIndex:t.zIndex.toString(),position:"absolute"}},e("svg",{xmlns:"http://www.w3.org/2000/svg",id:t.id,class:"object",style:{height:t?.totalHeight.toString(),width: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"}},e("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"}},et.isInstanceOf(t,"KritzelPath")&&e("svg",{ref:e=>e?t.mount(e):t.unmount(),xmlns:"http://www.w3.org/2000/svg",style:{height:t?.height.toString(),width:t?.width.toString(),position:"absolute",overflow:"visible"},viewBox:t?.viewBox},e("path",{d:t?.d,fill:t.fill,stroke:t?.stroke})),et.isInstanceOf(t,"KritzelImage")&&e("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()}),et.isInstanceOf(t,"KritzelText")&&e("div",{ref:e=>e?t.mount(e):t.unmount(),onPointerDown:e=>t.handlePointerDown(e),onPointerMove:e=>t.handlePointerMove(e),onPointerUp:e=>t.handlePointerUp(e),style:{minWidth:t.initialWidth+"px",minHeight:t.initialHeight+"px",maxWidth:"500px",height:"auto",width:"max-content",transformOrigin:"top left",transform:`scale(${t.scaleFactor})`,backgroundColor:t.backgroundColor,overflow:"visible"}}),et.isInstanceOf(t,"KritzelCustomElement")&&e("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),et.isInstanceOf(t,"KritzelSelectionGroup")&&e("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%"}}),et.isInstanceOf(t,"KrtizelSelectionBox")&&e("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%",backgroundColor:_.isFirefox()?t.backgroundColor:"transparent",borderWidth:_.isFirefox()?t.borderWidth+"px":"0",borderStyle:_.isFirefox()?"solid":"none",borderColor:_.isFirefox()?t.borderColor:"transparent"}})),e("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} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("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} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("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} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("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} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("circle",{class:"resize-handle top-left",cx:"0",cy:"0",r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay top-left",cx:"0",cy:"0",r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle top-right",cx:t.totalWidth,cy:"0",r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay top-right",cx:t.totalWidth,cy:"0",r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle bottom-left",cx:"0",cy:t.totalHeight,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay bottom-left",cx:"0",cy:t.totalHeight,r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("line",{x1:t.totalWidth/2,y1:"0",x2:t.totalWidth/2,y2:-(15*t.scale/this.core.store.state?.scale),style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"rotation-handle",cx:t.totalWidth/2,cy:-(15*t.scale/this.core.store.state?.scale),r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"rotation-handle-overlay",cx:t.totalWidth/2,cy:-(15*t.scale/this.core.store.state?.scale),r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",cursor:"grab"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("g",{style:{display:this.core.store.state.debugInfo.showObjectInfo?"block":"none",pointerEvents:"none"}},e("foreignObject",{x:t.totalWidth.toString(),y:"0",width:"400px",height:"160px",style:{minHeight:"0",minWidth:"0",display:t.isDebugInfoVisible?"block":"none"}},e("div",{style:{width:"100%",height:"100%"}},e("div",{style:{whiteSpace:"nowrap"}},"zIndex: ",t.zIndex),e("div",{style:{whiteSpace:"nowrap"}},"translateX: ",t.translateX),e("div",{style:{whiteSpace:"nowrap"}},"translateY: ",t.translateY),e("div",{style:{whiteSpace:"nowrap"}},"width: ",t.width),e("div",{style:{whiteSpace:"nowrap"}},"height: ",t.height),e("div",{style:{whiteSpace:"nowrap"}},"scale: ",t.scale),e("div",{style:{whiteSpace:"nowrap"}},"rotation: ",t.rotation),e("div",{style:{whiteSpace:"nowrap"}},"x: ",t.x),e("div",{style:{whiteSpace:"nowrap"}},"y: ",t.y)))))))),e("svg",{key:"current-path",class:"object",xmlns:"http://www.w3.org/2000/svg",width:this.core.store.state.currentPath?.width,height:this.core.store.state.currentPath?.height,style:{left:"0",top:"0",zIndex:this.core.store.state.currentPath?.zIndex.toString(),position:"absolute",transform:this.core.store.state.currentPath?.transformationMatrix,transformOrigin:"top left",overflow:"visible"},viewBox:this.core.store.state.currentPath?.viewBox},e("path",{key:"9428a1401021b38b8b811fd68af9e24d53301c08",d:this.core.store.state.currentPath?.d,fill:this.core.store.state.currentPath?.fill,stroke:this.core.store.state.currentPath?.stroke}))),this.core.store.state.isContextMenuVisible&&e("kritzel-context-menu",{key:"1ccc963df66e4210886717644503be6304c6c99f",class:"context-menu",ref:t=>this.contextMenuElement=t,items:this.core.store.state.contextMenuItems,objects:this.core.store.state.selectionGroup?.objects||[],style:{position:"fixed",left:`${this.core.store.state.contextMenuX}px`,top:`${this.core.store.state.contextMenuY}px`,zIndex:"10000"},onActionSelected:t=>{t.detail.action({x:(-this.core.store.state.translateX+this.core.store.state.contextMenuX)/this.core.store.state.scale,y:(-this.core.store.state.translateY+this.core.store.state.contextMenuY)/this.core.store.state.scale},this.core.store.state.selectionGroup?.objects);this.hideContextMenu()},onClose:()=>this.hideContextMenu()}),this.core.store.state?.activeTool instanceof h&&!this.core.store.state.isScaling&&e("kritzel-cursor-trail",{key:"9b51e52c76f21be679491c21d1921d389d6619fc",core:this.core}))}static get watchers(){return{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}}};dt.style=ht;const ut=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const ft=class{constructor(e){t(this,e)}fontFamily="Arial, sans-serif";size=24;color="#000000";render(){return e(i,{key:"0a6f1d1326e9dde84a4122d79f75dc1c75ffe0fb"},e("div",{key:"88a342d01c4150cd4fc5dacca23f7b9904edca52",class:"font-preview",style:{fontFamily:this.fontFamily,fontSize:`${this.size}px`,color:this.color}},"A"))}};ft.style=ut;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 bt=class{constructor(e){t(this,e);this.fontFamilyChange=s(this,"fontFamilyChange")}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"}];selectedFontFamily;fontFamilyChange;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}}}handleDropdownValueChange=t=>{this.fontFamilyChange.emit(t.detail)};render(){const t=this.fontOptions.map((t=>({value:t.value,label:t.label,style:{fontFamily:t.value}})));return e(i,{key:"27d14ddb4a57b9cd7b936047b6ea6a9251a1ab27"},e("kritzel-dropdown",{key:"20ea042c9a907dc1ac5e16a589a8856f87389e36",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}},e("button",{key:"f63fed16477a327aadaeb54feefe35df1780e37d",class:"font-style-button",slot:"suffix"},"B"),e("button",{key:"13b3089606c2e83b256ed2cec6513a9911016754",class:"font-style-button italic-text",slot:"suffix"},"I")))}};bt.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(e){t(this,e);this.sizeChange=s(this,"sizeChange")}sizes=[8,10,12,16,20,24];selectedSize=null;fontFamily="Arial";sizeChange;handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(i,{key:"9f3d851d443352f7437116cf91eff8d8de41e322"},this.sizes.map((t=>e("div",{class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-font",{fontFamily:this.fontFamily,size:t})))))}};kt.style=gt;const yt=":host{display:inline-flex;justify-content:center;align-items:center;color:var(--kritzel-icon-color, inherited)}span{display:flex;align-items:center;width:100%;height:100%;}span>svg{width:100%;height:100%}";const vt=class{constructor(e){t(this,e)}name;label;size=24;render(){const t=X.get(this.name);if(!t){console.error(`[kritzel-icon] Icon "${this.name}" not found in registry.`);return e("span",{class:"error-icon","aria-label":`Error: Icon ${this.name} not found`},"?")}const s={width:`${this.size}px`,height:`${this.size}px`};return e(i,{style:s},e("span",{"aria-hidden":!this.label,role:this.label?"img":undefined,"aria-label":this.label,innerHTML:t}))}};vt.style=yt;const mt=":host{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-menu-background-color, #ffffff);width:var(--kritzel-menu-width, 200px);padding:var(--kritzel-menu-padding, 8px);border-radius:var(--kritzel-menu-border-radius, 12px);box-shadow:var(--kritzel-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-menu-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin;max-height:300px}:host(:focus-visible){outline:var(--kritzel-menu-focus-outline, 2px solid #e3e3e3)}.has-open-child-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:3}";const xt=class{constructor(e){t(this,e);this.itemSelect=s(this,"itemSelect");this.itemSave=s(this,"itemSave");this.itemCancel=s(this,"itemCancel");this.itemToggleChildMenu=s(this,"itemToggleChildMenu");this.itemCloseChildMenu=s(this,"itemCloseChildMenu");this.close=s(this,"close")}get host(){return o(this)}items;parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;close;selectedIndex=null;async setScrollTop(t){this.host.scrollTop=t;this.host.scrollTo({top:t,behavior:"auto"})}async setFocus(){const t=this.host.shadowRoot.querySelector("kritzel-menu-item");if(t){t.focus()}}get openChildMenuItem(){return this.items.find((t=>t.isChildMenuOpen))}get editingMenuItem(){return this.items.find((t=>t.isEditing))}onOverlayClick=t=>{t.stopPropagation();this.itemCloseChildMenu.emit(this.openChildMenuItem)};handleItemSelect=t=>{t.stopPropagation();this.itemSelect.emit(t.detail)};handleSave=t=>{t.stopPropagation();this.itemSave.emit(t.detail)};handleCancel=t=>{t.stopPropagation();this.itemCancel.emit(t.detail)};handleToggleChildMenu=t=>{t.stopPropagation();this.itemToggleChildMenu.emit(t.detail)};handleCloseChildMenu=t=>{t.stopPropagation();this.itemCloseChildMenu.emit(t.detail)};render(){return e(i,{key:"be122cb0ecff3227d9e69997de76a73940a61860",tabIndex:0,onClick:t=>t.stopPropagation()},this.openChildMenuItem&&e("div",{key:"ae10bec61e5c5e1a29b444cb7378f15c6692f3b6",class:"has-open-child-overlay",onClick:this.onOverlayClick}),this.items.map((t=>e("kritzel-menu-item",{key:t.id,item:t,parent:this.parent,style:{pointerEvents:this.editingMenuItem&&!t.isEditing?"none":"auto"},onItemSelect:this.handleItemSelect,onItemSave:this.handleSave,onItemCancel:this.handleCancel,onItemToggleChildMenu:this.handleToggleChildMenu,onItemCloseChildMenu:this.handleCloseChildMenu}))))}};xt.style=mt;const wt=":host{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--kritzel-menu-item-padding, 8px);box-sizing:border-box;gap:16px;height:var(--kritzel-menu-item-height, 40px);min-height:var(--kritzel-menu-item-min-height, 40px);font-family:sans-serif;font-size:var(--kritzel-menu-item-font-size, 14px);color:var(--kritzel-menu-item-color, #333333);border-radius:var(--kritzel-menu-item-border-radius, 12px);outline:none;cursor:default}:host(:hover) .menu-item-overlay,:host(:focus-within) .menu-item-overlay{background-color:var(--kritzel-menu-item-overlay-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff);color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected.editing){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}:host(.selected) .edit-input{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-selected-color, #ffffff)}kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-color, #333333)}:host(.selected) .edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, rgba(255, 255, 255, 0.16))}:host(.editing){background-color:var(--kritzel-menu-item-editing-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.disabled){opacity:0.5;pointer-events:none !important}:host(.child-open){background-color:var(--kritzel-menu-item-child-open-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.child-open.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}.menu-item-overlay{position:absolute;inset:0;background-color:transparent;z-index:0;pointer-events:none;border-radius:var(--kritzel-menu-item-border-radius, 12px)}.menu-item-content{display:flex;align-items:center;gap:8px;position:relative;z-index:1;height:100%}.left{justify-content:flex-start;flex:1;min-width:0}.left>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{justify-content:flex-end}.edit-input{flex:1;height:var(--kritzel-menu-item-input-height, 24px);padding:0;background-color:transparent;border-radius:0;border:none;border-bottom:1px solid var(--kritzel-menu-item-input-border, #ccc);font-size:var(--kritzel-context-menu-item-font-size, 14px);width:100%;min-width:0;box-sizing:border-box;outline:none}.edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, #007bff);color:var(--kritzel-menu-item-input-selection-text-color, #ffffff)}.action-button{padding:4px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background-color:transparent;background:transparent;outline:none;-webkit-tap-highlight-color:transparent}.action-button:hover,.action-button:focus{background-color:var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.action-button.disabled{pointer-events:none;opacity:0.5}";const zt=class{constructor(e){t(this,e);this.itemSelect=s(this,"itemSelect");this.itemSave=s(this,"itemSave");this.itemCancel=s(this,"itemCancel");this.itemToggleChildMenu=s(this,"itemToggleChildMenu");this.itemCloseChildMenu=s(this,"itemCloseChildMenu")}get host(){return o(this)}item;onItemChange(t,e){if(t!==e){this.isDirty=false}}parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;isDirty=false;inputRef;focusInput(){if(this.item.isEditing&&this.inputRef&&!this.isDirty){this.inputRef.focus();if(_.isIOS()){const t=this.inputRef.value.length;this.inputRef.setSelectionRange(t,t)}else{this.inputRef.select()}}}componentDidLoad(){this.setDeviceSpecificStyles();this.focusInput()}componentDidUpdate(){this.focusInput()}setDeviceSpecificStyles=()=>{const t=_.isTouchDevice();if(t){this.host.style.setProperty("--kritzel-menu-item-overlay-background-color","transparent");this.host.style.setProperty("--kritzel-menu-item-button-hover-background-color","transparent")}};handleItemSelect=t=>{t.stopPropagation();this.itemSelect.emit({item:this.item,parent:this.parent})};handleInputChange=t=>{t.stopPropagation();const e=t.target;this.item.label=e.value;this.isDirty=true};handleSave=t=>{t.stopPropagation();this.host.focus();this.itemSave.emit(this.item)};handleCancel=t=>{t.stopPropagation();this.host.focus();this.itemCancel.emit(this.item)};handleMenuToggle=t=>{t.stopPropagation();this.itemToggleChildMenu.emit({item:this.item,childMenuAnchor:t.target})};handleMenuClose=()=>{this.itemCloseChildMenu.emit(this.item)};renderViewMode(){return[e("div",{class:"menu-item-content left"},e("div",null,this.item.label)),e("div",{class:"menu-item-content right"},this.item.children&&this.item.children.length>0&&[e("button",{id:"child-menu-toggle",class:"action-button",onClick:this.handleMenuToggle,disabled:this.item.isDisabled},e("kritzel-icon",{name:"ellipsis-vertical",size:16})),e("kritzel-portal",{anchor:this.item.childMenuAnchor,offsetY:4,onClose:this.handleMenuClose},e("kritzel-menu",{items:this.item.children,parent:this.item,onItemSelect:t=>this.itemSelect.emit(t.detail),onItemSave:t=>this.itemSave.emit(t.detail),onItemCancel:t=>this.itemCancel.emit(t.detail),onClose:this.handleMenuClose}))])]}renderEditMode(){return[e("div",{class:"menu-item-content left"},e("input",{ref:t=>this.inputRef=t,type:"text",class:"edit-input",value:this.item.label,onInput:this.handleInputChange})),e("div",{class:"menu-item-content right"},e("div",{tabIndex:0,class:"action-button",onClick:this.handleCancel},e("kritzel-icon",{name:"x",size:16})),e("div",{tabIndex:!this.isDirty&&!this.item.isNewItem?-1:0,class:{"action-button":true,disabled:!this.isDirty&&!this.item.isNewItem},onClick:this.handleSave},e("kritzel-icon",{name:"check",size:16})))]}render(){return e(i,{key:"9df3acdaff753e3ed910f848c98e8ad73e2b5f5c",tabIndex:this.item.isDisabled?-1:0,class:{selected:this.item.isSelected,editing:this.item.isEditing,disabled:this.item.isDisabled,"child-open":this.item.isChildMenuOpen},onClick:this.handleItemSelect},e("div",{key:"bb73e5c0c3dd87efabcaa0b53d20c7c477b34aa1",class:"menu-item-overlay"}),this.item.isEditing?this.renderEditMode():this.renderViewMode())}static get watchers(){return{item:["onItemChange"]}}};zt.style=wt;class Ct{static getNumericValueFromStyle(t,e){const i=window.getComputedStyle(t).getPropertyValue(e);return parseFloat(i)||0}static getScrollableParent(t){if(!t){return window}const e=t.parentNode?.host??t.parentElement;if(!e||e.tagName==="BODY"){return window}const i=window.getComputedStyle(e);if(i.overflow==="auto"||i.overflowY==="auto"||i.overflow==="scroll"||i.overflowY==="scroll"){return e}return this.getScrollableParent(e)}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}static getFocusableElements(t){if(!t)return[];const e=[];const i='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), details, [tabindex]:not([tabindex="-1"])';const s=t=>t.offsetParent!==null;const o=t=>{if(t instanceof HTMLElement&&t.matches(i)&&!t.hasAttribute("disabled")&&s(t)){e.push(t)}if(t.shadowRoot){Array.from(t.shadowRoot.children).forEach(o)}if(t.tagName==="SLOT"){t.assignedElements({flatten:true}).forEach(o)}if(!t.shadowRoot){Array.from(t.children).forEach(o)}};o(t);return e}}const It=class{constructor(e){t(this,e);this.close=s(this,"close")}get host(){return o(this)}anchor;anchorChanged(t){if(t){this.openPortal();this.calculatePosition();if(this.autoFocus){this.focusFirstElement()}}else{this.closePortal()}}offsetX;offsetY;autoFocus=true;close;handleOutsideClick(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;const i=t.target;if(!this.host.contains(i)){this.close.emit();this.closePortal()}}handleKeyDown(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;if(t.key==="Escape"){this.anchor.focus();this.close.emit();this.closePortal()}if(t.key==="Tab"){this.trapFocus(t)}if(t.key==="Enter"){const e=this.getDeepActiveElement();if(e?.click){t.preventDefault();e.click()}}}handleResize(){this.calculatePosition()}handleWindowScroll(){const t=Ct.isElementInViewport(this.anchor);if(!t){this.anchor?.blur();this.closePortal();return}this.calculatePosition()}portal;id=`portal-${C.generateUUID()}`;defaultOffset=0;minLeft=0;focusFirstElement(){requestAnimationFrame((()=>{this.firstFocusableElement?.focus?.()}))}getDeepActiveElement(){let t=document.activeElement;while(t?.shadowRoot?.activeElement){t=t.shadowRoot.activeElement}return t}trapFocus(t){const e=Ct.getFocusableElements(this.host);if(e.length===0)return;const i=e[0];const s=e[e.length-1];const o=this.getDeepActiveElement();if(t.shiftKey){if(o===i){s.focus();t.preventDefault()}}else{if(o===s){i.focus();t.preventDefault()}}}get firstFocusableElement(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements({flatten:true})[0];if(!e)return null;const i=Ct.getFocusableElements(e);return i[0]??e}get lastAddedPortal(){const t=Array.from(document.querySelectorAll('[id^="portal-"]'));return t.length?t[t.length-1]:null}calculateLeft(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect();const e=this.portal.getBoundingClientRect();const i=this.offsetX??this.defaultOffset;let s=t.left+i;const o=window.innerWidth-e.width-this.minLeft;if(s<this.minLeft)s=this.minLeft;if(s>o)s=o;return Math.round(s+window.scrollX)}calculateTop(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect();const e=this.portal.getBoundingClientRect();const i=this.offsetY??this.defaultOffset;let s=t.bottom+i;if(s+e.height>window.innerHeight){s=t.top-e.height-i}return Math.round(s+window.scrollY)}openPortal(){this.portal=document.createElement("div");this.portal.setAttribute("id",this.id);this.portal.style.zIndex="1";this.portal.style.position="absolute";this.portal.style.top="0px";this.portal.style.left="0px";this.portal.appendChild(this.host);document.body.append(this.portal)}closePortal(){const t=document.getElementById(this.id);if(!t)return;document.body.removeChild(t);this.host.remove()}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`}render(){return e(i,{key:"9c5cdf7126ff1148dd2364cce9d2524862e27d13",style:{display:this.anchor?"block":"none"}},e("slot",{key:"209a77246fedcea0c24882605487452ff5cc62ce"}))}static get watchers(){return{anchor:["anchorChanged"]}}};const Mt=":host{position:relative;display:flex;align-items:center;font-family:sans-serif;z-index:1;padding:var(--kritzel-split-button-padding, 4px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-split-button-border, 1px solid #ebebeb);gap:var(--kritzel-split-button-gap, 4px)}:host(.mobile){--kritzel-split-button-hover-background-color:transparent}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-split-button-padding, 8px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);font-size:var(--kritzel-split-button-font-size, 14px)}.split-main-button:hover,.split-menu-button:hover{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button:focus,.split-menu-button:focus{outline:none;background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button{gap:var(--kritzel-split-button-gap, 4px)}.split-menu-button{border-left:none;justify-content:center}.split-divider{width:var(--kritzel-split-button-divider-width, 1px);height:24px;background-color:var(--kritzel-split-button-divider-background-color, hsl(0, 0%, 0%, 4.3%))}:disabled{pointer-events:none;opacity:0.5}";const St=class{constructor(e){t(this,e);this.mainButtonClick=s(this,"mainButtonClick");this.itemSelect=s(this,"itemSelect");this.itemSave=s(this,"itemSave");this.itemCancel=s(this,"itemCancel");this.itemToggleChildMenu=s(this,"itemToggleChildMenu");this.itemCloseChildMenu=s(this,"itemCloseChildMenu");this.menuOpen=s(this,"menuOpen");this.menuClose=s(this,"menuClose")}get host(){return o(this)}buttonIcon="plus";dropdownIcon="chevron-down";items=[];mainButtonDisabled=false;menuButtonDisabled=false;mainButtonClick;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;menuOpen;menuClose;isMenuOpen=false;isTouchDevice=_.isTouchDevice();anchorElement;menuScrollTop=0;splitMenuButtonRef;menuRef;async open(){if(this.isMenuOpen)return;this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit()}async focusMenu(){if(this.menuRef){await this.menuRef.setFocus()}}handleButtonClick=t=>{t.stopPropagation();this.mainButtonClick.emit()};toggleMenu=t=>{t.stopPropagation();if(this.isMenuOpen){this.closeMenu()}else{this.openMenu(t)}};openMenu=t=>{t.stopPropagation();this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit();requestAnimationFrame((()=>{this.menuRef?.setScrollTop(this.menuScrollTop)}))};closeMenu=()=>{this.isMenuOpen=false;this.anchorElement=null;this.splitMenuButtonRef?.blur();this.menuClose.emit()};handleItemSelect=t=>{this.itemSelect.emit(t.detail)};handleItemSave=t=>{this.itemSave.emit(t.detail)};handleItemCancel=t=>{this.itemCancel.emit(t.detail)};handleItemToggleChildMenu=t=>{this.itemToggleChildMenu.emit(t.detail)};handleItemCloseChildMenu=t=>{this.itemCloseChildMenu.emit(t.detail)};handleScroll=t=>{this.menuScrollTop=t.target.scrollTop};render(){return e(i,{key:"4ff7809dd62c1dd60600fda592aeac43cd9bc74c",class:{mobile:this.isTouchDevice}},e("button",{key:"db6485fabcffdd75a25d178aca7b653af499a90c",class:"split-main-button",tabIndex:0,onClick:this.handleButtonClick,disabled:this.mainButtonDisabled},this.buttonIcon&&e("kritzel-icon",{key:"4001a4e23ef53bec2a578310de8c8b593d7b266c",name:this.buttonIcon})),e("div",{key:"8ff86d3c01a48b06afca77dd066518efa3589cb1",class:"split-divider"}),e("button",{key:"f1c40edbec3756a7f3681de4e8d0f1981dd312a4",ref:t=>this.splitMenuButtonRef=t,class:"split-menu-button",tabIndex:0,onClick:this.toggleMenu,disabled:this.menuButtonDisabled},e("kritzel-icon",{key:"0ddb89976632ae7454e66504f8bab3fd5072c252",name:this.dropdownIcon})),e("kritzel-portal",{key:"64531ffd6ac847fd1a99e32aceefea9f18088992",anchor:this.anchorElement,offsetY:4,onClose:this.closeMenu},e("kritzel-menu",{key:"f3b86cb71e5ba39e8f98e26b3669416e2cdb4802",ref:t=>this.menuRef=t,items:this.items,onItemSelect:this.handleItemSelect,onItemSave:this.handleItemSave,onItemCancel:this.handleItemCancel,onItemToggleChildMenu:this.handleItemToggleChildMenu,onItemCloseChildMenu:this.handleItemCloseChildMenu,onClose:this.closeMenu,onScroll:this.handleScroll})))}};St.style=Mt;const jt=":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:focus-visible{outline:var(--kritzel-stroke-size-focus-outline, 2px auto #e3e3e3)}.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 Dt=class{constructor(e){t(this,e);this.sizeChange=s(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(i,{key:"74579e34c23725e22927afe371c1f7925903720a"},this.sizes.map((t=>e("div",{tabIndex:0,class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-color",{value:"#000000",size:t})))))}};Dt.style=jt;const Bt=":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 Tt=768;const Et=class{constructor(e){t(this,e);this.tooltipClosed=s(this,"tooltipClosed")}get host(){return o(this)}isVisible=false;anchorElement;arrowSize=8;offsetY=24;tooltipClosed;positionX=0;arrowOffset="0px";isMobileView=window.innerWidth<Tt;handleOutsideClick(t){if(!this.isVisible)return;const e=t.target;if(!this.host.contains(e)){this.tooltipClosed.emit()}}handleWindowResize(){this.isMobileView=window.innerWidth<Tt;this.calculateAdjustedPosition()}async focusContent(){const t=Ct.getFocusableElements(this.host);if(t.length>0){t[0].focus()}}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.isMobileView=window.innerWidth<Tt;this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements()||[];if(e.length>0){const t=e[0];t.focus()}}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect();const e=this.host.shadowRoot?.querySelector(".tooltip-content");if(!this.isMobileView){this.positionX=t.left+t.width/2;this.arrowOffset=`calc(${50}% - ${this.arrowSize}px)`}else{const i=e.getBoundingClientRect();this.positionX=t.left+t.width/2-i.width/2;this.arrowOffset=`${t.left+t.width/2-i.left-this.arrowSize}px`}}}render(){return e(i,{key:"72a6356a43a15a7abc9a46b0d22c3c62217791e8",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`}},e("div",{key:"75f5350f23ada0eee009279eddd7d25273ad3740",class:"tooltip-content",onClick:t=>t.stopPropagation()},e("slot",{key:"ad999154289e933cac1fdc13392de2aec78811a8"}),e("div",{key:"6be3f5c24d42898920c339be2cd2f3dd8a82fa80",class:"tooltip-arrow-wrapper",style:{position:"fixed",left:this.arrowOffset,bottom:`-${this.arrowSize*2}px`}},e("div",{key:"37397c6245dd6b0def23e2611d118e0c4f5860ef",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))"}}),e("div",{key:"dbf009c371d46ef0a36e27771758c66e817d9b22",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`}}))))}};Et.style=Bt;const Ot=":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;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:focus{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";const At=class{constructor(e){t(this,e);this.undo=s(this,"undo");this.redo=s(this,"redo");this.delete=s(this,"delete")}undo;redo;delete;handleUndo(t){if(t.cancelable){t.preventDefault();t.stopPropagation();this.undo.emit()}}handleRedo(t){t.preventDefault();t.stopPropagation();this.redo.emit()}render(){return e(i,{key:"8e2eb13668d8787827b10cee7c9daf2abdecc2c6"},e("button",{key:"0773e7ef81bc972ba589333f4ac7e85d98737770",class:"utility-button",onClick:t=>this.handleUndo(t)},e("kritzel-icon",{key:"fa69c1a2535d44bfb871a4d719079d0f900cc6c7",name:"undo"})),e("button",{key:"edc28968f3ec92467d6b4aaa095a71770413d657",class:"utility-button",onClick:t=>this.handleRedo(t)},e("kritzel-icon",{key:"d4cf72e2bda411fe9942d473c5e1ceae62a76074",name:"redo"})),e("div",{key:"8927237c6099a147495564657cdef97e7d35d7c1",class:"utility-separator"}),e("button",{key:"e089819f7dd870165130322c3c4a9d754d4ed023",class:"utility-button"},e("kritzel-icon",{key:"a143770d1b3f8fdbe5c5b36c5d7eaab511cd8a4b",name:"delete",onClick:()=>this.delete.emit()})))}};At.style=Ot;const Wt=":host{display:flex;flex-direction:column;z-index:1}";const $t=class{constructor(e){t(this,e);this.isWorkspaceManagerReady=s(this,"isWorkspaceManagerReady");this.workspaceChange=s(this,"workspaceChange")}get host(){return o(this)}activeWorkspace;workspaces=[];isWorkspaceManagerReady;workspaceChange;childMenuAnchor=null;openChildMenuItem=null;newWorkspace=null;editingItemId=null;handleWheel(t){if(t.ctrlKey){t.preventDefault()}}kritzelEngineRef=null;splitButtonRef;get sortedWorkspaces(){return[this.newWorkspace,...this.workspaces].filter((t=>t!=null)).sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}async componentWillLoad(){await this.initializeEngine();this.isWorkspaceManagerReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngineRef=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngineRef){throw new Error("kritzel-engine not found in parent element.")}}async select(t,e){if(this.editingItemId){return}if(t.action){t.action(t,e);return}this.workspaceChange.emit(t.value)}async add(){await this.splitButtonRef.open();this.newWorkspace=new f(C.generateUUID(),"New Workspace");this.editingItemId=this.newWorkspace.id}edit(t){this.openChildMenuItem=null;this.childMenuAnchor=null;requestAnimationFrame((()=>{this.editingItemId=t.id}))}async save(t){if(this.newWorkspace){this.newWorkspace.name=t.label;await this.kritzelEngineRef.createWorkspace(this.newWorkspace);this.workspaceChange.emit(this.newWorkspace)}else{const e=t.value;e.name=t.label;await this.kritzelEngineRef.updateWorkspace(e)}this.editingItemId=null;this.newWorkspace=null}cancel(){this.newWorkspace=null;this.editingItemId=null}async delete(t){this.openChildMenuItem=null;this.childMenuAnchor=null;await this.kritzelEngineRef.deleteWorkspace(t.value);if(t.value.id===this.activeWorkspace?.id){this.activeWorkspace=this.sortedWorkspaces.find((e=>e.id!==t.value.id))||null;this.workspaceChange.emit(this.activeWorkspace)}await this.splitButtonRef.focusMenu()}toggleChildMenu(t,e){this.openChildMenuItem=t;this.childMenuAnchor=e}closeChildMenu(){this.openChildMenuItem=null;this.childMenuAnchor=null}handleMenuOpen(){this.kritzelEngineRef.disable()}handleMenuClose(){this.cancel();this.closeChildMenu();this.kritzelEngineRef.enable()}render(){const t=this.sortedWorkspaces.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime())).filter((t=>t!==null)).map((t=>({id:t.id,label:t.name,value:t,isEditing:this.editingItemId===t.id,isSelected:this.activeWorkspace?.id===t.id,isNewItem:this.newWorkspace?.id===t.id,isChildMenuOpen:this.openChildMenuItem?.id===t.id,childMenuAnchor:this.openChildMenuItem?.id===t.id?this.childMenuAnchor:null,children:[{id:`${t.id}-rename`,label:"Rename",value:"rename",action:(t,e)=>this.edit(e)},{id:`${t.id}-delete`,label:"Delete",value:"delete",isDisabled:this.sortedWorkspaces.length<=1,action:(t,e)=>this.delete(e)}]})));return e(i,null,e("kritzel-split-button",{ref:t=>this.splitButtonRef=t,items:t,mainButtonDisabled:this.editingItemId!=null,onMainButtonClick:()=>this.add(),onItemSelect:t=>this.select(t.detail.item,t.detail.parent),onItemToggleChildMenu:t=>this.toggleChildMenu(t.detail.item,t.detail.childMenuAnchor),onItemSave:t=>this.save(t.detail),onItemCancel:()=>this.cancel(),onItemCloseChildMenu:()=>this.closeChildMenu(),onMenuOpen:()=>this.handleMenuOpen(),onMenuClose:()=>this.handleMenuClose()}))}};$t.style=Wt;export{T as kritzel_color,O as kritzel_color_palette,W as kritzel_context_menu,R as kritzel_control_brush_config,P as kritzel_control_text_config,L as kritzel_controls,H as kritzel_cursor_trail,K as kritzel_dropdown,Z as kritzel_editor,dt as kritzel_engine,ft as kritzel_font,bt as kritzel_font_family,kt as kritzel_font_size,vt as kritzel_icon,xt as kritzel_menu,zt as kritzel_menu_item,It as kritzel_portal,St as kritzel_split_button,Dt as kritzel_stroke_size,Et as kritzel_tooltip,At as kritzel_utility_panel,$t as kritzel_workspace_manager};
2
- //# sourceMappingURL=p-73784709.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["registerInstance","h","Host","createEvent","getElement","KritzelBrushTool","KritzelTextTool","KritzelMouseButton","KritzelSelectionTool","DEFAULT_BRUSH_CONFIG","KritzelEraserTool","DEFAULT_TEXT_CONFIG","KritzelImageTool","KritzelWorkspace","KritzelKeyboardHelper","KritzelEventHelper","KritzelBaseHandler","KritzelToolRegistry","KrtizelSelectionBox","KritzelSelectionGroup","BatchCommand","RemoveSelectionGroupCommand","AddSelectionGroupCommand","KritzelBaseCommand","ObjectHelper","KritzelReviver","RemoveObjectCommand","AddObjectCommand","UpdateObjectCommand","KritzelBaseTool","kritzelColorCss","KritzelColor","constructor","hostRef","this","value","size","isLightColor","hexColor","r","g","b","sanitizedHex","startsWith","slice","length","parseInt","substring","isNaN","luminance","render","isColorVeryLight","key","class","style","width","height","borderRadius","display","position","white","backgroundColor","top","left","kritzelColorPaletteCss","KritzelColorPalette","colorChange","colors","selectedColor","isExpanded","isOpaque","handleColorClick","color","emit","calculateHeight","colorsPerRow","rowHeight","gap","rowCount","Math","ceil","displayedColors","expandedHeight","expanded","map","tabIndex","selected","onClick","kritzelContextMenuCss","KritzelContextMenu","actionSelected","close","host","items","onItemsChanged","updateMenuItems","objects","processedItems","handleOutsideClick","event","path","composedPath","includes","componentWillLoad","handleItemClick","item","isDisabled","processed","isVisible","evaluateProperty","visible","disabled","push","defaultValue","Promise","resolve","index","label","icon","name","watchers","kritzelControlBrushConfigCss","KritzelControlBrushConfig","toolChange","tool","handleToolChange","newTool","palette","palettes","type","handleToggleExpand","handleTypeChange","detail","handleColorChange","handleSizeChange","flexDirection","alignItems","justifyContent","onColorChange","title","visibillity","visibility","selectedSize","onSizeChange","kritzelControlTextConfigCss","KritzelControlTextConfig","handleFamilyChange","fontFamily","fontColor","fontSize","selectedFontFamily","onFontFamilyChange","KritzelDevicesHelper","isTouchDevice","window","matchMedia","matches","isAndroid","test","navigator","userAgent","isIOS","detectOS","isFirefox","kritzelControlsCss","KritzelControls","isControlsReady","controls","activeControl","isUtilityPanelVisible","firstConfig","isTooltipVisible","handleDocumentClick","element","target","kritzelEngine","closest","handleKeyDown","preventDefault","closeTooltip","enable","handleActiveToolChange","find","control","tooltipRef","activeToolAsTextTool","activeToolAsBrushTool","initializeEngine","initializeTools","customElements","whenDefined","parentElement","querySelector","Error","c","registerTool","config","isDefault","changeActiveTool","console","warn","handleControlClick","handleConfigClick","stopPropagation","disable","setTimeout","focusContent","handleTooltipClosed","hasNoConfig","undefined","mobile","bottom","onUndo","undo","onRedo","redo","onDelete","delete","_event","ref","el","anchorElement","shadowRoot","onTooltipClosed","onToolChange","onKeyDown","cursor","pointerEvents","border","assetsDirs","kritzelCursorTrailCss","KritzelCursorTrail","core","cursorTrailPoints","isLeftButtonDown","handleMouseDown","ev","pointerType","button","Left","store","state","pointers","handlePointerMove","newPoint","x","clientX","y","clientY","timestamp","Date","now","updatedTrail","MAX_TRAIL_POINTS","handlePointerUp","trailCleanupIntervalId","TRAIL_DURATION_MS","componentDidLoad","setInterval","newTrailPoints","filter","p","disconnectedCallback","clearInterval","xmlns","opacity","zIndex","point","prevPoint","age","progress","max","min","baseStrokeWidth","x1","toString","y1","x2","y2","stroke","kritzelDropdownCss","KritzelDropdown","valueChanged","options","optionsChanged","updateInternalValue","internalValue","externalValueChanged","newValue","selectStyles","hasSuffixContent","hasPrefixContent","suffixSlotElement","prefixSlotElement","evaluateSuffixContent","evaluatePrefixContent","proposedValue","emitChange","finalValue","isValidValue","some","opt","handleSelectChange","newHasContent","assignedNodes","flatten","selectClasses","onSlotchange","onInput","option","KritzelIconRegistry","static","Map","register","svgContent","registry","has","set","get","registerIcons","icons","Object","prototype","hasOwnProperty","call","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","_","bringToFront","sendToBack","customSvgIcons","isControlsVisible","isEngineReady","isWorkspaceManagerReady","workspaces","activeWorkspace","isVirtualKeyboardOpen","onIsEngineReady","checkIsReady","onIsControlsReady","handleTouchStart","cancelable","getObjectById","id","addObject","object","updateObject","updatedProperties","removeObject","getSelectedObjects","selectObjects","clearSelection","centerObjectInViewport","createWorkspace","viewport","workspace","updateWorkspace","deleteWorkspace","getWorkspaces","getActiveWorkspace","controlsRef","splitButtonRef","registerCustomSvgIcons","listenForMobileKeyboard","setOsSpecificCssVariables","onEngineReady","svg","entries","onKeyboardVisibleChanged","isOpen","os","setProperty","onWorkspaceChange","onIsWorkspaceManagerReady","onWorkspacesChange","KritzelViewport","_core","initialTouchDistance","startX","startY","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","dx","dy","skipContextMenu","updateWorkspaceViewport","currentTouchDistance","midpointX","midpointY","scaleRatio","newScale","translateXAdjustment","translateYAdjustment","handleWheel","ctrlKey","isMainMouseWheel","handleZoom","handlePan","centerInViewport","rotatedBoundingBox","objectCenterX","objectCenterY","centerFitInViewport","scaleX","scaleY","clampedScale","rect","delta","deltaY","scaleStep","panSpeed","deltaX","KritzelKeyHandler","shortcuts","condition","selectionGroup","ctrl","history","switchTool","copiedObjects","activeText","bringForward","sendBackward","shift","super","toolInstance","getTool","setState","deselectAllObjects","onActivate","isCtrlKeyPressed","shortcut","s","shiftKey","handleKeyUp","KritzelContextMenuHandler","handleContextMenu","activeTool","selectionTool","moveHandler","cancelPendingDrag","selectionBox","objectsMap","remove","isSelecting","selectedObject","getObjectFromPointerEvent","create","addOrRemove","isSelected","rotation","batch","executeCommand","contextMenuItems","menuWidthEstimate","menuHeightEstimate","margin","innerWidth","innerHeight","contextMenuX","contextMenuY","isContextMenuVisible","isEnabled","KritzelClassHelper","isInstanceOf","className","__class__","DEFAULT_ENGINE_STATE","resizeHandleType","hasObjectsChanged","isResizing","isResizeHandleSelected","isRotating","isRotationHandleSelected","isDragging","isDrawing","isErasing","isWriting","debugInfo","showObjectInfo","showViewportInfo","logCommands","logDatabase","translateXMax","translateXMin","translateYMax","translateYMin","historyBufferSize","longTouchTimeout","longTouchDelay","KritzelDatabase","db","dbName","dbVersion","isLoggingEnabled","open","stores","reject","info","request","indexedDB","onerror","error","onsuccess","result","onupgradeneeded","forEach","storeConfig","objectStoreNames","contains","createObjectStore","indices","createIndex","keyPath","add","storeName","serialize","serializedItem","executeTransaction","getAll","update","put","deleteByRange","range","getAllByRange","getAllByIndex","indexName","query","mode","transaction","objectStore","requestResult","oncomplete","onabort","actions","storeNames","extractStoreNamesFromActions","results","promises","tempDbInstance","resolveRequest","rejectRequest","all","then","promise","catch","err","abort","storeNamesSet","Set","storeNameCollector","Proxy","prop","UpdateViewportCommand","currentViewport","previousViewport","initiator","skipHistory","execute","KritzelCircularBuffer","buffer","capacity","head","tail","fill","pop","peek","lastIndex","isEmpty","clear","KritzelHistory","undoStack","redoStack","reset","command","addUpdateViewportCommand","KritzelObjectMap","insert","predicate","allObjects","KritzelStore","_state","_listeners","currentZIndex","o","allNonSelectionObjects","selectedObjects","onStateChange","property","listener","getState","oldValue","String","KritzelCore","_kritzelEngine","_store","_history","_database","engine","database","initializeDatabase","initializeWorkspace","mostRecentWorkspace","sort","a","updatedAt","getTime","fallbackWorkspace","generateUUID","candidateWorkspace","existingWorkspace","getWorkspace","initializeWorkspaceObjects","workspaceId","objectsFromDb","IDBKeyRange","bound","reviver","revivedObject","revive","addObjectToDatabase","updateObjectInDatabase","deleteObjectFromDatabase","objectId","rawWorkspace","rawWorkspaces","ws","createdAt","findIndex","w","objectRange","forceUpdate","findObjectById","deleteSelectedObjectsCommand","obj","removeSelectionGroupCommand","commands","deleteObject","removeObjectCommand","adjustedX","adjustedY","updatePosition","updateZIndices","updateWorkspaceId","previousSelectionGroup","addCopiedObjectsCommands","addCopiedObjectsAsSelectionGroupCommand","allNonSelectionObjectsWithoutCurrent","increaseZIndexCommands","decreaseZIndexCommands","objectsInViewport","isInViewport","resetActiveText","log","save","selector","elementAtPoint","elementFromPoint","foundObject","isHit","hitTest","getObjectsFromPointerEvent","elementsAtPoint","elementsFromPoint","objectIds","getCanvasPoint","xWithoutTranslate","yWithoutTranslate","worldX","worldY","kritzelEngineCss","KritzelEngine","newWorkspace","validateScaleMax","validateScaleMin","activeToolChange","workspacesChange","longpress","hideContextMenu","onLongPress","setPointerCapture","pointerId","releasePointerCapture","handlePointerCancel","handleLongPress","contextMenuHandler","keyHandler","preventDoubleTapZoomOnTouchDevices","toolName","toolClass","toolConfig","registeredTool","onDeactivate","generateId","contextMenuElement","isSelectionActive","_registerStateChangeListeners","_handleActiveToolChange","bind","forceHideKeyboard","computedStyle","getComputedStyle","baseHandleSizePx","getPropertyValue","trim","baseHandleSize","parseFloat","baseHandleTouchSize","viewportCenterX","viewportCenterY","toFixed","transform","transformationMatrix","transformOrigin","totalHeight","totalWidth","rotationDegrees","markedForRemoval","minHeight","minWidth","borderColor","borderWidth","borderStyle","padding","overflow","mount","unmount","viewBox","d","src","userSelect","draggable","onDragStart","e","onPointerDown","onPointerMove","onPointerUp","initialWidth","initialHeight","maxWidth","scaleFactor","strokeWidth","strokeLinecap","cx","cy","isDebugInfoVisible","whiteSpace","onActionSelected","onClose","kritzelFontCss","KritzelFont","kritzelFontFamilyCss","KritzelFontFamily","fontFamilyChange","fontOptions","isValidCurrentFont","handleDropdownValueChange","dropdownOptions","onValueChanged","slot","kritzelFontSizeCss","KritzelFontSize","sizeChange","sizes","handleSizeClick","kritzelIconCss","KritzelIcon","styles","role","innerHTML","kritzelMenuCss","KritzelMenu","itemSelect","itemSave","itemCancel","itemToggleChildMenu","itemCloseChildMenu","parent","selectedIndex","setScrollTop","scrollTop","scrollTo","behavior","setFocus","firstItem","focus","openChildMenuItem","isChildMenuOpen","editingMenuItem","isEditing","onOverlayClick","handleItemSelect","handleSave","handleCancel","handleToggleChildMenu","handleCloseChildMenu","onItemSelect","onItemSave","onItemCancel","onItemToggleChildMenu","onItemCloseChildMenu","kritzelMenuItemCss","KritzelMenuItem","onItemChange","isDirty","inputRef","focusInput","setSelectionRange","select","setDeviceSpecificStyles","componentDidUpdate","handleInputChange","handleMenuToggle","childMenuAnchor","handleMenuClose","renderViewMode","children","anchor","renderEditMode","isNewItem","editing","KritzelHTMLHelper","getNumericValueFromStyle","getScrollableParent","parentNode","tagName","overflowY","isElementInViewport","scrollableParent","document","documentElement","right","parentRect","getFocusableElements","root","focusableElements","focusableSelector","offsetParent","HTMLElement","hasAttribute","assignedElements","KritzelPortal","anchorChanged","openPortal","calculatePosition","autoFocus","focusFirstElement","closePortal","isLastPortal","lastAddedPortal","portal","trapFocus","activeElement","getDeepActiveElement","click","handleWindowScroll","blur","defaultOffset","minLeft","requestAnimationFrame","firstFocusableElement","activeEl","firstFocusable","lastFocusable","slotEl","firstAssigned","focusable","portals","querySelectorAll","calculateLeft","refRect","portalRect","offset","maxLeft","round","scrollX","calculateTop","scrollY","createElement","setAttribute","appendChild","body","append","getElementById","removeChild","kritzelSplitButtonCss","KritzelSplitButton","mainButtonClick","menuOpen","menuClose","buttonIcon","dropdownIcon","mainButtonDisabled","menuButtonDisabled","isMenuOpen","menuScrollTop","splitMenuButtonRef","menuRef","focusMenu","handleButtonClick","toggleMenu","closeMenu","openMenu","handleItemSave","handleItemCancel","handleItemToggleChildMenu","handleItemCloseChildMenu","handleScroll","onScroll","kritzelStrokeSizeCss","KritzelStrokeSize","kritzelTooltipCss","MOBILE_BREAKPOINT","KritzelTooltip","tooltipClosed","arrowSize","positionX","arrowOffset","isMobileView","handleWindowResize","calculateAdjustedPosition","focusSlottedContent","componentWillUpdate","firstElement","anchorRect","tooltipContent","tooltipRect","transition","marginBottom","borderLeft","borderRight","borderTop","kritzelUtilityPanelCss","KritzelUtilityPanel","handleUndo","handleRedo","kritzelWorkspaceManagerCss","KritzelWorkspaceManager","workspaceChange","editingItemId","kritzelEngineRef","sortedWorkspaces","edit","cancel","toggleChildMenu","closeChildMenu","handleMenuOpen","menuItems","_item","onMainButtonClick","onMenuOpen","onMenuClose"],"sources":["0"],"mappings":"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","ignoreList":[]}