kritzel-stencil 0.0.138 → 0.0.140
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-CYkadfjX.js → index-Clh2g9JM.js} +186 -107
- package/dist/cjs/index-Clh2g9JM.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +186 -148
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +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 +43 -27
- 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 +2 -2
- package/dist/collection/classes/handlers/key.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +30 -6
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/resize.handler.js +6 -4
- package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +6 -4
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +72 -32
- 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 +9 -7
- 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 +8 -8
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +10 -8
- package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +2 -15
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +27 -16
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -1
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +3 -3
- 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 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
- package/dist/collection/configs/default-engine-state.js +1 -0
- package/dist/collection/configs/default-engine-state.js.map +1 -1
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/components/index.js +2 -2
- 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-editor.js +20 -33
- package/dist/components/kritzel-editor.js.map +1 -1
- 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-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-DjU7p3od.js → p-BFLXutiB.js} +9 -9
- package/dist/components/{p-DjU7p3od.js.map → p-BFLXutiB.js.map} +1 -1
- package/dist/components/{p-B7kZ1_RH.js → p-BJZudenH.js} +4 -4
- package/dist/components/{p-B7kZ1_RH.js.map → p-BJZudenH.js.map} +1 -1
- package/dist/components/{p-B7w19kIk.js → p-BLc8TzcU.js} +7 -7
- package/dist/components/{p-B7w19kIk.js.map → p-BLc8TzcU.js.map} +1 -1
- package/dist/components/{p-BlPlPpUy.js → p-BQJhnpY3.js} +3 -3
- package/dist/components/{p-BlPlPpUy.js.map → p-BQJhnpY3.js.map} +1 -1
- package/dist/components/{p-D554MPA9.js → p-BV5iL9W6.js} +305 -184
- package/dist/components/p-BV5iL9W6.js.map +1 -0
- package/dist/components/{p-DOPuq6gn.js → p-C-ozL_Es.js} +3 -3
- package/dist/components/{p-DOPuq6gn.js.map → p-C-ozL_Es.js.map} +1 -1
- package/dist/components/{p-Di5CEwzQ.js → p-C5sTCwe3.js} +45 -36
- package/dist/components/p-C5sTCwe3.js.map +1 -0
- package/dist/components/{p-BM9IjvnD.js → p-C7UWRUAy.js} +3 -3
- package/dist/components/{p-BM9IjvnD.js.map → p-C7UWRUAy.js.map} +1 -1
- package/dist/components/{p-sreNwi0N.js → p-CE_sOMS2.js} +4 -4
- package/dist/components/{p-sreNwi0N.js.map → p-CE_sOMS2.js.map} +1 -1
- package/dist/components/{p-BPsQrpzN.js → p-D2eJXNMx.js} +6 -6
- package/dist/components/{p-BPsQrpzN.js.map → p-D2eJXNMx.js.map} +1 -1
- package/dist/components/{p-DCx3703u.js → p-D6FeQRzi.js} +3 -3
- package/dist/components/{p-DCx3703u.js.map → p-D6FeQRzi.js.map} +1 -1
- package/dist/components/{p-Ddlbt3Bj.js → p-DbmQ5DrU.js} +3 -3
- package/dist/components/{p-Ddlbt3Bj.js.map → p-DbmQ5DrU.js.map} +1 -1
- package/dist/components/{p-BehchtaT.js → p-Dh61W3GT.js} +6 -6
- package/dist/components/{p-BehchtaT.js.map → p-Dh61W3GT.js.map} +1 -1
- package/dist/components/{p-CsyM5q2M.js → p-IgPm36bH.js} +4 -4
- package/dist/components/{p-CsyM5q2M.js.map → p-IgPm36bH.js.map} +1 -1
- package/dist/components/{p-BgpsMYcw.js → p-JYqCBcMd.js} +6 -6
- package/dist/components/p-JYqCBcMd.js.map +1 -0
- package/dist/components/{p-PvCKCYuw.js → p-SKH0G2nM.js} +16 -16
- package/dist/components/{p-PvCKCYuw.js.map → p-SKH0G2nM.js.map} +1 -1
- package/dist/components/{p-Db3kxVe2.js → p-bC64Ng59.js} +3 -3
- package/dist/components/{p-Db3kxVe2.js.map → p-bC64Ng59.js.map} +1 -1
- package/dist/components/{p-BorT6g39.js → p-sHDCqDbD.js} +5 -5
- package/dist/components/{p-BorT6g39.js.map → p-sHDCqDbD.js.map} +1 -1
- package/dist/components/{p-0iJh9Z6m.js → p-vNnVlsJt.js} +4 -4
- package/dist/components/{p-0iJh9Z6m.js.map → p-vNnVlsJt.js.map} +1 -1
- package/dist/esm/{index-IhpPa9g4.js → index-BAbkwyRx.js} +187 -108
- package/dist/esm/index-BAbkwyRx.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/kritzel-color_22.entry.js +186 -148
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-BAbkwyRx.js +2 -0
- package/dist/stencil/p-BAbkwyRx.js.map +1 -0
- package/dist/stencil/p-fe465059.entry.js +2 -0
- package/dist/stencil/p-fe465059.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +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/components/core/kritzel-engine/kritzel-engine.d.ts +1 -0
- package/dist/types/components.d.ts +2 -2
- package/dist/types/interfaces/engine-state.interface.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/index-CYkadfjX.js.map +0 -1
- package/dist/components/p-BgpsMYcw.js.map +0 -1
- package/dist/components/p-D554MPA9.js.map +0 -1
- package/dist/components/p-Di5CEwzQ.js.map +0 -1
- package/dist/esm/index-IhpPa9g4.js.map +0 -1
- package/dist/stencil/p-32ac435d.entry.js +0 -2
- package/dist/stencil/p-32ac435d.entry.js.map +0 -1
- package/dist/stencil/p-IhpPa9g4.js +0 -2
- package/dist/stencil/p-IhpPa9g4.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,h as e,H as i,c as s,g as o}from"./p-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-IhpPa9g4.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 E=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"}})))}};E.style=B;const T=":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=T;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 V{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 _=":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=V.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=_;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:"Edit",icon:"pen",visible:(t,e)=>e.length===1&&e[0].isEditable,action:(t,e)=>{if(e.length===1){const t=e[0];if(t.isEditable){t.edit()}}}},{label:"Copy",icon:"copy",action:()=>this.engineRef.copy()},{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,action:(t,e)=>this.engineRef.paste(t.x,t.y)},{label:"Delete",icon:"delete",action:()=>this.engineRef.delete()},{label:"Bring to Front",icon:"bring-to-front",action:()=>this.engineRef.bringToFront()},{label:"Send to Back",icon:"send-to-back",action:()=>this.engineRef.sendToBack()}];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=V.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:"17c4e1ce489a5cd359972e67105019ad64703b19"},e("kritzel-workspace-manager",{key:"963f62afe326d33eccdabda804bc3e260aafc306",workspaces:this.workspaces,activeWorkspace:this.activeWorkspace,onWorkspaceChange:t=>this.activeWorkspace=t.detail,onIsWorkspaceManagerReady:()=>this.isWorkspaceManagerReady=true}),e("kritzel-engine",{key:"f60f67d06ce73f5f86716fc0ec68408c71100d82",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:"1dc25c1bbb50978cfac3cdaa2d3ae0a32ca7c4f7",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,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(V.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)}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:"54dce5fe3011a15e4cf77b1daecf578dd0402c67"},e("div",{key:"569c4253054b6c6e84059175716f180a76fd8a04",class:"debug-panel",style:{display:this.core.store.state.debugInfo.showViewportInfo?"block":"none"}},e("div",{key:"ff87fd8f171e46d211d92709d3141ad884ce0253"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"f43f53b4fc28ae9a7fe7e240635a3f410daaa72c"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"e2c45f541e0626a6ea1d5a36047fb2144eabf612"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"f7897dde7e2a0b3be1c73342523db9f0c361bdb9"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"8f6be6752c49f033eabfd63f1533666e4a4d3c15"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"26b96ecc0d184d9d224cfb14426503415a00a9ef"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"7275251e13cb83b670b944d6ce22015525247b83"},"Scale: ",this.core.store.state?.scale),e("div",{key:"f1f071ce637abd91639c0e6d0809d0493ff649e9"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"fbc6e5cc3fad57cbd54b821f9aa1b68b213447a0"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"ced900e880436a03d5490d818b10f079df3e2ed6"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"ffb1c5e0310d246f04e747df85dcfde58c81d83f"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"5ad7bc9e7957f071400cc997613ec080b6484b8e"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"42d93051cb0ea2e24ef549abbffcc720dd62efa8"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"78a54f7df911c0721fed70be15ccbefae5d99b33"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"e4c4ca2b3f5429a5f9378122a5bfc380eea82cc6"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"1947034670be8512d3654e104c7ea62bf70f207f"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"ecca8afceda81c4817db3e91f5bc4837056c4de0"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"1ca1d5cac7421442851f35574bd7765d850399f9"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"1e388d4dd59026dff761a598838b5bd10843d177"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"2c2b28eb4a9d293dd8d5d98a072f4bbeb7d0349c"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"e41abf270f34643902a0a8d049dad405ead68321"},"SelectedObjects: ",this.core.store.state.selectionGroup?.objects.length||0)),e("div",{key:"e2ed793fac7f3f289daa962042e05e4fd8f44d3b",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:V.isFirefox()?t.backgroundColor:"transparent",borderWidth:V.isFirefox()?t.borderWidth+"px":"0",borderStyle:V.isFirefox()?"solid":"none",borderColor:V.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:"2070b03bfd123024e7075da1a969960cf8b37628",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:"3fc8fc5b1a75bd119effcf5b8f454e18b9c97fc6",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:"11612f7439e34cf20843f5ab63b19d5ef07847d7",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(V.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=V.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=V.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 Et=768;const Tt=class{constructor(e){t(this,e);this.tooltipClosed=s(this,"tooltipClosed")}get host(){return o(this)}isVisible=false;anchorElement;arrowSize=8;offsetY=24;tooltipClosed;positionX=0;arrowOffset="0px";isMobileView=window.innerWidth<Et;handleOutsideClick(t){if(!this.isVisible)return;const e=t.target;if(!this.host.contains(e)){this.tooltipClosed.emit()}}handleWindowResize(){this.isMobileView=window.innerWidth<Et;this.calculateAdjustedPosition()}async focusContent(){const t=Ct.getFocusableElements(this.host);if(t.length>0){t[0].focus()}}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.isMobileView=window.innerWidth<Et;this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements()||[];if(e.length>0){const t=e[0];t.focus()}}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect();const e=this.host.shadowRoot?.querySelector(".tooltip-content");if(!this.isMobileView){this.positionX=t.left+t.width/2;this.arrowOffset=`calc(${50}% - ${this.arrowSize}px)`}else{const i=e.getBoundingClientRect();this.positionX=t.left+t.width/2-i.width/2;this.arrowOffset=`${t.left+t.width/2-i.left-this.arrowSize}px`}}}render(){return e(i,{key:"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`}}))))}};Tt.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{E 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,Tt as kritzel_tooltip,At as kritzel_utility_panel,$t as kritzel_workspace_manager};
|
|
2
|
-
//# sourceMappingURL=p-32ac435d.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","_","isEditable","object","edit","bringToFront","sendToBack","customSvgIcons","isControlsVisible","isEngineReady","isWorkspaceManagerReady","workspaces","activeWorkspace","isVirtualKeyboardOpen","onIsEngineReady","checkIsReady","onIsControlsReady","handleTouchStart","cancelable","getObjectById","id","addObject","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","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","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","save","cancel","toggleChildMenu","closeChildMenu","handleMenuOpen","menuItems","_item","onMainButtonClick","onMenuOpen","onMenuClose"],"sources":["0"],"mappings":"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","ignoreList":[]}
|