kritzel-stencil 0.0.140 → 0.0.142
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-nzUNdMPh.js → index-DcTwXs_q.js} +47 -22
- package/dist/cjs/index-DcTwXs_q.js.map +1 -0
- package/dist/cjs/index-SaGfCHX3.js +16452 -0
- package/dist/cjs/index-SaGfCHX3.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +134 -96
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stencil.cjs.js +3 -3
- package/dist/cjs/stencil.cjs.js.map +1 -1
- package/dist/collection/classes/commands/add-object.command.js +1 -0
- package/dist/collection/classes/commands/add-object.command.js.map +1 -1
- package/dist/collection/classes/commands/base.command.js +2 -0
- package/dist/collection/classes/commands/base.command.js.map +1 -1
- package/dist/collection/classes/commands/remove-object.command.js +1 -3
- package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
- package/dist/collection/classes/commands/update-object.command.js +2 -0
- package/dist/collection/classes/commands/update-object.command.js.map +1 -1
- package/dist/collection/classes/core/command-manager.class.js +51 -0
- package/dist/collection/classes/core/command-manager.class.js.map +1 -0
- package/dist/collection/classes/core/core.class.js +30 -14
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/core/history.class.js +2 -40
- package/dist/collection/classes/core/history.class.js.map +1 -1
- package/dist/collection/classes/core/viewport.class.js +16 -5
- package/dist/collection/classes/core/viewport.class.js.map +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
- package/dist/collection/classes/handlers/key.handler.js +2 -2
- package/dist/collection/classes/handlers/key.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +11 -6
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/resize.handler.js +29 -5
- package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +2 -2
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +4 -4
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +15 -14
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/custom-element.class.js +7 -1
- package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +189 -82
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/tools/brush-tool.class.js +2 -2
- package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +2 -2
- package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/image-tool.class.js +1 -1
- package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +2 -2
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +17 -13
- package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +0 -1
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +4 -8
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +21 -8
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +33 -37
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +1 -2
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +1 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +3 -3
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +3 -4
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +1 -1
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +5 -6
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +3 -3
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +2 -3
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +2 -3
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +1 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +5 -5
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +0 -2
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +0 -2
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +1 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +5 -6
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +4 -5
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -2
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +3 -4
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +1 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -2
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +1 -2
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +1 -1
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +1 -2
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +1 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +1 -3
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +0 -2
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
- package/dist/collection/interfaces/object.interface.js.map +1 -1
- package/dist/components/index.js +3 -3
- package/dist/components/kritzel-brush-style.js +4 -4
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-context-menu.js +1 -1
- package/dist/components/kritzel-control-brush-config.js +1 -1
- package/dist/components/kritzel-control-text-config.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-cursor-trail.js +1 -1
- package/dist/components/kritzel-dropdown.js +1 -1
- package/dist/components/kritzel-editor.js +25 -25
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-font-family.js +1 -1
- package/dist/components/kritzel-font-size.js +1 -1
- package/dist/components/kritzel-font.js +1 -1
- package/dist/components/kritzel-icon.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-BQJhnpY3.js → p-BEKicPnH.js} +3 -3
- package/dist/components/{p-BQJhnpY3.js.map → p-BEKicPnH.js.map} +1 -1
- package/dist/components/{p-D6FeQRzi.js → p-BFNwskCY.js} +4 -4
- package/dist/components/{p-D6FeQRzi.js.map → p-BFNwskCY.js.map} +1 -1
- package/dist/components/{p-sHDCqDbD.js → p-BJbN3vca.js} +6 -6
- package/dist/components/{p-sHDCqDbD.js.map → p-BJbN3vca.js.map} +1 -1
- package/dist/components/{p-bC64Ng59.js → p-ByAzDzS5.js} +3 -3
- package/dist/components/{p-bC64Ng59.js.map → p-ByAzDzS5.js.map} +1 -1
- package/dist/components/{p-CE_sOMS2.js → p-BycHaC-9.js} +4 -4
- package/dist/components/{p-CE_sOMS2.js.map → p-BycHaC-9.js.map} +1 -1
- package/dist/components/{p-SKH0G2nM.js → p-C8calcQF.js} +17 -17
- package/dist/components/{p-SKH0G2nM.js.map → p-C8calcQF.js.map} +1 -1
- package/dist/components/{p-BYanlgdq.js → p-C9hrbrUN.js} +27 -14
- package/dist/components/p-C9hrbrUN.js.map +1 -0
- package/dist/components/{p-JYqCBcMd.js → p-CEn1WeG3.js} +8 -8
- package/dist/components/{p-JYqCBcMd.js.map → p-CEn1WeG3.js.map} +1 -1
- package/dist/components/{p-C7UWRUAy.js → p-CGb-8cK4.js} +3 -3
- package/dist/components/{p-C7UWRUAy.js.map → p-CGb-8cK4.js.map} +1 -1
- package/dist/components/p-CZk591FE.js +14739 -0
- package/dist/components/p-CZk591FE.js.map +1 -0
- package/dist/components/{p-BJZudenH.js → p-C_hSH2nN.js} +3 -3
- package/dist/components/{p-BJZudenH.js.map → p-C_hSH2nN.js.map} +1 -1
- package/dist/components/{p-D2eJXNMx.js → p-CieOx1XL.js} +4 -4
- package/dist/components/{p-D2eJXNMx.js.map → p-CieOx1XL.js.map} +1 -1
- package/dist/components/{p-BFLXutiB.js → p-Co5lU_7h.js} +10 -10
- package/dist/components/{p-BFLXutiB.js.map → p-Co5lU_7h.js.map} +1 -1
- package/dist/components/{p-BV5iL9W6.js → p-CziwfEQh.js} +253 -181
- package/dist/components/p-CziwfEQh.js.map +1 -0
- package/dist/components/{p-sq9jgfX0.js → p-D27d2rKT.js} +3 -3
- package/dist/components/{p-sq9jgfX0.js.map → p-D27d2rKT.js.map} +1 -1
- package/dist/components/{p-DFO-6kuA.js → p-DPxzgBs0.js} +3 -3
- package/dist/components/{p-DFO-6kuA.js.map → p-DPxzgBs0.js.map} +1 -1
- package/dist/components/{p-vNnVlsJt.js → p-D_RcVGj0.js} +4 -4
- package/dist/components/{p-vNnVlsJt.js.map → p-D_RcVGj0.js.map} +1 -1
- package/dist/components/{p-C-ozL_Es.js → p-DqsgZIHC.js} +4 -4
- package/dist/components/{p-C-ozL_Es.js.map → p-DqsgZIHC.js.map} +1 -1
- package/dist/components/{p-Dh61W3GT.js → p-DzyZA2GT.js} +5 -5
- package/dist/components/{p-Dh61W3GT.js.map → p-DzyZA2GT.js.map} +1 -1
- package/dist/components/{p-DbmQ5DrU.js → p-dcR2uxM3.js} +5 -5
- package/dist/components/{p-DbmQ5DrU.js.map → p-dcR2uxM3.js.map} +1 -1
- package/dist/components/{p-BLc8TzcU.js → p-fiFoOjv0.js} +7 -7
- package/dist/components/{p-BLc8TzcU.js.map → p-fiFoOjv0.js.map} +1 -1
- package/dist/components/{p-IgPm36bH.js → p-gCHmJzc2.js} +4 -4
- package/dist/components/{p-IgPm36bH.js.map → p-gCHmJzc2.js.map} +1 -1
- package/dist/esm/{index-oCOlsFCN.js → index-Cw77zP6g.js} +47 -22
- package/dist/esm/index-Cw77zP6g.js.map +1 -0
- package/dist/esm/index-SIM_s7ed.js +16424 -0
- package/dist/esm/index-SIM_s7ed.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/kritzel-brush-style.entry.js +1 -1
- package/dist/esm/kritzel-color_22.entry.js +134 -96
- package/dist/esm/loader.js +3 -3
- package/dist/esm/stencil.js +4 -4
- package/dist/esm/stencil.js.map +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/{p-25d1e040.entry.js → p-8b831c94.entry.js} +2 -2
- package/dist/stencil/p-Cw77zP6g.js +3 -0
- package/dist/stencil/p-Cw77zP6g.js.map +1 -0
- package/dist/stencil/p-SIM_s7ed.js +2 -0
- package/dist/stencil/p-SIM_s7ed.js.map +1 -0
- package/dist/stencil/p-b697b2c1.entry.js +2 -0
- package/dist/stencil/p-b697b2c1.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/stencil/stencil.esm.js.map +1 -1
- package/dist/types/classes/commands/add-object.command.d.ts +2 -2
- package/dist/types/classes/commands/base.command.d.ts +2 -1
- package/dist/types/classes/commands/remove-object.command.d.ts +2 -2
- package/dist/types/classes/commands/update-object.command.d.ts +2 -2
- package/dist/types/classes/core/command-manager.class.d.ts +16 -0
- package/dist/types/classes/core/core.class.d.ts +4 -0
- package/dist/types/classes/core/history.class.d.ts +0 -8
- package/dist/types/classes/core/viewport.class.d.ts +2 -0
- package/dist/types/classes/handlers/resize.handler.d.ts +1 -0
- package/dist/types/classes/objects/base-object.class.d.ts +6 -4
- package/dist/types/classes/objects/text.class.d.ts +33 -12
- package/dist/types/interfaces/object.interface.d.ts +1 -3
- package/dist/types/stencil-public-runtime.d.ts +36 -12
- package/package.json +7 -2
- package/dist/cjs/index-Clh2g9JM.js +0 -2850
- package/dist/cjs/index-Clh2g9JM.js.map +0 -1
- package/dist/cjs/index-nzUNdMPh.js.map +0 -1
- package/dist/components/p-BV5iL9W6.js.map +0 -1
- package/dist/components/p-BYanlgdq.js.map +0 -1
- package/dist/components/p-C5sTCwe3.js +0 -1171
- package/dist/components/p-C5sTCwe3.js.map +0 -1
- package/dist/esm/index-BAbkwyRx.js +0 -2822
- package/dist/esm/index-BAbkwyRx.js.map +0 -1
- package/dist/esm/index-oCOlsFCN.js.map +0 -1
- package/dist/stencil/p-BAbkwyRx.js +0 -2
- package/dist/stencil/p-BAbkwyRx.js.map +0 -1
- package/dist/stencil/p-fe465059.entry.js +0 -2
- package/dist/stencil/p-fe465059.entry.js.map +0 -1
- package/dist/stencil/p-oCOlsFCN.js +0 -3
- package/dist/stencil/p-oCOlsFCN.js.map +0 -1
- /package/dist/stencil/{p-25d1e040.entry.js.map → p-8b831c94.entry.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
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,B as v,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-SIM_s7ed.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 U{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)}}U.registerIcons({cursor:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z"/></svg>',pen:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/></svg>',highlighter:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-highlighter-icon lucide-highlighter"><path d="m9 11-6 6v3h9l3-3"/><path d="m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"/></svg>',eraser:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"/><path d="M22 21H7"/><path d="m5 11 9 9"/></svg>',type:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" x2="15" y1="20" y2="20"/><line x1="12" x2="12" y1="4" y2="20"/></svg>',image:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>',"chevron-down":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>',"chevron-up":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m18 15-6-6-6 6"/></svg>',copy:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy-icon lucide-copy"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>',paste:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-paste-icon lucide-clipboard-paste"><path d="M11 14h10"/><path d="M16 4h2a2 2 0 0 1 2 2v1.344"/><path d="m17 18 4-4-4-4"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113"/><rect x="8" y="2" width="8" height="4" rx="1"/></svg>',cut:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scissors-icon lucide-scissors"><circle cx="6" cy="6" r="3"/><path d="M8.12 8.12 12 12"/><path d="M20 4 8.12 15.88"/><circle cx="6" cy="18" r="3"/><path d="M14.8 14.8 20 20"/></svg>',delete:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2-icon lucide-trash-2"><path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/></svg>',"bring-to-front":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-to-line-icon lucide-arrow-up-to-line"><path d="M5 3h14"/><path d="m18 13-6-6-6 6"/><path d="M12 7v14"/></svg>',"send-to-back":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line-icon lucide-arrow-down-to-line"><path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/></svg>',"select-all":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-mouse-pointer-icon lucide-square-mouse-pointer"><path d="M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z"/><path d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6"/></svg>',download:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download-icon lucide-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/></svg>',undo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-undo-icon lucide-undo"><path d="M3 7v6h6"/><path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"/></svg>',redo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-redo-icon lucide-redo"><path d="M21 7v6h-6"/><path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"/></svg>',plus:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus-icon lucide-plus"><path d="M5 12h14"/><path d="M12 5v14"/></svg>',"ellipsis-vertical":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis-vertical-icon lucide-ellipsis-vertical"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>',x:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x-icon lucide-x"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>',check:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>'});const X=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=X;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)){U.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 J{_core;_debounceUpdate;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;this._debounceUpdate=this.debounce((()=>{this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}),0)}debounce(t,e){let i;return()=>{clearTimeout(i);i=setTimeout(t,e)}}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._debounceUpdate()}}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._debounceUpdate()}}}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._debounceUpdate()}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._debounceUpdate();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._debounceUpdate()}}class Q 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 m)&&!(i instanceof y)){const t=m.create(this._core);t.addOrRemove(i);t.isSelected=true;t.rotation=i.rotation;this._core.store.state.isSelecting=false;const e=new v(this._core,this,[new x(this._core,this._core.store.state.selectionGroup),new w(this._core,this,t)]);this._core.commandManager.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;constructor(t){this._core=t;this.undoStack=new nt(this._core.store.state.historyBufferSize);this.redoStack=new nt(this._core.store.state.historyBufferSize)}reset(){this.undoStack.clear();this.redoStack.clear();this._core.commandManager.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}}undo(){if(this._core.store.state.hasViewportChanged){const t=new ot(this._core,this,this._core.commandManager.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()}}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 m)&&!(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 m)&&!(t instanceof y)))}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof m))).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{_core;_history;previousViewport;constructor(t){this._core=t;this._history=this._core.history;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(this.isSkipped(t)===false){if(this._core.store.state.debugInfo.logCommands){console.log("execute",t)}this._history.undoStack.add(t);if(this._history.redoStack.isEmpty()===false){this._history.redoStack.clear()}}this._core.rerender()}isSkipped(t){return t.skipHistory===true}addUpdateViewportCommand(){const t=new ot(this._core,this,this.previousViewport);t.execute();this._history.undoStack.add(t);if(this._history.redoStack.isEmpty()===false){this._history.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 ht{_kritzelEngine;_store;_history;_commandManager;_database;get engine(){return this._kritzelEngine}get history(){return this._history}get commandManager(){return this._commandManager}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._commandManager=new ct(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.commandManager.executeCommand(new x(this,this,true))}}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.commandManager.executeCommand(new v(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.commandManager.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.commandManager.executeCommand(new v(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.commandManager.executeCommand(new v(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.commandManager.executeCommand(new v(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.commandManager.executeCommand(new v(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.commandManager.executeCommand(new v(this,this,o))}selectObjects(t){if(t.length===0){return}const e=m.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.commandManager.executeCommand(new w(this,this,e))}selectAllObjectsInViewport(){const t=this._store.state.objectsMap.filter((t=>t.isInViewport())).filter((t=>!(t instanceof m)&&!(t instanceof y)&&!(t instanceof W)));if(t.length>0){const e=m.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.commandManager.executeCommand(new w(this,this,e));this._store.setState("activeTool",k.getTool("selection"))}}clearSelection(){const t=new x(this,this);this.commandManager.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){this.deleteObject(this._store.state.activeText.id,true)}else{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}}beforeWorkspaceChange(){this.resetActiveText();this.clearSelection();this._store.setState("activeTool",k.getTool("selection"))}}const dt=":host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.ProseMirror{outline:none}p,h1,h2,h3,h4,h5,h6,blockquote,pre{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 ut=class{get host(){return o(this)}workspace;onWorkspaceChange(t){if(this.core.store.state.activeWorkspace!==t){this.core.beforeWorkspaceChange();this.core.initializeWorkspace(t)}}activeTool;globalContextMenuItems;objectContextMenuItems;scaleMax=X;validateScaleMax(t){if(t>X){console.warn(`scaleMax cannot be greater than ${X}.`);this.scaleMax=X;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.commandManager.executeCommand(e);return t}async updateObject(t,e){this.core.deselectAllObjects();const i=new j(this.core,this,t,e);this.core.commandManager.executeCommand(i);return t}async removeObject(t){this.core.deselectAllObjects();const e=new M(this.core,this,t);this.core.commandManager.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.commandManager.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 ht(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 Q(this.core);this.viewport=new J(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.selectionBox=null;this.core.store.state.isSelecting=false;this.core.store.state.isResizeHandleSelected=false;this.core.store.state.isRotationHandleSelected=false}this.core.store.state.skipContextMenu=false;this.core.store.state.copiedObjects=null;this.activeToolChange.emit(t);p.forceHideKeyboard();this.core.rerender()}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:"f7fc3c4c6a91ccdabb83832671e36ebf49ce56c0"},e("div",{key:"f6a2ce9e78a1d0e9ea0590035f5b8811f62c8633",class:"debug-panel",style:{display:this.core.store.state.debugInfo.showViewportInfo?"block":"none"}},e("div",{key:"5752045746f275223bd42c16dd7e848adaaae9f2"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"d99595b135243a7b69a583be33f7b195908ec716"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"7cecdccad47d3957370ea923f3dfbcd618b5d28e"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"3a5ed989f2343eda92c7c81855c785dbf58fa770"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"b78074a29463276300ce498b2ddb328cef9026cd"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"d4c8dcfddfa1984eedf695d74f9401fc3284c60b"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"566b6dc9afd904ee49e59587ed664e5f46decead"},"Scale: ",this.core.store.state?.scale),e("div",{key:"d3feb7a11727c4337ca75a26b3275a0b5d639961"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"3991c34df53c7d6fd97c83b0d4b8c9fb438c88fc"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"5a4244b43871f96d08144483352064804f04e538"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"197655c09e24d624ea4dcd312169aeb449ed57ce"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"a3e4a75a9853c8cee1485cbf8621377466babf90"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"171e0df3e1856e9fe8cd18be5c258c7472317453"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"66f5a56333dbac1da34e01f5ee1f577e1a964701"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"b869e07b76c2fa21ab5383788e81a40ffdad1b2c"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"d936326f8ea675e170d418f4e97a5d46057bc385"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"8594489402204ae4a9cd1bc7795169dbfa2d633d"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"f7a254dc35bfe6d42c32d25d0f277b211d86b03f"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"053ebd21504bfa3622e4b3e965e39f707c19794d"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"f330c65821326062874441355352134927760d61"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"f6c6902562f3e74afa3a0426e72b0c803977250b"},"SelectedObjects: ",this.core.store.state.selectionGroup?.objects.length||0),e("div",{key:"99a2d4280d5e79d7dd9a7a27d809e70f90eac38b"},"ViewportCenter: (",r.toFixed(2),", ",a.toFixed(2),")")),e("div",{key:"dac21fa0ac9487b74c89ac7408e80d9fb89b4558",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=>t.mount(e),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=>t.mount(e),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=>t.mount(e),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=>t.mount(e),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),et.isInstanceOf(t,"KritzelSelectionGroup")&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%"}}),et.isInstanceOf(t,"KrtizelSelectionBox")&&e("div",{ref:e=>t.mount(e),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"}},"Id: ",t.id),e("div",{style:{whiteSpace:"nowrap"}},"width: ",t.width),e("div",{style:{whiteSpace:"nowrap"}},"height: ",t.height)))))))),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:"f3aaf24804430eeb0308a15ae4a38df302d0566f",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:"d99a76a11b613167d5723d1c16e9289e45eee8a3",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:"fc7c474156442dfb5c057ef4ed4f0e5f015c2502",core:this.core}))}static get watchers(){return{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}}};ut.style=dt;const ft=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const pt=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"))}};pt.style=ft;const bt=":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 gt=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")))}};gt.style=bt;const kt=":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 yt=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})))))}};yt.style=kt;const mt=":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=U.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=mt;const xt=":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 wt=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}))))}};wt.style=xt;const zt=":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 Ct=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"]}}};Ct.style=zt;class It{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 Mt=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=It.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=It.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=It.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 St=":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 jt=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})))}};jt.style=St;const Dt=":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 Bt=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})))))}};Bt.style=Dt;const Tt=":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 Et=768;const Ot=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<Et;handleOutsideClick(t){if(!this.isVisible)return;const e=t.target;if(!this.host.contains(e)){this.tooltipClosed.emit()}}handleWindowResize(){this.isMobileView=window.innerWidth<Et;this.calculateAdjustedPosition()}async focusContent(){const t=It.getFocusableElements(this.host);if(t.length>0){t[0].focus()}}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.isMobileView=window.innerWidth<Et;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`}}))))}};Ot.style=Tt;const At=":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 Wt=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()})))}};Wt.style=At;const $t=":host{display:flex;flex-direction:column;z-index:1}";const Rt=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()}))}};Rt.style=$t;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,ut as kritzel_engine,pt as kritzel_font,gt as kritzel_font_family,yt as kritzel_font_size,vt as kritzel_icon,wt as kritzel_menu,Ct as kritzel_menu_item,Mt as kritzel_portal,jt as kritzel_split_button,Bt as kritzel_stroke_size,Ot as kritzel_tooltip,Wt as kritzel_utility_panel,Rt as kritzel_workspace_manager};
|
|
2
|
+
//# sourceMappingURL=p-b697b2c1.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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","_debounceUpdate","initialTouchDistance","startX","startY","viewportWidth","clientWidth","viewportHeight","clientHeight","translateX","translateY","debounce","updateWorkspaceViewport","scale","func","delay","timeoutId","clearTimeout","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","pointerY","dx","dy","skipContextMenu","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","commandManager","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","KritzelObjectMap","insert","predicate","allObjects","KritzelStore","_state","_listeners","currentZIndex","o","allNonSelectionObjects","selectedObjects","onStateChange","property","listener","getState","oldValue","String","KritzelCommandManager","_history","addUpdateViewportCommand","isSkipped","log","KritzelCore","_kritzelEngine","_store","_commandManager","_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","save","selector","elementAtPoint","elementFromPoint","foundObject","isHit","hitTest","getObjectsFromPointerEvent","elementsAtPoint","elementsFromPoint","objectIds","getCanvasPoint","xWithoutTranslate","yWithoutTranslate","worldX","worldY","beforeWorkspaceChange","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","viewBox","d","src","userSelect","draggable","onDragStart","e","onPointerDown","onPointerMove","onPointerUp","initialWidth","initialHeight","maxWidth","scaleFactor","strokeWidth","strokeLinecap","cx","cy","isDebugInfoVisible","whitespace","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":[]}
|