kritzel-stencil 0.0.125 → 0.0.126
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/{components/p-BJOf0PsO.js → stencil/brush-tool.class-D1U3x9_Y.js} +51 -7
- package/dist/stencil/brush-tool.class-D1U3x9_Y.js.map +1 -0
- package/dist/{collection/configs/default-brush-tool.config.js → stencil/default-text-tool.config-DvOZmpuR.js} +38 -2
- package/dist/stencil/default-text-tool.config-DvOZmpuR.js.map +1 -0
- package/dist/stencil/engine.constants-DsjjAmnl.js +7 -0
- package/dist/stencil/engine.constants-DsjjAmnl.js.map +1 -0
- package/dist/{components/p-D8W6LE-c.js → stencil/event-button.enum-D8W6LE-c.js} +2 -2
- package/dist/stencil/event-button.enum-D8W6LE-c.js.map +1 -0
- package/dist/{collection/classes/registries/icon-registry.class.js → stencil/icon-registry.class-Bw5YkOTi.js} +6 -2
- package/dist/stencil/icon-registry.class-Bw5YkOTi.js.map +1 -0
- package/dist/stencil/image-tool.class-uKAmXFSl.js +1341 -0
- package/dist/stencil/image-tool.class-uKAmXFSl.js.map +1 -0
- package/dist/stencil/index-Df69oUcb.js +4334 -0
- package/dist/stencil/index-Df69oUcb.js.map +1 -0
- package/dist/stencil/index.esm.js +16 -1
- package/dist/stencil/index.esm.js.map +1 -1
- package/dist/stencil/kritzel-brush-style.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-brush-style.entry.js +31 -0
- package/dist/stencil/kritzel-brush-style.entry.js.map +1 -0
- package/dist/stencil/kritzel-color-palette.entry.esm.js.map +1 -0
- package/dist/{components/p-Bn5P7YQn.js → stencil/kritzel-color-palette.entry.js} +11 -37
- package/dist/stencil/kritzel-color-palette.entry.js.map +1 -0
- package/dist/stencil/kritzel-color.entry.esm.js.map +1 -0
- package/dist/{components/p-D0sLslUq.js → stencil/kritzel-color.entry.js} +11 -29
- package/dist/stencil/kritzel-color.entry.js.map +1 -0
- package/dist/{components/p-BY8BWGge.js → stencil/kritzel-context-menu-B2p1_Ffh.js} +12 -40
- package/dist/stencil/kritzel-context-menu-B2p1_Ffh.js.map +1 -0
- package/dist/stencil/kritzel-context-menu-DPHV6MRm.js +91 -0
- package/dist/stencil/kritzel-context-menu-DPHV6MRm.js.map +1 -0
- package/dist/stencil/kritzel-context-menu.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-context-menu.entry.js +5 -0
- package/dist/stencil/kritzel-context-menu.entry.js.map +1 -0
- package/dist/stencil/kritzel-control-brush-config.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-control-brush-config.entry.js +54 -0
- package/dist/stencil/kritzel-control-brush-config.entry.js.map +1 -0
- package/dist/stencil/kritzel-control-text-config.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-control-text-config.entry.js +42 -0
- package/dist/stencil/kritzel-control-text-config.entry.js.map +1 -0
- package/dist/stencil/kritzel-controls.entry.esm.js.map +1 -0
- package/dist/{components/p-CBCFr_x3.js → stencil/kritzel-controls.entry.js} +16 -116
- package/dist/stencil/kritzel-controls.entry.js.map +1 -0
- package/dist/stencil/kritzel-cursor-trail.entry.esm.js.map +1 -0
- package/dist/{components/p-Cw2ATHMj.js → stencil/kritzel-cursor-trail.entry.js} +11 -30
- package/dist/stencil/kritzel-cursor-trail.entry.js.map +1 -0
- package/dist/stencil/kritzel-dropdown.entry.esm.js.map +1 -0
- package/dist/{components/p-NZJPrwJV.js → stencil/kritzel-dropdown.entry.js} +11 -37
- package/dist/stencil/kritzel-dropdown.entry.js.map +1 -0
- package/dist/stencil/kritzel-editor.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-editor.entry.js +180 -0
- package/dist/stencil/kritzel-editor.entry.js.map +1 -0
- package/dist/stencil/kritzel-engine.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-engine.entry.js +1318 -0
- package/dist/stencil/kritzel-engine.entry.js.map +1 -0
- package/dist/stencil/kritzel-font-family.entry.esm.js.map +1 -0
- package/dist/{components/p-CF8ziFc4.js → stencil/kritzel-font-family.entry.js} +11 -35
- package/dist/stencil/kritzel-font-family.entry.js.map +1 -0
- package/dist/stencil/kritzel-font-size.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-font-size.entry.js +29 -0
- package/dist/stencil/kritzel-font-size.entry.js.map +1 -0
- package/dist/stencil/kritzel-font.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-font.entry.js +25 -0
- package/dist/stencil/kritzel-font.entry.js.map +1 -0
- package/dist/stencil/kritzel-icon.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-icon.entry.js +29 -0
- package/dist/stencil/kritzel-icon.entry.js.map +1 -0
- package/dist/stencil/kritzel-stroke-size.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-stroke-size.entry.js +28 -0
- package/dist/stencil/kritzel-stroke-size.entry.js.map +1 -0
- package/dist/stencil/kritzel-tooltip.entry.esm.js.map +1 -0
- package/dist/{components/p-DpiklJU9.js → stencil/kritzel-tooltip.entry.js} +14 -37
- package/dist/stencil/kritzel-tooltip.entry.js.map +1 -0
- package/dist/stencil/kritzel-utility-panel.entry.esm.js.map +1 -0
- package/dist/stencil/kritzel-utility-panel.entry.js +33 -0
- package/dist/stencil/kritzel-utility-panel.entry.js.map +1 -0
- package/dist/stencil/loader.esm.js.map +1 -1
- package/dist/stencil/stencil.esm.js +49 -1
- package/dist/stencil/stencil.esm.js.map +1 -1
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -2
- package/dist/types/components.d.ts +4 -4
- package/package.json +1 -1
- package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -8
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
- package/dist/cjs/index-C05uAr89.js +0 -1591
- package/dist/cjs/index-C05uAr89.js.map +0 -1
- package/dist/cjs/index-CgSgPOBv.js +0 -2546
- package/dist/cjs/index-CgSgPOBv.js.map +0 -1
- package/dist/cjs/index.cjs.js +0 -19
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/kritzel-brush-style_18.cjs.entry.js +0 -2365
- package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +0 -1
- package/dist/cjs/loader.cjs.js +0 -16
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/stencil.cjs.js +0 -28
- package/dist/cjs/stencil.cjs.js.map +0 -1
- package/dist/collection/classes/commands/add-object.command.js +0 -14
- package/dist/collection/classes/commands/add-object.command.js.map +0 -1
- package/dist/collection/classes/commands/add-selection-group.command.js +0 -20
- package/dist/collection/classes/commands/add-selection-group.command.js.map +0 -1
- package/dist/collection/classes/commands/base.command.js +0 -15
- package/dist/collection/classes/commands/base.command.js.map +0 -1
- package/dist/collection/classes/commands/batch.command.js +0 -14
- package/dist/collection/classes/commands/batch.command.js.map +0 -1
- package/dist/collection/classes/commands/move-selection-group.command.js +0 -25
- package/dist/collection/classes/commands/move-selection-group.command.js.map +0 -1
- package/dist/collection/classes/commands/remove-object.command.js +0 -17
- package/dist/collection/classes/commands/remove-object.command.js.map +0 -1
- package/dist/collection/classes/commands/remove-selection-group.command.js +0 -18
- package/dist/collection/classes/commands/remove-selection-group.command.js.map +0 -1
- package/dist/collection/classes/commands/resize-selection-group.command.js +0 -18
- package/dist/collection/classes/commands/resize-selection-group.command.js.map +0 -1
- package/dist/collection/classes/commands/rotate-selection-group.command.js +0 -24
- package/dist/collection/classes/commands/rotate-selection-group.command.js.map +0 -1
- package/dist/collection/classes/commands/update-object.command.js +0 -29
- package/dist/collection/classes/commands/update-object.command.js.map +0 -1
- package/dist/collection/classes/commands/update-viewport.command.js +0 -23
- package/dist/collection/classes/commands/update-viewport.command.js.map +0 -1
- package/dist/collection/classes/handlers/base.handler.js +0 -7
- package/dist/collection/classes/handlers/base.handler.js.map +0 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +0 -47
- package/dist/collection/classes/handlers/context-menu.handler.js.map +0 -1
- package/dist/collection/classes/handlers/hover.handler.js +0 -19
- package/dist/collection/classes/handlers/hover.handler.js.map +0 -1
- package/dist/collection/classes/handlers/key.handler.js +0 -81
- package/dist/collection/classes/handlers/key.handler.js.map +0 -1
- package/dist/collection/classes/handlers/move.handler.js +0 -84
- package/dist/collection/classes/handlers/move.handler.js.map +0 -1
- package/dist/collection/classes/handlers/resize.handler.js +0 -150
- package/dist/collection/classes/handlers/resize.handler.js.map +0 -1
- package/dist/collection/classes/handlers/rotation.handler.js +0 -102
- package/dist/collection/classes/handlers/rotation.handler.js.map +0 -1
- package/dist/collection/classes/handlers/selection.handler.js +0 -200
- package/dist/collection/classes/handlers/selection.handler.js.map +0 -1
- package/dist/collection/classes/history.class.js +0 -71
- package/dist/collection/classes/history.class.js.map +0 -1
- package/dist/collection/classes/objects/base-object.class.js +0 -199
- package/dist/collection/classes/objects/base-object.class.js.map +0 -1
- package/dist/collection/classes/objects/custom-element.class.js +0 -52
- package/dist/collection/classes/objects/custom-element.class.js.map +0 -1
- package/dist/collection/classes/objects/image.class.js +0 -53
- package/dist/collection/classes/objects/image.class.js.map +0 -1
- package/dist/collection/classes/objects/path.class.js +0 -262
- package/dist/collection/classes/objects/path.class.js.map +0 -1
- package/dist/collection/classes/objects/selection-box.class.js +0 -22
- package/dist/collection/classes/objects/selection-box.class.js.map +0 -1
- package/dist/collection/classes/objects/selection-group.class.js +0 -159
- package/dist/collection/classes/objects/selection-group.class.js.map +0 -1
- package/dist/collection/classes/objects/text.class.js +0 -141
- package/dist/collection/classes/objects/text.class.js.map +0 -1
- package/dist/collection/classes/registries/icon-registry.class.js.map +0 -1
- package/dist/collection/classes/registries/tool.registry.js +0 -18
- package/dist/collection/classes/registries/tool.registry.js.map +0 -1
- package/dist/collection/classes/reviver.class.js +0 -66
- package/dist/collection/classes/reviver.class.js.map +0 -1
- package/dist/collection/classes/store.class.js +0 -287
- package/dist/collection/classes/store.class.js.map +0 -1
- package/dist/collection/classes/structures/circular-buffer.structure.js +0 -46
- package/dist/collection/classes/structures/circular-buffer.structure.js.map +0 -1
- package/dist/collection/classes/structures/octree.structure.js +0 -111
- package/dist/collection/classes/structures/octree.structure.js.map +0 -1
- package/dist/collection/classes/tools/base-tool.class.js +0 -31
- package/dist/collection/classes/tools/base-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/brush-tool.class.js +0 -116
- package/dist/collection/classes/tools/brush-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +0 -86
- package/dist/collection/classes/tools/eraser-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/image-tool.class.js +0 -88
- package/dist/collection/classes/tools/image-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/selection-tool.class.js +0 -156
- package/dist/collection/classes/tools/selection-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/text-tool.class.js +0 -116
- package/dist/collection/classes/tools/text-tool.class.js.map +0 -1
- package/dist/collection/classes/viewport.class.js +0 -148
- package/dist/collection/classes/viewport.class.js.map +0 -1
- package/dist/collection/collection-manifest.json +0 -29
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +0 -10
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +0 -154
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +0 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +0 -24
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +0 -672
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +0 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +0 -60
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +0 -1287
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +0 -1
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +0 -44
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -100
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +0 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.css +0 -21
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +0 -108
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +0 -1
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +0 -46
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +0 -147
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +0 -1
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +0 -53
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +0 -215
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +0 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.css +0 -10
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +0 -92
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +0 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +0 -48
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +0 -115
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +0 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +0 -30
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +0 -112
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +0 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +0 -17
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +0 -94
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +0 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +0 -28
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +0 -91
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +0 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +0 -17
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +0 -181
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +0 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +0 -55
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -178
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +0 -1
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +0 -19
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -136
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +0 -1
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.css +0 -19
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +0 -116
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +0 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +0 -124
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +0 -268
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +0 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +0 -33
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +0 -79
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +0 -1
- package/dist/collection/configs/default-brush-tool.config.js.map +0 -1
- package/dist/collection/configs/default-engine-state.js +0 -58
- package/dist/collection/configs/default-engine-state.js.map +0 -1
- package/dist/collection/configs/default-text-tool.config.js +0 -32
- package/dist/collection/configs/default-text-tool.config.js.map +0 -1
- package/dist/collection/constants/engine.constants.js +0 -3
- package/dist/collection/constants/engine.constants.js.map +0 -1
- package/dist/collection/enums/event-button.enum.js +0 -7
- package/dist/collection/enums/event-button.enum.js.map +0 -1
- package/dist/collection/enums/handle-type.enum.js +0 -8
- package/dist/collection/enums/handle-type.enum.js.map +0 -1
- package/dist/collection/helpers/class.helper.js +0 -6
- package/dist/collection/helpers/class.helper.js.map +0 -1
- package/dist/collection/helpers/devices.helper.js +0 -6
- package/dist/collection/helpers/devices.helper.js.map +0 -1
- package/dist/collection/helpers/event.helper.js +0 -58
- package/dist/collection/helpers/event.helper.js.map +0 -1
- package/dist/collection/helpers/geometry.helper.js +0 -53
- package/dist/collection/helpers/geometry.helper.js.map +0 -1
- package/dist/collection/helpers/html.helper.js +0 -7
- package/dist/collection/helpers/html.helper.js.map +0 -1
- package/dist/collection/helpers/keyboard.helper.js +0 -31
- package/dist/collection/helpers/keyboard.helper.js.map +0 -1
- package/dist/collection/helpers/math.helper.js +0 -6
- package/dist/collection/helpers/math.helper.js.map +0 -1
- package/dist/collection/helpers/object.helper.js +0 -38
- package/dist/collection/helpers/object.helper.js.map +0 -1
- package/dist/collection/index.js +0 -21
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/interfaces/bounding-box.interface.js +0 -2
- package/dist/collection/interfaces/bounding-box.interface.js.map +0 -1
- package/dist/collection/interfaces/command.interface.js +0 -2
- package/dist/collection/interfaces/command.interface.js.map +0 -1
- package/dist/collection/interfaces/context-menu-item.interface.js +0 -2
- package/dist/collection/interfaces/context-menu-item.interface.js.map +0 -1
- package/dist/collection/interfaces/debug-info.interface.js +0 -2
- package/dist/collection/interfaces/debug-info.interface.js.map +0 -1
- package/dist/collection/interfaces/engine-state.interface.js +0 -2
- package/dist/collection/interfaces/engine-state.interface.js.map +0 -1
- package/dist/collection/interfaces/object.interface.js +0 -2
- package/dist/collection/interfaces/object.interface.js.map +0 -1
- package/dist/collection/interfaces/path-options.interface.js +0 -2
- package/dist/collection/interfaces/path-options.interface.js.map +0 -1
- package/dist/collection/interfaces/point.interface.js +0 -2
- package/dist/collection/interfaces/point.interface.js.map +0 -1
- package/dist/collection/interfaces/polygon.interface.js +0 -2
- package/dist/collection/interfaces/polygon.interface.js.map +0 -1
- package/dist/collection/interfaces/selection-state.interface.js +0 -2
- package/dist/collection/interfaces/selection-state.interface.js.map +0 -1
- package/dist/collection/interfaces/serializable.interface.js +0 -2
- package/dist/collection/interfaces/serializable.interface.js.map +0 -1
- package/dist/collection/interfaces/tool.interface.js +0 -2
- package/dist/collection/interfaces/tool.interface.js.map +0 -1
- package/dist/collection/interfaces/toolbar-control.interface.js +0 -2
- package/dist/collection/interfaces/toolbar-control.interface.js.map +0 -1
- package/dist/collection/types/state.types.js +0 -2
- package/dist/collection/types/state.types.js.map +0 -1
- package/dist/components/index.js +0 -24
- package/dist/components/index.js.map +0 -1
- package/dist/components/kritzel-brush-style.js +0 -9
- package/dist/components/kritzel-brush-style.js.map +0 -1
- package/dist/components/kritzel-color-palette.js +0 -9
- package/dist/components/kritzel-color-palette.js.map +0 -1
- package/dist/components/kritzel-color.js +0 -9
- package/dist/components/kritzel-color.js.map +0 -1
- package/dist/components/kritzel-context-menu.js +0 -9
- package/dist/components/kritzel-context-menu.js.map +0 -1
- package/dist/components/kritzel-control-brush-config.js +0 -9
- package/dist/components/kritzel-control-brush-config.js.map +0 -1
- package/dist/components/kritzel-control-text-config.js +0 -9
- package/dist/components/kritzel-control-text-config.js.map +0 -1
- package/dist/components/kritzel-controls.js +0 -9
- package/dist/components/kritzel-controls.js.map +0 -1
- package/dist/components/kritzel-cursor-trail.js +0 -9
- package/dist/components/kritzel-cursor-trail.js.map +0 -1
- package/dist/components/kritzel-dropdown.js +0 -9
- package/dist/components/kritzel-dropdown.js.map +0 -1
- package/dist/components/kritzel-editor.js +0 -409
- package/dist/components/kritzel-editor.js.map +0 -1
- package/dist/components/kritzel-engine.js +0 -9
- package/dist/components/kritzel-engine.js.map +0 -1
- package/dist/components/kritzel-font-family.js +0 -9
- package/dist/components/kritzel-font-family.js.map +0 -1
- package/dist/components/kritzel-font-size.js +0 -9
- package/dist/components/kritzel-font-size.js.map +0 -1
- package/dist/components/kritzel-font.js +0 -9
- package/dist/components/kritzel-font.js.map +0 -1
- package/dist/components/kritzel-icon.js +0 -9
- package/dist/components/kritzel-icon.js.map +0 -1
- package/dist/components/kritzel-stroke-size.js +0 -9
- package/dist/components/kritzel-stroke-size.js.map +0 -1
- package/dist/components/kritzel-tooltip.js +0 -9
- package/dist/components/kritzel-tooltip.js.map +0 -1
- package/dist/components/kritzel-utility-panel.js +0 -9
- package/dist/components/kritzel-utility-panel.js.map +0 -1
- package/dist/components/p-BJOf0PsO.js.map +0 -1
- package/dist/components/p-BOj_wqdw.js +0 -54
- package/dist/components/p-BOj_wqdw.js.map +0 -1
- package/dist/components/p-BY8BWGge.js.map +0 -1
- package/dist/components/p-BjG1zRRI.js +0 -2718
- package/dist/components/p-BjG1zRRI.js.map +0 -1
- package/dist/components/p-Bn5P7YQn.js.map +0 -1
- package/dist/components/p-C9usqwb5.js +0 -61
- package/dist/components/p-C9usqwb5.js.map +0 -1
- package/dist/components/p-CBCFr_x3.js.map +0 -1
- package/dist/components/p-CF8ziFc4.js.map +0 -1
- package/dist/components/p-CiT5gBDh.js +0 -44
- package/dist/components/p-CiT5gBDh.js.map +0 -1
- package/dist/components/p-Cn_kantt.js +0 -54
- package/dist/components/p-Cn_kantt.js.map +0 -1
- package/dist/components/p-CtiROna-.js +0 -90
- package/dist/components/p-CtiROna-.js.map +0 -1
- package/dist/components/p-Cw2ATHMj.js.map +0 -1
- package/dist/components/p-D0sLslUq.js.map +0 -1
- package/dist/components/p-D8W6LE-c.js.map +0 -1
- package/dist/components/p-DJN0U8pI.js +0 -1327
- package/dist/components/p-DJN0U8pI.js.map +0 -1
- package/dist/components/p-DMAzUKo6.js +0 -102
- package/dist/components/p-DMAzUKo6.js.map +0 -1
- package/dist/components/p-DSLY0tr5.js +0 -52
- package/dist/components/p-DSLY0tr5.js.map +0 -1
- package/dist/components/p-DpiklJU9.js.map +0 -1
- package/dist/components/p-NZJPrwJV.js.map +0 -1
- package/dist/components/p-ubNAWsY_.js +0 -111
- package/dist/components/p-ubNAWsY_.js.map +0 -1
- package/dist/esm/app-globals-DQuL1Twl.js +0 -6
- package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
- package/dist/esm/index-BGl8znzE.js +0 -1564
- package/dist/esm/index-BGl8znzE.js.map +0 -1
- package/dist/esm/index-B_0CRlFw.js +0 -2522
- package/dist/esm/index-B_0CRlFw.js.map +0 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/kritzel-brush-style_18.entry.js +0 -2346
- package/dist/esm/kritzel-brush-style_18.entry.js.map +0 -1
- package/dist/esm/loader.js +0 -14
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/stencil.js +0 -24
- package/dist/esm/stencil.js.map +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/stencil/p-3a2f1d19.entry.js +0 -2
- package/dist/stencil/p-3a2f1d19.entry.js.map +0 -1
- package/dist/stencil/p-BGl8znzE.js +0 -3
- package/dist/stencil/p-BGl8znzE.js.map +0 -1
- package/dist/stencil/p-B_0CRlFw.js +0 -2
- package/dist/stencil/p-B_0CRlFw.js.map +0 -1
- package/dist/stencil/p-DQuL1Twl.js +0 -2
- package/dist/stencil/p-DQuL1Twl.js.map +0 -1
package/dist/esm/loader.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { b as bootstrapLazy } from './index-BGl8znzE.js';
|
|
2
|
-
export { s as setNonce } from './index-BGl8znzE.js';
|
|
3
|
-
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
|
-
|
|
5
|
-
const defineCustomElements = async (win, options) => {
|
|
6
|
-
if (typeof window === 'undefined') return undefined;
|
|
7
|
-
await globalScripts();
|
|
8
|
-
return bootstrapLazy([["kritzel-brush-style_18",[[256,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16,"global-context-menu-items"],"objectContextMenuItems":[16,"object-context-menu-items"],"customSvgIcons":[16,"custom-svg-icons"],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"isEngineReady":[32],"isControlsReady":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64]},[[0,"dblclick","handleTouchStart"],[8,"keydown","handleKeyDown"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"]}],[257,"kritzel-controls",{"controls":[16],"activeControl":[1040,"active-control"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"closeTooltip":[64]},[[4,"activeToolChange","handleActiveToolChange"],[4,"click","handleClick"]]],[257,"kritzel-engine",{"activeTool":[16,"active-tool"],"globalContextMenuItems":[16,"global-context-menu-items"],"objectContextMenuItems":[16,"object-context-menu-items"],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"forceUpdate":[32],"registerTool":[64],"changeActiveTool":[64],"setFocus":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"moveToTop":[64],"moveToBottom":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[9,"mousedown","updateFocus"]],{"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"]}],[257,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[257,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[257,"kritzel-context-menu",{"items":[16],"objects":[16],"disabledStates":[32],"visibleItems":[32]},null,{"items":["onItemsChanged"]}],[257,"kritzel-utility-panel"],[257,"kritzel-cursor-trail",{"store":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[257,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16,"anchor-element"],"arrowSize":[2,"arrow-size"],"offsetY":[2,"offset-y"],"positionX":[32],"arrowOffset":[32],"isMobileView":[32]},[[9,"resize","handleWindowResize"]]],[257,"kritzel-brush-style",{"type":[1],"brushOptions":[16,"brush-options"]}],[257,"kritzel-font-family",{"fontOptions":[16,"font-options"],"selectedFontFamily":[1025,"selected-font-family"]}],[257,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[257,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[257,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[257,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[257,"kritzel-color",{"value":[1],"size":[2]}],[257,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[8,"select-styles"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32]},null,{"value":["externalValueChanged"],"options":["optionsChanged"]}],[257,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]]], options);
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export { defineCustomElements };
|
|
12
|
-
//# sourceMappingURL=loader.js.map
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=loader.js.map
|
package/dist/esm/loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sources":["@lazy-external-entrypoint?app-data=conditional"],"sourcesContent":["export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\nexport const defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n};\n"],"names":[],"mappings":";;;;AAGY,MAAC,oBAAoB,GAAG,OAAO,GAAG,EAAE,OAAO,KAAK;AAC5D,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,OAAO,SAAS;AACrD,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D;;;;"}
|
package/dist/esm/stencil.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { p as promiseResolve, b as bootstrapLazy } from './index-BGl8znzE.js';
|
|
2
|
-
export { s as setNonce } from './index-BGl8znzE.js';
|
|
3
|
-
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
Stencil Client Patch Browser v4.36.3 | MIT Licensed | https://stenciljs.com
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
var patchBrowser = () => {
|
|
10
|
-
const importMeta = import.meta.url;
|
|
11
|
-
const opts = {};
|
|
12
|
-
if (importMeta !== "") {
|
|
13
|
-
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
14
|
-
}
|
|
15
|
-
return promiseResolve(opts);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
patchBrowser().then(async (options) => {
|
|
19
|
-
await globalScripts();
|
|
20
|
-
return bootstrapLazy([["kritzel-brush-style_18",[[256,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16,"global-context-menu-items"],"objectContextMenuItems":[16,"object-context-menu-items"],"customSvgIcons":[16,"custom-svg-icons"],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"isEngineReady":[32],"isControlsReady":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64]},[[0,"dblclick","handleTouchStart"],[8,"keydown","handleKeyDown"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"]}],[257,"kritzel-controls",{"controls":[16],"activeControl":[1040,"active-control"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"closeTooltip":[64]},[[4,"activeToolChange","handleActiveToolChange"],[4,"click","handleClick"]]],[257,"kritzel-engine",{"activeTool":[16,"active-tool"],"globalContextMenuItems":[16,"global-context-menu-items"],"objectContextMenuItems":[16,"object-context-menu-items"],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"forceUpdate":[32],"registerTool":[64],"changeActiveTool":[64],"setFocus":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"moveToTop":[64],"moveToBottom":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[9,"mousedown","updateFocus"]],{"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"]}],[257,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[257,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[257,"kritzel-context-menu",{"items":[16],"objects":[16],"disabledStates":[32],"visibleItems":[32]},null,{"items":["onItemsChanged"]}],[257,"kritzel-utility-panel"],[257,"kritzel-cursor-trail",{"store":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[257,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16,"anchor-element"],"arrowSize":[2,"arrow-size"],"offsetY":[2,"offset-y"],"positionX":[32],"arrowOffset":[32],"isMobileView":[32]},[[9,"resize","handleWindowResize"]]],[257,"kritzel-brush-style",{"type":[1],"brushOptions":[16,"brush-options"]}],[257,"kritzel-font-family",{"fontOptions":[16,"font-options"],"selectedFontFamily":[1025,"selected-font-family"]}],[257,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[257,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[257,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[257,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[257,"kritzel-color",{"value":[1],"size":[2]}],[257,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[8,"select-styles"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32]},null,{"value":["externalValueChanged"],"options":["optionsChanged"]}],[257,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]]], options);
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=stencil.js.map
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=stencil.js.map
|
package/dist/esm/stencil.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stencil.js","sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.36.3 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
|
package/dist/index.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./cjs/index.cjs.js');
|
package/dist/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './esm/index.js';
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as e,H as s,g as o}from"./p-BGl8znzE.js";import{K as n,a as r,b as l,c as h,D as a,d as c,e as d,f,g as u,h as b,i as p,j as v,R as g,k as y,B as k,A as x,l as w,m as z,n as m,o as C,p as j}from"./p-B_0CRlFw.js";const M=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.brush-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:default;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)}";const I=class{constructor(e){t(this,e);this.typeChange=i(this,"typeChange");this.type="pen";this.brushOptions=[{value:"pen",label:"Pen"},{value:"highlighter",label:"Highlighter"}]}handleDropdownValueChange(t){this.typeChange.emit(t.detail)}render(){const t=this.brushOptions.map((t=>({value:t.value,label:t.label})));return e(s,{key:"d7af382fe6f613aa16a5146785990ad2faa17f60"},e("kritzel-dropdown",{key:"6d6d330d415c210058834b2968774b3db2ab7fc4",options:t,value:this.type,onValueChanged:t=>this.handleDropdownValueChange(t)},e("button",{key:"c9fb33795b8e25f68c1d2ae248dc82a6de29e199",class:"brush-style-button",slot:"prefix"},e("kritzel-icon",{key:"975c95b545a1c27ae2984405ac298592eec9743d",name:this.type,size:16}))))}};I.style=M;const S=":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(i){t(this,i);this.size=24}isLightColor(t){if(!t)return false;let i=0,e=0,s=0;let o=t.startsWith("#")?t.slice(1):t;if(o.length===3){i=parseInt(o[0]+o[0],16);e=parseInt(o[1]+o[1],16);s=parseInt(o[2]+o[2],16)}else if(o.length===6){i=parseInt(o.substring(0,2),16);e=parseInt(o.substring(2,4),16);s=parseInt(o.substring(4,6),16)}else{return false}if(isNaN(i)||isNaN(e)||isNaN(s)){return false}const n=.299*i+.587*e+.114*s;return n>220}render(){const t=this.isLightColor(this.value);return e(s,{key:"19ad3872a132c885c612dc3b96698a0c8dc7214d"},e("div",{key:"f67108e82396cbaa3d070c8dfc83da2b080ddf47",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},e("div",{key:"1af0cc3e9f6eebc04cae2367510ef3b98420a818",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=S;const $=":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:hover{background-color:var(--kritzel-color-palette-hover-background-color, #f0f0f0)}.color-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-color-palette-selected-background-color)}";const F=class{constructor(e){t(this,e);this.colorChange=i(this,"colorChange");this.colors=[];this.selectedColor=null;this.isExpanded=false;this.isOpaque=false}handleColorClick(t){this.selectedColor=t;this.colorChange.emit(t)}calculateHeight(){const t=6;const i=32;const e=8;const s=Math.ceil(this.colors.length/t);return`${s*i+(s-1)*e}px`}render(){const t=this.isExpanded?this.colors:this.colors.slice(0,6);const i=this.isExpanded?this.calculateHeight():"32px";return e(s,{key:"0f0d176e1c8b199a973dbdb23b84e4a8d4d57f59"},e("div",{key:"1d4707cdb30752d21a5058dbbef5fb32934bd3bd",class:{"color-grid":true,expanded:this.isExpanded},style:{height:i}},t.map((t=>e("div",{class:{"color-container":true,selected:this.selectedColor===t},onClick:()=>this.handleColorClick(t)},e("kritzel-color",{value:t}))))))}};F.style=$;const O=":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 #f0f0f0);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 B=class{constructor(e){t(this,e);this.actionSelected=i(this,"actionSelected");this.disabledStates=new Map;this.visibleItems=[]}componentWillLoad(){this.resolveVisibleItems();this.resolveDisabledStates()}onItemsChanged(){this.resolveVisibleItems();this.resolveDisabledStates()}handleItemClick(t,i){if(!this.disabledStates.get(i)){this.actionSelected.emit(t)}}async resolveVisibleItems(){const t=[];const i=this.items.map((async(t,i)=>{let e=true;if(t.visible!==undefined){if(typeof t.visible==="boolean"){e=t.visible}else if(typeof t.visible==="function"){const i=t.visible(null,this.objects);if(i instanceof Promise){e=await i}else{e=i}}}return{item:t,index:i,isVisible:e}}));const e=await Promise.all(i);e.forEach((({item:i,isVisible:e})=>{if(e){t.push(i)}}));this.visibleItems=t}async resolveDisabledStates(){const t=new Map;const i=this.visibleItems.map((async(i,e)=>{let s=false;if(typeof i.disabled==="boolean"){s=i.disabled}else if(typeof i.disabled==="function"){const t=i.disabled(null,this.objects);if(t instanceof Promise){s=await t}else{s=t}}t.set(e,s)}));await Promise.all(i);this.disabledStates=new Map(t)}render(){return e(s,{key:"3265d2e63ff1e1f91faf1c6c5da3490687f3adb1"},e("div",{key:"80b2100e2ffcaba25ca08cfec650b1f7558c5d25",class:"menu-container"},this.visibleItems.map(((t,i)=>{var s;const o=(s=this.disabledStates.get(i))!==null&&s!==void 0?s:false;return e("button",{key:`${t.label}-${i}`,class:{"menu-item":true,disabled:o},onClick:()=>this.handleItemClick(t,i),onTouchStart:()=>this.handleItemClick(t,i),disabled:o},t.icon&&e("kritzel-icon",{name:t.icon,size:16}),e("span",{class:"label"},t.label))}))))}get hostElement(){return o(this)}static get watchers(){return{items:["onItemsChanged"]}}};B.style=O;const E=":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:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const _=class{constructor(e){t(this,e);this.toolChange=i(this,"toolChange");this.isExpanded=false;this.palette=[]}handleToolChange(t){this.palette=t.palettes[t.type]}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(s,{key:"8e7930fcc093f7277ed088d8ec5e54e4cd051b86"},e("div",{key:"08bd37b90decc9054c05d646aabbba0a4985d04c",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-brush-style",{key:"f79744fb6523d0b4fa67c324cbf8ff3eb8a0308d",type:this.tool.type,onTypeChange:t=>this.handleTypeChange(t)}),e("button",{key:"dc3bdd90cebb29f2357e13dbc8d2dcaf02ae056e",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},e("kritzel-icon",{key:"6e9e6de7fc7c708aad700498e030d2ad7364a9f3",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-color-palette",{key:"c1ffd48a475754bb1447e9d866b494fd3476f050",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:true,onColorChange:t=>this.handleColorChange(t)}),e("kritzel-stroke-size",{key:"38e265b42fe09d0105e0385d7ec8e7d8d318abb0",selectedSize:this.tool.size,onSizeChange:t=>this.handleSizeChange(t)}))}static get watchers(){return{tool:["handleToolChange"]}}};_.style=E;const A=":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 R=class{constructor(e){t(this,e);this.toolChange=i(this,"toolChange");this.isExpanded=false}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(s,{key:"27d47c47987fb7644313a4face4a7023dfbe454d"},e("div",{key:"835b8072267da18b39a5c02a6c989e1f7b81e9a5",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-font-family",{key:"b7a0bde2e9cf53c9ae7c3a32b424825ca9f757c4",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:t=>this.handleFamilyChange(t)}),e("button",{key:"41aba583656195c4825a15ddc12c5e1efed0d8d2",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand"},e("kritzel-icon",{key:"5ff979420066703b5d5e886d12f89687392006e3",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-color-palette",{key:"30fbcc05f80b15fba7f1f5ac6413732d0149ee9b",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:t=>this.handleColorChange(t)}),e("kritzel-font-size",{key:"2a0d3c4578316b37bc1a25b6e065ecf565eca2b3",selectedSize:this.tool.fontSize,fontFamily:this.tool.fontFamily,onSizeChange:t=>this.handleSizeChange(t)}))}};R.style=A;class P{static isTouchDevice(){return window.matchMedia("(any-pointer: coarse)").matches}}const V=":host{display:flex;flex-direction:column;user-select:none}.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 #f0f0f0);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:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.mobile) .kritzel-control:hover{background-color:unset}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}:host(.mobile) .kritzel-control:active{background-color:unset}.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-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}.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, #f0f0f0)}.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, #f0f0f0)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{position:fixed;bottom:66px;left:50%;transform:translateX(-50%);z-index:10001}";const D=class{constructor(e){t(this,e);this.isControlsReady=i(this,"isControlsReady");this.controls=[];this.activeControl=null;this.isUtilityPanelVisible=true;this.firstConfig=null;this.isTooltipVisible=false;this.isTouchDevice=P.isTouchDevice();this.kritzelEngine=null}async handleActiveToolChange(t){var i;this.activeControl=this.controls.find((i=>i.tool===t.detail))||null;await((i=this.kritzelEngine)===null||i===void 0?void 0:i.setFocus())}handleClick(t){const i=t.target;if(!this.kritzelEngine||i.closest(".kritzel-tooltip")){return}this.isTooltipVisible=false;this.kritzelEngine.enable()}async closeTooltip(){var t;this.isTooltipVisible=false;(t=this.kritzelEngine)===null||t===void 0?void 0:t.enable()}get activeToolAsTextTool(){var t;return(t=this.activeControl)===null||t===void 0?void 0:t.tool}get activeToolAsBrushTool(){var t;return(t=this.activeControl)===null||t===void 0?void 0:t.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;this.kritzelEngine.disable()}async handleToolChange(t){this.activeControl=Object.assign(Object.assign({},this.activeControl),{tool:t.detail});await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}render(){var t,i;const o=((t=this.activeControl)===null||t===void 0?void 0:t.config)===undefined||((i=this.activeControl)===null||i===void 0?void 0:i.config)===null;return e(s,{key:"5531510d4b95c082148ce3e8f5d3048f808162b2",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&e("kritzel-utility-panel",{key:"e7e58ee4ae6a8a77918d5c8a954c2dcae287b265",style:{position:"absolute",bottom:"56px",left:"12px"},onUndo:()=>{var t;return(t=this.kritzelEngine)===null||t===void 0?void 0:t.undo()},onRedo:()=>{var t;return(t=this.kritzelEngine)===null||t===void 0?void 0:t.redo()},onDelete:()=>{var t;return(t=this.kritzelEngine)===null||t===void 0?void 0:t.delete()}}),e("div",{key:"65ad87089a38f3e89f8332fc6f261555c2e7eb40",class:"kritzel-controls"},this.controls.map((t=>{var i,s,l,h,a,c,d,f;if(t.type==="tool"){return e("button",{class:{"kritzel-control":true,selected:((i=this.activeControl)===null||i===void 0?void 0:i.name)===(t===null||t===void 0?void 0:t.name)},key:t.name,onClick:i=>{var e;return(e=this.handleControlClick)===null||e===void 0?void 0:e.call(this,t)}},e("kritzel-icon",{name:t.icon}))}if(t.type==="divider"){return e("div",{class:"kritzel-divider",key:t.name})}if(t.type==="config"&&t.name===((s=this.firstConfig)===null||s===void 0?void 0:s.name)&&this.activeControl){return e("div",{class:"kritzel-config-container",key:t.name},e("kritzel-tooltip",{isVisible:this.isTooltipVisible,anchorElement:(l=this.host.shadowRoot)===null||l===void 0?void 0:l.querySelector(".kritzel-config-container")},e("div",{style:{width:"294px",height:"100%"}},this.activeControl.name==="brush"&&e("kritzel-control-brush-config",{tool:this.activeToolAsBrushTool,onToolChange:t=>{var i;return(i=this.handleToolChange)===null||i===void 0?void 0:i.call(this,t)}}),this.activeControl.name==="text"&&e("kritzel-control-text-config",{tool:this.activeToolAsTextTool,onToolChange:t=>{var i;return(i=this.handleToolChange)===null||i===void 0?void 0:i.call(this,t)}}))),e("div",{class:"kritzel-config",onClick:t=>{var i;return(i=this.handleConfigClick)===null||i===void 0?void 0:i.call(this,t)},style:{cursor:this.activeControl.config?"pointer":"default",pointerEvents:o?"none":"auto"}},this.activeControl.tool instanceof n&&e("div",{class:"color-container"},e("kritzel-color",{value:(h=this.activeToolAsBrushTool)===null||h===void 0?void 0:h.color,size:(a=this.activeToolAsBrushTool)===null||a===void 0?void 0:a.size,style:{borderRadius:"50%",border:"none"}})),this.activeControl.tool instanceof r&&e("div",{class:"font-container"},e("kritzel-font",{fontFamily:(c=this.activeToolAsTextTool)===null||c===void 0?void 0:c.fontFamily,size:(d=this.activeToolAsTextTool)===null||d===void 0?void 0:d.fontSize,color:(f=this.activeToolAsTextTool)===null||f===void 0?void 0:f.fontColor})),o&&e("div",{class:"no-config"})))}}))))}static get assetsDirs(){return["../assets"]}get host(){return o(this)}};D.style=V;const L=":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";const W=class{constructor(i){t(this,i);this.cursorTrailPoints=[];this.isLeftButtonDown=false;this.TRAIL_DURATION_MS=100;this.MAX_TRAIL_POINTS=50}componentDidLoad(){this.trailCleanupIntervalId=window.setInterval((()=>{const t=Date.now();const i=this.cursorTrailPoints.filter((i=>t-i.timestamp<this.TRAIL_DURATION_MS));if(i.length!==this.cursorTrailPoints.length){this.cursorTrailPoints=i}}),50)}disconnectedCallback(){if(this.trailCleanupIntervalId){window.clearInterval(this.trailCleanupIntervalId)}}handleMouseDown(t){if(t.pointerType==="mouse"){if(t.button===l.Left){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.store.state.pointers.size===1){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}}handlePointerMove(t){if(!this.isLeftButtonDown){return}const i={x:t.clientX,y:t.clientY,timestamp:Date.now()};const e=[i,...this.cursorTrailPoints];if(e.length>this.MAX_TRAIL_POINTS){this.cursorTrailPoints=e.slice(0,this.MAX_TRAIL_POINTS)}else{this.cursorTrailPoints=e}}handlePointerUp(t){if(t.pointerType==="mouse"){if(t.button===l.Left){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.store.state.pointers.size===0){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}}render(){return e(s,{key:"2e6ee739a4c25cee00470ee95ca22e55712c8d7b"},this.cursorTrailPoints.length>1&&e("svg",{key:"483aa687ccd290980ca9c588a84547df2bfdb659",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 l=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":l.toString(),"stroke-linecap":"round"})}))))}};W.style=L;const H=':host{display:inline-flex;vertical-align:middle;width:100%;}.dropdown-wrapper{display:flex;align-items:center;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);overflow:hidden;height:32px;width:100%}.custom-select{padding:0 8px;padding-right:30px;height:100%;width:100%;box-sizing:border-box;border-radius:0;border:none;background-color:#fff;cursor:pointer;outline:none;font-size:inherit;color:var(--kritzel-controls-text-color, #333333);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23333333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>\');background-size:16px 16px;background-repeat:no-repeat;background-position:right 8px center}.custom-select.has-suffix-border{border-right:1px solid #333333}.custom-select.has-prefix-border{border-left:1px solid #333333}::slotted(*){height:100%;box-sizing:border-box}';const K=class{constructor(e){t(this,e);this.valueChanged=i(this,"valueChanged");this.options=[];this.selectStyles={};this.hasSuffixContent=false;this.hasPrefixContent=false;this.handleSelectChange=t=>{const i=t.target.value;if(this.internalValue!==i){this.internalValue=i;this.valueChanged.emit(this.internalValue)}};this.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}}};this.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}}}}componentWillLoad(){this.updateInternalValue(this.value,false);this.evaluateSuffixContent();this.evaluatePrefixContent()}externalValueChanged(t){if(t!==this.internalValue){this.updateInternalValue(t,false)}}optionsChanged(){this.updateInternalValue(this.internalValue,true)}updateInternalValue(t,i){let e=t;if(this.options&&this.options.length>0){const t=this.options.some((t=>t.value===e));if(!e||!t){e=this.options[0].value}}else{e=undefined}if(this.internalValue!==e){this.internalValue=e;if(i||t!==e&&t!==undefined){this.valueChanged.emit(this.internalValue)}}}render(){const t={"custom-select":true,"has-suffix-border":this.hasSuffixContent,"has-prefix-border":this.hasPrefixContent};return e(s,{key:"32c5f5a4f807c1e316c91b795c005b8d30ce6189"},e("div",{key:"b1cbeff18e688da4a2f7472be290b9527a619f07",class:"dropdown-wrapper"},e("slot",{key:"b3bbb7e21c6f5620cab41aa4b1c7206b6c75fd86",name:"prefix",ref:t=>this.prefixSlotElement=t,onSlotchange:this.evaluatePrefixContent}),e("select",{key:"8b2dcdc125bee59cf29fce7c980b755e78d5816e",class:t,style:Object.assign(Object.assign({},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:"8d83f0dea41ac959bf2392948efef33bb70d0154",name:"suffix",ref:t=>this.suffixSlotElement=t,onSlotchange:this.evaluateSuffixContent})))}static get watchers(){return{value:["externalValueChanged"],options:["optionsChanged"]}}};K.style=H;class X{static register(t,i){if(this.registry.has(t)){console.warn(`[IconRegistry] Icon "${t}" is already registered. It will be overwritten.`)}this.registry.set(t,i)}static get(t){return this.registry.get(t)}static registerIcons(t){for(const i in t){if(Object.prototype.hasOwnProperty.call(t,i)){this.register(i,t[i])}}}static has(t){return this.registry.has(t)}}X.registry=new Map;X.registerIcons({cursor:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z"/></svg>',pen:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/></svg>',highlighter:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-highlighter-icon lucide-highlighter"><path d="m9 11-6 6v3h9l3-3"/><path d="m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"/></svg>',eraser:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"/><path d="M22 21H7"/><path d="m5 11 9 9"/></svg>',type:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" x2="15" y1="20" y2="20"/><line x1="12" x2="12" y1="4" y2="20"/></svg>',image:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>',"chevron-down":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>',"chevron-up":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m18 15-6-6-6 6"/></svg>',copy:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy-icon lucide-copy"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>',paste:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-paste-icon lucide-clipboard-paste"><path d="M11 14h10"/><path d="M16 4h2a2 2 0 0 1 2 2v1.344"/><path d="m17 18 4-4-4-4"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113"/><rect x="8" y="2" width="8" height="4" rx="1"/></svg>',cut:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scissors-icon lucide-scissors"><circle cx="6" cy="6" r="3"/><path d="M8.12 8.12 12 12"/><path d="M20 4 8.12 15.88"/><circle cx="6" cy="18" r="3"/><path d="M14.8 14.8 20 20"/></svg>',delete:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2-icon lucide-trash-2"><path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/></svg>',"bring-to-front":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-to-line-icon lucide-arrow-up-to-line"><path d="M5 3h14"/><path d="m18 13-6-6-6 6"/><path d="M12 7v14"/></svg>',"send-to-back":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line-icon lucide-arrow-down-to-line"><path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/></svg>',"select-all":'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-mouse-pointer-icon lucide-square-mouse-pointer"><path d="M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z"/><path d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6"/></svg>',download:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download-icon lucide-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/></svg>',undo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-undo-icon lucide-undo"><path d="M3 7v6h6"/><path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"/></svg>',redo:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-redo-icon lucide-redo"><path d="M21 7v6h-6"/><path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"/></svg>'});const Y=1e3;const U=1e-4;const q="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-controls{position:absolute;bottom:28px}";const N=class{constructor(e){t(this,e);this.isReady=i(this,"isReady");this.scaleMax=Y;this.scaleMin=U;this.controls=[{name:"selection",type:"tool",tool:h,icon:"cursor"},{name:"brush",type:"tool",tool:n,icon:"pen",isDefault:true,config:a},{name:"eraser",type:"tool",tool:c,icon:"eraser"},{name:"text",type:"tool",tool:r,icon:"type",config:d},{name:"image",type:"tool",tool:f,icon:"image"},{name:"divider",type:"divider"},{name:"config",type:"config"}];this.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()}];this.objectContextMenuItems=[{label:"Edit",icon:"pen",visible:(t,i)=>i.length===1&&i[0].isEditable,action:(t,i)=>{if(i.length===1){const t=i[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,i)=>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.moveToTop()},{label:"Send to Back",icon:"send-to-back",action:()=>this.engineRef.moveToBottom()}];this.customSvgIcons={};this.isControlsVisible=true;this.isUtilityPanelVisible=true;this.isEngineReady=false;this.isControlsReady=false}onIsEngineReady(t){if(t&&this.isControlsReady){this.checkIsReady()}}onIsControlsReady(t){if(t&&this.isEngineReady){this.checkIsReady()}}async getObjectById(t){return this.engineRef.getObjectById(t)}async addObject(t){return this.engineRef.addObject(t)}async updateObject(t,i){return this.engineRef.updateObject(t,i)}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)}handleTouchStart(t){if(t.cancelable){t.preventDefault()}}handleKeyDown(t){var i;if(t.key==="Escape"){t.preventDefault();(i=this.controlsRef)===null||i===void 0?void 0:i.closeTooltip()}}componentDidLoad(){this.registerCustomSvgIcons()}async checkIsReady(){await customElements.whenDefined("kritzel-editor");await customElements.whenDefined("kritzel-controls");await customElements.whenDefined("kritzel-engine");if(!this.isEngineReady||!this.isControlsReady){return}this.isReady.emit(this.host)}registerCustomSvgIcons(){for(const[t,i]of Object.entries(this.customSvgIcons)){X.register(t,i)}}render(){return e(s,{key:"f2fa7efff5baf4df8a9b2100b96e1546731b006b"},e("kritzel-engine",{key:"d4fc5d1b0827656119b14c9e2971818904f41c3f",ref:t=>this.engineRef=t,onIsEngineReady:()=>this.isEngineReady=true,scaleMax:this.scaleMax,scaleMin:this.scaleMin,globalContextMenuItems:this.globalContextMenuItems,objectContextMenuItems:this.objectContextMenuItems}),e("kritzel-controls",{key:"d5f3a9b3d23090bbc8f36b8f974226697868988d",ref:t=>this.controlsRef=t,controls:this.controls,isUtilityPanelVisible:this.isUtilityPanelVisible,style:this.isControlsVisible?{display:"flex"}:{display:"none"},onIsControlsReady:()=>this.isControlsReady=true}))}get host(){return o(this)}static get watchers(){return{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"]}}};N.style=q;class G{constructor(t,i){this.initialTouchDistance=0;this.startX=0;this.startY=0;this._store=t;this._store.state.host=i;this._store.state.viewportWidth=i.clientWidth;this._store.state.viewportHeight=i.clientHeight;this._store.state.startX=0;this._store.state.startY=0;this._store.state.translateX=0;this._store.state.translateY=0}handleResize(){this._store.state.viewportWidth=this._store.state.host.clientWidth;this._store.state.viewportHeight=this._store.state.host.clientHeight;this._store.state.hasViewportChanged=true;this._store.rerender()}handlePointerDown(t){if(t.pointerType==="mouse"){const i=t.clientX-this._store.offsetX;const e=t.clientY-this._store.offsetY;if(t.button===l.Right){this._store.state.isPanning=true;this._store.state.startX=i;this._store.state.startY=e}}if(t.pointerType==="touch"){const t=Array.from(this._store.state.pointers.values());if(t.length===2){this._store.state.currentPath=null;this._store.state.isScaling=true;const i=t[0].clientX-this._store.offsetX;const e=t[0].clientY-this._store.offsetY;const s=t[1].clientX-this._store.offsetX;const o=t[1].clientY-this._store.offsetY;this.initialTouchDistance=Math.sqrt(Math.pow(i-s,2)+Math.pow(e-o,2));this.startX=(i+s)/2;this.startY=(e+o)/2;this._store.rerender()}}}handlePointerMove(t){if(t.pointerType==="mouse"){const i=this._store.state.host.getBoundingClientRect();const e=t.clientX-i.left;const s=t.clientY-i.top;this._store.state.pointerX=(e-this._store.state.translateX)/this._store.state.scale;this._store.state.pointerY=(s-this._store.state.translateY)/this._store.state.scale;if(this._store.state.isPanning){this._store.state.translateX-=this._store.state.startX-e;this._store.state.translateY-=this._store.state.startY-s;this._store.state.startX=e;this._store.state.startY=s;this._store.state.hasViewportChanged=true;this._store.state.skipContextMenu=true;this._store.rerender()}}if(t.pointerType==="touch"){const i=this._store.state.host.getBoundingClientRect();const e=t.clientX-i.left;const s=t.clientY-i.top;this._store.state.pointerX=(e-this._store.state.translateX)/this._store.state.scale;this._store.state.pointerY=(s-this._store.state.translateY)/this._store.state.scale;const o=Array.from(this._store.state.pointers.values());if(o.length===2){const t=o[0].clientX-this._store.offsetX;const i=o[0].clientY-this._store.offsetY;const e=o[1].clientX-this._store.offsetX;const s=o[1].clientY-this._store.offsetY;const n=Math.sqrt(Math.pow(t-e,2)+Math.pow(i-s,2));const r=(t+e)/2;const l=(i+s)/2;const h=n/this.initialTouchDistance;const a=this._store.state.scale*h;if(a>this._store.state.scaleMax||a<this._store.state.scaleMin){this._store.state.translateX+=r-this.startX;this._store.state.translateY+=l-this.startY}else{const t=(r-this._store.state.translateX)*(h-1);const i=(l-this._store.state.translateY)*(h-1);this._store.state.translateX+=r-this.startX-t;this._store.state.translateY+=l-this.startY-i;this._store.state.scale=a;this.initialTouchDistance=n}this.startX=r;this.startY=l;this._store.state.hasViewportChanged=true;this._store.rerender()}}}handlePointerUp(t){if(t.pointerType==="mouse"){if(this._store.state.isPanning){this._store.state.isPanning=false;this._store.rerender()}}if(t.pointerType==="touch"){this._store.state.isScaling=false;this._store.rerender()}}handleWheel(t){t.preventDefault();if(t.ctrlKey===true&&u.isMainMouseWheel(t)){this.handleZoom(t)}if(!t.ctrlKey){this.handlePan(t)}}handleZoom(t){const i=this._store.state.host.getBoundingClientRect();const e=t.clientX-i.left;const s=t.clientY-i.top;this._store.state.pointerX=(e-this._store.state.translateX)/this._store.state.scale;this._store.state.pointerY=(s-this._store.state.translateY)/this._store.state.scale;const o=t.deltaY>0?-this._store.state.scaleStep*this._store.state.scale:this._store.state.scaleStep*this._store.state.scale;const n=Math.min(this._store.state.scaleMax,Math.max(this._store.state.scaleMin,this._store.state.scale+o));const r=n/this._store.state.scale;const l=(e-this._store.state.translateX)*(r-1);const h=(s-this._store.state.translateY)*(r-1);this._store.state.scale=n;this._store.state.translateX-=l;this._store.state.translateY-=h;this._store.state.hasViewportChanged=true;this._store.rerender()}handlePan(t){const i=.8;this._store.state.translateX-=t.deltaX*i;this._store.state.translateY-=t.deltaY*i;this._store.state.hasViewportChanged=true;this._store.rerender()}}class Z extends b{constructor(t,i,e){super(t,i);this.previousViewport=e;this.currentViewport={scale:this._store.state.scale,translateX:this._store.state.translateX,translateY:this._store.state.translateY}}execute(){this._store.state.scale=this.currentViewport.scale;this._store.state.translateX=this.currentViewport.translateX;this._store.state.translateY=this.currentViewport.translateY}undo(){this._store.state.scale=this.previousViewport.scale;this._store.state.translateX=this.previousViewport.translateX;this._store.state.translateY=this.previousViewport.translateY}}class J{constructor(t){this.head=0;this.tail=0;this.size=0;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 Q{constructor(t){this._store=t;this.undoStack=new J(this._store.state.historyBufferSize);this.redoStack=new J(this._store.state.historyBufferSize);this.previousViewport={scale:this._store.state.scale,scaleStep:this._store.state.scaleStep,translateX:this._store.state.translateX,translateY:this._store.state.translateY}}executeCommand(t){if(this._store.state.hasViewportChanged){this.addUpdateViewportCommand()}t.execute();if(this._store.state.debugInfo.logCommands)console.info("add",t);this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}this._store.rerender()}undo(){if(this._store.state.hasViewportChanged){const t=new Z(this._store,this,this.previousViewport);t.undo();this._store.state.hasViewportChanged=false;this._store.rerender();return}const t=this.undoStack.pop();if(t){t.undo();if(this._store.state.debugInfo.logCommands)console.info("undo",t);this.redoStack.add(t)}this._store.rerender()}redo(){const t=this.redoStack.pop();if(t){t.execute();if(this._store.state.debugInfo.logCommands)console.info("redo",t);this.undoStack.add(t)}this._store.rerender()}addUpdateViewportCommand(){const t=new Z(this._store,this,this.previousViewport);t.execute();this.undoStack.add(t);if(this.redoStack.isEmpty()===false){this.redoStack.clear()}this._store.state.hasViewportChanged=false;this.previousViewport={scale:this._store.state.scale,scaleStep:this._store.state.scaleStep,translateX:this._store.state.translateX,translateY:this._store.state.translateY}}}class tt{constructor(t,i=8){this.objects=[];this.children=null;this.bounds=t;this.capacity=i}insert(t){if(!this.intersects(t.rotatedBoundingBox,this.bounds)){return false}if(this.objects.length<this.capacity&&this.children===null){this.objects.push(t);return true}if(this.children===null){this.subdivide()}for(const i of this.children){if(i.insert(t)){return true}}return false}update(t){const i=this.objects.findIndex((i=>i.id===t.id));if(i!==-1){this.objects[i]=t;return true}if(this.children!==null){for(const i of this.children){if(i.update(t)){return true}}}return false}remove(t){const i=this.objects.findIndex((i=>t(i)));if(i!==-1){this.objects.splice(i,1)}if(this.children!==null){for(const i of this.children){i.remove(t)}}}query(t){const i=[];if(!this.intersects(t,this.bounds)){return i}for(const e of this.objects){if(this.intersects(e.rotatedBoundingBox,t)){i.push(e)}}if(this.children!==null){for(const e of this.children){i.push(...e.query(t))}}return i}filter(t){const i=this.objects.filter((i=>t(i)));if(this.children!==null){for(const e of this.children){i.push(...e.filter(t))}}return i}allObjects(){const t=[...this.objects];if(this.children!==null){for(const i of this.children){t.push(...i.allObjects())}}return t}subdivide(){const{x:t,y:i,z:e,width:s,height:o,depth:n}=this.bounds;const r=s/2;const l=o/2;const h=n/2;this.children=[new tt({x:t,y:i,z:e,width:r,height:l,depth:h},this.capacity),new tt({x:t+r,y:i,z:e,width:r,height:l,depth:h},this.capacity),new tt({x:t,y:i+l,z:e,width:r,height:l,depth:h},this.capacity),new tt({x:t+r,y:i+l,z:e,width:r,height:l,depth:h},this.capacity),new tt({x:t,y:i,z:e+h,width:r,height:l,depth:h},this.capacity),new tt({x:t+r,y:i,z:e+h,width:r,height:l,depth:h},this.capacity),new tt({x:t,y:i+l,z:e+h,width:r,height:l,depth:h},this.capacity),new tt({x:t+r,y:i+l,z:e+h,width:r,height:l,depth:h},this.capacity)]}intersects(t,i){return!(t.x>=i.x+i.width||t.x+t.width<=i.x||t.y>=i.y+i.height||t.y+t.height<=i.y)}}class it extends b{constructor(t,i,e,s){super(t,i);this.object=e;this.updatedProperties=s;this.previousProperties={};for(const t in s){if(s.hasOwnProperty(t)){this.previousProperties[t]=this.object[t]}}}execute(){for(const t in this.updatedProperties){if(this.updatedProperties.hasOwnProperty(t)){this.object[t]=this.updatedProperties[t]}}}undo(){for(const t in this.previousProperties){if(this.previousProperties.hasOwnProperty(t)){this.object[t]=this.previousProperties[t]}}}}const et={activeTool:null,activeText:null,currentPath:null,copiedObjects:null,objectsOctree:null,selectionBox:null,selectionGroup:null,resizeHandleType:null,hasViewportChanged:false,isReady:false,isEnabled:true,isScaling:false,isPanning:false,isFocused: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},host:null,pointerX:0,pointerY:0,scale:1,scaleMax:1,scaleMin:1,scaleStep:.05,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};class st{get history(){return this._history}get state(){return this._state}get currentZIndex(){return this._state.objectsOctree.filter((t=>!(t instanceof p)&&!(t instanceof v))).length}get allObjects(){return this._state.objectsOctree.allObjects()}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof p))).filter((t=>t.isSelected))}get offsetX(){return this._state.host.getBoundingClientRect().left}get offsetY(){return this._state.host.getBoundingClientRect().top}constructor(t){this._listeners=new Map;this.objects=[];this._state=et;this._kritzelEngine=t;this._history=new Q(this);this._state.objectsOctree=new tt({x:-Infinity,y:-Infinity,z:-Infinity,width:Infinity,height:Infinity,depth:Infinity})}rerender(){const t={x:-this._state.translateX/this._state.scale,y:-this._state.translateY/this._state.scale,z:this._state.scale,width:this._state.viewportWidth/this._state.scale,height:this._state.viewportHeight/this._state.scale,depth:100};this.objects=this._state.objectsOctree.query(t);if(this._kritzelEngine){this._kritzelEngine.forceUpdate++}}findObjectById(t){for(const i of this.allObjects){if(i.id===t){return i}}return null}deselectAllObjects(){if(this._state.selectionGroup){this._history.executeCommand(new g(this,this))}}onStateChange(t,i){if(!this._listeners.has(t)){this._listeners.set(t,new Set)}this._listeners.get(t).add(i)}setState(t,i){const e=this._state[t];if(e!==i){this._state[t]=i;if(this._listeners.has(t)){this._listeners.get(t).forEach((s=>s(i,e,String(t))))}}}delete(){if(!this.state.selectionGroup){return}const t=this.state.selectionGroup.objects.map((t=>new y(this,this.state.selectionGroup,t)));const i=new g(this,this.state.selectionGroup);const e=[...t,i];this.history.executeCommand(new k(this,this.state.selectionGroup,e))}deleteObject(t,i=true){const e=this.findObjectById(t);if(e){if(i){const t=new y(this,this,e);this.history.executeCommand(t)}else{this._state.objectsOctree.remove((i=>i.id===t));this.rerender()}}}copy(){this.state.copiedObjects=this.state.selectionGroup.copy()}paste(t,i){this.state.copiedObjects.isSelected=true;const e=t!==undefined?t:this.state.copiedObjects.translateX+25;const s=i!==undefined?i:this.state.copiedObjects.translateY+25;this.state.copiedObjects.updatePosition(e,s);const o=[];if(this.state.selectionGroup!==null){o.push(new g(this,this.state.selectionGroup))}const n=this.state.copiedObjects.objects.map((t=>new x(this,this,t)));const r=new w(this,this,this.state.copiedObjects);o.push(...n,r);this.history.executeCommand(new k(this,this,o));this.state.isSelecting=false;this.state.copiedObjects=this.state.selectionGroup.copy();this.setState("activeTool",z.getTool("selection"))}bringForward(t){const i=this.allObjects.length+1;const e=t?[t]:this.state.selectionGroup.objects;const s=e.map((t=>{if(t.zIndex===i){return}return new it(this,this,t,{zIndex:t.zIndex+1})}));this.history.executeCommand(new k(this,this,s))}sendBackward(t){const i=0;const e=t?[t]:this.state.selectionGroup.objects;const s=e.map((t=>{if(t.zIndex===i){return}return new it(this,this,t,{zIndex:t.zIndex-1})}));this.history.executeCommand(new k(this,this,s))}bringToFront(t){const i=this.allObjects.length+1;const e=t?[t]:this.state.selectionGroup.objects;const s=e.map((t=>new it(this,this,t,{zIndex:i})));this.history.executeCommand(new k(this,this,s))}sendToBack(t){const i=-1;const e=t?[t]:this.state.selectionGroup.objects;const s=e.map((t=>new it(this,this,t,{zIndex:i})));this.history.executeCommand(new k(this,this,s))}selectObjects(t){if(t.length===0){return}const i=p.create(this);t.forEach((t=>{t.isSelected=false;i.addOrRemove(t)}));i.isSelected=true;this.state.selectionGroup=i;if(t.length===1){i.rotation=i.objects[0].rotation}this.history.executeCommand(new w(this,this,i))}selectAllObjectsInViewport(){const t=this._state.objectsOctree.query({x:-this._state.translateX/this._state.scale,y:-this._state.translateY/this._state.scale,z:this._state.scale,width:this._state.viewportWidth/this._state.scale,height:this._state.viewportHeight/this._state.scale,depth:100}).filter((t=>!(t instanceof p)&&!(t instanceof v)&&!(t instanceof B)));if(t.length>0){const i=p.create(this);t.forEach((t=>{t.isSelected=false;i.addOrRemove(t)}));i.isSelected=true;this.state.isSelecting=false;if(t.length===1){i.rotation=i.objects[0].rotation}this.history.executeCommand(new w(this,this,i));this.setState("activeTool",z.getTool("selection"))}}clearSelection(){const t=new g(this,this.state.selectionGroup);this.history.executeCommand(t);this.state.selectionGroup=null;this.state.selectionBox=null;this.state.isSelecting=false;this.state.isResizeHandleSelected=false;this.state.isRotationHandleSelected=false}resetActiveText(){if(this.state.activeText&&this.state.activeText.value===" "){this.deleteObject(this.state.activeText.id,false);this.history.undoStack.pop()}this.state.activeText=null}getObjectFromPointerEvent(t,i=".object"){var e;const s=(e=this.state.host)===null||e===void 0?void 0:e.shadowRoot;if(!s)return null;const o=t.clientX;const n=t.clientY;const r=s.elementFromPoint(o,n);if(!r)return null;const l=r.closest(i);if(l){return this.allObjects.find((t=>l.id===t.id))}return null}getObjectsFromPointerEvent(t,i=".object"){var e;const s=(e=this.state.host)===null||e===void 0?void 0:e.shadowRoot;if(!s)return[];const o=t.clientX;const n=t.clientY;const r=s.elementsFromPoint(o,n);if(!r||r.length===0)return[];const l=new Set;r.forEach((t=>{const e=t.closest(i);if(e&&e.id){l.add(e.id)}}));if(l.size>0){return this.allObjects.filter((t=>l.has(t.id))).sort(((t,i)=>i.zIndex-t.zIndex))}return[]}getCanvasPoint(t){if(!this.state.host){return{x:0,y:0}}const i=this.state.host.getBoundingClientRect();const e=t.clientX-i.left;const s=t.clientY-i.top;const o=e-this.state.translateX;const n=s-this.state.translateY;const r=o/this.state.scale;const l=n/this.state.scale;return{x:r,y:l}}}class ot extends m{constructor(t){super(t)}handleKeyDown(t){if(this._store.state.isFocused===false){t.preventDefault();return}this._store.state.isCtrlKeyPressed=t.ctrlKey;if(this._store.state.isCtrlKeyPressed){t.preventDefault()}if(t.key==="Escape"&&this._store.state.selectionGroup){this._store.clearSelection()}if(t.key==="Delete"&&this._store.state.selectionGroup){this._store.delete()}if(t.key==="z"&&t.ctrlKey){this._store.history.undo()}if(t.key==="y"&&t.ctrlKey){this._store.history.redo()}if(t.key==="s"&&t.ctrlKey){this._store.setState("activeTool",z.getTool("selection"));this._store.deselectAllObjects()}if(t.key==="b"&&t.ctrlKey){this._store.setState("activeTool",z.getTool("brush"));this._store.deselectAllObjects()}if(t.key==="e"&&t.ctrlKey){this._store.setState("activeTool",z.getTool("eraser"));this._store.deselectAllObjects()}if(t.key==="i"&&t.ctrlKey){this._store.setState("activeTool",z.getTool("image"));this._store.deselectAllObjects()}if(t.key==="x"&&t.ctrlKey){this._store.setState("activeTool",z.getTool("text"));this._store.deselectAllObjects()}if(t.key==="c"&&t.ctrlKey&&this._store.state.selectionGroup){this._store.copy();this._store.rerender()}if(t.key==="v"&&t.ctrlKey&&this._store.state.copiedObjects){this._store.paste()}if(t.key==="+"&&t.ctrlKey&&this._store.state.selectionGroup){this._store.bringForward()}if(t.key==="-"&&t.ctrlKey&&this._store.state.selectionGroup){this._store.sendBackward()}if(t.key==="*"&&t.shiftKey&&this._store.state.selectionGroup){this._store.bringToFront()}if(t.key==="_"&&t.shiftKey&&this._store.state.selectionGroup){this._store.sendToBack()}if(t.key==="a"&&t.ctrlKey&&this._store.state.activeText){this._store.state.activeText.selectAll()}if(t.key==="v"&&t.ctrlKey&&this._store.state.activeText){this._store.state.activeText.insertFromClipboard()}}handleKeyUp(t){if(this._store.state.isFocused===false){return}this._store.state.isCtrlKeyPressed=t.ctrlKey}}class nt extends m{constructor(t,i,e){super(t);this.globalContextMenuItems=[];this.objectContextMenuItems=[];this.globalContextMenuItems=i;this.objectContextMenuItems=e}handleContextMenu(t){if(this._store.state.skipContextMenu){this._store.state.skipContextMenu=false;return}const i=this._store.getObjectFromPointerEvent(t,".object");if(i&&!(i instanceof p)){this._store.state.selectionGroup=p.create(this._store);this._store.state.selectionGroup.addOrRemove(i);this._store.state.selectionGroup.isSelected=true;this._store.state.selectionGroup.rotation=i.rotation;this._store.state.isSelecting=false;this._store.history.executeCommand(new w(this._store,this,this._store.state.selectionGroup))}this._store.state.contextMenuItems=this._store.state.selectionGroup?this.objectContextMenuItems:this.globalContextMenuItems;let e=t.clientX-this._store.offsetX;let s=t.clientY-this._store.offsetY;const o=150;const n=200;const r=10;if(e+o>window.innerWidth-r){e=window.innerWidth-o-r}if(s+n>window.innerHeight-r){s=window.innerHeight-n-r}e=Math.max(r,e);s=Math.max(r,s);this._store.state.contextMenuX=e;this._store.state.contextMenuY=s;this._store.state.isContextMenuVisible=true;this._store.state.isEnabled=false;this._store.rerender()}}class rt{static isInstanceOf(t,i){return t.__class__===i}}const lt=":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 ht=class{validateScaleMax(t){if(t>Y){console.warn(`scaleMax cannot be greater than ${Y}.`);this.scaleMax=Y;this.store.state.scaleMax=this.scaleMax}else{this.store.state.scaleMax=t}}validateScaleMin(t){if(t<U){console.warn(`scaleMin cannot be less than ${U}.`);this.scaleMin=U;this.store.state.scaleMin=this.scaleMin}else{this.store.state.scaleMin=t}}get isSelecting(){return this.store.state.activeTool instanceof h&&this.store.state.isSelecting}get isSelectionActive(){return this.store.state.activeTool instanceof h&&this.store.state.selectionGroup!==null}constructor(e){t(this,e);this.isEngineReady=i(this,"isEngineReady");this.activeToolChange=i(this,"activeToolChange");this.scaleMax=Y;this.scaleMin=U;this.forceUpdate=0;this.contextMenuElement=null;this.store=new st(this)}componentWillLoad(){this.validateScaleMax(this.scaleMax);this.validateScaleMin(this.scaleMin)}componentDidLoad(){this.contextMenuHandler=new nt(this.store,this.globalContextMenuItems,this.objectContextMenuItems);this.keyHandler=new ot(this.store);this.viewport=new G(this.store,this.host);this._registerStateChangeListeners();if(this.store.state.isReady===false){this.store.state.isReady=true;this.isEngineReady.emit()}}handleWheel(t){var i,e;if(this.store.state.isContextMenuVisible){this.hideContextMenu()}this.viewport.handleWheel(t);(e=(i=this.store.state)===null||i===void 0?void 0:i.activeTool)===null||e===void 0?void 0:e.handleWheel(t)}handlePointerDown(t){var i,e;if(u.isPointerEventOnContextMenu(t)===false&&this.store.state.isContextMenuVisible){this.hideContextMenu();return}if(this.store.state.isEnabled===false){return}u.onLongTouchPress(t,(t=>{if(!(this.store.state.activeTool instanceof h)){return}this.contextMenuHandler.handleContextMenu(t)}));this.host.setPointerCapture(t.pointerId);this.store.state.pointers.set(t.pointerId,t);this.viewport.handlePointerDown(t);(e=(i=this.store.state)===null||i===void 0?void 0:i.activeTool)===null||e===void 0?void 0:e.handlePointerDown(t)}handlePointerMove(t){var i,e;if(this.store.state.isEnabled===false){return}this.store.state.pointers.set(t.pointerId,t);this.viewport.handlePointerMove(t);(e=(i=this.store.state)===null||i===void 0?void 0:i.activeTool)===null||e===void 0?void 0:e.handlePointerMove(t)}handlePointerUp(t){var i,e;if(this.store.state.isEnabled===false){return}this.store.state.pointers.delete(t.pointerId);this.host.releasePointerCapture(t.pointerId);this.viewport.handlePointerUp(t);(e=(i=this.store.state)===null||i===void 0?void 0:i.activeTool)===null||e===void 0?void 0:e.handlePointerUp(t)}handlePointerCancel(t){var i,e;if(this.store.state.isEnabled===false){return}this.host.releasePointerCapture(t.pointerId);this.store.state.pointers.delete(t.pointerId);this.viewport.handlePointerUp(t);(e=(i=this.store.state)===null||i===void 0?void 0:i.activeTool)===null||e===void 0?void 0:e.handlePointerUp(t)}handleContextMenu(t){t.preventDefault();if(this.store.state.isEnabled===false){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)}updateFocus(t){const i=this.store.state.host.getBoundingClientRect();const e=t.clientX>=i.left&&t.clientX<=i.right&&t.clientY>=i.top&&t.clientY<=i.bottom;const s=t.composedPath();const o=this.host.closest("kritzel-engine");const n=s.includes(o||this.host);this.store.setState("isFocused",e&&n)}async registerTool(t,i,e){if(typeof i!=="function"||!(i.prototype instanceof C)){console.error(`Failed to register tool "${t}": Tool class must be a constructor function`);return null}const s=z.registerTool(t,i,this.store);if(e){Object.entries(e).forEach((([t,i])=>{s[t]=i}))}return Promise.resolve(s)}async changeActiveTool(t){var i;(i=this.store.state.activeTool)===null||i===void 0?void 0:i.onDeactivate();this.store.setState("activeTool",t);this.store.deselectAllObjects();t===null||t===void 0?void 0:t.onActivate()}async setFocus(){this.host.focus();this.store.state.isFocused=true}async disable(){this.store.state.isEnabled=false;this.forceUpdate++}async enable(){this.store.state.isEnabled=true;this.forceUpdate++}async delete(){this.store.delete()}async copy(){this.store.copy()}async paste(t,i){this.store.paste(t,i)}async bringForward(t){this.store.bringForward(t)}async sendBackward(t){this.store.sendBackward(t)}async moveToTop(t){this.store.bringToFront(t)}async moveToBottom(t){this.store.sendToBack(t)}async undo(){this.store.history.undo()}async redo(){this.store.history.redo()}async hideContextMenu(){this.store.state.pointers.clear();this.store.state.isContextMenuVisible=false;this.store.state.selectionBox=null;this.store.state.isSelecting=false}async getObjectById(t){const i=this.store.objects.find((i=>i.id===t));return i||null}async addObject(t){this.store.deselectAllObjects();t.id=t.generateId();t._store=this.store;t.scale=t.scale?t.scale:this.store.state.scale;t.zIndex=this.store.currentZIndex;const i=new x(this.store,this,t);this.store.history.executeCommand(i);return t}async updateObject(t,i){this.store.deselectAllObjects();const e=new it(this.store,this,t,i);this.store.history.executeCommand(e);return t}async removeObject(t){this.store.deselectAllObjects();const i=new y(this.store,this,t);this.store.history.executeCommand(i);return t}async getSelectedObjects(){return this.store.state.selectionGroup?this.store.state.selectionGroup.objects:[]}async selectObjects(t){var i;(i=this.store.state.activeTool)===null||i===void 0?void 0:i.onDeactivate();this.store.setState("activeTool",z.getTool("selection"));this.store.deselectAllObjects();this.store.selectObjects(t)}async selectAllObjectsInViewport(){var t;(t=this.store.state.activeTool)===null||t===void 0?void 0:t.onDeactivate();this.store.setState("activeTool",z.getTool("selection"));this.store.deselectAllObjects();this.store.selectAllObjectsInViewport()}async clearSelection(){this.store.clearSelection()}async centerObjectInViewport(t){t.centerInViewport();const i=new it(this.store,this,t,t);this.store.history.executeCommand(i);return t}async getCopiedObjects(){var t;return((t=this.store.state.copiedObjects)===null||t===void 0?void 0:t.objects)||[]}_registerStateChangeListeners(){this.store.onStateChange("activeTool",this._handleActiveToolChange.bind(this));this.store.onStateChange("isFocused",this._handleIsFocusedChange.bind(this))}_handleActiveToolChange(t){if(!(t instanceof h)){this.store.clearSelection()}this.store.state.skipContextMenu=false;this.activeToolChange.emit(t);j.forceHideKeyboard()}_handleIsFocusedChange(t){if(!t){this.store.resetActiveText()}}render(){var t,i,o,n,r,l,h,a,d,f,u,b,p,v,g,y,k,x,w,z,m,C,j,M,I,S,T,$;const F=window.getComputedStyle(this.host);const O=F.getPropertyValue("--kritzel-selection-handle-size").trim()||"6px";const B=parseFloat(O);const E=B*2<14?14:B;return e(s,{key:"61bfbd2fbd2a0fa54671b55372c0c78479bcbd42"},e("div",{key:"51741a7ffe2143fd78ef0d47961c98007c9cb996",class:"debug-panel",style:{display:this.store.state.debugInfo.showViewportInfo?"block":"none"}},e("div",{key:"aa580caa079e7ccb619369136a05860d21e7cc53"},"TranslateX: ",(t=this.store.state)===null||t===void 0?void 0:t.translateX),e("div",{key:"0a3ff31676954408050097cc1bbb34e71c10e157"},"TranslateY: ",(i=this.store.state)===null||i===void 0?void 0:i.translateY),e("div",{key:"86a4db3532f05ea238b4fa8f84e0cf1d1cfce05e"},"ViewportWidth: ",(o=this.store.state)===null||o===void 0?void 0:o.viewportWidth),e("div",{key:"775ef8217d65947e86e19b4b0d3f14b6ca0c0cc4"},"ViewportHeight: ",(n=this.store.state)===null||n===void 0?void 0:n.viewportHeight),e("div",{key:"47bb465ff9bf4179dd0d0d3973af534663f72a79"},"ObjectsInViewport. ",this.store.objects.length),e("div",{key:"4bc3129aa10b9d63ff5ff2eebafb5b98bc4349a5"},"Scale: ",(r=this.store.state)===null||r===void 0?void 0:r.scale),e("div",{key:"2bda37d1f92525c73230cc5247b4ce8d4918b341"},"ActiveTool: ",(h=(l=this.store.state)===null||l===void 0?void 0:l.activeTool)===null||h===void 0?void 0:h.name),e("div",{key:"b94f3078b060223150dd26b2194ab0debd2b531b"},"HasViewportChanged: ",((a=this.store.state)===null||a===void 0?void 0:a.hasViewportChanged)?"true":"false"),e("div",{key:"2d17379ea2ab8c8494d5c51b51a5f1a5f253e5c3"},"IsEnabled: ",((d=this.store.state)===null||d===void 0?void 0:d.isEnabled)?"true":"false"),e("div",{key:"2dc852b4a8935da997c0ff46d34bebf0bddc33d8"},"IsScaling: ",((f=this.store.state)===null||f===void 0?void 0:f.isScaling)?"true":"false"),e("div",{key:"2af7e9330c379c9a9d962d91b07749e2442df0cf"},"IsPanning: ",((u=this.store.state)===null||u===void 0?void 0:u.isPanning)?"true":"false"),e("div",{key:"99466f5d289fdc00b9c0b8c21f0a74a491495c96"},"IsFocused: ",this.store.state.isFocused?"true":"false"),e("div",{key:"98d95674cdc72f5b375b50d4ee8ac458d4af052d"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"9aa3cea7f3abd42fb627191678f733f7ae3be52d"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"ce0f5842e763e68cb9a7912622dedef14c403867"},"IsResizeHandleSelected: ",this.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"459ec8743e55a68dd933d1e005c742fb108b6c94"},"IsRotationHandleSelected: ",this.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"d12267e3924fbd066fa3ea851c3a88317bd5e78e"},"IsDrawing: ",this.store.state.isDrawing?"true":"false"),e("div",{key:"9f6a79f1c5feb36fe636ea5db8f76405efcff620"},"IsWriting: ",this.store.state.isWriting?"true":"false"),e("div",{key:"95a2c0ca71db420aedc87914dd1407a7d51e4ad9"},"PointerX: ",(b=this.store.state)===null||b===void 0?void 0:b.pointerX),e("div",{key:"97eeaaa4152979c94086ccb4819622f08c126ba3"},"PointerY: ",(p=this.store.state)===null||p===void 0?void 0:p.pointerY)),e("div",{key:"9c5ac0629d021a44a66fc6d42dec39ea0b8814a8",id:"origin",class:"origin",style:{transform:`matrix(${(v=this.store.state)===null||v===void 0?void 0:v.scale}, 0, 0, ${(g=this.store.state)===null||g===void 0?void 0:g.scale}, ${(y=this.store.state)===null||y===void 0?void 0:y.translateX}, ${(k=this.store.state)===null||k===void 0?void 0:k.translateY})`}},(x=this.store.objects)===null||x===void 0?void 0:x.map((t=>{var i,s,o,n,r,l,h,a,c,d,f,u,b,p,v,g,y,k,x;return e("div",{style:{transform:t===null||t===void 0?void 0:t.transformationMatrix,transformOrigin:"top left",zIndex:t.zIndex.toString(),position:"absolute"}},e("svg",{xmlns:"http://www.w3.org/2000/svg",key:t.id,id:t.id,class:"object",style:{height:t===null||t===void 0?void 0:t.totalHeight.toString(),width:t===null||t===void 0?void 0: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"}},rt.isInstanceOf(t,"KritzelPath")&&e("svg",{ref:i=>i?t.mount(i):t.unmount(),xmlns:"http://www.w3.org/2000/svg",style:{height:t===null||t===void 0?void 0:t.height.toString(),width:t===null||t===void 0?void 0:t.width.toString(),position:"absolute",overflow:"visible"},viewBox:t===null||t===void 0?void 0:t.viewBox},e("path",{d:t===null||t===void 0?void 0:t.d,fill:t.fill,stroke:t===null||t===void 0?void 0:t.stroke})),rt.isInstanceOf(t,"KritzelImage")&&e("img",{ref:i=>i?t.mount(i):t.unmount(),src:t.src,style:{width:"100%",height:"100%",userSelect:"none",pointerEvents:"none"},draggable:false,onDragStart:t=>t.preventDefault()}),rt.isInstanceOf(t,"KritzelText")&&e("textarea",{ref:i=>i?t.mount(i):t.unmount(),value:t.value,onKeyDown:i=>t.handleKeyDown(i),onInput:i=>t.handleInput(i),rows:t.rows,style:{width:"100%",height:"100%",color:t.fontColor,fontSize:((i=t.fontSize)===null||i===void 0?void 0:i.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"}}),rt.isInstanceOf(t,"KritzelCustomElement")&&e("div",{ref:i=>i?t.mount(i):t.unmount(),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),rt.isInstanceOf(t,"KritzelSelectionGroup")&&e("div",{ref:i=>i?t.mount(i):t.unmount(),style:{width:"100%",height:"100%"}}),rt.isInstanceOf(t,"KrtizelSelectionBox")&&e("div",{ref:i=>i?t.mount(i):t.unmount(),style:{width:"100%",height:"100%"}})),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} / ${(s=this.store.state)===null||s===void 0?void 0:s.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} / ${(o=this.store.state)===null||o===void 0?void 0:o.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} / ${(n=this.store.state)===null||n===void 0?void 0:n.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} / ${(r=this.store.state)===null||r===void 0?void 0:r.scale})`,strokeLinecap:"square"},visibility:t.isSelected?"visible":"hidden"}),e("circle",{class:"resize-handle top-left",cx:"0",cy:"0",r:`${B*t.scale/((l=this.store.state)===null||l===void 0?void 0:l.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:`${E*t.scale/((h=this.store.state)===null||h===void 0?void 0:h.scale)}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle top-right",cx:t.totalWidth,cy:"0",r:`${B*t.scale/((a=this.store.state)===null||a===void 0?void 0:a.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:`${E*t.scale/((c=this.store.state)===null||c===void 0?void 0:c.scale)}`,style:{fill:"transparent"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"resize-handle bottom-left",cx:"0",cy:t.totalHeight,r:`${B*t.scale/((d=this.store.state)===null||d===void 0?void 0:d.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:`${E*t.scale/((f=this.store.state)===null||f===void 0?void 0:f.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:`${B*t.scale/((u=this.store.state)===null||u===void 0?void 0:u.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:`${E*t.scale/((b=this.store.state)===null||b===void 0?void 0:b.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/((p=this.store.state)===null||p===void 0?void 0:p.scale)),style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${(v=this.store.state)===null||v===void 0?void 0:v.scale})`},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("circle",{class:"rotation-handle",cx:t.totalWidth/2,cy:-(15*t.scale/((g=this.store.state)===null||g===void 0?void 0:g.scale)),r:`${B*t.scale/((y=this.store.state)===null||y===void 0?void 0:y.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/((k=this.store.state)===null||k===void 0?void 0:k.scale)),r:`${E*t.scale/((x=this.store.state)===null||x===void 0?void 0:x.scale)}`,style:{fill:"transparent",cursor:"grab"},visibility:t.isSelected&&!this.isSelecting?"visible":"hidden"}),e("g",{style:{display:this.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:"95ad9e12faccc0fbb3af7871b2a4acb383ff8d1c",class:"object",xmlns:"http://www.w3.org/2000/svg",style:{height:(w=this.store.state.currentPath)===null||w===void 0?void 0:w.height.toString(),width:(z=this.store.state.currentPath)===null||z===void 0?void 0:z.width.toString(),left:"0",top:"0",zIndex:(m=this.store.state.currentPath)===null||m===void 0?void 0:m.zIndex.toString(),position:"absolute",transform:(C=this.store.state.currentPath)===null||C===void 0?void 0:C.transformationMatrix,transformOrigin:"top left",overflow:"visible"},viewBox:(j=this.store.state.currentPath)===null||j===void 0?void 0:j.viewBox},e("path",{key:"94a8e02708fdb85a298d96dbce880dcd2f933c0c",d:(M=this.store.state.currentPath)===null||M===void 0?void 0:M.d,fill:(I=this.store.state.currentPath)===null||I===void 0?void 0:I.fill,stroke:(S=this.store.state.currentPath)===null||S===void 0?void 0:S.stroke}))),this.store.state.isContextMenuVisible&&e("kritzel-context-menu",{key:"127e0f7b1d69243cdb5f41473755e16e3d93a2f3",class:"context-menu",ref:t=>this.contextMenuElement=t,items:this.store.state.contextMenuItems,objects:((T=this.store.state.selectionGroup)===null||T===void 0?void 0:T.objects)||[],style:{position:"fixed",left:`${this.store.state.contextMenuX}px`,top:`${this.store.state.contextMenuY}px`,zIndex:"10000"},onActionSelected:t=>{var i;t.detail.action({x:(-this.store.state.translateX+this.store.state.contextMenuX)/this.store.state.scale,y:(-this.store.state.translateY+this.store.state.contextMenuY)/this.store.state.scale},(i=this.store.state.selectionGroup)===null||i===void 0?void 0:i.objects);this.hideContextMenu()}}),(($=this.store.state)===null||$===void 0?void 0:$.activeTool)instanceof c&&!this.store.state.isScaling&&e("kritzel-cursor-trail",{key:"c999cf8982b522f0a00b853141171c6726666390",store:this.store}))}get host(){return o(this)}static get watchers(){return{scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"]}}};ht.style=lt;const at=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const ct=class{constructor(i){t(this,i);this.fontFamily="Arial, sans-serif";this.size=24;this.color="#000000"}render(){return e(s,{key:"d0378237899c5641ae4354f3bffb14e3f8bafb59"},e("div",{key:"1475a6ae39ffc97eb780b30c85015c22cecafa6e",class:"font-preview",style:{fontFamily:this.fontFamily,fontSize:`${this.size}px`,color:this.color}},"A"))}};ct.style=at;const dt=":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 ft=class{constructor(e){t(this,e);this.fontFamilyChange=i(this,"fontFamilyChange");this.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"}];this.handleDropdownValueChange=t=>{this.fontFamilyChange.emit(t.detail)}}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}}}render(){const t=this.fontOptions.map((t=>({value:t.value,label:t.label,style:{fontFamily:t.value}})));return e(s,{key:"f420ff18156d54bfc475148a7d9aae0f1441408c"},e("kritzel-dropdown",{key:"6b54fb8265a0eb59a6a681c6a2b7a95fb222671c",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}},e("button",{key:"b853c75a425c7baafa7a8e749c90c0b08884375c",class:"font-style-button",slot:"suffix"},"B"),e("button",{key:"68dea850dd1d1f38db727d8be0eec3481890c571",class:"font-style-button italic-text",slot:"suffix"},"I")))}};ft.style=dt;const ut=":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, #f0f0f0)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-font-size-selected-background-color, #e0e0e0)}";const bt=class{constructor(e){t(this,e);this.sizeChange=i(this,"sizeChange");this.sizes=[8,10,12,16,20,24];this.selectedSize=null;this.fontFamily="Arial"}handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(s,{key:"1c09a403f1e8278d30b2675c3a6e17e12ec79afa"},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})))))}};bt.style=ut;const pt=":host{display:inline-flex;justify-content:center;align-items:center;}span{display:flex;align-items:center;width:100%;height:100%;}span>svg{width:100%;height:100%}";const vt=class{constructor(i){t(this,i);this.size=24}render(){const t=X.get(this.name);if(!t){console.error(`[kritzel-icon] Icon "${this.name}" not found in registry.`);return e("span",{class:"error-icon","aria-label":`Error: Icon ${this.name} not found`},"?")}const i={width:`${this.size}px`,height:`${this.size}px`};return e(s,{style:i},e("span",{"aria-hidden":!this.label,role:this.label?"img":undefined,"aria-label":this.label,innerHTML:t}))}};vt.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:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #f0f0f0)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #f0f0f0)}";const yt=class{constructor(e){t(this,e);this.sizeChange=i(this,"sizeChange");this.sizes=[4,6,8,12,16,24];this.selectedSize=null}handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(s,{key:"2e2a4d38920e25e1e60788deabe4912b510d0b10"},this.sizes.map((t=>e("div",{class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-color",{value:"#000000",size:t})))))}};yt.style=gt;const kt=":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 xt=768;const wt=class{constructor(i){t(this,i);this.isVisible=false;this.arrowSize=8;this.offsetY=24;this.positionX=0;this.arrowOffset="0px";this.isMobileView=window.innerWidth<xt}handleWindowResize(){this.isMobileView=window.innerWidth<xt;this.calculateAdjustedPosition()}componentWillLoad(){this.isMobileView=window.innerWidth<xt;this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}calculateAdjustedPosition(){var t;if(this.isVisible&&this.anchorElement){const i=this.anchorElement.getBoundingClientRect();const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip-content");if(!this.isMobileView){this.positionX=i.left+i.width/2;this.arrowOffset=`calc(${50}% - ${this.arrowSize}px)`}else{const t=e.getBoundingClientRect();this.positionX=i.left+i.width/2-t.width/2;this.arrowOffset=`${i.left+i.width/2-t.left-this.arrowSize}px`}}}render(){return e(s,{key:"3161826337f6957d2e568f52cfe3f57d705af0ed",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:"12fc4bc05b7be756102ce3779c9be1d51f3fe13b",class:"tooltip-content",onClick:t=>t.stopPropagation()},e("slot",{key:"90f645f8f7cec371aaeda7207a9fb420b02b2ae4"}),e("div",{key:"73380e2c6df22bc4a97479a52315e7b34d069fa1",class:"tooltip-arrow-wrapper",style:{position:"fixed",left:this.arrowOffset,bottom:`-${this.arrowSize*2}px`}},e("div",{key:"2e13cb01a3282e161d3212f4970a93b20ca1a0fe",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:"30ddbd00b928c0c734656d6309eaefbae5baf264",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`}}))))}get el(){return o(this)}};wt.style=kt;const zt=":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}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";const mt=class{constructor(e){t(this,e);this.undo=i(this,"undo");this.redo=i(this,"redo");this.delete=i(this,"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(s,{key:"496ed78323c9899ad363e7f7732a1464d99e1b3b"},e("button",{key:"7b6b9cd238a8d254f032d5752f184d567e9a3096",class:"utility-button",onClick:t=>this.handleUndo(t)},e("kritzel-icon",{key:"8ac19f36c6b82f7cc4a0249e60cf429f75c09218",name:"undo"})),e("button",{key:"1164727510a968356042507c1e302b85a135baf8",class:"utility-button",onClick:t=>this.handleRedo(t)},e("kritzel-icon",{key:"1c6cc414d5841a06853f99316eee7a0a609d5c92",name:"redo"})),e("div",{key:"e6f3342569b1c6b5a6b267cc215bc8e5d259e302",class:"utility-separator"}),e("button",{key:"0aa486a543df924c224f3637857cdcdb06f995ea",class:"utility-button"},e("kritzel-icon",{key:"9ee324e03f5df5297916549743539f7f19950768",name:"delete",onClick:()=>this.delete.emit()})))}};mt.style=zt;export{I as kritzel_brush_style,T as kritzel_color,F as kritzel_color_palette,B as kritzel_context_menu,_ as kritzel_control_brush_config,R as kritzel_control_text_config,D as kritzel_controls,W as kritzel_cursor_trail,K as kritzel_dropdown,N as kritzel_editor,ht as kritzel_engine,ct as kritzel_font,ft as kritzel_font_family,bt as kritzel_font_size,vt as kritzel_icon,yt as kritzel_stroke_size,wt as kritzel_tooltip,mt as kritzel_utility_panel};
|
|
2
|
-
//# sourceMappingURL=p-3a2f1d19.entry.js.map
|