kritzel-stencil 0.0.131 → 0.0.133
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-BwINBV6L.js → index-DCHCVnOl.js} +755 -701
- package/dist/cjs/index-DCHCVnOl.js.map +1 -0
- package/dist/cjs/index-nzUNdMPh.js +6 -2
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +32 -0
- package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +1 -0
- package/dist/cjs/{kritzel-brush-style_23.cjs.entry.js → kritzel-color_22.cjs.entry.js} +1046 -874
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/commands/add-object.command.js +6 -7
- package/dist/collection/classes/commands/add-object.command.js.map +1 -1
- package/dist/collection/classes/commands/add-selection-group.command.js +9 -9
- package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/base.command.js +3 -3
- package/dist/collection/classes/commands/base.command.js.map +1 -1
- package/dist/collection/classes/commands/batch.command.js +2 -2
- package/dist/collection/classes/commands/batch.command.js.map +1 -1
- package/dist/collection/classes/commands/move-selection-group.command.js +15 -7
- package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/remove-object.command.js +8 -9
- package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
- package/dist/collection/classes/commands/remove-selection-group.command.js +7 -7
- package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/resize-selection-group.command.js +15 -7
- package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/rotate-selection-group.command.js +14 -12
- package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/update-object.command.js +6 -5
- package/dist/collection/classes/commands/update-object.command.js.map +1 -1
- package/dist/collection/classes/commands/update-viewport.command.js +11 -11
- package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
- package/dist/collection/classes/{store.class.js → core/core.class.js} +116 -145
- package/dist/collection/classes/core/core.class.js.map +1 -0
- package/dist/collection/classes/{database.class.js → core/database.class.js} +28 -20
- package/dist/collection/classes/core/database.class.js.map +1 -0
- package/dist/collection/classes/core/history.class.js +88 -0
- package/dist/collection/classes/core/history.class.js.map +1 -0
- package/dist/collection/classes/{reviver.class.js → core/reviver.class.js} +27 -23
- package/dist/collection/classes/core/reviver.class.js.map +1 -0
- package/dist/collection/classes/core/store.class.js +51 -0
- package/dist/collection/classes/core/store.class.js.map +1 -0
- package/dist/collection/classes/core/viewport.class.js +165 -0
- package/dist/collection/classes/core/viewport.class.js.map +1 -0
- package/dist/collection/classes/core/workspace.class.js +42 -0
- package/dist/collection/classes/core/workspace.class.js.map +1 -0
- package/dist/collection/classes/handlers/base.handler.js +4 -4
- package/dist/collection/classes/handlers/base.handler.js.map +1 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +29 -19
- package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
- package/dist/collection/classes/handlers/hover.handler.js +5 -5
- package/dist/collection/classes/handlers/hover.handler.js.map +1 -1
- package/dist/collection/classes/handlers/key.handler.js +38 -44
- package/dist/collection/classes/handlers/key.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +49 -44
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/resize.handler.js +55 -60
- package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +59 -69
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +73 -72
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +30 -17
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/custom-element.class.js +3 -3
- package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
- package/dist/collection/classes/objects/image.class.js +5 -5
- package/dist/collection/classes/objects/image.class.js.map +1 -1
- package/dist/collection/classes/objects/path.class.js +7 -7
- package/dist/collection/classes/objects/path.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-box.class.js +4 -4
- package/dist/collection/classes/objects/selection-box.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-group.class.js +19 -20
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +13 -13
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/registries/tool.registry.js +2 -2
- package/dist/collection/classes/registries/tool.registry.js.map +1 -1
- package/dist/collection/classes/tools/base-tool.class.js +11 -5
- package/dist/collection/classes/tools/base-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/brush-tool.class.js +57 -53
- package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +26 -26
- package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/image-tool.class.js +11 -11
- package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +39 -37
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +37 -37
- package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +28 -28
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +7 -9
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +177 -7
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +237 -232
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +1 -1
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +1 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +1 -1
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +5 -0
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +3 -3
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +1 -1
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +12 -12
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +1 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +1 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +1 -0
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +1 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +5 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +2 -2
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +18 -7
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +24 -9
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +1 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +4 -42
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +0 -4
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +52 -10
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +4 -0
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +79 -7
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +1 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +47 -15
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +4 -0
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +6 -6
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +1 -1
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +1 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +12 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +23 -7
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +5 -0
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +1 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +25 -15
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
- package/dist/collection/configs/default-engine-state.js +0 -1
- package/dist/collection/configs/default-engine-state.js.map +1 -1
- package/dist/collection/helpers/devices.helper.js +20 -0
- package/dist/collection/helpers/devices.helper.js.map +1 -1
- package/dist/collection/helpers/event.helper.js +1 -5
- package/dist/collection/helpers/event.helper.js.map +1 -1
- package/dist/collection/helpers/html.helper.js +29 -0
- package/dist/collection/helpers/html.helper.js.map +1 -1
- package/dist/collection/helpers/object.helper.js +0 -14
- package/dist/collection/helpers/object.helper.js.map +1 -1
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interfaces/clonable.interface.js +2 -0
- package/dist/collection/interfaces/clonable.interface.js.map +1 -0
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/collection/interfaces/serializable.interface.js.map +1 -1
- package/dist/collection/types/deep-readonly.type.js +2 -0
- package/dist/collection/types/deep-readonly.type.js.map +1 -0
- package/dist/components/index.js +3 -3
- package/dist/components/kritzel-brush-style.js +59 -1
- package/dist/components/kritzel-brush-style.js.map +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-context-menu.js +1 -1
- package/dist/components/kritzel-control-brush-config.js +1 -1
- package/dist/components/kritzel-control-text-config.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-cursor-trail.js +1 -1
- package/dist/components/kritzel-dropdown.js +1 -1
- package/dist/components/kritzel-editor.js +80 -37
- 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-icon.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-CMJ3P0Vw.js → p-0iJh9Z6m.js} +5 -5
- package/dist/components/p-0iJh9Z6m.js.map +1 -0
- package/dist/components/p-B0kd2rUI.js +16 -0
- package/dist/components/p-B0kd2rUI.js.map +1 -0
- package/dist/components/{p-BB5R2k1o.js → p-B3LGnqFz.js} +41 -31
- package/dist/components/p-B3LGnqFz.js.map +1 -0
- package/dist/components/{p-BB0_-X42.js → p-B7kZ1_RH.js} +4 -4
- package/dist/components/{p-BB0_-X42.js.map → p-B7kZ1_RH.js.map} +1 -1
- package/dist/components/{p-t4NIsuX9.js → p-B7w19kIk.js} +15 -27
- package/dist/components/p-B7w19kIk.js.map +1 -0
- package/dist/components/{p-B1BLgWL1.js → p-BGdsAz54.js} +27 -18
- package/dist/components/p-BGdsAz54.js.map +1 -0
- package/dist/components/{p-CGmS8wnN.js → p-BKvOO7NT.js} +26 -16
- package/dist/components/p-BKvOO7NT.js.map +1 -0
- package/dist/components/{p-BhiYvSBc.js → p-BM9IjvnD.js} +3 -3
- package/dist/components/p-BM9IjvnD.js.map +1 -0
- package/dist/components/{p-BrBQUN0Q.js → p-BPsQrpzN.js} +40 -11
- package/dist/components/p-BPsQrpzN.js.map +1 -0
- package/dist/components/p-C6qB08BS.js +68 -0
- package/dist/components/p-C6qB08BS.js.map +1 -0
- package/dist/components/{p-BPz_H-EG.js → p-CM8KdFZI.js} +28 -16
- package/dist/components/p-CM8KdFZI.js.map +1 -0
- package/dist/components/{p-DHSEK3rF.js → p-CNTK3JOp.js} +174 -153
- package/dist/components/p-CNTK3JOp.js.map +1 -0
- package/dist/components/{p-DMrtdhBD.js → p-CsyM5q2M.js} +7 -7
- package/dist/components/p-CsyM5q2M.js.map +1 -0
- package/dist/components/{p-BuewJQNl.js → p-CwH-bwjb.js} +1187 -1141
- package/dist/components/p-CwH-bwjb.js.map +1 -0
- package/dist/components/{p-BgmKrd5Z.js → p-DCx3703u.js} +5 -5
- package/dist/components/p-DCx3703u.js.map +1 -0
- package/dist/components/{p-trncBp_6.js → p-DFO-6kuA.js} +15 -15
- package/dist/components/p-DFO-6kuA.js.map +1 -0
- package/dist/components/{p-BubxwvMA.js → p-Db3kxVe2.js} +24 -24
- package/dist/components/p-Db3kxVe2.js.map +1 -0
- package/dist/components/{p-BexTdWaX.js → p-Ddlbt3Bj.js} +4 -4
- package/dist/components/p-Ddlbt3Bj.js.map +1 -0
- package/dist/components/{p-CHxPWeZd.js → p-DjU7p3od.js} +11 -11
- package/dist/components/{p-CHxPWeZd.js.map → p-DjU7p3od.js.map} +1 -1
- package/dist/components/{p-BeljsQ-8.js → p-Dw4n-4zp.js} +32 -17
- package/dist/components/p-Dw4n-4zp.js.map +1 -0
- package/dist/components/{p-DxTu1aoJ.js → p-NP1Htol7.js} +7 -45
- package/dist/components/p-NP1Htol7.js.map +1 -0
- package/dist/components/p-YqK8ch2R.js +46 -0
- package/dist/components/p-YqK8ch2R.js.map +1 -0
- package/dist/components/p-l10It7Nm.js +30 -0
- package/dist/components/p-l10It7Nm.js.map +1 -0
- package/dist/components/{p-p1Jkec_q.js → p-sq9jgfX0.js} +3 -3
- package/dist/components/p-sq9jgfX0.js.map +1 -0
- package/dist/components/{p-yZ48g7-u.js → p-sreNwi0N.js} +4 -4
- package/dist/components/{p-yZ48g7-u.js.map → p-sreNwi0N.js.map} +1 -1
- package/dist/esm/{index-B-oSk-v8.js → index-DY3KqYWc.js} +756 -702
- package/dist/esm/index-DY3KqYWc.js.map +1 -0
- package/dist/esm/index-oCOlsFCN.js +6 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/kritzel-brush-style.entry.js +30 -0
- package/dist/esm/kritzel-brush-style.entry.js.map +1 -0
- package/dist/esm/{kritzel-brush-style_23.entry.js → kritzel-color_22.entry.js} +1048 -875
- 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/kritzel-brush-style.entry.esm.js.map +1 -0
- package/dist/stencil/p-25d1e040.entry.js +2 -0
- package/dist/stencil/p-25d1e040.entry.js.map +1 -0
- package/dist/stencil/p-DY3KqYWc.js +2 -0
- package/dist/stencil/p-DY3KqYWc.js.map +1 -0
- package/dist/stencil/p-dc534b01.entry.js +2 -0
- package/dist/stencil/p-dc534b01.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/commands/add-object.command.d.ts +2 -2
- package/dist/types/classes/commands/add-selection-group.command.d.ts +2 -1
- package/dist/types/classes/commands/base.command.d.ts +3 -3
- package/dist/types/classes/commands/batch.command.d.ts +2 -1
- package/dist/types/classes/commands/move-selection-group.command.d.ts +2 -1
- package/dist/types/classes/commands/remove-object.command.d.ts +2 -2
- package/dist/types/classes/commands/remove-selection-group.command.d.ts +2 -2
- package/dist/types/classes/commands/resize-selection-group.command.d.ts +2 -1
- package/dist/types/classes/commands/rotate-selection-group.command.d.ts +2 -1
- package/dist/types/classes/commands/update-object.command.d.ts +2 -2
- package/dist/types/classes/commands/update-viewport.command.d.ts +2 -1
- package/dist/types/classes/{store.class.d.ts → core/core.class.d.ts} +9 -19
- package/dist/types/classes/{database.class.d.ts → core/database.class.d.ts} +3 -2
- package/dist/types/classes/{history.class.d.ts → core/history.class.d.ts} +5 -5
- package/dist/types/classes/core/reviver.class.d.ts +6 -0
- package/dist/types/classes/core/store.class.d.ts +17 -0
- package/dist/types/classes/{viewport.class.d.ts → core/viewport.class.d.ts} +3 -3
- package/dist/types/classes/core/workspace.class.d.ts +24 -0
- package/dist/types/classes/handlers/base.handler.d.ts +3 -3
- package/dist/types/classes/handlers/context-menu.handler.d.ts +2 -2
- package/dist/types/classes/handlers/hover.handler.d.ts +2 -2
- package/dist/types/classes/handlers/key.handler.d.ts +2 -2
- package/dist/types/classes/handlers/move.handler.d.ts +4 -2
- package/dist/types/classes/handlers/resize.handler.d.ts +3 -2
- package/dist/types/classes/handlers/rotation.handler.d.ts +6 -2
- package/dist/types/classes/handlers/selection.handler.d.ts +2 -2
- package/dist/types/classes/objects/base-object.class.d.ts +8 -5
- package/dist/types/classes/objects/custom-element.class.d.ts +2 -2
- package/dist/types/classes/objects/image.class.d.ts +2 -2
- package/dist/types/classes/objects/path.class.d.ts +2 -2
- package/dist/types/classes/objects/selection-box.class.d.ts +2 -2
- package/dist/types/classes/objects/selection-group.class.d.ts +2 -2
- package/dist/types/classes/objects/text.class.d.ts +2 -2
- package/dist/types/classes/registries/tool.registry.d.ts +2 -2
- package/dist/types/classes/tools/base-tool.class.d.ts +8 -4
- package/dist/types/classes/tools/brush-tool.class.d.ts +2 -2
- package/dist/types/classes/tools/eraser-tool.class.d.ts +2 -2
- package/dist/types/classes/tools/image-tool.class.d.ts +2 -2
- package/dist/types/classes/tools/selection-tool.class.d.ts +2 -2
- package/dist/types/classes/tools/text-tool.class.d.ts +2 -2
- package/dist/types/components/core/kritzel-cursor-trail/kritzel-cursor-trail.d.ts +5 -5
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +13 -3
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +21 -22
- package/dist/types/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +2 -2
- package/dist/types/components/shared/kritzel-menu-item/kritzel-menu-item.d.ts +2 -0
- package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +0 -1
- package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +4 -2
- package/dist/types/components/shared/kritzel-tooltip/kritzel-tooltip.d.ts +8 -2
- package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +5 -3
- package/dist/types/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.d.ts +1 -1
- package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +3 -1
- package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +3 -2
- package/dist/types/components.d.ts +41 -12
- package/dist/types/helpers/devices.helper.d.ts +4 -0
- package/dist/types/helpers/event.helper.d.ts +1 -1
- package/dist/types/helpers/html.helper.d.ts +1 -0
- package/dist/types/helpers/object.helper.d.ts +0 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interfaces/clonable.interface.d.ts +3 -0
- package/dist/types/interfaces/engine-state.interface.d.ts +1 -2
- package/dist/types/interfaces/serializable.interface.d.ts +2 -1
- package/dist/types/types/deep-readonly.type.d.ts +7 -0
- package/package.json +3 -2
- package/dist/cjs/index-BwINBV6L.js.map +0 -1
- package/dist/collection/classes/database.class.js.map +0 -1
- package/dist/collection/classes/history.class.js +0 -88
- package/dist/collection/classes/history.class.js.map +0 -1
- package/dist/collection/classes/reviver.class.js.map +0 -1
- package/dist/collection/classes/store.class.js.map +0 -1
- package/dist/collection/classes/viewport.class.js +0 -153
- package/dist/collection/classes/viewport.class.js.map +0 -1
- package/dist/collection/classes/workspace.class.js +0 -15
- package/dist/collection/classes/workspace.class.js.map +0 -1
- package/dist/components/p-B1BLgWL1.js.map +0 -1
- package/dist/components/p-BB5R2k1o.js.map +0 -1
- package/dist/components/p-BPz_H-EG.js.map +0 -1
- package/dist/components/p-B_lb1FGi.js +0 -19
- package/dist/components/p-B_lb1FGi.js.map +0 -1
- package/dist/components/p-BeljsQ-8.js.map +0 -1
- package/dist/components/p-BexTdWaX.js.map +0 -1
- package/dist/components/p-BgmKrd5Z.js.map +0 -1
- package/dist/components/p-BhiYvSBc.js.map +0 -1
- package/dist/components/p-BrBQUN0Q.js.map +0 -1
- package/dist/components/p-BubxwvMA.js.map +0 -1
- package/dist/components/p-BuewJQNl.js.map +0 -1
- package/dist/components/p-CGmS8wnN.js.map +0 -1
- package/dist/components/p-CJKA5zIE.js +0 -10
- package/dist/components/p-CJKA5zIE.js.map +0 -1
- package/dist/components/p-CMJ3P0Vw.js.map +0 -1
- package/dist/components/p-DHSEK3rF.js.map +0 -1
- package/dist/components/p-DMrtdhBD.js.map +0 -1
- package/dist/components/p-DnUKql15.js +0 -30
- package/dist/components/p-DnUKql15.js.map +0 -1
- package/dist/components/p-DxTu1aoJ.js.map +0 -1
- package/dist/components/p-p1Jkec_q.js.map +0 -1
- package/dist/components/p-rIRXQdie.js +0 -64
- package/dist/components/p-rIRXQdie.js.map +0 -1
- package/dist/components/p-t4NIsuX9.js.map +0 -1
- package/dist/components/p-trncBp_6.js.map +0 -1
- package/dist/esm/index-B-oSk-v8.js.map +0 -1
- package/dist/stencil/p-3bb80782.entry.js +0 -2
- package/dist/stencil/p-3bb80782.entry.js.map +0 -1
- package/dist/stencil/p-B-oSk-v8.js +0 -2
- package/dist/stencil/p-B-oSk-v8.js.map +0 -1
- package/dist/types/classes/reviver.class.d.ts +0 -6
- package/dist/types/classes/workspace.class.d.ts +0 -16
|
@@ -0,0 +1,2 @@
|
|
|
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 v,B as y,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-DY3KqYWc.js";const B=":host{display:flex}.checkerboard-bg{background:repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;position:relative;overflow:hidden}.color-circle{width:24px;height:24px;border-radius:50%;box-sizing:border-box;display:block}.color-circle.white{border:1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc)}";const T=class{constructor(e){t(this,e)}value;size=24;isLightColor(t){if(!t)return false;let e=0,i=0,s=0;let o=t.startsWith("#")?t.slice(1):t;if(o.length===3){e=parseInt(o[0]+o[0],16);i=parseInt(o[1]+o[1],16);s=parseInt(o[2]+o[2],16)}else if(o.length===6){e=parseInt(o.substring(0,2),16);i=parseInt(o.substring(2,4),16);s=parseInt(o.substring(4,6),16)}else{return false}if(isNaN(e)||isNaN(i)||isNaN(s)){return false}const n=.299*e+.587*i+.114*s;return n>220}render(){const t=this.isLightColor(this.value);return e(i,{key:"198dba41e1600d76faace18de78191d2b7a551ec"},e("div",{key:"ee690cffb7925e09cb2c51022eec607247a4849f",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},e("div",{key:"66cc8df8fabd008db8c00942994875e3e8d722ce",class:{"color-circle":true,white:t},style:{backgroundColor:this.value,width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",position:"absolute",top:"0",left:"0",display:"inline-block"}})))}};T.style=B;const E=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;width:100%;box-sizing:border-box}.color-grid{width:100%;display:grid;grid-template-columns:repeat(6, 32px);gap:8px;justify-items:center;overflow:hidden;height:40px;transition:height 0.1s ease-in-out}.color-grid.expanded{height:500px}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.color-container:focus-visible{outline:var(--kritzel-color-palette-focus-outline, 2px auto #e3e3e3)}.color-container:hover{background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.color-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-color-palette-selected-background-color)}";const O=class{constructor(e){t(this,e);this.colorChange=s(this,"colorChange")}colors=[];selectedColor=null;isExpanded=false;isOpaque=false;colorChange;handleColorClick(t){this.selectedColor=t;this.colorChange.emit(t)}calculateHeight(){const t=6;const e=32;const i=8;const s=Math.ceil(this.colors.length/t);return`${s*e+(s-1)*i}px`}render(){const t=this.isExpanded?this.colors:this.colors.slice(0,6);const s=this.isExpanded?this.calculateHeight():"32px";return e(i,{key:"2ead7cd530ce181856e5f582f086a22a1fe69390"},e("div",{key:"fcc75b267f36e271d50615bfde42a29c28aa2536",class:{"color-grid":true,expanded:this.isExpanded},style:{height:s}},t.map((t=>e("div",{tabIndex:0,class:{"color-container":true,selected:this.selectedColor===t},onClick:()=>this.handleColorClick(t)},e("kritzel-color",{value:t}))))))}};O.style=E;const A=":host{display:block}.menu-container{display:flex;flex-direction:column;background-color:var(--kritzel-context-menu-background-color, #ffffff);border-radius:var(--kritzel-context-menu-border-radius, 12px);box-shadow:var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));border:var(--kritzel-context-menu-border, 1px solid #ebebeb);padding:var(--kritzel-context-menu-padding,4px)}.menu-item{display:flex;align-items:center;gap:var(--kritzel-context-menu-item-gap, 8px);background:none;border:none;text-align:left;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 12px);cursor:pointer;font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);white-space:nowrap;-webkit-tap-highlight-color:transparent}.menu-item:not(.disabled):hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa);cursor:default}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.label{flex-grow:1}";const W=class{constructor(e){t(this,e);this.actionSelected=s(this,"actionSelected");this.close=s(this,"close")}get host(){return o(this)}items;onItemsChanged(){this.updateMenuItems()}objects;actionSelected;close;processedItems=[];handleOutsideClick(t){t.preventDefault();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:"ff72bd31f6c0f3193674710bccab829f14e011d3"},e("div",{key:"80cd7a99dc9bb1fb9ec4edb09a9bacde70dde7c3",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",tool:l,icon:"cursor"},{name:"brush",type:"tool",tool:n,icon:"pen",isDefault:true,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);this._core.rerender()}),300)}handlePan(t){this._core.store.setState("isPanning",true);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);setTimeout((()=>{this._core.store.setState("isPanning",false);this._core.rerender()}),300)}}class Q extends g{constructor(t){super(t)}handleKeyDown(t){this._core.store.setState("isCtrlKeyPressed",t.ctrlKey);if(this._core.store.state.isCtrlKeyPressed){t.preventDefault()}if(t.key==="Escape"&&this._core.store.state.selectionGroup){this._core.clearSelection()}if(t.key==="Delete"&&this._core.store.state.selectionGroup){this._core.delete()}if(t.key==="z"&&t.ctrlKey){this._core.history.undo()}if(t.key==="y"&&t.ctrlKey){this._core.history.redo()}if(t.key==="s"&&t.ctrlKey){this._core.store.setState("activeTool",k.getTool("selection"));this._core.deselectAllObjects()}if(t.key==="b"&&t.ctrlKey){this._core.store.setState("activeTool",k.getTool("brush"));this._core.deselectAllObjects()}if(t.key==="e"&&t.ctrlKey){this._core.store.setState("activeTool",k.getTool("eraser"));this._core.deselectAllObjects()}if(t.key==="i"&&t.ctrlKey){this._core.store.setState("activeTool",k.getTool("image"));this._core.deselectAllObjects()}if(t.key==="x"&&t.ctrlKey){this._core.store.setState("activeTool",k.getTool("text"));this._core.deselectAllObjects()}if(t.key==="c"&&t.ctrlKey&&this._core.store.state.selectionGroup){this._core.copy();this._core.rerender()}if(t.key==="v"&&t.ctrlKey&&this._core.store.state.copiedObjects){this._core.paste()}if(t.key==="+"&&t.ctrlKey&&this._core.store.state.selectionGroup){this._core.bringForward()}if(t.key==="-"&&t.ctrlKey&&this._core.store.state.selectionGroup){this._core.sendBackward()}if(t.key==="*"&&t.shiftKey&&this._core.store.state.selectionGroup){this._core.bringToFront()}if(t.key==="_"&&t.shiftKey&&this._core.store.state.selectionGroup){this._core.sendToBack()}if(t.key==="a"&&t.ctrlKey&&this._core.store.state.activeText){this._core.store.state.activeText.selectAll()}if(t.key==="v"&&t.ctrlKey&&this._core.store.state.activeText){this._core.store.state.activeText.insertFromClipboard()}}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 v)){const t=v.create(this._core);t.addOrRemove(e);t.isSelected=true;t.rotation=e.rotation;this._core.store.setState("isSelecting",false);const i=new y(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.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 v)&&!(t instanceof z))).length}get allObjects(){return this._state.objectsMap.allObjects()}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof v))).filter((t=>t.isSelected))}get offsetX(){return this._state.host.getBoundingClientRect().left}get offsetY(){return this._state.host.getBoundingClientRect().top}get isDisabled(){return this._state.isEnabled===false||this._state.isReady===false||this._state.activeWorkspace===null}constructor(t){this._state=t;this._state.objectsMap=new at}onStateChange(t,e){if(!this._listeners.has(t)){this._listeners.set(t,new Set)}this._listeners.get(t).add(e)}getState(t){return this._state[t]}setState(t,e){const i=this._state[t];if(i!==e){this._state[t]=e;if(this._listeners.has(t)){this._listeners.get(t).forEach((s=>s(e,i,String(t))))}}}}class ct{_kritzelEngine;_store;_history;_database;get engine(){return this._kritzelEngine}get history(){return this._history}get database(){return this._database}get store(){return this._store}constructor(t){this._kritzelEngine=t;this._store=new lt(it);this._history=new rt(this);this._database=new st("kritzelDB",1,this._store.state.debugInfo.logDatabase)}async initializeDatabase(){await this._database.open([{name:"objects",options:{keyPath:["workspaceId","id"]}},{name:"workspaces",options:{keyPath:"id"}}]);this.rerender()}async initializeWorkspace(t){const e=await this.getWorkspaces();const i=[...e].sort(((t,e)=>e.updatedAt.getTime()-t.updatedAt.getTime()))[0];const s=new f(C.generateUUID(),"New Workspace");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 y(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=[];if(this._store.state.selectionGroup!==null){n.push(new w(this,this._store.state.selectionGroup))}const r=this._store.state.copiedObjects.objects.map((t=>new S(this,this,t)));const a=new x(this,this,this._store.state.copiedObjects);n.push(...r,a);this.history.executeCommand(new y(this,this,n));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 y(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 y(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 y(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 y(this,this,s))}selectObjects(t){if(t.length===0){return}const e=v.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this._store.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 v)&&!(t instanceof z)&&!(t instanceof W)));if(t.length>0){const e=v.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;this._store.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)}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){this.keyHandler.handleKeyDown(t)}handleKeyUp(t){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.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:"da47553aad7abf8b5daab177c6933a9177b91089"},e("div",{key:"4e64b43bfb85a61154d36ca8ecd3518d61445d50",class:"debug-panel",style:{display:this.core.store.state.debugInfo.showViewportInfo?"block":"none"}},e("div",{key:"21742da9258a2b929b81c0ca6c8f37f41b228ad4"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"de31fcf57b0faf8fad2bb39336eeea35dbec35ca"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"a2cb298a867f92349b5e1fb556ee5f9c6110f1c7"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"28697bfcecf9f8b4b1972a90cd02855767433047"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"7fb25f6e9c9b8dea11832dbd311d2cc0b981cbeb"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"92aeade312b3d28e4c9b0e1c7ca55f6932fd23d9"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"a4fd8090acaf094e44fdc2e72fcc388695b412c4"},"Scale: ",this.core.store.state?.scale),e("div",{key:"6ff28100b64bafdffcb8fe9d49cd041a6a374817"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"12a61ad3d070563eb721d0d4068143962914b2bc"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"437309daa2af1a64c9b9d3548fe12e075dd4a8bd"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"e6841095c220ebf081604c548729f085ec9d17bd"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"b07316a528782f7560c2e42f7bd9edd473cc256c"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"7160a5aa21c4cdbf2b523f620c819ad541a2e466"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"9ad29a686bc76b47d4c5040121b468428ade437a"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"68f240aa7d7188996647afd0df73d63a253e18a1"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"260010c089bdf0e8fd8c2406c39394ef79a85262"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"6b07975c781801b0a7d7727d0666a6765aa9e889"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"83c949c9ed26c3d445421ba1f965a742f5fc149f"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"1687122785d3370da5d91a975dd56f11aebc81c1"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"a28e152a0510c9e3eef5624de1b5512baf45b37c"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"09e5a0157002fe95a46415d32a3eb17be8d959a9"},"SelectedObjects: ",this.core.store.state.selectionGroup?.objects.length||0)),e("div",{key:"5228fbae773f30d91b129c257ef08adca10a6a70",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:"6dedb398968d275166e042660c4718635b57da84",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:"09ae0d7842918bcb4ae9fd16d416badc19942264",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:"e0863ccf8c52ebef822827d8eeac62d3619134ca",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 vt=":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 yt=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}))}};yt.style=vt;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 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:"d971df2bd948b07f7bf2abc589c226d57891d05e",tabIndex:0,onClick:t=>t.stopPropagation()},this.openChildMenuItem&&e("div",{key:"dfa6846429aac15a5912b87acd45610663200a3e",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()}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:"a994d8ab8c758bc92836693f35f8d9415913cfff",style:{display:this.anchor?"block":"none"}},e("slot",{key:"a9b9a71d82e9b57de24e5ecfa90197a27ed691c4"}))}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;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()};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)};render(){return e(i,{key:"2521559224e78ed1984446320a1601e77ccf2843",class:{mobile:this.isTouchDevice}},e("button",{key:"a924ad4590506cb5209ef9fa1babca5312ec0513",class:"split-main-button",tabIndex:0,onClick:this.handleButtonClick,disabled:this.mainButtonDisabled},this.buttonIcon&&e("kritzel-icon",{key:"214565d158d4d3c06ad883559aa7bac2827a593f",name:this.buttonIcon})),e("div",{key:"2f7d189c46c08227c3006d226a0ee3065f241bf4",class:"split-divider"}),e("button",{key:"4d6e2e224e3719fe3685ee289af94680c120abf6",ref:t=>this.splitMenuButtonRef=t,class:"split-menu-button",tabIndex:0,onClick:this.toggleMenu,disabled:this.menuButtonDisabled},e("kritzel-icon",{key:"bc8176681dfedde9d13b9af561d8bdff8613098f",name:this.dropdownIcon})),e("kritzel-portal",{key:"afb44cd208f52350cbc82e050d6dee0ba734391d",anchor:this.anchorElement,offsetY:4,onClose:this.closeMenu},e("kritzel-menu",{key:"b28f04138daa8777e6c9b2aa7fa3b5f2f62fd914",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})))}};St.style=Mt;const jt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.size-container:focus-visible{outline:var(--kritzel-stroke-size-focus-outline, 2px auto #e3e3e3)}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}";const Dt=class{constructor(e){t(this,e);this.sizeChange=s(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(i,{key:"001a0ef8408d19532b57a521929c0cba54e99c52"},this.sizes.map((t=>e("div",{tabIndex:0,class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-color",{value:"#000000",size:t})))))}};Dt.style=jt;const Bt=":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}";const Tt=768;const Et=class{constructor(e){t(this,e);this.tooltipClosed=s(this,"tooltipClosed")}get host(){return o(this)}isVisible=false;anchorElement;arrowSize=8;offsetY=24;tooltipClosed;positionX=0;arrowOffset="0px";isMobileView=window.innerWidth<Tt;handleOutsideClick(t){if(!this.isVisible)return;const e=t.target;if(!this.host.contains(e)){this.tooltipClosed.emit()}}handleWindowResize(){this.isMobileView=window.innerWidth<Tt;this.calculateAdjustedPosition()}async focusContent(){const t=Ct.getFocusableElements(this.host);if(t.length>0){t[0].focus()}}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.isMobileView=window.innerWidth<Tt;this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements()||[];if(e.length>0){const t=e[0];t.focus()}}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect();const e=this.host.shadowRoot?.querySelector(".tooltip-content");if(!this.isMobileView){this.positionX=t.left+t.width/2;this.arrowOffset=`calc(${50}% - ${this.arrowSize}px)`}else{const i=e.getBoundingClientRect();this.positionX=t.left+t.width/2-i.width/2;this.arrowOffset=`${t.left+t.width/2-i.left-this.arrowSize}px`}}}render(){return e(i,{key:"8c3aeff60625f43f129afa70367cdb7a68a4b271",style:{position:"fixed",zIndex:"9999",transition:"opacity 0.3s ease-in-out, transform 0.3s ease-in-out",visibility:this.isVisible?"visible":"hidden",left:!this.isMobileView?`${this.positionX}px`:"50%",marginBottom:`${this.offsetY+this.arrowSize}px`}},e("div",{key:"b22b606c2a836c2c9bbe21c6b470754753ccb309",class:"tooltip-content",onClick:t=>t.stopPropagation()},e("slot",{key:"783403f4b5560012c9f6bd184a8c5eb26428e148"}),e("div",{key:"bb98400edc5c6e05fd4ed2a476a5821f93964b8e",class:"tooltip-arrow-wrapper",style:{position:"fixed",left:this.arrowOffset,bottom:`-${this.arrowSize*2}px`}},e("div",{key:"850a058d635113a7870f25fa288a6447394c53ed",class:"tooltip-arrow",style:{borderLeft:`${this.arrowSize}px solid transparent`,borderRight:`${this.arrowSize}px solid transparent`,borderTop:`${this.arrowSize}px solid var(--kritzel-controls-tooltip-background-color, #ffffff)`,filter:"drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2))"}}),e("div",{key:"bbb3dc2673e2dfe4443ad80540dfc9e5a25c6c06",class:"tooltip-arrow-rect",style:{position:"relative",width:`${this.arrowSize*2}px`,height:`${this.arrowSize}px`,backgroundColor:"var(--kritzel-controls-tooltip-background-color, #ffffff)",bottom:`${this.arrowSize*2}px`}}))))}};Et.style=Bt;const Ot=":host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:rgb(226, 226, 226);width:fit-content;user-select:none}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;outline:none;background:none;cursor:pointer;color:#333333;-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:focus{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";const At=class{constructor(e){t(this,e);this.undo=s(this,"undo");this.redo=s(this,"redo");this.delete=s(this,"delete")}undo;redo;delete;handleUndo(t){if(t.cancelable){t.preventDefault();t.stopPropagation();this.undo.emit()}}handleRedo(t){t.preventDefault();t.stopPropagation();this.redo.emit()}render(){return e(i,{key:"8109ccff01374c046d057021dfbcabdc632d829f"},e("button",{key:"0d51cfb401974edf1a2a8810d2244f8a977c347f",class:"utility-button",onClick:t=>this.handleUndo(t)},e("kritzel-icon",{key:"1d13ee6bbf060402e0b1349d41b728875314e2e5",name:"undo"})),e("button",{key:"f2fe59e7c99cb1550052088b507313cfaed72f29",class:"utility-button",onClick:t=>this.handleRedo(t)},e("kritzel-icon",{key:"74bf8c20f61144ab4abc5804dcd8f39917d2c966",name:"redo"})),e("div",{key:"0c9a942e786425b32e984fefdc97b1abb5077997",class:"utility-separator"}),e("button",{key:"44ca9340c2f73212332e9b3ed93ed93b8f7c6944",class:"utility-button"},e("kritzel-icon",{key:"7b4c3d9a105e0c25b5bbc11ff1bc1cbed9833e03",name:"delete",onClick:()=>this.delete.emit()})))}};At.style=Ot;const Wt=":host{display:flex;flex-direction:column;z-index:1}";const $t=class{constructor(e){t(this,e);this.isWorkspaceManagerReady=s(this,"isWorkspaceManagerReady");this.workspaceChange=s(this,"workspaceChange")}get host(){return o(this)}activeWorkspace;workspaces=[];isWorkspaceManagerReady;workspaceChange;childMenuAnchor=null;openChildMenuItem=null;newWorkspace=null;editingItemId=null;kritzelEngineRef=null;splitButtonRef;get sortedWorkspaces(){return[this.newWorkspace,...this.workspaces].filter((t=>t!=null)).sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}async componentWillLoad(){await this.initializeEngine();this.isWorkspaceManagerReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngineRef=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngineRef){throw new Error("kritzel-engine not found in parent element.")}}async select(t,e){if(this.editingItemId){return}if(t.action){t.action(t,e);return}this.workspaceChange.emit(t.value)}async add(){await this.splitButtonRef.open();this.newWorkspace=new f(C.generateUUID(),"New Workspace");this.editingItemId=this.newWorkspace.id}edit(t){this.openChildMenuItem=null;this.childMenuAnchor=null;requestAnimationFrame((()=>{this.editingItemId=t.id}))}async save(t){if(this.newWorkspace){this.newWorkspace.name=t.label;await this.kritzelEngineRef.createWorkspace(this.newWorkspace);this.workspaceChange.emit(this.newWorkspace)}else{const e=t.value;e.name=t.label;await this.kritzelEngineRef.updateWorkspace(e)}this.editingItemId=null;this.newWorkspace=null}cancel(){this.newWorkspace=null;this.editingItemId=null}async delete(t){this.openChildMenuItem=null;this.childMenuAnchor=null;await this.kritzelEngineRef.deleteWorkspace(t.value);if(t.value.id===this.activeWorkspace?.id){this.activeWorkspace=this.sortedWorkspaces.find((e=>e.id!==t.value.id))||null;this.workspaceChange.emit(this.activeWorkspace)}await this.splitButtonRef.focusMenu()}toggleChildMenu(t,e){this.openChildMenuItem=t;this.childMenuAnchor=e}closeChildMenu(){this.openChildMenuItem=null;this.childMenuAnchor=null}handleMenuOpen(){this.kritzelEngineRef.disable()}handleMenuClose(){this.cancel();this.closeChildMenu();this.kritzelEngineRef.enable()}render(){const t=this.sortedWorkspaces.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime())).filter((t=>t!==null)).map((t=>({id:t.id,label:t.name,value:t,isEditing:this.editingItemId===t.id,isSelected:this.activeWorkspace?.id===t.id,isNewItem:this.newWorkspace?.id===t.id,isChildMenuOpen:this.openChildMenuItem?.id===t.id,childMenuAnchor:this.openChildMenuItem?.id===t.id?this.childMenuAnchor:null,children:[{id:`${t.id}-rename`,label:"Rename",value:"rename",action:(t,e)=>this.edit(e)},{id:`${t.id}-delete`,label:"Delete",value:"delete",isDisabled:this.sortedWorkspaces.length<=1,action:(t,e)=>this.delete(e)}]})));return e(i,null,e("kritzel-split-button",{ref:t=>this.splitButtonRef=t,items:t,mainButtonDisabled:this.editingItemId!=null,onMainButtonClick:()=>this.add(),onItemSelect:t=>this.select(t.detail.item,t.detail.parent),onItemToggleChildMenu:t=>this.toggleChildMenu(t.detail.item,t.detail.childMenuAnchor),onItemSave:t=>this.save(t.detail),onItemCancel:()=>this.cancel(),onItemCloseChildMenu:()=>this.closeChildMenu(),onMenuOpen:()=>this.handleMenuOpen(),onMenuClose:()=>this.handleMenuClose()}))}};$t.style=Wt;export{T as kritzel_color,O as kritzel_color_palette,W as kritzel_context_menu,R as kritzel_control_brush_config,P as kritzel_control_text_config,Y as kritzel_controls,L as kritzel_cursor_trail,H as kritzel_dropdown,Z as kritzel_editor,dt as kritzel_engine,ft as kritzel_font,bt as kritzel_font_family,kt as kritzel_font_size,yt as kritzel_icon,xt as kritzel_menu,zt as kritzel_menu_item,It as kritzel_portal,St as kritzel_split_button,Dt as kritzel_stroke_size,Et as kritzel_tooltip,At as kritzel_utility_panel,$t as kritzel_workspace_manager};
|
|
2
|
+
//# sourceMappingURL=p-dc534b01.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["registerInstance","h","Host","createEvent","getElement","KritzelBrushTool","KritzelTextTool","KritzelMouseButton","KritzelSelectionTool","DEFAULT_BRUSH_CONFIG","KritzelEraserTool","DEFAULT_TEXT_CONFIG","KritzelImageTool","KritzelWorkspace","KritzelKeyboardHelper","KritzelEventHelper","KritzelBaseHandler","KritzelToolRegistry","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","preventDefault","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","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","super","isCtrlKeyPressed","selectionGroup","history","getTool","deselectAllObjects","copiedObjects","bringForward","sendBackward","shiftKey","activeText","selectAll","insertFromClipboard","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","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","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","onActivate","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","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","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","splitMenuButtonRef","menuRef","focusMenu","handleButtonClick","toggleMenu","closeMenu","openMenu","blur","handleItemSave","handleItemCancel","handleItemToggleChildMenu","handleItemCloseChildMenu","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":[]}
|