kritzel-stencil 0.0.139 → 0.0.141
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-BKstgWru.js +16981 -0
- package/dist/cjs/index-BKstgWru.js.map +1 -0
- 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.cjs.js +1 -1
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +205 -157
- 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-selection-group.command.js +4 -4
- package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/move-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/resize-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/update-viewport.command.js +6 -6
- package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
- package/dist/collection/classes/core/core.class.js +52 -29
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/core/history.class.js +3 -3
- package/dist/collection/classes/core/history.class.js.map +1 -1
- package/dist/collection/classes/core/store.class.js +4 -1
- package/dist/collection/classes/core/store.class.js.map +1 -1
- package/dist/collection/classes/core/viewport.class.js +63 -44
- package/dist/collection/classes/core/viewport.class.js.map +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +16 -8
- package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
- package/dist/collection/classes/handlers/key.handler.js +4 -4
- package/dist/collection/classes/handlers/key.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +30 -8
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/resize.handler.js +6 -6
- package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +6 -6
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +56 -28
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +9 -3
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-group.class.js +3 -1
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +123 -75
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/tools/brush-tool.class.js +16 -16
- package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +4 -4
- package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +7 -7
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +8 -10
- 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 +1 -2
- 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 +5 -9
- 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 +30 -38
- 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 +5 -5
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +4 -5
- 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 +4 -4
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +3 -4
- 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 +3 -4
- 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 +1 -3
- 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 +2 -4
- 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 +6 -7
- 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 +5 -6
- 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 +2 -3
- 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 +7 -8
- 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 +1 -3
- 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 +3 -4
- 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 +3 -4
- 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 +4 -6
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +1 -3
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.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 +26 -26
- 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-BlPlPpUy.js → p-BEKicPnH.js} +4 -4
- package/dist/components/{p-BlPlPpUy.js.map → p-BEKicPnH.js.map} +1 -1
- package/dist/components/{p-DCx3703u.js → p-BFNwskCY.js} +5 -5
- package/dist/components/{p-DCx3703u.js.map → p-BFNwskCY.js.map} +1 -1
- package/dist/components/{p-BorT6g39.js → p-BJbN3vca.js} +7 -7
- package/dist/components/{p-BorT6g39.js.map → p-BJbN3vca.js.map} +1 -1
- package/dist/components/p-BuDVaqTF.js +15302 -0
- package/dist/components/p-BuDVaqTF.js.map +1 -0
- package/dist/components/{p-Db3kxVe2.js → p-ByAzDzS5.js} +4 -4
- package/dist/components/{p-Db3kxVe2.js.map → p-ByAzDzS5.js.map} +1 -1
- package/dist/components/{p-sreNwi0N.js → p-BycHaC-9.js} +5 -5
- package/dist/components/{p-sreNwi0N.js.map → p-BycHaC-9.js.map} +1 -1
- package/dist/components/{p-KudVTtHk.js → p-C4nj29RW.js} +310 -210
- package/dist/components/p-C4nj29RW.js.map +1 -0
- package/dist/components/{p-BYanlgdq.js → p-C9hrbrUN.js} +27 -14
- package/dist/components/p-C9hrbrUN.js.map +1 -0
- package/dist/components/{p-BgpsMYcw.js → p-CEn1WeG3.js} +8 -8
- package/dist/components/p-CEn1WeG3.js.map +1 -0
- package/dist/components/{p-BM9IjvnD.js → p-CGb-8cK4.js} +4 -4
- package/dist/components/{p-BM9IjvnD.js.map → p-CGb-8cK4.js.map} +1 -1
- package/dist/components/{p-B7kZ1_RH.js → p-C_hSH2nN.js} +5 -5
- package/dist/components/{p-B7kZ1_RH.js.map → p-C_hSH2nN.js.map} +1 -1
- package/dist/components/{p-CHdJi6b4.js → p-ChLi4Ufe.js} +20 -20
- package/dist/components/{p-CHdJi6b4.js.map → p-ChLi4Ufe.js.map} +1 -1
- package/dist/components/{p-BPsQrpzN.js → p-CieOx1XL.js} +8 -8
- package/dist/components/{p-BPsQrpzN.js.map → p-CieOx1XL.js.map} +1 -1
- package/dist/components/{p-DjU7p3od.js → p-Co5lU_7h.js} +12 -12
- package/dist/components/{p-DjU7p3od.js.map → p-Co5lU_7h.js.map} +1 -1
- 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-0iJh9Z6m.js → p-D_RcVGj0.js} +5 -5
- package/dist/components/{p-0iJh9Z6m.js.map → p-D_RcVGj0.js.map} +1 -1
- package/dist/components/{p-DOPuq6gn.js → p-DqsgZIHC.js} +5 -5
- package/dist/components/{p-DOPuq6gn.js.map → p-DqsgZIHC.js.map} +1 -1
- package/dist/components/{p-BehchtaT.js → p-DzyZA2GT.js} +8 -8
- package/dist/components/{p-BehchtaT.js.map → p-DzyZA2GT.js.map} +1 -1
- package/dist/components/{p-Ddlbt3Bj.js → p-dcR2uxM3.js} +6 -6
- package/dist/components/{p-Ddlbt3Bj.js.map → p-dcR2uxM3.js.map} +1 -1
- package/dist/components/{p-B7w19kIk.js → p-fiFoOjv0.js} +9 -9
- package/dist/components/{p-B7w19kIk.js.map → p-fiFoOjv0.js.map} +1 -1
- package/dist/components/{p-CsyM5q2M.js → p-gCHmJzc2.js} +5 -5
- package/dist/components/{p-CsyM5q2M.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-D0Q2MKPn.js +16953 -0
- package/dist/esm/index-D0Q2MKPn.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 +205 -157
- 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-73784709.entry.js +2 -0
- package/dist/stencil/p-73784709.entry.js.map +1 -0
- 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-D0Q2MKPn.js +2 -0
- package/dist/stencil/p-D0Q2MKPn.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/core/store.class.d.ts +2 -1
- package/dist/types/classes/core/viewport.class.d.ts +3 -0
- package/dist/types/classes/handlers/move.handler.d.ts +2 -0
- package/dist/types/classes/handlers/selection.handler.d.ts +3 -0
- package/dist/types/classes/objects/text.class.d.ts +20 -10
- package/dist/types/stencil-public-runtime.d.ts +36 -12
- package/package.json +7 -2
- package/dist/cjs/index-DgZMn9B_.js +0 -2791
- package/dist/cjs/index-DgZMn9B_.js.map +0 -1
- package/dist/cjs/index-nzUNdMPh.js.map +0 -1
- package/dist/components/p-BYanlgdq.js.map +0 -1
- package/dist/components/p-BbGgijCS.js +0 -1164
- package/dist/components/p-BbGgijCS.js.map +0 -1
- package/dist/components/p-BgpsMYcw.js.map +0 -1
- package/dist/components/p-KudVTtHk.js.map +0 -1
- package/dist/esm/index-CxieEK_G.js +0 -2763
- package/dist/esm/index-CxieEK_G.js.map +0 -1
- package/dist/esm/index-oCOlsFCN.js.map +0 -1
- package/dist/stencil/p-CxieEK_G.js +0 -2
- package/dist/stencil/p-CxieEK_G.js.map +0 -1
- package/dist/stencil/p-ab074e87.entry.js +0 -2
- package/dist/stencil/p-ab074e87.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
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,h as e,H as i,c as s,g as o}from"./p-oCOlsFCN.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,B as v,R as w,A as x,m,n as z,O as C,o as I,p as M,q as S,U as j,r as D}from"./p-CxieEK_G.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:"198dba41e1600d76faace18de78191d2b7a551ec"},e("div",{key:"ee690cffb7925e09cb2c51022eec607247a4849f",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},e("div",{key:"66cc8df8fabd008db8c00942994875e3e8d722ce",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:"2ead7cd530ce181856e5f582f086a22a1fe69390"},e("div",{key:"fcc75b267f36e271d50615bfde42a29c28aa2536",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:"908711e45cb4ea41f25c4f66a9d3b03c847f886e"},e("div",{key:"7dcb6e5654ecafebc1fc1a2efb9fa1b8678236c4",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:"8fe8c0564f491121c0c44c6ff4083034f92dbb67"},e("div",{key:"3e8a69b827785976768bfc1e809126bee7c48c62",style:{display:"flex",flexDirection:"row",alignItems:this.isExpanded?"flex-start":"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-color-palette",{key:"c9056f81cf47d81fef0a0f5743000dcd6633258a",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:true,onColorChange:t=>this.handleColorChange(t)}),e("button",{key:"2f307264b80a732d976edeb025d509bc1164606b",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},e("kritzel-icon",{key:"08133ba0a23353b2bb3f87c685a7a0798b8dd16c",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-stroke-size",{key:"3de25cc80029ffdfdc173c4c79e937a7dc329743",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:"3695b187943af25566885d63257ae3de9f405ea5"},e("div",{key:"7bb146ae3c188478ba17f18f70fd170ce3536308",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-font-family",{key:"87f4c5ac2e2a4cfea216b1b828faad231438b9ec",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:t=>this.handleFamilyChange(t)}),e("button",{key:"2e73aaf7da659b9e069c247cc762f68394212293",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand"},e("kritzel-icon",{key:"785b664697ba266432c535ea26e0665f8d8d657f",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-color-palette",{key:"ed2517a39d254b77f45154914b3ce6a934f66c33",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:t=>this.handleColorChange(t)}),e("kritzel-font-size",{key:"9b25c9607fa69c991e769852e3e3e378e48387bd",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 Y=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:"a463310d88265b71097f838bf775abdcabc99225",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&e("kritzel-utility-panel",{key:"267e9c26b41a52c655209dbaa8c85cbd72323577",style:{position:"absolute",bottom:"56px",left:"12px"},onUndo:()=>this.kritzelEngine?.undo(),onRedo:()=>this.kritzelEngine?.redo(),onDelete:()=>this.kritzelEngine?.delete()}),e("div",{key:"c55773245c925e1b972f3e83cb4d8f1c93ebe995",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"]}};Y.style=V;const X=":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";const L=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:"87003b14680b3cbca302e7b31ff57e74cc774e25"},this.cursorTrailPoints.length>1&&e("svg",{key:"aa6460089c9f3157d2dea9396405b14ab8cc1710",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"})}))))}};L.style=X;const N=':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 H=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"]}}};H.style=N;class K{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)}}K.registerIcons({cursor:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z"/></svg>',pen:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/></svg>',highlighter:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-highlighter-icon lucide-highlighter"><path d="m9 11-6 6v3h9l3-3"/><path d="m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"/></svg>',eraser:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"/><path d="M22 21H7"/><path d="m5 11 9 9"/></svg>',type:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" x2="15" y1="20" y2="20"/><line x1="12" x2="12" y1="4" y2="20"/></svg>',image:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>',"chevron-down":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>',"chevron-up":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m18 15-6-6-6 6"/></svg>',copy:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy-icon lucide-copy"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>',paste:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-paste-icon lucide-clipboard-paste"><path d="M11 14h10"/><path d="M16 4h2a2 2 0 0 1 2 2v1.344"/><path d="m17 18 4-4-4-4"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113"/><rect x="8" y="2" width="8" height="4" rx="1"/></svg>',cut:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scissors-icon lucide-scissors"><circle cx="6" cy="6" r="3"/><path d="M8.12 8.12 12 12"/><path d="M20 4 8.12 15.88"/><circle cx="6" cy="18" r="3"/><path d="M14.8 14.8 20 20"/></svg>',delete:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2-icon lucide-trash-2"><path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/></svg>',"bring-to-front":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-to-line-icon lucide-arrow-up-to-line"><path d="M5 3h14"/><path d="m18 13-6-6-6 6"/><path d="M12 7v14"/></svg>',"send-to-back":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line-icon lucide-arrow-down-to-line"><path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/></svg>',"select-all":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-mouse-pointer-icon lucide-square-mouse-pointer"><path d="M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z"/><path d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6"/></svg>',download:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download-icon lucide-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/></svg>',undo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-undo-icon lucide-undo"><path d="M3 7v6h6"/><path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"/></svg>',redo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-redo-icon lucide-redo"><path d="M21 7v6h-6"/><path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"/></svg>',plus:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus-icon lucide-plus"><path d="M5 12h14"/><path d="M12 5v14"/></svg>',"ellipsis-vertical":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis-vertical-icon lucide-ellipsis-vertical"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>',x:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x-icon lucide-x"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>',check:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>'});const U=1e3;const q=1e-4;const G="kritzel-editor{display:flex;margin:0;position:relative;overflow:hidden;width:100%;height:100%;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}kritzel-workspace-manager{position:absolute;top:var(--kritzel-editor-workspace-manager-top, 14px);left:var(--kritzel-editor-workspace-manager-left, 14px)}kritzel-controls{position:absolute;bottom:var(--kritzel-editor-controls-bottom, 14px);transition:transform var(--kritzel-editor-controls-transition-duration, 0.1s) var(--kritzel-editor-controls-transition, ease-in-out)}kritzel-controls.keyboard-open{transform:var(--kritzel-editor-controls-transform, translateY(300%))}";const Z=class{constructor(e){t(this,e);this.isReady=s(this,"isReady")}get host(){return o(this)}scaleMax=U;scaleMin=q;controls=[{name:"selection",type:"tool",isDefault:true,tool:l,icon:"cursor"},{name:"brush",type:"tool",tool:n,icon:"pen",config:c},{name:"eraser",type:"tool",tool:h,icon:"eraser"},{name:"text",type:"tool",tool:r,icon:"type",config:d},{name:"image",type:"tool",tool:u,icon:"image"},{name:"divider",type:"divider"},{name:"config",type:"config"}];globalContextMenuItems=[{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,action:t=>this.engineRef.paste(t.x,t.y)},{label:"Select All",icon:"select-all",action:()=>this.selectAllObjectsInViewport()}];objectContextMenuItems=[{label:"Copy",icon:"copy",action:()=>this.engineRef.copy()},{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,action:(t,e)=>this.engineRef.paste(t.x,t.y)},{label:"Delete",icon:"delete",action:()=>this.engineRef.delete()},{label:"Bring to Front",icon:"bring-to-front",action:()=>this.engineRef.bringToFront()},{label:"Send to Back",icon:"send-to-back",action:()=>this.engineRef.sendToBack()}];customSvgIcons={};isControlsVisible=true;isUtilityPanelVisible=true;isReady;isEngineReady=false;isControlsReady=false;isWorkspaceManagerReady=false;workspaces=[];activeWorkspace;isVirtualKeyboardOpen=false;onIsEngineReady(t){if(t&&this.isControlsReady){this.checkIsReady()}}onIsControlsReady(t){if(t&&this.isEngineReady){this.checkIsReady()}}handleTouchStart(t){if(t.cancelable){t.preventDefault()}}async getObjectById(t){return this.engineRef.getObjectById(t)}async addObject(t){return this.engineRef.addObject(t)}async updateObject(t,e){return this.engineRef.updateObject(t,e)}async removeObject(t){return this.engineRef.removeObject(t)}async getSelectedObjects(){return this.engineRef.getSelectedObjects()}async selectObjects(t){return this.engineRef.selectObjects(t)}async selectAllObjectsInViewport(){return this.engineRef.selectAllObjectsInViewport()}async clearSelection(){this.engineRef.clearSelection()}async centerObjectInViewport(t){return this.engineRef.centerObjectInViewport(t)}async createWorkspace(t,e){const i=new f(`workspace-${Date.now()}`,t,e);return this.engineRef.createWorkspace(i)}async updateWorkspace(t){return this.engineRef.updateWorkspace(t)}async deleteWorkspace(t){return this.engineRef.deleteWorkspace(t)}async getWorkspaces(){return this.engineRef.getWorkspaces()}async getActiveWorkspace(){return this.engineRef.getActiveWorkspace()}engineRef;controlsRef;splitButtonRef;componentDidLoad(){this.registerCustomSvgIcons();this.listenForMobileKeyboard();this.setOsSpecificCssVariables()}async checkIsReady(){await customElements.whenDefined("kritzel-editor");await customElements.whenDefined("kritzel-workspace-manager");await customElements.whenDefined("kritzel-controls");await customElements.whenDefined("kritzel-engine");if(!this.isEngineReady||!this.isControlsReady||!this.isWorkspaceManagerReady){return}this.isReady.emit(this.host)}onEngineReady(t){this.isEngineReady=true;this.activeWorkspace=t.detail.activeWorkspace;this.workspaces=t.detail.workspaces}registerCustomSvgIcons(){for(const[t,e]of Object.entries(this.customSvgIcons)){K.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:"f4f7cb5fbb6b28bac0735d05c2d1ed788c8ef2a7"},e("kritzel-workspace-manager",{key:"bef6f248a06b7a6576687a82a5ea3eb81d3340c3",workspaces:this.workspaces,activeWorkspace:this.activeWorkspace,onWorkspaceChange:t=>this.activeWorkspace=t.detail,onIsWorkspaceManagerReady:()=>this.isWorkspaceManagerReady=true}),e("kritzel-engine",{key:"8ee352db87d94c367389059074842148e43d8d11",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:"3e5bfa0fd473a551ba4ab7a7137aedbb3d22db19",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;initialTouchDistance=0;startX=0;startY=0;constructor(t,e){this._core=t;this._core.store.setState("host",e);this._core.store.setState("viewportWidth",e.clientWidth);this._core.store.setState("viewportHeight",e.clientHeight);this._core.store.setState("startX",0);this._core.store.setState("startY",0);this._core.store.setState("translateX",0);this._core.store.setState("translateY",0)}handleResize(){this._core.store.setState("viewportWidth",this._core.store.state.host.clientWidth);this._core.store.setState("viewportHeight",this._core.store.state.host.clientHeight);this._core.store.setState("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.setState("isPanning",true);this._core.store.setState("startX",e);this._core.store.setState("startY",i)}}if(t.pointerType==="touch"){const t=Array.from(this._core.store.state.pointers.values());if(t.length===2){this._core.store.setState("currentPath",null);this._core.store.setState("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.setState("pointerX",(i-this._core.store.state.translateX)/this._core.store.state.scale);this._core.store.setState("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.setState("translateX",this._core.store.state.translateX+t);this._core.store.setState("translateY",this._core.store.state.translateY+e);this._core.store.setState("startX",i);this._core.store.setState("startY",s);this._core.store.setState("hasViewportChanged",true);this._core.store.setState("skipContextMenu",true);this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}}if(t.pointerType==="touch"){const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;this._core.store.setState("pointerX",(i-this._core.store.state.translateX)/this._core.store.state.scale);this._core.store.setState("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.setState("translateX",this._core.store.state.translateX+r-this.startX);this._core.store.setState("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.setState("translateX",this._core.store.state.translateX+r-this.startX-t);this._core.store.setState("translateY",this._core.store.state.translateY+a-this.startY-e);this._core.store.setState("scale",c);this.initialTouchDistance=n}this.startX=r;this.startY=a;this._core.store.setState("hasViewportChanged",true);this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}}}handlePointerUp(t){if(t.pointerType==="mouse"){if(this._core.store.state.isPanning){this._core.store.setState("isPanning",false);this._core.rerender()}}if(t.pointerType==="touch"){this._core.store.setState("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)}}handleZoom(t){this._core.store.setState("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.setState("pointerX",(i-this._core.store.state.translateX)/this._core.store.state.scale);this._core.store.setState("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.setState("scale",n);this._core.store.setState("translateX",this._core.store.state.translateX-a);this._core.store.setState("translateY",this._core.store.state.translateY-l);this._core.store.setState("hasViewportChanged",true);this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale);setTimeout((()=>{this._core.store.setState("isScaling",false)}),300)}handlePan(t){const e=.8;this._core.store.setState("translateX",this._core.store.state.translateX-t.deltaX*e);this._core.store.setState("translateY",this._core.store.state.translateY-t.deltaY*e);this._core.store.setState("hasViewportChanged",true);this._core.rerender();this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}}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:"a",ctrl:true,condition:t=>!!t.store.state.activeText,action:t=>t.store.state.activeText.selectAll()},{key:"v",ctrl:true,condition:t=>!!t.store.state.activeText,action:t=>t.store.state.activeText.insertFromClipboard()},{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.setState("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.setState("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.setState("skipContextMenu",false);return}const e=this._core.getObjectFromPointerEvent(t,".object");if(e&&!(e instanceof y)){const t=y.create(this._core);t.addOrRemove(e);t.isSelected=true;t.rotation=e.rotation;this._core.store.setState("isSelecting",false);const i=new v(this._core,this,[new w(this._core,this._core.store.state.selectionGroup),new x(this._core,this,t)]);this._core.history.executeCommand(i)}this._core.store.setState("contextMenuItems",this._core.store.state.selectionGroup?this.objectContextMenuItems:this.globalContextMenuItems);let i=t.clientX-this._core.store.offsetX;let s=t.clientY-this._core.store.offsetY;const o=150;const n=200;const r=10;if(i+o>window.innerWidth-r){i=window.innerWidth-o-r}if(s+n>window.innerHeight-r){s=window.innerHeight-n-r}i=Math.max(r,i);s=Math.max(r,s);this._core.store.setState("contextMenuX",i);this._core.store.setState("contextMenuY",s);this._core.store.setState("isContextMenuVisible",true);this._core.store.setState("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 m{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.setState("scale",this.currentViewport.scale);this._core.store.setState("translateX",this.currentViewport.translateX);this._core.store.setState("translateY",this.currentViewport.translateY)}undo(){this._core.store.setState("scale",this.previousViewport.scale);this._core.store.setState("translateX",this.previousViewport.translateX);this._core.store.setState("translateY",this.previousViewport.translateY)}}class nt{buffer;capacity;head=0;tail=0;size=0;constructor(t){this.capacity=t;this.buffer=new Array(t).fill(null)}add(t){this.buffer[this.head]=t;this.head=(this.head+1)%this.capacity;if(this.size<this.capacity){this.size++}else{this.tail=(this.tail+1)%this.capacity}}pop(){if(this.size===0){return null}this.head=(this.head-1+this.capacity)%this.capacity;const t=this.buffer[this.head];this.buffer[this.head]=null;this.size--;return t}peek(){if(this.size===0){return null}const t=(this.head-1+this.capacity)%this.capacity;return this.buffer[t]}isEmpty(){return this.size===0}clear(){this.buffer.fill(null);this.head=0;this.tail=0;this.size=0}}class rt{_core;undoStack;redoStack;previousViewport;constructor(t){this._core=t;this.undoStack=new nt(this._core.store.state.historyBufferSize);this.redoStack=new nt(this._core.store.state.historyBufferSize);this.previousViewport={scale:this._core.store.state.scale,scaleStep:this._core.store.state.scaleStep,translateX:this._core.store.state.translateX,translateY:this._core.store.state.translateY}}reset(){this.undoStack.clear();this.redoStack.clear();this.previousViewport={scale:this._core.store.state.scale,scaleStep:this._core.store.state.scaleStep,translateX:this._core.store.state.translateX,translateY:this._core.store.state.translateY}}executeCommand(t){if(this._core.store.state.hasViewportChanged){this.addUpdateViewportCommand()}t.execute();if(t.skipHistory===false){if(this._core.store.state.debugInfo.logCommands){console.info("add",t)}this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}}this._core.rerender()}undo(){if(this._core.store.state.hasViewportChanged){const t=new ot(this._core,this,this.previousViewport);t.undo();this._core.store.setState("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.setState("copiedObjects",null);this._core.rerender()}redo(){const t=this.redoStack.pop();if(t){t.execute();if(this._core.store.state.debugInfo.logCommands)console.info("redo",t);this.undoStack.add(t)}this._core.rerender()}addUpdateViewportCommand(){const t=new ot(this._core,this,this.previousViewport);t.execute();this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}this._core.store.setState("hasViewportChanged",false);this.previousViewport={scale:this._core.store.state.scale,scaleStep:this._core.store.state.scaleStep,translateX:this._core.store.state.translateX,translateY:this._core.store.state.translateY}}}class at{map;constructor(){this.map=new Map}reset(){this.map.clear()}insert(t){if(!t.id){return false}this.map.set(t.id,t);return true}update(t){if(!t.id||!this.map.has(t.id)){return false}this.map.set(t.id,t);return true}remove(t){for(const[e,i]of this.map){if(t(i)){this.map.delete(e)}}}filter(t){const e=[];for(const i of this.map.values()){if(t(i)){e.push(i)}}return e}allObjects(){return Array.from(this.map.values())}}class lt{_state;_listeners=new Map;get state(){return this._state}get currentZIndex(){return this._state.objectsMap.filter((t=>!(t instanceof y)&&!(t instanceof z))).length}get allObjects(){return this._state.objectsMap.allObjects()}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof y))).filter((t=>t.isSelected))}get offsetX(){return this._state.host.getBoundingClientRect().left}get offsetY(){return this._state.host.getBoundingClientRect().top}get isDisabled(){return this._state.isEnabled===false||this._state.isReady===false||this._state.activeWorkspace===null}constructor(t){this._state=t;this._state.objectsMap=new at}onStateChange(t,e){if(!this._listeners.has(t)){this._listeners.set(t,new Set)}this._listeners.get(t).add(e)}getState(t){return this._state[t]}setState(t,e){const i=this._state[t];if(i!==e){this._state[t]=e;if(this._listeners.has(t)){this._listeners.get(t).forEach((s=>s(e,i,String(t))))}}}}class ct{_kritzelEngine;_store;_history;_database;get engine(){return this._kritzelEngine}get history(){return this._history}get database(){return this._database}get store(){return this._store}constructor(t){this._kritzelEngine=t;this._store=new lt(it);this._history=new rt(this);this._database=new st("kritzelDB",1,this._store.state.debugInfo.logDatabase)}async initializeDatabase(){await this._database.open([{name:"objects",options:{keyPath:["workspaceId","id"]}},{name:"workspaces",options:{keyPath:"id"}}]);this.rerender()}async initializeWorkspace(t){const e=await this.getWorkspaces();const i=[...e].sort(((t,e)=>e.updatedAt.getTime()-t.updatedAt.getTime()))[0];const s=new f(C.generateUUID(),"New Workspace");this._store.setState("activeWorkspace",t??i??s);const o=await this.getWorkspace(this._store.state.activeWorkspace.id);if(o){await this.updateWorkspace(this._store.state.activeWorkspace)}else{await this.createWorkspace(this._store.state.activeWorkspace)}this._store.setState("workspaces",await this.getWorkspaces());this._store.setState("translateX",this._store.state.activeWorkspace.viewport.translateX);this._store.setState("translateY",this._store.state.activeWorkspace.viewport.translateY);this._store.setState("scale",this._store.state.activeWorkspace.viewport.scale);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.setState("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.setState("workspaces",this._store.state.workspaces.filter((e=>e.id!==t.id)))}rerender(){if(this._kritzelEngine){this._kritzelEngine.forceUpdate++}}findObjectById(t){for(const e of this._store.allObjects){if(e.id===t){return e}}return null}deselectAllObjects(){if(this._store.state.selectionGroup){this._history.executeCommand(new w(this,this))}}delete(){if(!this._store.state.selectionGroup){return}const t=this._store.state.selectionGroup.objects.map((t=>new M(this,this._store.state.selectionGroup,t)));const e=new w(this,this._store.state.selectionGroup);const i=[...t,e];this.history.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.history.executeCommand(t)}}copy(){this._store.setState("copiedObjects",this._store.state.selectionGroup.copy())}paste(t,e){const i=this._store.state.copiedObjects;i.isSelected=true;this._store.setState("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);const n=this._store.state.activeWorkspace;this.store.state.copiedObjects.updateWorkspaceId(n.id);this.store.state.copiedObjects.updateZIndices(this.store.currentZIndex);const r=[];let a=null;if(this._store.state.selectionGroup!==null){a=this._store.state.selectionGroup;r.push(new w(this,this._store.state.selectionGroup))}const l=this._store.state.copiedObjects.objects.map((t=>new S(this,this,t)));const c=new x(this,this,this._store.state.copiedObjects,a);r.push(...l,c);this.history.executeCommand(new v(this,this,r));this._store.setState("isSelecting",false);this._store.setState("copiedObjects",this._store.state.selectionGroup.copy());this._store.setState("activeTool",k.getTool("selection"))}bringForward(t){const e=this._store.allObjects.length+1;const i=t?[t]:this._store.state.selectionGroup.objects;const s=i.map((t=>{if(t.zIndex===e){return}return new j(this,this,t,{zIndex:t.zIndex+1})}));this.history.executeCommand(new v(this,this,s))}sendBackward(t){const e=0;const i=t?[t]:this._store.state.selectionGroup.objects;const s=i.map((t=>{if(t.zIndex===e){return}return new j(this,this,t,{zIndex:t.zIndex-1})}));this.history.executeCommand(new v(this,this,s))}bringToFront(t){const e=Math.max(...this._store.allObjects.map((t=>t.zIndex)))+1;const i=t?[t]:this._store.state.selectionGroup.objects;const s=i.map((t=>new j(this,this,t,{zIndex:e})));this.history.executeCommand(new v(this,this,s))}sendToBack(t){const e=Math.min(...this._store.allObjects.map((t=>t.zIndex)))-1;const i=t?[t]:this._store.state.selectionGroup.objects;const s=i.map((t=>new j(this,this,t,{zIndex:e})));this.history.executeCommand(new v(this,this,s))}selectObjects(t){if(t.length===0){return}const e=y.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this._store.setState("selectionGroup",e);if(t.length===1){e.rotation=e.objects[0].rotation}this.history.executeCommand(new x(this,this,e))}selectAllObjectsInViewport(){const t=this._store.state.objectsMap.filter((t=>t.isInViewport())).filter((t=>!(t instanceof y)&&!(t instanceof z)&&!(t instanceof W)));if(t.length>0){const e=y.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this._store.setState("isSelecting",false);if(t.length===1){e.rotation=e.objects[0].rotation}this.history.executeCommand(new x(this,this,e));this._store.setState("activeTool",k.getTool("selection"))}}clearSelection(){const t=new w(this,this._store.state.selectionGroup);this.history.executeCommand(t);this._store.setState("selectionGroup",null);this._store.setState("selectionBox",null);this._store.setState("isSelecting",false);this._store.setState("isResizeHandleSelected",false);this._store.setState("isRotationHandleSelected",false);this.rerender()}resetActiveText(){if(this._store.state.activeText&&this._store.state.activeText.value===" "){this.deleteObject(this._store.state.activeText.id,true)}this._store.setState("activeText",null)}getObjectFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return null;const s=t.clientX;const o=t.clientY;const n=i.elementFromPoint(s,o);if(!n)return null;const r=n.closest(e);if(r){const t=this._store.allObjects.find((t=>r.id===t.id));const e=t?.hitTest(s,o);return e?t:null}return null}getObjectsFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return[];const s=t.clientX;const o=t.clientY;const n=i.elementsFromPoint(s,o);if(!n||n.length===0)return[];const r=new Set;n.forEach((t=>{const i=t.closest(e);if(i&&i.id){r.add(i.id)}}));if(r.size>0){return this._store.allObjects.filter((t=>r.has(t.id))).sort(((t,e)=>e.zIndex-t.zIndex))}return[]}getCanvasPoint(t){if(!this._store.state.host){return{x:0,y:0}}const e=this._store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const s=t.clientY-e.top;const o=i-this._store.state.translateX;const n=s-this._store.state.translateY;const r=o/this._store.state.scale;const a=n/this._store.state.scale;return{x:r,y:a}}}const ht=":host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.debug-panel{position:absolute;pointer-events:none;top:0;right:0}.origin{position:relative;top:0;left:0;height:0;width:0;pointer-events:none;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top left;overflow:visible}.object{overflow:visible}textarea{all:unset;box-sizing:border-box;outline:none !important;border:none !important;overflow:visible}.resize-handle-overlay.top-left,.resize-handle-overlay.bottom-right{cursor:nwse-resize}.resize-handle-overlay.top-right,.resize-handle-overlay.bottom-left{cursor:nesw-resize}.rotation-handle-overlay{cursor:grab}";const dt=class{get host(){return o(this)}workspace;onWorkspaceChange(t){if(this.core.store.state.activeWorkspace!==t){this.core.initializeWorkspace(t)}}activeTool;globalContextMenuItems;objectContextMenuItems;scaleMax=U;validateScaleMax(t){if(t>U){console.warn(`scaleMax cannot be greater than ${U}.`);this.scaleMax=U;this.core.store.setState("scaleMax",this.scaleMax)}else{this.core.store.setState("scaleMax",t)}}scaleMin=q;validateScaleMin(t){if(t<q){console.warn(`scaleMin cannot be less than ${q}.`);this.scaleMin=q;this.core.store.setState("scaleMin",this.scaleMin)}else{this.core.store.setState("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.setState("isEnabled",false);this.core.rerender()}async enable(){this.core.store.setState("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.setState("isContextMenuVisible",false);this.core.store.setState("selectionBox",null);this.core.store.setState("isSelecting",false);this.core.store.setState("isEnabled",true);this.core.rerender()}async getObjectById(t){const e=this.core.store.allObjects.find((e=>e.id===t));return e||null}async addObject(t){this.core.deselectAllObjects();t.id=t.generateId();t._core=this.core;t.scale=t.scale?t.scale:this.core.store.state.scale;t.zIndex=this.core.store.currentZIndex;const e=new S(this.core,this,t);this.core.history.executeCommand(e);return t}async updateObject(t,e){this.core.deselectAllObjects();const i=new j(this.core,this,t,e);this.core.history.executeCommand(i);return t}async removeObject(t){this.core.deselectAllObjects();const e=new M(this.core,this,t);this.core.history.executeCommand(e);return t}async getSelectedObjects(){return this.core.store.state.selectionGroup?this.core.store.state.selectionGroup.objects:[]}async selectObjects(t){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",k.getTool("selection"));this.core.deselectAllObjects();this.core.selectObjects(t)}async selectAllObjectsInViewport(){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",k.getTool("selection"));this.core.deselectAllObjects();this.core.selectAllObjectsInViewport()}async clearSelection(){this.core.clearSelection()}async centerObjectInViewport(t){t.centerInViewport();const e=new j(this.core,this,t,t);this.core.history.executeCommand(e);return t}async getCopiedObjects(){return this.core.store.state.copiedObjects?.objects||[]}async createWorkspace(t){t._core=this.core;await this.core.createWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces);return t}async updateWorkspace(t){await this.core.updateWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces)}async deleteWorkspace(t){await this.core.deleteWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces)}async getWorkspaces(){return this.core.getWorkspaces()}async getActiveWorkspace(){return this.core.store.state.activeWorkspace}core;viewport;contextMenuHandler;keyHandler;contextMenuElement=null;get isSelecting(){return this.core.store.state.activeTool instanceof l&&this.core.store.state.isSelecting}get isSelectionActive(){return this.core.store.state.activeTool instanceof l&&this.core.store.state.selectionGroup!==null}constructor(e){t(this,e);this.isEngineReady=s(this,"isEngineReady");this.activeToolChange=s(this,"activeToolChange");this.workspacesChange=s(this,"workspacesChange");this.longpress=s(this,"longpress");this.core=new ct(this)}componentWillLoad(){this.validateScaleMax(this.scaleMax);this.validateScaleMin(this.scaleMin)}async componentDidLoad(){this.contextMenuHandler=new tt(this.core,this.globalContextMenuItems,this.objectContextMenuItems);this.keyHandler=new 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.setState("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.setState("skipContextMenu",false);this.core.store.setState("copiedObjects",null);this.activeToolChange.emit(t);p.forceHideKeyboard()}render(){const t=window.getComputedStyle(this.host);const s=t.getPropertyValue("--kritzel-selection-handle-size").trim()||"6px";const o=parseFloat(s);const n=o*2<14?14:o;return e(i,{key:"b65542448b46000bfb0f467b503b2c9d9e603eaa"},e("div",{key:"8197e8fe5e768f89d5861cc04d4343d5753b8f88",class:"debug-panel",style:{display:this.core.store.state.debugInfo.showViewportInfo?"block":"none"}},e("div",{key:"97b720f029fb8034453f28df04779011d641105e"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"e4601378a7d3dc92e66edcd5b7ff0022f890c1e3"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"2506d664411df86fd4d59ee703dc1487c7394f15"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"cada25c03ba66f54433cd09b83d9826f79c94c43"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"91853038c5c83116e9ffc296e9acc3b525bbed21"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"0d3f9d47a5c5f9adab73a44436b214b537f5dd57"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"079f2314aed15ea9b95ace2be564ff8e0f60acaa"},"Scale: ",this.core.store.state?.scale),e("div",{key:"7d83d8ef32077e9b8d3bd1ddf23e5e1bcb187d0c"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"a63d135300e0a24b20e4ea4b631e123a0c492947"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"258d3b009ea75024fc0d2d06000c7c4228312640"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"c4dcff04abf12c675d995bad82407d0f5047ebd7"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"fcd7bc6d221d0d3eb294ec7f6526a604ccc539d2"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"416ac549246b7a43bf644c536acbff1fb292eb52"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"7d061a0515e33ce836bb550250330c4e2819bc14"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"1debb3ee3e6a8297d427d09f61c8df8827bcfa37"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"7d0fbcbc3e4c40ba21d144afd7d7b56b14227ddc"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"90f5c8d1cf60eb90bb5d136d3457a97d831e361c"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"122a2ad39d27d6f242a286bb2a8298687ab8cbb2"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"f5515be35f5037ec256198f2f916c61b78ab4ec2"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"2c16ecb22f4063450ef7d17be93ec1a0434a5abd"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"69b531a94a9b7430d70ce80ef3247211c67a516e"},"SelectedObjects: ",this.core.store.state.selectionGroup?.objects.length||0)),e("div",{key:"52b6e44b6fb2b59743f3c48fb1cc2616b19308c7",id:"origin",class:"origin",style:{transform:`matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`}},this.core.store.state.objectsMap.allObjects()?.map((t=>e("div",{key:t.id,style:{display:t.isInViewport()?"block":"none",transform:t?.transformationMatrix,transformOrigin:"top left",zIndex:t.zIndex.toString(),position:"absolute"}},e("svg",{xmlns:"http://www.w3.org/2000/svg",id:t.id,class:"object",style:{height:t?.totalHeight.toString(),width:t?.totalWidth.toString(),left:"0",top:"0",position:"absolute",transform:`rotate(${t.rotationDegrees}deg)`,transformOrigin:"center",opacity:t.markedForRemoval?"0.5":t.opacity.toString(),pointerEvents:t.markedForRemoval?"none":"auto"}},e("foreignObject",{x:"0",y:"0",width:t.totalWidth.toString(),height:t.totalHeight.toString(),style:{minHeight:"0",minWidth:"0",backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth+"px",borderStyle:"solid",padding:t.padding+"px",overflow:"visible"}},et.isInstanceOf(t,"KritzelPath")&&e("svg",{ref:e=>e?t.mount(e):t.unmount(),xmlns:"http://www.w3.org/2000/svg",style:{height:t?.height.toString(),width:t?.width.toString(),position:"absolute",overflow:"visible"},viewBox:t?.viewBox},e("path",{d:t?.d,fill:t.fill,stroke:t?.stroke})),et.isInstanceOf(t,"KritzelImage")&&e("img",{ref:e=>e?t.mount(e):t.unmount(),src:t.src,style:{width:"100%",height:"100%",userSelect:"none",pointerEvents:"none"},draggable:false,onDragStart:t=>t.preventDefault()}),et.isInstanceOf(t,"KritzelText")&&e("textarea",{ref:e=>e?t.mount(e):t.unmount(),value:t.value,onKeyDown:e=>t.handleKeyDown(e),onInput:e=>t.handleInput(e),rows:t.rows,style:{width:"100%",height:"100%",color:t.fontColor,fontSize:t.fontSize?.toString()+"px",fontFamily:t.fontFamily,border:"none",outline:"none",resize:"none",overflow:"hidden",display:"block",padding:"1px",whiteSpace:"nowrap",pointerEvents:t.isReadonly?"none":"auto",cursor:t.isReadonly?"default":"text",caretColor:t.isReadonly?"transparent":"auto"}}),et.isInstanceOf(t,"KritzelCustomElement")&&e("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),et.isInstanceOf(t,"KritzelSelectionGroup")&&e("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%"}}),et.isInstanceOf(t,"KrtizelSelectionBox")&&e("div",{ref:e=>e?t.mount(e):t.unmount(),style:{width:"100%",height:"100%",backgroundColor:_.isFirefox()?t.backgroundColor:"transparent",borderWidth:_.isFirefox()?t.borderWidth+"px":"0",borderStyle:_.isFirefox()?"solid":"none",borderColor:_.isFirefox()?t.borderColor:"transparent"}})),e("line",{x1:"0",y1:"0",x2:t.totalWidth,y2:"0",style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("line",{x1:"0",y1:"0",x2:"0",y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("line",{x1:"0",y1:t.totalHeight,x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("line",{x1:t.totalWidth,y1:"0",x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("circle",{class:"resize-handle top-left",cx:"0",cy:"0",r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay top-left",cx:"0",cy:"0",r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle top-right",cx:t.totalWidth,cy:"0",r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay top-right",cx:t.totalWidth,cy:"0",r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle bottom-left",cx:"0",cy:t.totalHeight,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay bottom-left",cx:"0",cy:t.totalHeight,r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle-overlay bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("line",{x1:t.totalWidth/2,y1:"0",x2:t.totalWidth/2,y2:-(15*t.scale/this.core.store.state?.scale),style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"rotation-handle",cx:t.totalWidth/2,cy:-(15*t.scale/this.core.store.state?.scale),r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"rotation-handle-overlay",cx:t.totalWidth/2,cy:-(15*t.scale/this.core.store.state?.scale),r:`${n*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",cursor:"grab"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("g",{style:{display:this.core.store.state.debugInfo.showObjectInfo?"block":"none",pointerEvents:"none"}},e("foreignObject",{x:t.totalWidth.toString(),y:"0",width:"400px",height:"160px",style:{minHeight:"0",minWidth:"0",display:t.isDebugInfoVisible?"block":"none"}},e("div",{style:{width:"100%",height:"100%"}},e("div",{style:{whiteSpace:"nowrap"}},"zIndex: ",t.zIndex),e("div",{style:{whiteSpace:"nowrap"}},"translateX: ",t.translateX),e("div",{style:{whiteSpace:"nowrap"}},"translateY: ",t.translateY),e("div",{style:{whiteSpace:"nowrap"}},"width: ",t.width),e("div",{style:{whiteSpace:"nowrap"}},"height: ",t.height),e("div",{style:{whiteSpace:"nowrap"}},"scale: ",t.scale),e("div",{style:{whiteSpace:"nowrap"}},"rotation: ",t.rotation),e("div",{style:{whiteSpace:"nowrap"}},"x: ",t.x),e("div",{style:{whiteSpace:"nowrap"}},"y: ",t.y)))))))),e("svg",{key:"current-path",class:"object",xmlns:"http://www.w3.org/2000/svg",width:this.core.store.state.currentPath?.width,height:this.core.store.state.currentPath?.height,style:{left:"0",top:"0",zIndex:this.core.store.state.currentPath?.zIndex.toString(),position:"absolute",transform:this.core.store.state.currentPath?.transformationMatrix,transformOrigin:"top left",overflow:"visible"},viewBox:this.core.store.state.currentPath?.viewBox},e("path",{key:"2fa37f509acc3573049fc01f22e41fdda6e4acd9",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:"a17f9ff108cf509f3d6e20fc434cffb7a4d72530",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:"a22fa1dba0442fa77a7660ca230d4bb0236e10ea",core:this.core}))}static get watchers(){return{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}}};dt.style=ht;const ut=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const ft=class{constructor(e){t(this,e)}fontFamily="Arial, sans-serif";size=24;color="#000000";render(){return e(i,{key:"0d0f0f75b64f579ca236950334fafde7f0ef2a38"},e("div",{key:"e71524879ded9727891bdd43f1a41ae5eef49175",class:"font-preview",style:{fontFamily:this.fontFamily,fontSize:`${this.size}px`,color:this.color}},"A"))}};ft.style=ut;const pt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:pointer;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}.font-style-button.italic-text{font-style:italic}";const bt=class{constructor(e){t(this,e);this.fontFamilyChange=s(this,"fontFamilyChange")}fontOptions=[{value:"arial",label:"Arial"},{value:"verdana",label:"Verdana"},{value:"helvetica",label:"Helvetica"},{value:"tahoma",label:"Tahoma"},{value:"trebuchet ms",label:"Trebuchet MS"},{value:"times new roman",label:"Times New Roman"},{value:"georgia",label:"Georgia"},{value:"garamond",label:"Garamond"},{value:"courier new",label:"Courier New"},{value:"brush script mt",label:"Brush Script MT"}];selectedFontFamily;fontFamilyChange;componentWillLoad(){if(this.fontOptions&&this.fontOptions.length>0){const t=this.fontOptions.some((t=>t.value===this.selectedFontFamily));if(!this.selectedFontFamily||!t){this.selectedFontFamily=this.fontOptions[0].value}}}handleDropdownValueChange=t=>{this.fontFamilyChange.emit(t.detail)};render(){const t=this.fontOptions.map((t=>({value:t.value,label:t.label,style:{fontFamily:t.value}})));return e(i,{key:"d05a099adf8623b8c67d68f3861c1cd401e86e2c"},e("kritzel-dropdown",{key:"b95af194feaaf5748bb0d584617d217e4b3b8180",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}},e("button",{key:"04a0a72f9297dc6c34a2a2019cae111d8725bcf4",class:"font-style-button",slot:"suffix"},"B"),e("button",{key:"f14b59f29bcce33f890b74c1fb8d1dad0ad6fd31",class:"font-style-button italic-text",slot:"suffix"},"I")))}};bt.style=pt;const gt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:4px;cursor:pointer;border:2px solid transparent;box-sizing:border-box;border-radius:50%}.size-container:hover{background-color:var(--kritzel-font-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-font-size-selected-background-color, #e0e0e0)}";const kt=class{constructor(e){t(this,e);this.sizeChange=s(this,"sizeChange")}sizes=[8,10,12,16,20,24];selectedSize=null;fontFamily="Arial";sizeChange;handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(i,{key:"583659340d8f3bfb2ff6f64f2cd692ac07cb32d6"},this.sizes.map((t=>e("div",{class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-font",{fontFamily:this.fontFamily,size:t})))))}};kt.style=gt;const yt=":host{display:inline-flex;justify-content:center;align-items:center;color:var(--kritzel-icon-color, inherited)}span{display:flex;align-items:center;width:100%;height:100%;}span>svg{width:100%;height:100%}";const vt=class{constructor(e){t(this,e)}name;label;size=24;render(){const t=K.get(this.name);if(!t){console.error(`[kritzel-icon] Icon "${this.name}" not found in registry.`);return e("span",{class:"error-icon","aria-label":`Error: Icon ${this.name} not found`},"?")}const s={width:`${this.size}px`,height:`${this.size}px`};return e(i,{style:s},e("span",{"aria-hidden":!this.label,role:this.label?"img":undefined,"aria-label":this.label,innerHTML:t}))}};vt.style=yt;const wt=":host{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-menu-background-color, #ffffff);width:var(--kritzel-menu-width, 200px);padding:var(--kritzel-menu-padding, 8px);border-radius:var(--kritzel-menu-border-radius, 12px);box-shadow:var(--kritzel-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-menu-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin;max-height:300px}:host(:focus-visible){outline:var(--kritzel-menu-focus-outline, 2px solid #e3e3e3)}.has-open-child-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:3}";const xt=class{constructor(e){t(this,e);this.itemSelect=s(this,"itemSelect");this.itemSave=s(this,"itemSave");this.itemCancel=s(this,"itemCancel");this.itemToggleChildMenu=s(this,"itemToggleChildMenu");this.itemCloseChildMenu=s(this,"itemCloseChildMenu");this.close=s(this,"close")}get host(){return o(this)}items;parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;close;selectedIndex=null;async setScrollTop(t){this.host.scrollTop=t;this.host.scrollTo({top:t,behavior:"auto"})}async setFocus(){const t=this.host.shadowRoot.querySelector("kritzel-menu-item");if(t){t.focus()}}get openChildMenuItem(){return this.items.find((t=>t.isChildMenuOpen))}get editingMenuItem(){return this.items.find((t=>t.isEditing))}onOverlayClick=t=>{t.stopPropagation();this.itemCloseChildMenu.emit(this.openChildMenuItem)};handleItemSelect=t=>{t.stopPropagation();this.itemSelect.emit(t.detail)};handleSave=t=>{t.stopPropagation();this.itemSave.emit(t.detail)};handleCancel=t=>{t.stopPropagation();this.itemCancel.emit(t.detail)};handleToggleChildMenu=t=>{t.stopPropagation();this.itemToggleChildMenu.emit(t.detail)};handleCloseChildMenu=t=>{t.stopPropagation();this.itemCloseChildMenu.emit(t.detail)};render(){return e(i,{key:"211bd579000294d9edf6f85f2d7244aebe331191",tabIndex:0,onClick:t=>t.stopPropagation()},this.openChildMenuItem&&e("div",{key:"b1c397118b1fbac934867677073661a69be1cab1",class:"has-open-child-overlay",onClick:this.onOverlayClick}),this.items.map((t=>e("kritzel-menu-item",{key:t.id,item:t,parent:this.parent,style:{pointerEvents:this.editingMenuItem&&!t.isEditing?"none":"auto"},onItemSelect:this.handleItemSelect,onItemSave:this.handleSave,onItemCancel:this.handleCancel,onItemToggleChildMenu:this.handleToggleChildMenu,onItemCloseChildMenu:this.handleCloseChildMenu}))))}};xt.style=wt;const mt=":host{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--kritzel-menu-item-padding, 8px);box-sizing:border-box;gap:16px;height:var(--kritzel-menu-item-height, 40px);min-height:var(--kritzel-menu-item-min-height, 40px);font-family:sans-serif;font-size:var(--kritzel-menu-item-font-size, 14px);color:var(--kritzel-menu-item-color, #333333);border-radius:var(--kritzel-menu-item-border-radius, 12px);outline:none;cursor:default}:host(:hover) .menu-item-overlay,:host(:focus-within) .menu-item-overlay{background-color:var(--kritzel-menu-item-overlay-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff);color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected.editing){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}:host(.selected) .edit-input{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-selected-color, #ffffff)}kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-color, #333333)}:host(.selected) .edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, rgba(255, 255, 255, 0.16))}:host(.editing){background-color:var(--kritzel-menu-item-editing-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.disabled){opacity:0.5;pointer-events:none !important}:host(.child-open){background-color:var(--kritzel-menu-item-child-open-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.child-open.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}.menu-item-overlay{position:absolute;inset:0;background-color:transparent;z-index:0;pointer-events:none;border-radius:var(--kritzel-menu-item-border-radius, 12px)}.menu-item-content{display:flex;align-items:center;gap:8px;position:relative;z-index:1;height:100%}.left{justify-content:flex-start;flex:1;min-width:0}.left>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{justify-content:flex-end}.edit-input{flex:1;height:var(--kritzel-menu-item-input-height, 24px);padding:0;background-color:transparent;border-radius:0;border:none;border-bottom:1px solid var(--kritzel-menu-item-input-border, #ccc);font-size:var(--kritzel-context-menu-item-font-size, 14px);width:100%;min-width:0;box-sizing:border-box;outline:none}.edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, #007bff);color:var(--kritzel-menu-item-input-selection-text-color, #ffffff)}.action-button{padding:4px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background-color:transparent;background:transparent;outline:none;-webkit-tap-highlight-color:transparent}.action-button:hover,.action-button:focus{background-color:var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.action-button.disabled{pointer-events:none;opacity:0.5}";const zt=class{constructor(e){t(this,e);this.itemSelect=s(this,"itemSelect");this.itemSave=s(this,"itemSave");this.itemCancel=s(this,"itemCancel");this.itemToggleChildMenu=s(this,"itemToggleChildMenu");this.itemCloseChildMenu=s(this,"itemCloseChildMenu")}get host(){return o(this)}item;onItemChange(t,e){if(t!==e){this.isDirty=false}}parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;isDirty=false;inputRef;focusInput(){if(this.item.isEditing&&this.inputRef&&!this.isDirty){this.inputRef.focus();if(_.isIOS()){const t=this.inputRef.value.length;this.inputRef.setSelectionRange(t,t)}else{this.inputRef.select()}}}componentDidLoad(){this.setDeviceSpecificStyles();this.focusInput()}componentDidUpdate(){this.focusInput()}setDeviceSpecificStyles=()=>{const t=_.isTouchDevice();if(t){this.host.style.setProperty("--kritzel-menu-item-overlay-background-color","transparent");this.host.style.setProperty("--kritzel-menu-item-button-hover-background-color","transparent")}};handleItemSelect=t=>{t.stopPropagation();this.itemSelect.emit({item:this.item,parent:this.parent})};handleInputChange=t=>{t.stopPropagation();const e=t.target;this.item.label=e.value;this.isDirty=true};handleSave=t=>{t.stopPropagation();this.host.focus();this.itemSave.emit(this.item)};handleCancel=t=>{t.stopPropagation();this.host.focus();this.itemCancel.emit(this.item)};handleMenuToggle=t=>{t.stopPropagation();this.itemToggleChildMenu.emit({item:this.item,childMenuAnchor:t.target})};handleMenuClose=()=>{this.itemCloseChildMenu.emit(this.item)};renderViewMode(){return[e("div",{class:"menu-item-content left"},e("div",null,this.item.label)),e("div",{class:"menu-item-content right"},this.item.children&&this.item.children.length>0&&[e("button",{id:"child-menu-toggle",class:"action-button",onClick:this.handleMenuToggle,disabled:this.item.isDisabled},e("kritzel-icon",{name:"ellipsis-vertical",size:16})),e("kritzel-portal",{anchor:this.item.childMenuAnchor,offsetY:4,onClose:this.handleMenuClose},e("kritzel-menu",{items:this.item.children,parent:this.item,onItemSelect:t=>this.itemSelect.emit(t.detail),onItemSave:t=>this.itemSave.emit(t.detail),onItemCancel:t=>this.itemCancel.emit(t.detail),onClose:this.handleMenuClose}))])]}renderEditMode(){return[e("div",{class:"menu-item-content left"},e("input",{ref:t=>this.inputRef=t,type:"text",class:"edit-input",value:this.item.label,onInput:this.handleInputChange})),e("div",{class:"menu-item-content right"},e("div",{tabIndex:0,class:"action-button",onClick:this.handleCancel},e("kritzel-icon",{name:"x",size:16})),e("div",{tabIndex:!this.isDirty&&!this.item.isNewItem?-1:0,class:{"action-button":true,disabled:!this.isDirty&&!this.item.isNewItem},onClick:this.handleSave},e("kritzel-icon",{name:"check",size:16})))]}render(){return e(i,{key:"a35e1e3427568f436a36b43ba87af3710a4e83c5",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:"42eef5a16b9b164839c1fe133e38ecb505c07632",class:"menu-item-overlay"}),this.item.isEditing?this.renderEditMode():this.renderViewMode())}static get watchers(){return{item:["onItemChange"]}}};zt.style=mt;class Ct{static getNumericValueFromStyle(t,e){const i=window.getComputedStyle(t).getPropertyValue(e);return parseFloat(i)||0}static getScrollableParent(t){if(!t){return window}const e=t.parentNode?.host??t.parentElement;if(!e||e.tagName==="BODY"){return window}const i=window.getComputedStyle(e);if(i.overflow==="auto"||i.overflowY==="auto"||i.overflow==="scroll"||i.overflowY==="scroll"){return e}return this.getScrollableParent(e)}static isElementInViewport(t){if(!t){return false}const e=this.getScrollableParent(t);const i=t.getBoundingClientRect();if(e===window){const t=window.innerHeight||document.documentElement.clientHeight;const e=window.innerWidth||document.documentElement.clientWidth;return i.top>=0&&i.left>=0&&i.bottom<=t&&i.right<=e}const s=e.getBoundingClientRect();return i.top>=s.top&&i.left>=s.left&&i.bottom<=s.bottom&&i.right<=s.right}static getFocusableElements(t){if(!t)return[];const e=[];const i='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), details, [tabindex]:not([tabindex="-1"])';const s=t=>t.offsetParent!==null;const o=t=>{if(t instanceof HTMLElement&&t.matches(i)&&!t.hasAttribute("disabled")&&s(t)){e.push(t)}if(t.shadowRoot){Array.from(t.shadowRoot.children).forEach(o)}if(t.tagName==="SLOT"){t.assignedElements({flatten:true}).forEach(o)}if(!t.shadowRoot){Array.from(t.children).forEach(o)}};o(t);return e}}const It=class{constructor(e){t(this,e);this.close=s(this,"close")}get host(){return o(this)}anchor;anchorChanged(t){if(t){this.openPortal();this.calculatePosition();if(this.autoFocus){this.focusFirstElement()}}else{this.closePortal()}}offsetX;offsetY;autoFocus=true;close;handleOutsideClick(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;const i=t.target;if(!this.host.contains(i)){this.close.emit();this.closePortal()}}handleKeyDown(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;if(t.key==="Escape"){this.anchor.focus();this.close.emit();this.closePortal()}if(t.key==="Tab"){this.trapFocus(t)}if(t.key==="Enter"){const e=this.getDeepActiveElement();if(e?.click){t.preventDefault();e.click()}}}handleResize(){this.calculatePosition()}handleWindowScroll(){const t=Ct.isElementInViewport(this.anchor);if(!t){this.anchor?.blur();this.closePortal();return}this.calculatePosition()}portal;id=`portal-${C.generateUUID()}`;defaultOffset=0;minLeft=0;focusFirstElement(){requestAnimationFrame((()=>{this.firstFocusableElement?.focus?.()}))}getDeepActiveElement(){let t=document.activeElement;while(t?.shadowRoot?.activeElement){t=t.shadowRoot.activeElement}return t}trapFocus(t){const e=Ct.getFocusableElements(this.host);if(e.length===0)return;const i=e[0];const s=e[e.length-1];const o=this.getDeepActiveElement();if(t.shiftKey){if(o===i){s.focus();t.preventDefault()}}else{if(o===s){i.focus();t.preventDefault()}}}get firstFocusableElement(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements({flatten:true})[0];if(!e)return null;const i=Ct.getFocusableElements(e);return i[0]??e}get lastAddedPortal(){const t=Array.from(document.querySelectorAll('[id^="portal-"]'));return t.length?t[t.length-1]:null}calculateLeft(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect();const e=this.portal.getBoundingClientRect();const i=this.offsetX??this.defaultOffset;let s=t.left+i;const o=window.innerWidth-e.width-this.minLeft;if(s<this.minLeft)s=this.minLeft;if(s>o)s=o;return Math.round(s+window.scrollX)}calculateTop(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect();const e=this.portal.getBoundingClientRect();const i=this.offsetY??this.defaultOffset;let s=t.bottom+i;if(s+e.height>window.innerHeight){s=t.top-e.height-i}return Math.round(s+window.scrollY)}openPortal(){this.portal=document.createElement("div");this.portal.setAttribute("id",this.id);this.portal.style.zIndex="1";this.portal.style.position="absolute";this.portal.style.top="0px";this.portal.style.left="0px";this.portal.appendChild(this.host);document.body.append(this.portal)}closePortal(){const t=document.getElementById(this.id);if(!t)return;document.body.removeChild(t);this.host.remove()}calculatePosition(){if(!this.anchor||!this.portal)return;const t=this.calculateTop();const e=this.calculateLeft();this.portal.style.top=`${t}px`;this.portal.style.left=`${e}px`}render(){return e(i,{key:"a906e21c1257dfc6ed21257cce150db17048f04e",style:{display:this.anchor?"block":"none"}},e("slot",{key:"972544f2258f8b6dc8c691f3762d5ba806a57c41"}))}static get watchers(){return{anchor:["anchorChanged"]}}};const Mt=":host{position:relative;display:flex;align-items:center;font-family:sans-serif;z-index:1;padding:var(--kritzel-split-button-padding, 4px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-split-button-border, 1px solid #ebebeb);gap:var(--kritzel-split-button-gap, 4px)}:host(.mobile){--kritzel-split-button-hover-background-color:transparent}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:all;-webkit-tap-highlight-color:transparent}.split-main-button,.split-menu-button{height:auto;display:flex;align-items:center;padding:var(--kritzel-split-button-padding, 8px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);font-size:var(--kritzel-split-button-font-size, 14px)}.split-main-button:hover,.split-menu-button:hover{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button:focus,.split-menu-button:focus{outline:none;background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button{gap:var(--kritzel-split-button-gap, 4px)}.split-menu-button{border-left:none;justify-content:center}.split-divider{width:var(--kritzel-split-button-divider-width, 1px);height:24px;background-color:var(--kritzel-split-button-divider-background-color, hsl(0, 0%, 0%, 4.3%))}:disabled{pointer-events:none;opacity:0.5}";const St=class{constructor(e){t(this,e);this.mainButtonClick=s(this,"mainButtonClick");this.itemSelect=s(this,"itemSelect");this.itemSave=s(this,"itemSave");this.itemCancel=s(this,"itemCancel");this.itemToggleChildMenu=s(this,"itemToggleChildMenu");this.itemCloseChildMenu=s(this,"itemCloseChildMenu");this.menuOpen=s(this,"menuOpen");this.menuClose=s(this,"menuClose")}get host(){return o(this)}buttonIcon="plus";dropdownIcon="chevron-down";items=[];mainButtonDisabled=false;menuButtonDisabled=false;mainButtonClick;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;menuOpen;menuClose;isMenuOpen=false;isTouchDevice=_.isTouchDevice();anchorElement;menuScrollTop=0;splitMenuButtonRef;menuRef;async open(){if(this.isMenuOpen)return;this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit()}async focusMenu(){if(this.menuRef){await this.menuRef.setFocus()}}handleButtonClick=t=>{t.stopPropagation();this.mainButtonClick.emit()};toggleMenu=t=>{t.stopPropagation();if(this.isMenuOpen){this.closeMenu()}else{this.openMenu(t)}};openMenu=t=>{t.stopPropagation();this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit();requestAnimationFrame((()=>{this.menuRef?.setScrollTop(this.menuScrollTop)}))};closeMenu=()=>{this.isMenuOpen=false;this.anchorElement=null;this.splitMenuButtonRef?.blur();this.menuClose.emit()};handleItemSelect=t=>{this.itemSelect.emit(t.detail)};handleItemSave=t=>{this.itemSave.emit(t.detail)};handleItemCancel=t=>{this.itemCancel.emit(t.detail)};handleItemToggleChildMenu=t=>{this.itemToggleChildMenu.emit(t.detail)};handleItemCloseChildMenu=t=>{this.itemCloseChildMenu.emit(t.detail)};handleScroll=t=>{this.menuScrollTop=t.target.scrollTop};render(){return e(i,{key:"d18a70b94e3d6860dfac952b26f66e5b96cc6fa0",class:{mobile:this.isTouchDevice}},e("button",{key:"ee65221543fd8984f94d0a0b43beb7e1d28411f2",class:"split-main-button",tabIndex:0,onClick:this.handleButtonClick,disabled:this.mainButtonDisabled},this.buttonIcon&&e("kritzel-icon",{key:"1dbdd1e4db4087564464e9586e91b48f80b88aae",name:this.buttonIcon})),e("div",{key:"78b5e0589e7a3dd0592fb2c1cdaae8732f57b129",class:"split-divider"}),e("button",{key:"cfc5d53f06485a927608a99ea491e36b0e993fcc",ref:t=>this.splitMenuButtonRef=t,class:"split-menu-button",tabIndex:0,onClick:this.toggleMenu,disabled:this.menuButtonDisabled},e("kritzel-icon",{key:"0e141b614cbfc758f01d21908d846d16bdce586d",name:this.dropdownIcon})),e("kritzel-portal",{key:"b5def34dcfe5cbbf9641b1218af803937d7a77b6",anchor:this.anchorElement,offsetY:4,onClose:this.closeMenu},e("kritzel-menu",{key:"695f6c85a8ecd44f74ecf7752bf77d0caac69e6a",ref:t=>this.menuRef=t,items:this.items,onItemSelect:this.handleItemSelect,onItemSave:this.handleItemSave,onItemCancel:this.handleItemCancel,onItemToggleChildMenu:this.handleItemToggleChildMenu,onItemCloseChildMenu:this.handleItemCloseChildMenu,onClose:this.closeMenu,onScroll:this.handleScroll})))}};St.style=Mt;const jt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.size-container:focus-visible{outline:var(--kritzel-stroke-size-focus-outline, 2px auto #e3e3e3)}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}";const Dt=class{constructor(e){t(this,e);this.sizeChange=s(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(i,{key:"001a0ef8408d19532b57a521929c0cba54e99c52"},this.sizes.map((t=>e("div",{tabIndex:0,class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-color",{value:"#000000",size:t})))))}};Dt.style=jt;const Bt=":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}";const Tt=768;const Et=class{constructor(e){t(this,e);this.tooltipClosed=s(this,"tooltipClosed")}get host(){return o(this)}isVisible=false;anchorElement;arrowSize=8;offsetY=24;tooltipClosed;positionX=0;arrowOffset="0px";isMobileView=window.innerWidth<Tt;handleOutsideClick(t){if(!this.isVisible)return;const e=t.target;if(!this.host.contains(e)){this.tooltipClosed.emit()}}handleWindowResize(){this.isMobileView=window.innerWidth<Tt;this.calculateAdjustedPosition()}async focusContent(){const t=Ct.getFocusableElements(this.host);if(t.length>0){t[0].focus()}}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.isMobileView=window.innerWidth<Tt;this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements()||[];if(e.length>0){const t=e[0];t.focus()}}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect();const e=this.host.shadowRoot?.querySelector(".tooltip-content");if(!this.isMobileView){this.positionX=t.left+t.width/2;this.arrowOffset=`calc(${50}% - ${this.arrowSize}px)`}else{const i=e.getBoundingClientRect();this.positionX=t.left+t.width/2-i.width/2;this.arrowOffset=`${t.left+t.width/2-i.left-this.arrowSize}px`}}}render(){return e(i,{key:"8c3aeff60625f43f129afa70367cdb7a68a4b271",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:"b22b606c2a836c2c9bbe21c6b470754753ccb309",class:"tooltip-content",onClick:t=>t.stopPropagation()},e("slot",{key:"783403f4b5560012c9f6bd184a8c5eb26428e148"}),e("div",{key:"bb98400edc5c6e05fd4ed2a476a5821f93964b8e",class:"tooltip-arrow-wrapper",style:{position:"fixed",left:this.arrowOffset,bottom:`-${this.arrowSize*2}px`}},e("div",{key:"850a058d635113a7870f25fa288a6447394c53ed",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:"bbb3dc2673e2dfe4443ad80540dfc9e5a25c6c06",class:"tooltip-arrow-rect",style:{position:"relative",width:`${this.arrowSize*2}px`,height:`${this.arrowSize}px`,backgroundColor:"var(--kritzel-controls-tooltip-background-color, #ffffff)",bottom:`${this.arrowSize*2}px`}}))))}};Et.style=Bt;const Ot=":host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:rgb(226, 226, 226);width:fit-content;user-select:none}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;outline:none;background:none;cursor:pointer;color:#333333;-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:focus{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";const At=class{constructor(e){t(this,e);this.undo=s(this,"undo");this.redo=s(this,"redo");this.delete=s(this,"delete")}undo;redo;delete;handleUndo(t){if(t.cancelable){t.preventDefault();t.stopPropagation();this.undo.emit()}}handleRedo(t){t.preventDefault();t.stopPropagation();this.redo.emit()}render(){return e(i,{key:"8109ccff01374c046d057021dfbcabdc632d829f"},e("button",{key:"0d51cfb401974edf1a2a8810d2244f8a977c347f",class:"utility-button",onClick:t=>this.handleUndo(t)},e("kritzel-icon",{key:"1d13ee6bbf060402e0b1349d41b728875314e2e5",name:"undo"})),e("button",{key:"f2fe59e7c99cb1550052088b507313cfaed72f29",class:"utility-button",onClick:t=>this.handleRedo(t)},e("kritzel-icon",{key:"74bf8c20f61144ab4abc5804dcd8f39917d2c966",name:"redo"})),e("div",{key:"0c9a942e786425b32e984fefdc97b1abb5077997",class:"utility-separator"}),e("button",{key:"44ca9340c2f73212332e9b3ed93ed93b8f7c6944",class:"utility-button"},e("kritzel-icon",{key:"7b4c3d9a105e0c25b5bbc11ff1bc1cbed9833e03",name:"delete",onClick:()=>this.delete.emit()})))}};At.style=Ot;const Wt=":host{display:flex;flex-direction:column;z-index:1}";const $t=class{constructor(e){t(this,e);this.isWorkspaceManagerReady=s(this,"isWorkspaceManagerReady");this.workspaceChange=s(this,"workspaceChange")}get host(){return o(this)}activeWorkspace;workspaces=[];isWorkspaceManagerReady;workspaceChange;childMenuAnchor=null;openChildMenuItem=null;newWorkspace=null;editingItemId=null;handleWheel(t){if(t.ctrlKey){t.preventDefault()}}kritzelEngineRef=null;splitButtonRef;get sortedWorkspaces(){return[this.newWorkspace,...this.workspaces].filter((t=>t!=null)).sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}async componentWillLoad(){await this.initializeEngine();this.isWorkspaceManagerReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngineRef=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngineRef){throw new Error("kritzel-engine not found in parent element.")}}async select(t,e){if(this.editingItemId){return}if(t.action){t.action(t,e);return}this.workspaceChange.emit(t.value)}async add(){await this.splitButtonRef.open();this.newWorkspace=new f(C.generateUUID(),"New Workspace");this.editingItemId=this.newWorkspace.id}edit(t){this.openChildMenuItem=null;this.childMenuAnchor=null;requestAnimationFrame((()=>{this.editingItemId=t.id}))}async save(t){if(this.newWorkspace){this.newWorkspace.name=t.label;await this.kritzelEngineRef.createWorkspace(this.newWorkspace);this.workspaceChange.emit(this.newWorkspace)}else{const e=t.value;e.name=t.label;await this.kritzelEngineRef.updateWorkspace(e)}this.editingItemId=null;this.newWorkspace=null}cancel(){this.newWorkspace=null;this.editingItemId=null}async delete(t){this.openChildMenuItem=null;this.childMenuAnchor=null;await this.kritzelEngineRef.deleteWorkspace(t.value);if(t.value.id===this.activeWorkspace?.id){this.activeWorkspace=this.sortedWorkspaces.find((e=>e.id!==t.value.id))||null;this.workspaceChange.emit(this.activeWorkspace)}await this.splitButtonRef.focusMenu()}toggleChildMenu(t,e){this.openChildMenuItem=t;this.childMenuAnchor=e}closeChildMenu(){this.openChildMenuItem=null;this.childMenuAnchor=null}handleMenuOpen(){this.kritzelEngineRef.disable()}handleMenuClose(){this.cancel();this.closeChildMenu();this.kritzelEngineRef.enable()}render(){const t=this.sortedWorkspaces.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime())).filter((t=>t!==null)).map((t=>({id:t.id,label:t.name,value:t,isEditing:this.editingItemId===t.id,isSelected:this.activeWorkspace?.id===t.id,isNewItem:this.newWorkspace?.id===t.id,isChildMenuOpen:this.openChildMenuItem?.id===t.id,childMenuAnchor:this.openChildMenuItem?.id===t.id?this.childMenuAnchor:null,children:[{id:`${t.id}-rename`,label:"Rename",value:"rename",action:(t,e)=>this.edit(e)},{id:`${t.id}-delete`,label:"Delete",value:"delete",isDisabled:this.sortedWorkspaces.length<=1,action:(t,e)=>this.delete(e)}]})));return e(i,null,e("kritzel-split-button",{ref:t=>this.splitButtonRef=t,items:t,mainButtonDisabled:this.editingItemId!=null,onMainButtonClick:()=>this.add(),onItemSelect:t=>this.select(t.detail.item,t.detail.parent),onItemToggleChildMenu:t=>this.toggleChildMenu(t.detail.item,t.detail.childMenuAnchor),onItemSave:t=>this.save(t.detail),onItemCancel:()=>this.cancel(),onItemCloseChildMenu:()=>this.closeChildMenu(),onMenuOpen:()=>this.handleMenuOpen(),onMenuClose:()=>this.handleMenuClose()}))}};$t.style=Wt;export{T as kritzel_color,O as kritzel_color_palette,W as kritzel_context_menu,R as kritzel_control_brush_config,P as kritzel_control_text_config,Y as kritzel_controls,L as kritzel_cursor_trail,H as kritzel_dropdown,Z as kritzel_editor,dt as kritzel_engine,ft as kritzel_font,bt as kritzel_font_family,kt as kritzel_font_size,vt as kritzel_icon,xt as kritzel_menu,zt as kritzel_menu_item,It as kritzel_portal,St as kritzel_split_button,Dt as kritzel_stroke_size,Et as kritzel_tooltip,At as kritzel_utility_panel,$t as kritzel_workspace_manager};
|
|
2
|
-
//# sourceMappingURL=p-ab074e87.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["registerInstance","h","Host","createEvent","getElement","KritzelBrushTool","KritzelTextTool","KritzelMouseButton","KritzelSelectionTool","DEFAULT_BRUSH_CONFIG","KritzelEraserTool","DEFAULT_TEXT_CONFIG","KritzelImageTool","KritzelWorkspace","KritzelKeyboardHelper","KritzelEventHelper","KritzelBaseHandler","KritzelToolRegistry","KritzelSelectionGroup","BatchCommand","RemoveSelectionGroupCommand","AddSelectionGroupCommand","KritzelBaseCommand","KrtizelSelectionBox","ObjectHelper","KritzelReviver","RemoveObjectCommand","AddObjectCommand","UpdateObjectCommand","KritzelBaseTool","kritzelColorCss","KritzelColor","constructor","hostRef","this","value","size","isLightColor","hexColor","r","g","b","sanitizedHex","startsWith","slice","length","parseInt","substring","isNaN","luminance","render","isColorVeryLight","key","class","style","width","height","borderRadius","display","position","white","backgroundColor","top","left","kritzelColorPaletteCss","KritzelColorPalette","colorChange","colors","selectedColor","isExpanded","isOpaque","handleColorClick","color","emit","calculateHeight","colorsPerRow","rowHeight","gap","rowCount","Math","ceil","displayedColors","expandedHeight","expanded","map","tabIndex","selected","onClick","kritzelContextMenuCss","KritzelContextMenu","actionSelected","close","host","items","onItemsChanged","updateMenuItems","objects","processedItems","handleOutsideClick","event","path","composedPath","includes","componentWillLoad","handleItemClick","item","isDisabled","processed","isVisible","evaluateProperty","visible","disabled","push","defaultValue","Promise","resolve","index","label","icon","name","watchers","kritzelControlBrushConfigCss","KritzelControlBrushConfig","toolChange","tool","handleToolChange","newTool","palette","palettes","type","handleToggleExpand","handleTypeChange","detail","handleColorChange","handleSizeChange","flexDirection","alignItems","justifyContent","onColorChange","title","visibillity","visibility","selectedSize","onSizeChange","kritzelControlTextConfigCss","KritzelControlTextConfig","handleFamilyChange","fontFamily","fontColor","fontSize","selectedFontFamily","onFontFamilyChange","KritzelDevicesHelper","isTouchDevice","window","matchMedia","matches","isAndroid","test","navigator","userAgent","isIOS","detectOS","isFirefox","kritzelControlsCss","KritzelControls","isControlsReady","controls","activeControl","isUtilityPanelVisible","firstConfig","isTooltipVisible","handleDocumentClick","element","target","kritzelEngine","closest","handleKeyDown","preventDefault","closeTooltip","enable","handleActiveToolChange","find","control","tooltipRef","activeToolAsTextTool","activeToolAsBrushTool","initializeEngine","initializeTools","customElements","whenDefined","parentElement","querySelector","Error","c","registerTool","config","isDefault","changeActiveTool","console","warn","handleControlClick","handleConfigClick","stopPropagation","disable","setTimeout","focusContent","handleTooltipClosed","hasNoConfig","undefined","mobile","bottom","onUndo","undo","onRedo","redo","onDelete","delete","_event","ref","el","anchorElement","shadowRoot","onTooltipClosed","onToolChange","onKeyDown","cursor","pointerEvents","border","assetsDirs","kritzelCursorTrailCss","KritzelCursorTrail","core","cursorTrailPoints","isLeftButtonDown","handleMouseDown","ev","pointerType","button","Left","store","state","pointers","handlePointerMove","newPoint","x","clientX","y","clientY","timestamp","Date","now","updatedTrail","MAX_TRAIL_POINTS","handlePointerUp","trailCleanupIntervalId","TRAIL_DURATION_MS","componentDidLoad","setInterval","newTrailPoints","filter","p","disconnectedCallback","clearInterval","xmlns","opacity","zIndex","point","prevPoint","age","progress","max","min","baseStrokeWidth","x1","toString","y1","x2","y2","stroke","kritzelDropdownCss","KritzelDropdown","valueChanged","options","optionsChanged","updateInternalValue","internalValue","externalValueChanged","newValue","selectStyles","hasSuffixContent","hasPrefixContent","suffixSlotElement","prefixSlotElement","evaluateSuffixContent","evaluatePrefixContent","proposedValue","emitChange","finalValue","isValidValue","some","opt","handleSelectChange","newHasContent","assignedNodes","flatten","selectClasses","onSlotchange","onInput","option","KritzelIconRegistry","static","Map","register","svgContent","registry","has","set","get","registerIcons","icons","Object","prototype","hasOwnProperty","call","pen","highlighter","eraser","image","copy","paste","cut","download","plus","check","ABSOLUTE_SCALE_MAX","ABSOLUTE_SCALE_MIN","kritzelEditorCss","KritzelEditor","isReady","scaleMax","scaleMin","globalContextMenuItems","async","engineRef","getCopiedObjects","action","menu","selectAllObjectsInViewport","objectContextMenuItems","_","bringToFront","sendToBack","customSvgIcons","isControlsVisible","isEngineReady","isWorkspaceManagerReady","workspaces","activeWorkspace","isVirtualKeyboardOpen","onIsEngineReady","checkIsReady","onIsControlsReady","handleTouchStart","cancelable","getObjectById","id","addObject","object","updateObject","updatedProperties","removeObject","getSelectedObjects","selectObjects","clearSelection","centerObjectInViewport","createWorkspace","viewport","workspace","updateWorkspace","deleteWorkspace","getWorkspaces","getActiveWorkspace","controlsRef","splitButtonRef","registerCustomSvgIcons","listenForMobileKeyboard","setOsSpecificCssVariables","onEngineReady","svg","entries","onKeyboardVisibleChanged","isOpen","os","setProperty","onWorkspaceChange","onIsWorkspaceManagerReady","onWorkspacesChange","KritzelViewport","_core","initialTouchDistance","startX","startY","setState","clientWidth","clientHeight","handleResize","rerender","handlePointerDown","adjustedClientX","offsetX","adjustedClientY","offsetY","Right","activePointers","Array","from","values","firstTouchX","firstTouchY","secondTouchX","secondTouchY","sqrt","pow","hostRect","getBoundingClientRect","xRelativeToHost","yRelativeToHost","translateX","scale","translateY","isPanning","dx","dy","updateWorkspaceViewport","currentTouchDistance","midpointX","midpointY","scaleRatio","newScale","translateXAdjustment","translateYAdjustment","handleWheel","ctrlKey","isMainMouseWheel","handleZoom","handlePan","rect","delta","deltaY","scaleStep","panSpeed","deltaX","KritzelKeyHandler","shortcuts","condition","selectionGroup","ctrl","history","switchTool","copiedObjects","activeText","selectAll","insertFromClipboard","bringForward","sendBackward","shift","super","toolInstance","getTool","deselectAllObjects","onActivate","shortcut","s","shiftKey","handleKeyUp","KritzelContextMenuHandler","handleContextMenu","activeTool","skipContextMenu","selectedObject","getObjectFromPointerEvent","create","addOrRemove","isSelected","rotation","batch","executeCommand","menuWidthEstimate","menuHeightEstimate","margin","innerWidth","innerHeight","KritzelClassHelper","isInstanceOf","className","__class__","DEFAULT_ENGINE_STATE","currentPath","objectsMap","selectionBox","resizeHandleType","hasViewportChanged","hasObjectsChanged","isEnabled","isScaling","isSelecting","isResizing","isResizeHandleSelected","isRotating","isRotationHandleSelected","isDragging","isDrawing","isErasing","isWriting","isCtrlKeyPressed","isContextMenuVisible","contextMenuItems","contextMenuX","contextMenuY","debugInfo","showObjectInfo","showViewportInfo","logCommands","logDatabase","pointerX","pointerY","translateXMax","translateXMin","translateYMax","translateYMin","viewportWidth","viewportHeight","historyBufferSize","longTouchTimeout","longTouchDelay","KritzelDatabase","db","dbName","dbVersion","isLoggingEnabled","open","stores","reject","info","request","indexedDB","onerror","error","onsuccess","result","onupgradeneeded","forEach","storeConfig","objectStoreNames","contains","createObjectStore","indices","createIndex","keyPath","add","storeName","serialize","serializedItem","executeTransaction","getAll","update","put","deleteByRange","range","getAllByRange","getAllByIndex","indexName","query","mode","transaction","objectStore","requestResult","oncomplete","onabort","actions","storeNames","extractStoreNamesFromActions","results","promises","tempDbInstance","resolveRequest","rejectRequest","all","then","promise","catch","err","abort","storeNamesSet","Set","storeNameCollector","Proxy","prop","UpdateViewportCommand","currentViewport","previousViewport","initiator","skipHistory","execute","KritzelCircularBuffer","buffer","capacity","head","tail","fill","pop","peek","lastIndex","isEmpty","clear","KritzelHistory","undoStack","redoStack","reset","command","addUpdateViewportCommand","KritzelObjectMap","insert","remove","predicate","allObjects","KritzelStore","_state","_listeners","currentZIndex","o","selectedObjects","onStateChange","property","listener","getState","oldValue","String","KritzelCore","_kritzelEngine","_store","_history","_database","engine","database","initializeDatabase","initializeWorkspace","mostRecentWorkspace","sort","a","updatedAt","getTime","fallbackWorkspace","generateUUID","isExistingWorkspace","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","updateWorkspaceId","updateZIndices","previousSelectionGroup","addCopiedObjectsCommands","addCopiedObjectsAsSelectionGroupCommand","increaseZIndexCommands","decreaseZIndexCommands","objectsInViewport","isInViewport","resetActiveText","selector","elementAtPoint","elementFromPoint","foundObject","isHit","hitTest","getObjectsFromPointerEvent","elementsAtPoint","elementsFromPoint","objectIds","getCanvasPoint","xWithoutTranslate","yWithoutTranslate","worldX","worldY","kritzelEngineCss","KritzelEngine","newWorkspace","validateScaleMax","validateScaleMin","activeToolChange","workspacesChange","longpress","hideContextMenu","onLongPress","setPointerCapture","pointerId","releasePointerCapture","handlePointerCancel","handleLongPress","contextMenuHandler","keyHandler","preventDoubleTapZoomOnTouchDevices","toolName","toolClass","toolConfig","registeredTool","onDeactivate","generateId","centerInViewport","contextMenuElement","isSelectionActive","_registerStateChangeListeners","_handleActiveToolChange","bind","forceHideKeyboard","computedStyle","getComputedStyle","baseHandleSizePx","getPropertyValue","trim","baseHandleSize","parseFloat","baseHandleTouchSize","transform","transformationMatrix","transformOrigin","totalHeight","totalWidth","rotationDegrees","markedForRemoval","minHeight","minWidth","borderColor","borderWidth","borderStyle","padding","overflow","mount","unmount","viewBox","d","src","userSelect","draggable","onDragStart","e","handleInput","rows","outline","resize","whiteSpace","isReadonly","caretColor","strokeWidth","strokeLinecap","cx","cy","isDebugInfoVisible","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","save","cancel","toggleChildMenu","closeChildMenu","handleMenuOpen","menuItems","_item","onMainButtonClick","onMenuOpen","onMenuClose"],"sources":["0"],"mappings":"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","ignoreList":[]}
|