kritzel-stencil 0.0.171 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -3
- package/dist/cjs/{default-line-tool.config-JuTDR6PF.js → default-line-tool.config-7eJND6Jb.js} +1516 -206
- package/dist/cjs/index-BeKMS-Zt.js +3280 -0
- package/dist/cjs/index.cjs.js +10 -7
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +4 -5
- package/dist/cjs/kritzel-color_22.cjs.entry.js +291 -106
- package/dist/cjs/loader.cjs.js +2 -3
- package/dist/cjs/stencil.cjs.js +3 -4
- package/dist/collection/classes/core/core.class.js +0 -1
- package/dist/collection/classes/core/reviver.class.js +0 -1
- package/dist/collection/classes/core/store.class.js +0 -1
- package/dist/collection/classes/core/viewport.class.js +0 -1
- package/dist/collection/classes/core/workspace.class.js +0 -1
- package/dist/collection/classes/handlers/base.handler.js +0 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +0 -1
- package/dist/collection/classes/handlers/hover.handler.js +0 -1
- package/dist/collection/classes/handlers/key.handler.js +0 -1
- package/dist/collection/classes/handlers/line-handle.handler.js +0 -1
- package/dist/collection/classes/handlers/move.handler.js +0 -1
- package/dist/collection/classes/handlers/resize.handler.js +0 -1
- package/dist/collection/classes/handlers/rotation.handler.js +0 -1
- package/dist/collection/classes/handlers/selection.handler.js +0 -1
- package/dist/collection/classes/managers/anchor.manager.js +0 -1
- package/dist/collection/classes/managers/cursor.manager.js +0 -1
- package/dist/collection/classes/objects/base-object.class.js +0 -1
- package/dist/collection/classes/objects/custom-element.class.js +0 -1
- package/dist/collection/classes/objects/group.class.js +0 -1
- package/dist/collection/classes/objects/image.class.js +0 -1
- package/dist/collection/classes/objects/line.class.js +0 -1
- package/dist/collection/classes/objects/path.class.js +0 -1
- package/dist/collection/classes/objects/selection-box.class.js +0 -1
- package/dist/collection/classes/objects/selection-group.class.js +0 -1
- package/dist/collection/classes/objects/shape.class.js +0 -1
- package/dist/collection/classes/objects/text.class.js +0 -1
- package/dist/collection/classes/providers/broadcast-sync-provider.class.js +0 -1
- package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js +0 -1
- package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
- package/dist/collection/classes/providers/websocket-sync-provider.class.js +0 -1
- package/dist/collection/classes/registries/icon-registry.class.js +0 -1
- package/dist/collection/classes/registries/tool.registry.js +0 -1
- package/dist/collection/classes/structures/app-state-map.structure.js +0 -1
- package/dist/collection/classes/structures/object-map.structure.js +0 -1
- package/dist/collection/classes/structures/quadtree.structure.js +0 -1
- package/dist/collection/classes/tools/base-tool.class.js +0 -1
- package/dist/collection/classes/tools/brush-tool.class.js +0 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +0 -1
- package/dist/collection/classes/tools/image-tool.class.js +0 -1
- package/dist/collection/classes/tools/line-tool.class.js +0 -1
- package/dist/collection/classes/tools/selection-tool.class.js +0 -1
- package/dist/collection/classes/tools/shape-tool.class.js +0 -1
- package/dist/collection/classes/tools/text-tool.class.js +0 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -2
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +2 -3
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +6 -7
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +1 -2
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -3
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +8 -3
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +151 -21
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +192 -23
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -2
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -2
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +8 -3
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +0 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -2
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -3
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -2
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -2
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -2
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -3
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -2
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -3
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -3
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +1 -2
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +3 -4
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -2
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +0 -1
- package/dist/collection/configs/default-brush-tool.config.js +0 -1
- package/dist/collection/configs/default-engine-config.js +0 -1
- package/dist/collection/configs/default-line-tool.config.js +0 -1
- package/dist/collection/configs/default-shape-tool.config.js +0 -1
- package/dist/collection/configs/default-sync.config.js +0 -1
- package/dist/collection/configs/default-text-tool.config.js +0 -1
- package/dist/collection/constants/core.constants.js +0 -1
- package/dist/collection/constants/engine.constants.js +0 -1
- package/dist/collection/enums/event-button.enum.js +0 -1
- package/dist/collection/enums/handle-type.enum.js +0 -1
- package/dist/collection/enums/shape-type.enum.js +0 -1
- package/dist/collection/helpers/class.helper.js +0 -1
- package/dist/collection/helpers/cursor.helper.js +0 -1
- package/dist/collection/helpers/devices.helper.js +0 -1
- package/dist/collection/helpers/event.helper.js +0 -1
- package/dist/collection/helpers/geometry.helper.js +0 -1
- package/dist/collection/helpers/html.helper.js +0 -1
- package/dist/collection/helpers/keyboard.helper.js +0 -1
- package/dist/collection/helpers/math.helper.js +0 -1
- package/dist/collection/helpers/object.helper.js +0 -1
- package/dist/collection/index.js +0 -1
- package/dist/collection/interfaces/anchor.interface.js +0 -1
- package/dist/collection/interfaces/arrow-head.interface.js +0 -1
- package/dist/collection/interfaces/bounding-box.interface.js +0 -1
- package/dist/collection/interfaces/clonable.interface.js +0 -1
- package/dist/collection/interfaces/context-menu-item.interface.js +0 -1
- package/dist/collection/interfaces/debug-info.interface.js +0 -1
- package/dist/collection/interfaces/engine-state.interface.js +0 -1
- package/dist/collection/interfaces/line-options.interface.js +0 -1
- package/dist/collection/interfaces/menu-item.interface.js +0 -1
- package/dist/collection/interfaces/object.interface.js +0 -1
- package/dist/collection/interfaces/path-options.interface.js +0 -1
- package/dist/collection/interfaces/point.interface.js +0 -1
- package/dist/collection/interfaces/polygon.interface.js +0 -1
- package/dist/collection/interfaces/selection-state.interface.js +0 -1
- package/dist/collection/interfaces/serializable.interface.js +0 -1
- package/dist/collection/interfaces/shortcut.interface.js +0 -1
- package/dist/collection/interfaces/sync-config.interface.js +0 -1
- package/dist/collection/interfaces/sync-provider.interface.js +0 -1
- package/dist/collection/interfaces/tool.interface.js +0 -1
- package/dist/collection/interfaces/toolbar-control.interface.js +0 -1
- package/dist/collection/interfaces/undo-state.interface.js +0 -1
- package/dist/collection/types/deep-readonly.type.js +0 -1
- package/dist/collection/types/state.types.js +0 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -1477
- package/dist/components/kritzel-brush-style.js +1 -67
- package/dist/components/kritzel-color-palette.js +1 -9
- package/dist/components/kritzel-color.js +1 -9
- package/dist/components/kritzel-context-menu.js +1 -9
- package/dist/components/kritzel-control-brush-config.js +1 -9
- package/dist/components/kritzel-control-text-config.js +1 -9
- package/dist/components/kritzel-controls.js +1 -9
- package/dist/components/kritzel-cursor-trail.js +1 -9
- package/dist/components/kritzel-dropdown.js +1 -9
- package/dist/components/kritzel-editor.js +1 -605
- package/dist/components/kritzel-engine.js +1 -9
- package/dist/components/kritzel-font-family.js +1 -9
- package/dist/components/kritzel-font-size.js +1 -9
- package/dist/components/kritzel-font.js +1 -9
- package/dist/components/kritzel-icon.js +1 -9
- package/dist/components/kritzel-menu-item.js +1 -9
- package/dist/components/kritzel-menu.js +1 -9
- package/dist/components/kritzel-portal.js +1 -9
- package/dist/components/kritzel-split-button.js +1 -9
- package/dist/components/kritzel-stroke-size.js +1 -9
- package/dist/components/kritzel-tooltip.js +1 -9
- package/dist/components/kritzel-utility-panel.js +1 -9
- package/dist/components/kritzel-workspace-manager.js +1 -9
- package/dist/components/p-1z-ds26_.js +1 -0
- package/dist/components/p-4FEa4ADy.js +1 -0
- package/dist/components/p-B0kd2rUI.js +1 -16
- package/dist/components/p-B7Fdo5QJ.js +1 -0
- package/dist/components/p-BXaWhpO2.js +1 -0
- package/dist/components/p-Bj_Og27M.js +1 -0
- package/dist/components/p-BtuXeItZ.js +1 -0
- package/dist/components/p-C-d2IH4v.js +1 -0
- package/dist/components/p-C3UriJh7.js +1 -0
- package/dist/components/p-C4krHoUl.js +1 -0
- package/dist/components/p-C6qB08BS.js +1 -68
- package/dist/components/p-CF5L2Gdl.js +1 -0
- package/dist/components/p-CXzfYQ_u.js +1 -0
- package/dist/components/p-CeKT_dTd.js +1 -0
- package/dist/components/p-Cp15toXH.js +1 -0
- package/dist/components/p-Cy77SpWt.js +1 -0
- package/dist/components/p-D1tfzpy8.js +1 -0
- package/dist/components/p-D3LRBk2t.js +9 -0
- package/dist/components/p-D5ZsALCP.js +1 -0
- package/dist/components/p-D8W6LE-c.js +1 -11
- package/dist/components/p-DB5s1NY4.js +1 -0
- package/dist/components/p-DTezr6w9.js +1 -0
- package/dist/components/p-Du1vxHy8.js +1 -0
- package/dist/components/p-IAqZFssU.js +1 -0
- package/dist/components/p-g0N9j_uT.js +1 -0
- package/dist/components/p-l10It7Nm.js +1 -30
- package/dist/components/p-n789Y3S-.js +1 -45
- package/dist/esm/app-globals-DQuL1Twl.js +0 -3
- package/dist/esm/{default-line-tool.config-CuBm2vpW.js → default-line-tool.config-CD5sTKH-.js} +1515 -205
- package/dist/esm/index-BqhmuUH2.js +3253 -0
- package/dist/esm/index.js +11 -8
- package/dist/esm/kritzel-brush-style.entry.js +4 -5
- package/dist/esm/kritzel-color_22.entry.js +291 -106
- package/dist/esm/loader.js +3 -4
- package/dist/esm/stencil.js +4 -5
- package/dist/stencil/index.esm.js +1 -2
- package/dist/stencil/p-09295079.entry.js +1 -0
- package/dist/stencil/p-381c0e9c.entry.js +9 -0
- package/dist/stencil/p-BqhmuUH2.js +2 -0
- package/dist/stencil/p-CD5sTKH-.js +1 -0
- package/dist/stencil/p-DQuL1Twl.js +1 -2
- package/dist/stencil/stencil.esm.js +1 -2
- package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
- package/dist/types/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +22 -3
- package/dist/types/components/shared/kritzel-font-size/kritzel-font-size.d.ts +1 -0
- package/dist/types/components.d.ts +2 -2
- package/dist/types/stencil-public-runtime.d.ts +57 -3
- package/package.json +6 -1
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
- package/dist/cjs/default-line-tool.config-JuTDR6PF.js.map +0 -1
- package/dist/cjs/index-Cj__YTlG.js +0 -1650
- package/dist/cjs/index-Cj__YTlG.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/stencil.cjs.js.map +0 -1
- package/dist/collection/classes/core/core.class.js.map +0 -1
- package/dist/collection/classes/core/reviver.class.js.map +0 -1
- package/dist/collection/classes/core/store.class.js.map +0 -1
- package/dist/collection/classes/core/viewport.class.js.map +0 -1
- package/dist/collection/classes/core/workspace.class.js.map +0 -1
- package/dist/collection/classes/handlers/base.handler.js.map +0 -1
- package/dist/collection/classes/handlers/context-menu.handler.js.map +0 -1
- package/dist/collection/classes/handlers/hover.handler.js.map +0 -1
- package/dist/collection/classes/handlers/key.handler.js.map +0 -1
- package/dist/collection/classes/handlers/line-handle.handler.js.map +0 -1
- package/dist/collection/classes/handlers/move.handler.js.map +0 -1
- package/dist/collection/classes/handlers/resize.handler.js.map +0 -1
- package/dist/collection/classes/handlers/rotation.handler.js.map +0 -1
- package/dist/collection/classes/handlers/selection.handler.js.map +0 -1
- package/dist/collection/classes/managers/anchor.manager.js.map +0 -1
- package/dist/collection/classes/managers/cursor.manager.js.map +0 -1
- package/dist/collection/classes/objects/base-object.class.js.map +0 -1
- package/dist/collection/classes/objects/custom-element.class.js.map +0 -1
- package/dist/collection/classes/objects/group.class.js.map +0 -1
- package/dist/collection/classes/objects/image.class.js.map +0 -1
- package/dist/collection/classes/objects/line.class.js.map +0 -1
- package/dist/collection/classes/objects/path.class.js.map +0 -1
- package/dist/collection/classes/objects/selection-box.class.js.map +0 -1
- package/dist/collection/classes/objects/selection-group.class.js.map +0 -1
- package/dist/collection/classes/objects/shape.class.js.map +0 -1
- package/dist/collection/classes/objects/text.class.js.map +0 -1
- package/dist/collection/classes/providers/broadcast-sync-provider.class.js.map +0 -1
- package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js.map +0 -1
- package/dist/collection/classes/providers/indexeddb-sync-provider.class.js.map +0 -1
- package/dist/collection/classes/providers/websocket-sync-provider.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.map +0 -1
- package/dist/collection/classes/structures/app-state-map.structure.js.map +0 -1
- package/dist/collection/classes/structures/object-map.structure.js.map +0 -1
- package/dist/collection/classes/structures/quadtree.structure.js.map +0 -1
- package/dist/collection/classes/tools/base-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/brush-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/eraser-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/image-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/line-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/selection-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/shape-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/text-tool.class.js.map +0 -1
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +0 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +0 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +0 -1
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +0 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +0 -1
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +0 -1
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +0 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +0 -1
- 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.js.map +0 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +0 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +0 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +0 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +0 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +0 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +0 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +0 -1
- 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.js.map +0 -1
- 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.js.map +0 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +0 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +0 -1
- package/dist/collection/configs/default-brush-tool.config.js.map +0 -1
- package/dist/collection/configs/default-engine-config.js.map +0 -1
- package/dist/collection/configs/default-line-tool.config.js.map +0 -1
- package/dist/collection/configs/default-shape-tool.config.js.map +0 -1
- package/dist/collection/configs/default-sync.config.js.map +0 -1
- package/dist/collection/configs/default-text-tool.config.js.map +0 -1
- package/dist/collection/constants/core.constants.js.map +0 -1
- package/dist/collection/constants/engine.constants.js.map +0 -1
- package/dist/collection/enums/event-button.enum.js.map +0 -1
- package/dist/collection/enums/handle-type.enum.js.map +0 -1
- package/dist/collection/enums/shape-type.enum.js.map +0 -1
- package/dist/collection/helpers/class.helper.js.map +0 -1
- package/dist/collection/helpers/cursor.helper.js.map +0 -1
- package/dist/collection/helpers/devices.helper.js.map +0 -1
- package/dist/collection/helpers/event.helper.js.map +0 -1
- package/dist/collection/helpers/geometry.helper.js.map +0 -1
- package/dist/collection/helpers/html.helper.js.map +0 -1
- package/dist/collection/helpers/keyboard.helper.js.map +0 -1
- package/dist/collection/helpers/math.helper.js.map +0 -1
- package/dist/collection/helpers/object.helper.js.map +0 -1
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/interfaces/anchor.interface.js.map +0 -1
- package/dist/collection/interfaces/arrow-head.interface.js.map +0 -1
- package/dist/collection/interfaces/bounding-box.interface.js.map +0 -1
- package/dist/collection/interfaces/clonable.interface.js.map +0 -1
- package/dist/collection/interfaces/context-menu-item.interface.js.map +0 -1
- package/dist/collection/interfaces/debug-info.interface.js.map +0 -1
- package/dist/collection/interfaces/engine-state.interface.js.map +0 -1
- package/dist/collection/interfaces/line-options.interface.js.map +0 -1
- package/dist/collection/interfaces/menu-item.interface.js.map +0 -1
- package/dist/collection/interfaces/object.interface.js.map +0 -1
- package/dist/collection/interfaces/path-options.interface.js.map +0 -1
- package/dist/collection/interfaces/point.interface.js.map +0 -1
- package/dist/collection/interfaces/polygon.interface.js.map +0 -1
- package/dist/collection/interfaces/selection-state.interface.js.map +0 -1
- package/dist/collection/interfaces/serializable.interface.js.map +0 -1
- package/dist/collection/interfaces/shortcut.interface.js.map +0 -1
- package/dist/collection/interfaces/sync-config.interface.js.map +0 -1
- package/dist/collection/interfaces/sync-provider.interface.js.map +0 -1
- package/dist/collection/interfaces/tool.interface.js.map +0 -1
- package/dist/collection/interfaces/toolbar-control.interface.js.map +0 -1
- package/dist/collection/interfaces/undo-state.interface.js.map +0 -1
- package/dist/collection/types/deep-readonly.type.js.map +0 -1
- package/dist/collection/types/state.types.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/kritzel-brush-style.js.map +0 -1
- package/dist/components/kritzel-color-palette.js.map +0 -1
- package/dist/components/kritzel-color.js.map +0 -1
- package/dist/components/kritzel-context-menu.js.map +0 -1
- package/dist/components/kritzel-control-brush-config.js.map +0 -1
- package/dist/components/kritzel-control-text-config.js.map +0 -1
- package/dist/components/kritzel-controls.js.map +0 -1
- package/dist/components/kritzel-cursor-trail.js.map +0 -1
- package/dist/components/kritzel-dropdown.js.map +0 -1
- package/dist/components/kritzel-editor.js.map +0 -1
- package/dist/components/kritzel-engine.js.map +0 -1
- package/dist/components/kritzel-font-family.js.map +0 -1
- package/dist/components/kritzel-font-size.js.map +0 -1
- package/dist/components/kritzel-font.js.map +0 -1
- package/dist/components/kritzel-icon.js.map +0 -1
- package/dist/components/kritzel-menu-item.js.map +0 -1
- package/dist/components/kritzel-menu.js.map +0 -1
- package/dist/components/kritzel-portal.js.map +0 -1
- package/dist/components/kritzel-split-button.js.map +0 -1
- package/dist/components/kritzel-stroke-size.js.map +0 -1
- package/dist/components/kritzel-tooltip.js.map +0 -1
- package/dist/components/kritzel-utility-panel.js.map +0 -1
- package/dist/components/kritzel-workspace-manager.js.map +0 -1
- package/dist/components/p-B0kd2rUI.js.map +0 -1
- package/dist/components/p-B6r22FSC.js +0 -57
- package/dist/components/p-B6r22FSC.js.map +0 -1
- package/dist/components/p-BUsg2vtg.js +0 -14897
- package/dist/components/p-BUsg2vtg.js.map +0 -1
- package/dist/components/p-B_3OZeom.js +0 -119
- package/dist/components/p-B_3OZeom.js.map +0 -1
- package/dist/components/p-BdwB-S9G.js +0 -130
- package/dist/components/p-BdwB-S9G.js.map +0 -1
- package/dist/components/p-BhLtP5Cg.js +0 -308
- package/dist/components/p-BhLtP5Cg.js.map +0 -1
- package/dist/components/p-Brd9SxWS.js +0 -73
- package/dist/components/p-Brd9SxWS.js.map +0 -1
- package/dist/components/p-C29Efgmc.js +0 -106
- package/dist/components/p-C29Efgmc.js.map +0 -1
- package/dist/components/p-C6-tSCMR.js +0 -272
- package/dist/components/p-C6-tSCMR.js.map +0 -1
- package/dist/components/p-C6qB08BS.js.map +0 -1
- package/dist/components/p-CFH6XRL5.js +0 -75
- package/dist/components/p-CFH6XRL5.js.map +0 -1
- package/dist/components/p-CIts5Uma.js +0 -110
- package/dist/components/p-CIts5Uma.js.map +0 -1
- package/dist/components/p-CO8bwl_3.js +0 -103
- package/dist/components/p-CO8bwl_3.js.map +0 -1
- package/dist/components/p-CRGwaUcp.js +0 -55
- package/dist/components/p-CRGwaUcp.js.map +0 -1
- package/dist/components/p-Ck4lGnmt.js +0 -46
- package/dist/components/p-Ck4lGnmt.js.map +0 -1
- package/dist/components/p-CwkUrTy1.js +0 -1367
- package/dist/components/p-CwkUrTy1.js.map +0 -1
- package/dist/components/p-D0UgEnEL.js +0 -39586
- package/dist/components/p-D0UgEnEL.js.map +0 -1
- package/dist/components/p-D8W6LE-c.js.map +0 -1
- package/dist/components/p-DGnDUmrk.js +0 -62
- package/dist/components/p-DGnDUmrk.js.map +0 -1
- package/dist/components/p-DO4auCYf.js +0 -111
- package/dist/components/p-DO4auCYf.js.map +0 -1
- package/dist/components/p-LAsVgL2e.js +0 -83
- package/dist/components/p-LAsVgL2e.js.map +0 -1
- package/dist/components/p-aeYt0bPO.js +0 -231
- package/dist/components/p-aeYt0bPO.js.map +0 -1
- package/dist/components/p-l10It7Nm.js.map +0 -1
- package/dist/components/p-n789Y3S-.js.map +0 -1
- package/dist/components/p-nIBAWFcK.js +0 -132
- package/dist/components/p-nIBAWFcK.js.map +0 -1
- package/dist/components/p-nZdy-Ii5.js +0 -157
- package/dist/components/p-nZdy-Ii5.js.map +0 -1
- package/dist/components/p-y25EBKEA.js +0 -201
- package/dist/components/p-y25EBKEA.js.map +0 -1
- package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
- package/dist/esm/default-line-tool.config-CuBm2vpW.js.map +0 -1
- package/dist/esm/index-SGde3HXB.js +0 -1623
- package/dist/esm/index-SGde3HXB.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/kritzel-brush-style.entry.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/stencil.js.map +0 -1
- package/dist/stencil/index.esm.js.map +0 -1
- package/dist/stencil/kritzel-brush-style.entry.esm.js.map +0 -1
- package/dist/stencil/loader.esm.js.map +0 -1
- package/dist/stencil/p-385bab97.entry.js +0 -2
- package/dist/stencil/p-385bab97.entry.js.map +0 -1
- package/dist/stencil/p-CuBm2vpW.js +0 -2
- package/dist/stencil/p-CuBm2vpW.js.map +0 -1
- package/dist/stencil/p-DQuL1Twl.js.map +0 -1
- package/dist/stencil/p-SGde3HXB.js +0 -3
- package/dist/stencil/p-SGde3HXB.js.map +0 -1
- package/dist/stencil/p-d3f7214e.entry.js +0 -10
- package/dist/stencil/p-d3f7214e.entry.js.map +0 -1
- package/dist/stencil/stencil.esm.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-D8W6LE-c.js","mappings":"AAAY,IAAA;AAAZ,CAAA,UAAY,kBAAkB,EAAA;IAC5B,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;IACR,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;IACV,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACX,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA;;;;","names":[],"sources":["src/enums/event-button.enum.ts"],"sourcesContent":["export enum KritzelMouseButton {\r\n Left = 0,\r\n Middle = 1,\r\n Right = 2\r\n}\r\n"],"version":3}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-CwkUrTy1.js';
|
|
2
|
-
import { d as defineCustomElement$1 } from './p-CIts5Uma.js';
|
|
3
|
-
|
|
4
|
-
const kritzelUtilityPanelCss = ":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;background:none;cursor:var(--kritzel-pointer-cursor, pointer);color:#333333;-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:hover,.utility-button:focus-visible{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-button:disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";
|
|
5
|
-
|
|
6
|
-
const KritzelUtilityPanel = /*@__PURE__*/ proxyCustomElement(class KritzelUtilityPanel extends H {
|
|
7
|
-
constructor(registerHost) {
|
|
8
|
-
super();
|
|
9
|
-
if (registerHost !== false) {
|
|
10
|
-
this.__registerHost();
|
|
11
|
-
}
|
|
12
|
-
this.__attachShadow();
|
|
13
|
-
this.undo = createEvent(this, "undo");
|
|
14
|
-
this.redo = createEvent(this, "redo");
|
|
15
|
-
this.delete = createEvent(this, "delete");
|
|
16
|
-
}
|
|
17
|
-
undoState = null;
|
|
18
|
-
undo;
|
|
19
|
-
redo;
|
|
20
|
-
delete;
|
|
21
|
-
handleUndo(event) {
|
|
22
|
-
if (event.cancelable) {
|
|
23
|
-
event.preventDefault();
|
|
24
|
-
event.stopPropagation();
|
|
25
|
-
this.undo.emit();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
handleRedo(event) {
|
|
29
|
-
event.preventDefault();
|
|
30
|
-
event.stopPropagation();
|
|
31
|
-
this.redo.emit();
|
|
32
|
-
}
|
|
33
|
-
render() {
|
|
34
|
-
return (h(Host, { key: '05ec19a2b644f00680139513c97650e6e7c612f2' }, h("button", { key: 'a62b621b7a1abe33fbf3fc0aa1f8e1d6c7ed8be3', class: "utility-button", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event) }, h("kritzel-icon", { key: 'ca8d0f9c9e5cebaf20ffc239602c4b4ce37b7e6b', name: "undo" })), h("button", { key: '7f1ba8b6ae3b8edf0ac0127fee30f3c070d47b44', class: "utility-button", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event) }, h("kritzel-icon", { key: '4680f7f9523fe6c17924662e025f5e6dfc3e9d78', name: "redo" })), h("div", { key: '77148d676ed708e4029b32e25a3daac628302478', class: "utility-separator" }), h("button", { key: 'b740674dc96d41c0b7b4d2cfb365d45c0f453a27', class: "utility-button" }, h("kritzel-icon", { key: '73d2ed9b6b400106521b0f53915e93516f9d3aad', name: "delete", onClick: () => this.delete.emit() }))));
|
|
35
|
-
}
|
|
36
|
-
static get style() { return kritzelUtilityPanelCss; }
|
|
37
|
-
}, [769, "kritzel-utility-panel", {
|
|
38
|
-
"undoState": [16]
|
|
39
|
-
}]);
|
|
40
|
-
function defineCustomElement() {
|
|
41
|
-
if (typeof customElements === "undefined") {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const components = ["kritzel-utility-panel", "kritzel-icon"];
|
|
45
|
-
components.forEach(tagName => { switch (tagName) {
|
|
46
|
-
case "kritzel-utility-panel":
|
|
47
|
-
if (!customElements.get(tagName)) {
|
|
48
|
-
customElements.define(tagName, KritzelUtilityPanel);
|
|
49
|
-
}
|
|
50
|
-
break;
|
|
51
|
-
case "kritzel-icon":
|
|
52
|
-
if (!customElements.get(tagName)) {
|
|
53
|
-
defineCustomElement$1();
|
|
54
|
-
}
|
|
55
|
-
break;
|
|
56
|
-
} });
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export { KritzelUtilityPanel as K, defineCustomElement as d };
|
|
60
|
-
//# sourceMappingURL=p-DGnDUmrk.js.map
|
|
61
|
-
|
|
62
|
-
//# sourceMappingURL=p-DGnDUmrk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-DGnDUmrk.js","mappings":";;;AAAA,MAAM,sBAAsB,GAAG,+yBAA+yB;;MCQj0B,mBAAmB,iBAAAA,kBAAA,CAAA,MAAA,mBAAA,SAAAC,CAAA,CAAA;;;;;;;;;;;IACtB,SAAS,GAAqB,IAAI;AAEjC,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,MAAM;AAEf,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;;;AAIpB,IAAA,UAAU,CAAC,KAAY,EAAA;QACrB,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;;IAGlB,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAA,EACzG,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAc,IAAI,EAAC,MAAM,EAAA,CAAgB,CAClC,EACT,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAA,EACzG,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAc,IAAI,EAAC,MAAM,EAAA,CAAgB,CAClC,EAET,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAO,CAAA,EAErC,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EAC5B,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAc,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAiB,CACvE,CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-utility-panel/kritzel-utility-panel.css?tag=kritzel-utility-panel&encapsulation=shadow","src/components/ui/kritzel-utility-panel/kritzel-utility-panel.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n padding: 4px;\r\n gap: 8px;\r\n border-top-left-radius: 12px;\r\n border-top-right-radius: 12px;\r\n background-color: rgb(226, 226, 226);\r\n width: fit-content;\r\n user-select: none;\r\n}\r\n\r\n.utility-button {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 28px;\r\n height: 28px;\r\n padding: 8px 4px;\r\n border: none;\r\n background: none;\r\n cursor: var(--kritzel-pointer-cursor, pointer);\r\n color: #333333;\r\n -webkit-tap-highlight-color: transparent;\r\n border-radius: var(--kritzel-utility-panel-button-border-radius, 8px);\r\n}\r\n\r\n.utility-button:hover,\r\n.utility-button:focus-visible {\r\n background-color: var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%));\r\n}\r\n\r\n.utility-button:disabled {\r\n opacity: 0.4;\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n.utility-separator {\r\n width: 1px;\r\n height: 16px;\r\n background-color: hsl(0, 0%, 0%, 4.3%);\r\n}","import { Component, Host, h, Event, EventEmitter, Prop } from '@stencil/core';\r\nimport { KritzelUndoState } from '../../../interfaces/undo-state.interface';\r\n\r\n@Component({\r\n tag: 'kritzel-utility-panel',\r\n styleUrl: 'kritzel-utility-panel.css',\r\n shadow: true,\r\n})\r\nexport class KritzelUtilityPanel {\r\n @Prop() undoState: KritzelUndoState = null;\r\n\r\n @Event() undo: EventEmitter<void>;\r\n @Event() redo: EventEmitter<void>;\r\n @Event() delete: EventEmitter<void>;\r\n\r\n handleUndo(event: Event) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.undo.emit();\r\n }\r\n }\r\n\r\n handleRedo(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.redo.emit();\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <button class=\"utility-button\" disabled={!this.undoState?.canUndo} onClick={event => this.handleUndo(event)}>\r\n <kritzel-icon name=\"undo\"></kritzel-icon>\r\n </button>\r\n <button class=\"utility-button\" disabled={!this.undoState?.canRedo} onClick={event => this.handleRedo(event)}>\r\n <kritzel-icon name=\"redo\"></kritzel-icon>\r\n </button>\r\n\r\n <div class=\"utility-separator\"></div>\r\n\r\n <button class=\"utility-button\">\r\n <kritzel-icon name=\"delete\" onClick={() => this.delete.emit()}></kritzel-icon>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-CwkUrTy1.js';
|
|
2
|
-
import { K as KritzelHTMLHelper } from './p-C6qB08BS.js';
|
|
3
|
-
|
|
4
|
-
const kritzelTooltipCss = ":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))}";
|
|
5
|
-
|
|
6
|
-
const KritzelTooltip = /*@__PURE__*/ proxyCustomElement(class KritzelTooltip extends H {
|
|
7
|
-
constructor(registerHost) {
|
|
8
|
-
super();
|
|
9
|
-
if (registerHost !== false) {
|
|
10
|
-
this.__registerHost();
|
|
11
|
-
}
|
|
12
|
-
this.__attachShadow();
|
|
13
|
-
this.tooltipClosed = createEvent(this, "tooltipClosed");
|
|
14
|
-
}
|
|
15
|
-
get host() { return this; }
|
|
16
|
-
isVisible = false;
|
|
17
|
-
anchorElement;
|
|
18
|
-
offsetY = 24;
|
|
19
|
-
tooltipClosed;
|
|
20
|
-
positionX = 0;
|
|
21
|
-
positionY = 0;
|
|
22
|
-
handleOutsideClick(event) {
|
|
23
|
-
if (!this.isVisible)
|
|
24
|
-
return;
|
|
25
|
-
const target = event.target;
|
|
26
|
-
if (!this.host.contains(target)) {
|
|
27
|
-
this.tooltipClosed.emit();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
handleWindowResize() {
|
|
31
|
-
this.calculateAdjustedPosition();
|
|
32
|
-
}
|
|
33
|
-
async focusContent() {
|
|
34
|
-
const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);
|
|
35
|
-
if (focusableElements.length > 0) {
|
|
36
|
-
focusableElements[0].focus();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
componentDidLoad() {
|
|
40
|
-
this.focusSlottedContent();
|
|
41
|
-
}
|
|
42
|
-
componentWillLoad() {
|
|
43
|
-
this.calculateAdjustedPosition();
|
|
44
|
-
}
|
|
45
|
-
componentWillUpdate() {
|
|
46
|
-
this.calculateAdjustedPosition();
|
|
47
|
-
}
|
|
48
|
-
focusSlottedContent() {
|
|
49
|
-
const slot = this.host.shadowRoot?.querySelector('slot');
|
|
50
|
-
const assignedElements = slot?.assignedElements() || [];
|
|
51
|
-
if (assignedElements.length > 0) {
|
|
52
|
-
const firstElement = assignedElements[0];
|
|
53
|
-
firstElement.focus();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
calculateAdjustedPosition() {
|
|
57
|
-
if (this.isVisible && this.anchorElement) {
|
|
58
|
-
const anchorRect = this.anchorElement.getBoundingClientRect();
|
|
59
|
-
const tooltipContent = this.host.shadowRoot?.querySelector('.tooltip-content');
|
|
60
|
-
const tooltipRect = tooltipContent?.getBoundingClientRect();
|
|
61
|
-
const tooltipWidth = tooltipRect?.width || 0;
|
|
62
|
-
const viewportPadding = 12; // Minimum distance from viewport edges
|
|
63
|
-
const anchorCenterX = anchorRect.left + anchorRect.width / 2;
|
|
64
|
-
// Step 1: Try to center the tooltip above the anchor
|
|
65
|
-
let idealLeft = anchorCenterX - tooltipWidth / 2;
|
|
66
|
-
// Step 2: Clamp to viewport bounds
|
|
67
|
-
const minLeft = viewportPadding;
|
|
68
|
-
const maxLeft = window.innerWidth - tooltipWidth - viewportPadding;
|
|
69
|
-
// Apply clamping - adjust if tooltip would overflow
|
|
70
|
-
this.positionX = Math.max(minLeft, Math.min(idealLeft, maxLeft));
|
|
71
|
-
// Step 3: Calculate bottom position (distance from viewport bottom to top of anchor + offset)
|
|
72
|
-
this.positionY = window.innerHeight - anchorRect.top + this.offsetY;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
render() {
|
|
76
|
-
return (h(Host, { key: 'b6e220084f7ce3eead25bf60cef965322f59f3e0', style: {
|
|
77
|
-
position: 'fixed',
|
|
78
|
-
zIndex: '9999',
|
|
79
|
-
transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
|
|
80
|
-
visibility: this.isVisible ? 'visible' : 'hidden',
|
|
81
|
-
left: `${this.positionX}px`,
|
|
82
|
-
bottom: `${this.positionY}px`,
|
|
83
|
-
} }, h("div", { key: '0ab91fedc3301b0c42fa773607ce6aa335b73c2e', class: "tooltip-content", onClick: event => event.stopPropagation() }, h("slot", { key: 'bde0c798a393d006737c1d2c54660b6bbdace9e5' }))));
|
|
84
|
-
}
|
|
85
|
-
static get style() { return kritzelTooltipCss; }
|
|
86
|
-
}, [769, "kritzel-tooltip", {
|
|
87
|
-
"isVisible": [4, "is-visible"],
|
|
88
|
-
"anchorElement": [16],
|
|
89
|
-
"offsetY": [2, "offset-y"],
|
|
90
|
-
"positionX": [32],
|
|
91
|
-
"positionY": [32],
|
|
92
|
-
"focusContent": [64]
|
|
93
|
-
}, [[4, "click", "handleOutsideClick"], [9, "resize", "handleWindowResize"]]]);
|
|
94
|
-
function defineCustomElement() {
|
|
95
|
-
if (typeof customElements === "undefined") {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
const components = ["kritzel-tooltip"];
|
|
99
|
-
components.forEach(tagName => { switch (tagName) {
|
|
100
|
-
case "kritzel-tooltip":
|
|
101
|
-
if (!customElements.get(tagName)) {
|
|
102
|
-
customElements.define(tagName, KritzelTooltip);
|
|
103
|
-
}
|
|
104
|
-
break;
|
|
105
|
-
} });
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export { KritzelTooltip as K, defineCustomElement as d };
|
|
109
|
-
//# sourceMappingURL=p-DO4auCYf.js.map
|
|
110
|
-
|
|
111
|
-
//# sourceMappingURL=p-DO4auCYf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-DO4auCYf.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-tooltip/kritzel-tooltip.css?tag=kritzel-tooltip&encapsulation=shadow","src/components/shared/kritzel-tooltip/kritzel-tooltip.tsx"],"sourcesContent":[":host {\r\n width: auto;\r\n}\r\n\r\n.tooltip-content {\r\n position: relative;\r\n padding: 8px 12px;\r\n border-radius: 4px;\r\n width: fit-content;\r\n background-color: var(--kritzel-controls-tooltip-background-color, #ffffff);\r\n color: var(--kritzel-controls-tooltip-color, #000000);\r\n padding: var(--kritzel-controls-tooltip-padding, 8px);\r\n border-radius: var(--kritzel-controls-tooltip-border-radius, 16px);\r\n white-space: nowrap;\r\n box-shadow: var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));\r\n}\r\n\r\n","import { Component, Host, Prop, h, Element, State, Listen, Method, Event, EventEmitter } from '@stencil/core';\r\nimport { KritzelHTMLHelper } from '../../../helpers/html.helper';\r\n\r\n@Component({\r\n tag: 'kritzel-tooltip',\r\n styleUrl: 'kritzel-tooltip.css',\r\n shadow: true,\r\n})\r\nexport class KritzelTooltip {\r\n @Element() host: HTMLElement;\r\n\r\n @Prop() isVisible: boolean = false;\r\n @Prop() anchorElement: HTMLElement;\r\n @Prop() offsetY: number = 24;\r\n\r\n @Event() tooltipClosed: EventEmitter<void>;\r\n\r\n @State() positionX: number = 0;\r\n @State() positionY: number = 0;\r\n\r\n @Listen('click', { target: 'document' })\r\n handleOutsideClick(event: MouseEvent) {\r\n if( !this.isVisible ) return;\r\n const target = event.target as HTMLElement;\r\n if (!this.host.contains(target)) {\r\n this.tooltipClosed.emit();\r\n }\r\n }\r\n\r\n @Listen('resize', { target: 'window' })\r\n handleWindowResize() {\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n @Method()\r\n async focusContent() {\r\n const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);\r\n if (focusableElements.length > 0) {\r\n focusableElements[0].focus();\r\n }\r\n }\r\n\r\n componentDidLoad() {\r\n this.focusSlottedContent();\r\n }\r\n\r\n componentWillLoad() {\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n componentWillUpdate() {\r\n this.calculateAdjustedPosition();\r\n }\r\n\r\n private focusSlottedContent() {\r\n const slot = this.host.shadowRoot?.querySelector('slot');\r\n const assignedElements = slot?.assignedElements() || [];\r\n if (assignedElements.length > 0) {\r\n const firstElement = assignedElements[0] as HTMLElement;\r\n firstElement.focus();\r\n }\r\n }\r\n\r\n private calculateAdjustedPosition() {\r\n if (this.isVisible && this.anchorElement) {\r\n const anchorRect = this.anchorElement.getBoundingClientRect();\r\n const tooltipContent = this.host.shadowRoot?.querySelector('.tooltip-content') as HTMLElement;\r\n const tooltipRect = tooltipContent?.getBoundingClientRect();\r\n const tooltipWidth = tooltipRect?.width || 0;\r\n \r\n const viewportPadding = 12; // Minimum distance from viewport edges\r\n const anchorCenterX = anchorRect.left + anchorRect.width / 2;\r\n \r\n // Step 1: Try to center the tooltip above the anchor\r\n let idealLeft = anchorCenterX - tooltipWidth / 2;\r\n \r\n // Step 2: Clamp to viewport bounds\r\n const minLeft = viewportPadding;\r\n const maxLeft = window.innerWidth - tooltipWidth - viewportPadding;\r\n \r\n // Apply clamping - adjust if tooltip would overflow\r\n this.positionX = Math.max(minLeft, Math.min(idealLeft, maxLeft));\r\n \r\n // Step 3: Calculate bottom position (distance from viewport bottom to top of anchor + offset)\r\n this.positionY = window.innerHeight - anchorRect.top + this.offsetY;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n style={{\r\n position: 'fixed',\r\n zIndex: '9999',\r\n transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',\r\n visibility: this.isVisible ? 'visible' : 'hidden',\r\n left: `${this.positionX}px`,\r\n bottom: `${this.positionY}px`,\r\n }}\r\n >\r\n <div class=\"tooltip-content\" onClick={event => event.stopPropagation()}>\r\n <slot></slot>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h, d as Host } from './p-CwkUrTy1.js';
|
|
2
|
-
|
|
3
|
-
const kritzelColorCss = ":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)}";
|
|
4
|
-
|
|
5
|
-
const KritzelColor = /*@__PURE__*/ proxyCustomElement(class KritzelColor extends H {
|
|
6
|
-
constructor(registerHost) {
|
|
7
|
-
super();
|
|
8
|
-
if (registerHost !== false) {
|
|
9
|
-
this.__registerHost();
|
|
10
|
-
}
|
|
11
|
-
this.__attachShadow();
|
|
12
|
-
}
|
|
13
|
-
value;
|
|
14
|
-
size = 24;
|
|
15
|
-
isLightColor(hexColor) {
|
|
16
|
-
if (!hexColor)
|
|
17
|
-
return false;
|
|
18
|
-
let r = 0, g = 0, b = 0;
|
|
19
|
-
let sanitizedHex = hexColor.startsWith('#') ? hexColor.slice(1) : hexColor;
|
|
20
|
-
if (sanitizedHex.length === 3) {
|
|
21
|
-
r = parseInt(sanitizedHex[0] + sanitizedHex[0], 16);
|
|
22
|
-
g = parseInt(sanitizedHex[1] + sanitizedHex[1], 16);
|
|
23
|
-
b = parseInt(sanitizedHex[2] + sanitizedHex[2], 16);
|
|
24
|
-
}
|
|
25
|
-
else if (sanitizedHex.length === 6) {
|
|
26
|
-
r = parseInt(sanitizedHex.substring(0, 2), 16);
|
|
27
|
-
g = parseInt(sanitizedHex.substring(2, 4), 16);
|
|
28
|
-
b = parseInt(sanitizedHex.substring(4, 6), 16);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
if (isNaN(r) || isNaN(g) || isNaN(b)) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
const luminance = 0.299 * r + 0.587 * g + 0.114 * b;
|
|
37
|
-
return luminance > 220;
|
|
38
|
-
}
|
|
39
|
-
render() {
|
|
40
|
-
const isColorVeryLight = this.isLightColor(this.value);
|
|
41
|
-
return (h(Host, { key: 'bd867d9ff750588e41fb364b2192a6c2c5832e59' }, h("div", { key: '858e97d057d7ba19869cbacc4e9f31ae6c64defa', class: "checkerboard-bg", style: {
|
|
42
|
-
width: `${this.size}px`,
|
|
43
|
-
height: `${this.size}px`,
|
|
44
|
-
borderRadius: '50%',
|
|
45
|
-
display: 'inline-block',
|
|
46
|
-
position: 'relative',
|
|
47
|
-
} }, h("div", { key: '0c983b133716e048f29d7e51979068fbde178abd', class: {
|
|
48
|
-
'color-circle': true,
|
|
49
|
-
'white': isColorVeryLight,
|
|
50
|
-
}, style: {
|
|
51
|
-
backgroundColor: this.value,
|
|
52
|
-
width: `${this.size}px`,
|
|
53
|
-
height: `${this.size}px`,
|
|
54
|
-
borderRadius: '50%',
|
|
55
|
-
position: 'absolute',
|
|
56
|
-
top: '0',
|
|
57
|
-
left: '0',
|
|
58
|
-
display: 'inline-block',
|
|
59
|
-
} }))));
|
|
60
|
-
}
|
|
61
|
-
static get style() { return kritzelColorCss; }
|
|
62
|
-
}, [769, "kritzel-color", {
|
|
63
|
-
"value": [1],
|
|
64
|
-
"size": [2]
|
|
65
|
-
}]);
|
|
66
|
-
function defineCustomElement() {
|
|
67
|
-
if (typeof customElements === "undefined") {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
const components = ["kritzel-color"];
|
|
71
|
-
components.forEach(tagName => { switch (tagName) {
|
|
72
|
-
case "kritzel-color":
|
|
73
|
-
if (!customElements.get(tagName)) {
|
|
74
|
-
customElements.define(tagName, KritzelColor);
|
|
75
|
-
}
|
|
76
|
-
break;
|
|
77
|
-
} });
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export { KritzelColor as K, defineCustomElement as d };
|
|
81
|
-
//# sourceMappingURL=p-LAsVgL2e.js.map
|
|
82
|
-
|
|
83
|
-
//# sourceMappingURL=p-LAsVgL2e.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-LAsVgL2e.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-color/kritzel-color.css?tag=kritzel-color&encapsulation=shadow","src/components/shared/kritzel-color/kritzel-color.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n}\r\n\r\n.checkerboard-bg {\r\n background: repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.color-circle {\r\n width: 24px;\r\n height: 24px;\r\n border-radius: 50%;\r\n box-sizing: border-box;\r\n display: block;\r\n}\r\n\r\n.color-circle.white {\r\n border: 1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc);\r\n}","import { Component, Host, Prop, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'kritzel-color',\r\n styleUrl: 'kritzel-color.css',\r\n shadow: true,\r\n})\r\nexport class KritzelColor {\r\n @Prop() value: string;\r\n @Prop() size: number = 24;\r\n\r\n private isLightColor(hexColor: string): boolean {\r\n if (!hexColor) return false;\r\n\r\n let r = 0,\r\n g = 0,\r\n b = 0;\r\n\r\n let sanitizedHex = hexColor.startsWith('#') ? hexColor.slice(1) : hexColor;\r\n\r\n if (sanitizedHex.length === 3) {\r\n r = parseInt(sanitizedHex[0] + sanitizedHex[0], 16);\r\n g = parseInt(sanitizedHex[1] + sanitizedHex[1], 16);\r\n b = parseInt(sanitizedHex[2] + sanitizedHex[2], 16);\r\n } else if (sanitizedHex.length === 6) {\r\n r = parseInt(sanitizedHex.substring(0, 2), 16);\r\n g = parseInt(sanitizedHex.substring(2, 4), 16);\r\n b = parseInt(sanitizedHex.substring(4, 6), 16);\r\n } else {\r\n return false;\r\n }\r\n\r\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\r\n return false;\r\n }\r\n\r\n const luminance = 0.299 * r + 0.587 * g + 0.114 * b;\r\n\r\n return luminance > 220;\r\n }\r\n\r\n render() {\r\n const isColorVeryLight = this.isLightColor(this.value);\r\n return (\r\n <Host>\r\n <div\r\n class=\"checkerboard-bg\"\r\n style={{\r\n width: `${this.size}px`,\r\n height: `${this.size}px`,\r\n borderRadius: '50%',\r\n display: 'inline-block',\r\n position: 'relative',\r\n }}\r\n >\r\n <div\r\n class={{\r\n 'color-circle': true,\r\n 'white': isColorVeryLight,\r\n }}\r\n style={{\r\n backgroundColor: this.value,\r\n width: `${this.size}px`,\r\n height: `${this.size}px`,\r\n borderRadius: '50%',\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n display: 'inline-block',\r\n }}\r\n ></div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-CwkUrTy1.js';
|
|
2
|
-
import { O as ObjectHelper } from './p-B0kd2rUI.js';
|
|
3
|
-
import { K as KritzelHTMLHelper } from './p-C6qB08BS.js';
|
|
4
|
-
|
|
5
|
-
const KritzelPortal = /*@__PURE__*/ proxyCustomElement(class KritzelPortal extends H {
|
|
6
|
-
constructor(registerHost) {
|
|
7
|
-
super();
|
|
8
|
-
if (registerHost !== false) {
|
|
9
|
-
this.__registerHost();
|
|
10
|
-
}
|
|
11
|
-
this.__attachShadow();
|
|
12
|
-
this.close = createEvent(this, "close");
|
|
13
|
-
}
|
|
14
|
-
get host() { return this; }
|
|
15
|
-
anchor;
|
|
16
|
-
anchorChanged(newValue) {
|
|
17
|
-
if (newValue) {
|
|
18
|
-
this.openPortal();
|
|
19
|
-
this.calculatePosition();
|
|
20
|
-
if (this.autoFocus) {
|
|
21
|
-
this.focusFirstElement();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
this.closePortal();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
offsetX;
|
|
29
|
-
offsetY;
|
|
30
|
-
autoFocus = true;
|
|
31
|
-
close;
|
|
32
|
-
handleOutsideClick(event) {
|
|
33
|
-
event.stopPropagation();
|
|
34
|
-
const isLastPortal = this.lastAddedPortal === this.portal;
|
|
35
|
-
if (!isLastPortal)
|
|
36
|
-
return;
|
|
37
|
-
const target = event.target;
|
|
38
|
-
if (!this.host.contains(target)) {
|
|
39
|
-
this.close.emit();
|
|
40
|
-
this.closePortal();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
handleKeyDown(event) {
|
|
44
|
-
event.stopPropagation();
|
|
45
|
-
const isLastPortal = this.lastAddedPortal === this.portal;
|
|
46
|
-
if (!isLastPortal)
|
|
47
|
-
return;
|
|
48
|
-
if (event.key === 'Escape') {
|
|
49
|
-
this.anchor.focus();
|
|
50
|
-
this.close.emit();
|
|
51
|
-
this.closePortal();
|
|
52
|
-
}
|
|
53
|
-
if (event.key === 'Tab') {
|
|
54
|
-
this.trapFocus(event);
|
|
55
|
-
}
|
|
56
|
-
if (event.key === 'Enter') {
|
|
57
|
-
const activeElement = this.getDeepActiveElement();
|
|
58
|
-
if (activeElement?.click) {
|
|
59
|
-
event.preventDefault();
|
|
60
|
-
activeElement.click();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
handleResize() {
|
|
65
|
-
this.calculatePosition();
|
|
66
|
-
}
|
|
67
|
-
handleWindowScroll() {
|
|
68
|
-
const isInViewport = KritzelHTMLHelper.isElementInViewport(this.anchor);
|
|
69
|
-
if (!isInViewport) {
|
|
70
|
-
this.anchor?.blur();
|
|
71
|
-
this.closePortal();
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this.calculatePosition();
|
|
75
|
-
}
|
|
76
|
-
portal;
|
|
77
|
-
id = `portal-${ObjectHelper.generateUUID()}`;
|
|
78
|
-
defaultOffset = 0;
|
|
79
|
-
minLeft = 0;
|
|
80
|
-
focusFirstElement() {
|
|
81
|
-
requestAnimationFrame(() => {
|
|
82
|
-
this.firstFocusableElement?.focus?.();
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
getDeepActiveElement() {
|
|
86
|
-
let activeEl = document.activeElement;
|
|
87
|
-
while (activeEl?.shadowRoot?.activeElement) {
|
|
88
|
-
activeEl = activeEl.shadowRoot.activeElement;
|
|
89
|
-
}
|
|
90
|
-
return activeEl;
|
|
91
|
-
}
|
|
92
|
-
trapFocus(event) {
|
|
93
|
-
const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);
|
|
94
|
-
if (focusableElements.length === 0)
|
|
95
|
-
return;
|
|
96
|
-
const firstFocusable = focusableElements[0];
|
|
97
|
-
const lastFocusable = focusableElements[focusableElements.length - 1];
|
|
98
|
-
const activeElement = this.getDeepActiveElement();
|
|
99
|
-
if (event.shiftKey) {
|
|
100
|
-
/* shift + tab */
|
|
101
|
-
if (activeElement === firstFocusable) {
|
|
102
|
-
lastFocusable.focus();
|
|
103
|
-
event.preventDefault();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
/* tab */
|
|
108
|
-
if (activeElement === lastFocusable) {
|
|
109
|
-
firstFocusable.focus();
|
|
110
|
-
event.preventDefault();
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
get firstFocusableElement() {
|
|
115
|
-
const slotEl = this.host.shadowRoot?.querySelector('slot');
|
|
116
|
-
const firstAssigned = slotEl?.assignedElements({ flatten: true })[0];
|
|
117
|
-
if (!firstAssigned)
|
|
118
|
-
return null;
|
|
119
|
-
const focusable = KritzelHTMLHelper.getFocusableElements(firstAssigned);
|
|
120
|
-
return focusable[0] ?? firstAssigned;
|
|
121
|
-
}
|
|
122
|
-
get lastAddedPortal() {
|
|
123
|
-
const portals = Array.from(document.querySelectorAll('[id^="portal-"]'));
|
|
124
|
-
return portals.length ? portals[portals.length - 1] : null;
|
|
125
|
-
}
|
|
126
|
-
calculateLeft() {
|
|
127
|
-
if (!this.anchor || !this.portal)
|
|
128
|
-
return 0;
|
|
129
|
-
const refRect = this.anchor.getBoundingClientRect();
|
|
130
|
-
const portalRect = this.portal.getBoundingClientRect();
|
|
131
|
-
const offset = this.offsetX ?? this.defaultOffset;
|
|
132
|
-
let left = refRect.left + offset;
|
|
133
|
-
const maxLeft = window.innerWidth - portalRect.width - this.minLeft;
|
|
134
|
-
if (left < this.minLeft)
|
|
135
|
-
left = this.minLeft;
|
|
136
|
-
if (left > maxLeft)
|
|
137
|
-
left = maxLeft;
|
|
138
|
-
return Math.round(left + window.scrollX);
|
|
139
|
-
}
|
|
140
|
-
calculateTop() {
|
|
141
|
-
if (!this.anchor || !this.portal)
|
|
142
|
-
return 0;
|
|
143
|
-
const refRect = this.anchor.getBoundingClientRect();
|
|
144
|
-
const portalRect = this.portal.getBoundingClientRect();
|
|
145
|
-
const offset = this.offsetY ?? this.defaultOffset;
|
|
146
|
-
const padding = 8; // Minimum padding from viewport edges
|
|
147
|
-
let top = refRect.bottom + offset;
|
|
148
|
-
const spaceBelow = window.innerHeight - refRect.bottom - offset - padding;
|
|
149
|
-
const spaceAbove = refRect.top - offset - padding;
|
|
150
|
-
// Reset max-height CSS custom property
|
|
151
|
-
this.host.style.removeProperty('--kritzel-portal-max-height');
|
|
152
|
-
if (portalRect.height <= spaceBelow) {
|
|
153
|
-
// Fits below the anchor
|
|
154
|
-
top = refRect.bottom + offset;
|
|
155
|
-
}
|
|
156
|
-
else if (portalRect.height <= spaceAbove) {
|
|
157
|
-
// Fits above the anchor
|
|
158
|
-
top = refRect.top - portalRect.height - offset;
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
// Doesn't fit above or below - constrain the height
|
|
162
|
-
if (spaceBelow >= spaceAbove) {
|
|
163
|
-
// More space below, keep it below with constrained height
|
|
164
|
-
top = refRect.bottom + offset;
|
|
165
|
-
this.host.style.setProperty('--kritzel-portal-max-height', `${spaceBelow}px`);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
// More space above, position above with constrained height
|
|
169
|
-
top = padding;
|
|
170
|
-
this.host.style.setProperty('--kritzel-portal-max-height', `${spaceAbove}px`);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return Math.round(top + window.scrollY);
|
|
174
|
-
}
|
|
175
|
-
openPortal() {
|
|
176
|
-
this.portal = document.createElement('div');
|
|
177
|
-
this.portal.setAttribute('id', this.id);
|
|
178
|
-
this.portal.style.zIndex = '1';
|
|
179
|
-
this.portal.style.position = 'absolute';
|
|
180
|
-
this.portal.style.top = '0px';
|
|
181
|
-
this.portal.style.left = '0px';
|
|
182
|
-
this.portal.appendChild(this.host);
|
|
183
|
-
document.body.append(this.portal);
|
|
184
|
-
}
|
|
185
|
-
closePortal() {
|
|
186
|
-
const portal = document.getElementById(this.id);
|
|
187
|
-
if (!portal)
|
|
188
|
-
return;
|
|
189
|
-
document.body.removeChild(portal);
|
|
190
|
-
this.host.remove();
|
|
191
|
-
}
|
|
192
|
-
calculatePosition() {
|
|
193
|
-
if (!this.anchor || !this.portal)
|
|
194
|
-
return;
|
|
195
|
-
const top = this.calculateTop();
|
|
196
|
-
const left = this.calculateLeft();
|
|
197
|
-
this.portal.style.top = `${top}px`;
|
|
198
|
-
this.portal.style.left = `${left}px`;
|
|
199
|
-
}
|
|
200
|
-
render() {
|
|
201
|
-
return (h(Host, { key: 'aa7399f8a2e744eaa89e881bc9e710bd8a0c6c53', style: { display: this.anchor ? 'block' : 'none' } }, h("slot", { key: 'df4d8446cf770dfd98476d19c6b18511e2531574' })));
|
|
202
|
-
}
|
|
203
|
-
static get watchers() { return {
|
|
204
|
-
"anchor": ["anchorChanged"]
|
|
205
|
-
}; }
|
|
206
|
-
}, [769, "kritzel-portal", {
|
|
207
|
-
"anchor": [16],
|
|
208
|
-
"offsetX": [2, "offset-x"],
|
|
209
|
-
"offsetY": [2, "offset-y"],
|
|
210
|
-
"autoFocus": [4, "auto-focus"]
|
|
211
|
-
}, [[8, "click", "handleOutsideClick"], [8, "keydown", "handleKeyDown"], [11, "resize", "handleResize"], [11, "scroll", "handleWindowScroll"]], {
|
|
212
|
-
"anchor": ["anchorChanged"]
|
|
213
|
-
}]);
|
|
214
|
-
function defineCustomElement() {
|
|
215
|
-
if (typeof customElements === "undefined") {
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
const components = ["kritzel-portal"];
|
|
219
|
-
components.forEach(tagName => { switch (tagName) {
|
|
220
|
-
case "kritzel-portal":
|
|
221
|
-
if (!customElements.get(tagName)) {
|
|
222
|
-
customElements.define(tagName, KritzelPortal);
|
|
223
|
-
}
|
|
224
|
-
break;
|
|
225
|
-
} });
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
export { KritzelPortal as K, defineCustomElement as d };
|
|
229
|
-
//# sourceMappingURL=p-aeYt0bPO.js.map
|
|
230
|
-
|
|
231
|
-
//# sourceMappingURL=p-aeYt0bPO.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-aeYt0bPO.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-portal/kritzel-portal.tsx"],"sourcesContent":["import { Component, Host, Listen, Prop, Watch, h, Event, EventEmitter, Element } from '@stencil/core';\r\nimport { ObjectHelper } from '../../../helpers/object.helper';\r\nimport { KritzelHTMLHelper } from '../../../helpers/html.helper';\r\n\r\n@Component({\r\n tag: 'kritzel-portal',\r\n shadow: true,\r\n})\r\nexport class KritzelPortal {\r\n @Element() host: HTMLElement;\r\n\r\n @Prop() anchor: HTMLElement;\r\n @Watch('anchor')\r\n anchorChanged(newValue: HTMLElement) {\r\n if (newValue) {\r\n this.openPortal();\r\n this.calculatePosition();\r\n if (this.autoFocus) {\r\n this.focusFirstElement();\r\n }\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n @Prop() offsetX: number;\r\n @Prop() offsetY: number;\r\n @Prop() autoFocus: boolean = true;\r\n\r\n @Event() close: EventEmitter<void>;\r\n\r\n @Listen('click', { target: 'window' })\r\n handleOutsideClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n\r\n const isLastPortal = this.lastAddedPortal === this.portal;\r\n if (!isLastPortal) return;\r\n\r\n const target = event.target as HTMLElement;\r\n if (!this.host.contains(target)) {\r\n this.close.emit();\r\n this.closePortal();\r\n }\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleKeyDown(event: KeyboardEvent) {\r\n event.stopPropagation();\r\n\r\n const isLastPortal = this.lastAddedPortal === this.portal;\r\n if (!isLastPortal) return;\r\n\r\n if (event.key === 'Escape') {\r\n this.anchor.focus();\r\n this.close.emit();\r\n this.closePortal();\r\n }\r\n\r\n if (event.key === 'Tab') {\r\n this.trapFocus(event);\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n const activeElement = this.getDeepActiveElement() as HTMLElement;\r\n if (activeElement?.click) {\r\n event.preventDefault();\r\n activeElement.click();\r\n }\r\n }\r\n }\r\n\r\n @Listen('resize', { target: 'window', capture: true })\r\n handleResize() {\r\n this.calculatePosition();\r\n }\r\n\r\n @Listen('scroll', { target: 'window', capture: true })\r\n handleWindowScroll() {\r\n const isInViewport = KritzelHTMLHelper.isElementInViewport(this.anchor);\r\n\r\n if (!isInViewport) {\r\n this.anchor?.blur();\r\n this.closePortal();\r\n return;\r\n }\r\n\r\n this.calculatePosition();\r\n }\r\n\r\n private portal: HTMLElement;\r\n private id: string = `portal-${ObjectHelper.generateUUID()}`;\r\n private defaultOffset = 0;\r\n private minLeft = 0;\r\n\r\n private focusFirstElement() {\r\n requestAnimationFrame(() => {\r\n this.firstFocusableElement?.focus?.();\r\n });\r\n }\r\n\r\n private getDeepActiveElement(): Element {\r\n let activeEl = document.activeElement;\r\n while (activeEl?.shadowRoot?.activeElement) {\r\n activeEl = activeEl.shadowRoot.activeElement;\r\n }\r\n return activeEl;\r\n }\r\n\r\n private trapFocus(event: KeyboardEvent) {\r\n const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);\r\n if (focusableElements.length === 0) return;\r\n\r\n const firstFocusable = focusableElements[0];\r\n const lastFocusable = focusableElements[focusableElements.length - 1];\r\n const activeElement = this.getDeepActiveElement();\r\n\r\n if (event.shiftKey) {\r\n /* shift + tab */\r\n if (activeElement === firstFocusable) {\r\n lastFocusable.focus();\r\n event.preventDefault();\r\n }\r\n } else {\r\n /* tab */\r\n if (activeElement === lastFocusable) {\r\n firstFocusable.focus();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n private get firstFocusableElement(): HTMLElement | null {\r\n const slotEl = this.host.shadowRoot?.querySelector('slot') as HTMLSlotElement | null;\r\n const firstAssigned = slotEl?.assignedElements({ flatten: true })[0] as HTMLElement | undefined;\r\n if (!firstAssigned) return null;\r\n\r\n const focusable = KritzelHTMLHelper.getFocusableElements(firstAssigned);\r\n return focusable[0] ?? firstAssigned;\r\n }\r\n\r\n private get lastAddedPortal(): HTMLElement | null {\r\n const portals = Array.from(document.querySelectorAll<HTMLElement>('[id^=\"portal-\"]'));\r\n return portals.length ? portals[portals.length - 1] : null;\r\n }\r\n\r\n private calculateLeft() {\r\n if (!this.anchor || !this.portal) return 0;\r\n const refRect = this.anchor.getBoundingClientRect();\r\n const portalRect = this.portal.getBoundingClientRect();\r\n\r\n const offset = this.offsetX ?? this.defaultOffset;\r\n let left = refRect.left + offset;\r\n\r\n const maxLeft = window.innerWidth - portalRect.width - this.minLeft;\r\n if (left < this.minLeft) left = this.minLeft;\r\n if (left > maxLeft) left = maxLeft;\r\n\r\n return Math.round(left + window.scrollX);\r\n }\r\n\r\n private calculateTop() {\r\n if (!this.anchor || !this.portal) return 0;\r\n const refRect = this.anchor.getBoundingClientRect();\r\n const portalRect = this.portal.getBoundingClientRect();\r\n const offset = this.offsetY ?? this.defaultOffset;\r\n const padding = 8; // Minimum padding from viewport edges\r\n\r\n let top = refRect.bottom + offset;\r\n const spaceBelow = window.innerHeight - refRect.bottom - offset - padding;\r\n const spaceAbove = refRect.top - offset - padding;\r\n\r\n // Reset max-height CSS custom property \r\n this.host.style.removeProperty('--kritzel-portal-max-height');\r\n\r\n if (portalRect.height <= spaceBelow) {\r\n // Fits below the anchor\r\n top = refRect.bottom + offset;\r\n } else if (portalRect.height <= spaceAbove) {\r\n // Fits above the anchor\r\n top = refRect.top - portalRect.height - offset;\r\n } else {\r\n // Doesn't fit above or below - constrain the height\r\n if (spaceBelow >= spaceAbove) {\r\n // More space below, keep it below with constrained height\r\n top = refRect.bottom + offset;\r\n this.host.style.setProperty('--kritzel-portal-max-height', `${spaceBelow}px`);\r\n } else {\r\n // More space above, position above with constrained height\r\n top = padding;\r\n this.host.style.setProperty('--kritzel-portal-max-height', `${spaceAbove}px`);\r\n }\r\n }\r\n\r\n return Math.round(top + window.scrollY);\r\n }\r\n\r\n private openPortal() {\r\n this.portal = document.createElement('div');\r\n this.portal.setAttribute('id', this.id);\r\n this.portal.style.zIndex = '1';\r\n this.portal.style.position = 'absolute';\r\n this.portal.style.top = '0px';\r\n this.portal.style.left = '0px';\r\n this.portal.appendChild(this.host);\r\n document.body.append(this.portal);\r\n }\r\n\r\n private closePortal() {\r\n const portal = document.getElementById(this.id);\r\n if (!portal) return;\r\n document.body.removeChild(portal);\r\n this.host.remove();\r\n }\r\n\r\n private calculatePosition() {\r\n if (!this.anchor || !this.portal) return;\r\n const top = this.calculateTop();\r\n const left = this.calculateLeft();\r\n this.portal.style.top = `${top}px`;\r\n this.portal.style.left = `${left}px`;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host style={{ display: this.anchor ? 'block' : 'none' }}>\r\n <slot />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-l10It7Nm.js","mappings":"MAAa,oBAAoB,CAAA;AAC/B,IAAA,OAAO,aAAa,GAAA;QAClB,OAAO,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,OAAO;;AAG3D,IAAA,OAAO,SAAS,GAAA;QACd,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;AAG7C,IAAA,OAAO,KAAK,GAAA;QACV,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;AAGrD,IAAA,OAAO,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,YAAA,OAAO,KAAK;;AACP,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AAC3B,YAAA,OAAO,SAAS;;aACX;AACL,YAAA,OAAO,OAAO;;;AAIlB,IAAA,OAAO,SAAS,GAAA;QACd,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;AAE9C;;;;","names":[],"sources":["src/helpers/devices.helper.ts"],"sourcesContent":["export class KritzelDevicesHelper {\r\n static isTouchDevice(): boolean {\r\n return window.matchMedia('(any-pointer: coarse)').matches;\r\n }\r\n\r\n static isAndroid(): boolean {\r\n return /android/i.test(navigator.userAgent);\r\n }\r\n\r\n static isIOS(): boolean {\r\n return /iPad|iPhone|iPod/.test(navigator.userAgent);\r\n }\r\n\r\n static detectOS(): 'iOS' | 'Android' | 'Other' {\r\n if (this.isIOS()) {\r\n return 'iOS';\r\n } else if (this.isAndroid()) {\r\n return 'Android';\r\n } else {\r\n return 'Other';\r\n }\r\n }\r\n\r\n static isFirefox(): boolean {\r\n return /firefox/i.test(navigator.userAgent);\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-n789Y3S-.js","mappings":"MAGa,gBAAgB,CAAA;IAC3B,SAAS,GAAG,kBAAkB;AAE9B,IAAA,EAAE;AACF,IAAA,IAAI;AACJ,IAAA,SAAS;AACT,IAAA,SAAS;AACT,IAAA,QAAQ;AAMR,IAAA,KAAK;AAEL,IAAA,WAAA,CAAY,EAAU,EAAE,IAAY,EAAG,QAAA,GAAsE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAA;AACrJ,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B,IAAA,OAAO,MAAM,CAAC,IAAiB,EAAE,GAAG,EAAA;AAClC,QAAA,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;AACtE,QAAA,SAAS,CAAC,KAAK,GAAG,IAAI;AACtB,QAAA,OAAO,SAAS;;AAGlB,IAAA,SAAS,CAAC,GAAQ,EAAA;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;;IAGlC,SAAS,GAAA;QACP,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;;AAGH,IAAA,WAAW,CAAC,MAAW,EAAA;AACrB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3C,QAAA,OAAO,IAAI;;AAEd;;;;","names":[],"sources":["src/classes/core/workspace.class.ts"],"sourcesContent":["import { KritzelCore } from \"../..\";\r\nimport { KritzelSerializable } from \"../../interfaces/serializable.interface\";\r\n\r\nexport class KritzelWorkspace implements KritzelSerializable{\r\n __class__ = 'KritzelWorkspace';\r\n\r\n id: string;\r\n name: string;\r\n createdAt: Date;\r\n updatedAt: Date;\r\n viewport: {\r\n translateX: number;\r\n translateY: number;\r\n scale: number;\r\n };\r\n\r\n _core: KritzelCore;\r\n\r\n constructor(id: string, name: string, viewport: { translateX: number; translateY: number; scale: number } = { translateX: 0, translateY: 0, scale: 1 }) {\r\n this.id = id;\r\n this.name = name;\r\n this.createdAt = new Date();\r\n this.updatedAt = new Date();\r\n this.viewport = viewport;\r\n }\r\n\r\n static create(core: KritzelCore, obj): KritzelWorkspace {\r\n const workspace = new KritzelWorkspace(obj.id, obj.name, obj.viewport);\r\n workspace._core = core;\r\n return workspace;\r\n }\r\n\r\n addObject(obj: any): void {\r\n this._core.engine.addObject(obj);\r\n }\r\n\r\n serialize(): any {\r\n return {\r\n __class__: this.__class__,\r\n id: this.id,\r\n name: this.name,\r\n createdAt: this.createdAt.toISOString(),\r\n updatedAt: this.updatedAt.toISOString(),\r\n viewport: this.viewport,\r\n };\r\n }\r\n\r\n deserialize(object: any): KritzelSerializable {\r\n Object.assign(this, object);\r\n this.createdAt = new Date(object.createdAt);\r\n this.updatedAt = new Date(object.updatedAt);\r\n return this;\r\n }\r\n}\r\n"],"version":3}
|