kritzel-stencil 0.3.16 → 0.3.17
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/LICENSE.md +50 -0
- package/dist/cjs/index-Xav9JFHg.js +2 -2
- package/dist/cjs/index.cjs.js +7 -1
- package/dist/cjs/{kritzel-active-users_42.cjs.entry.js → kritzel-active-users_44.cjs.entry.js} +710 -145
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{schema.constants-DJQTjcy7.js → schema.constants-DrHO_CYF.js} +1169 -171
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/core/core.class.js +24 -0
- package/dist/collection/classes/handlers/context-menu.handler.js +24 -2
- package/dist/collection/classes/managers/license.manager.js +285 -0
- package/dist/collection/classes/managers/localization.manager.js +189 -0
- package/dist/collection/classes/objects/custom-element.class.js +2 -0
- package/dist/collection/classes/objects/group.class.js +7 -2
- package/dist/collection/classes/objects/image.class.js +10 -7
- package/dist/collection/classes/objects/line.class.js +3 -0
- package/dist/collection/classes/objects/path.class.js +13 -12
- package/dist/collection/classes/objects/selection-group.class.js +7 -2
- package/dist/collection/classes/objects/shape.class.js +3 -0
- package/dist/collection/classes/objects/text.class.js +4 -1
- package/dist/collection/classes/registries/icon-registry.class.js +1 -0
- package/dist/collection/classes/tools/brush-tool.class.js +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +16 -0
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +462 -60
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +446 -16
- package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.css +29 -0
- package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.js +83 -0
- package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.js +3 -3
- package/dist/collection/components/shared/kritzel-button/kritzel-button.js +2 -2
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +2 -1
- package/dist/collection/components/shared/kritzel-input/kritzel-input.js +1 -1
- package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.js +3 -3
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
- package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.js +1 -1
- package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
- package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.js +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +2 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
- package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +41 -6
- package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.js +36 -1
- package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +36 -1
- package/dist/collection/components/ui/kritzel-export/kritzel-export.js +44 -7
- package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.js +1 -1
- package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +36 -1
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +108 -14
- package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.js +38 -3
- package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +38 -3
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +36 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +38 -3
- package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.css +72 -0
- package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.js +173 -0
- package/dist/collection/constants/engine.constants.js +2 -0
- package/dist/collection/constants/license.constants.js +25 -0
- package/dist/collection/constants/version.js +1 -1
- package/dist/collection/helpers/localization.helper.js +25 -0
- package/dist/collection/helpers/math.helper.js +3 -0
- package/dist/collection/helpers/svg-export.helper.js +223 -26
- package/dist/collection/index.js +13 -0
- package/dist/collection/interfaces/localization.interface.js +1 -0
- package/dist/collection/locales/de-locale.js +119 -0
- package/dist/collection/locales/en-locale.js +120 -0
- package/dist/collection/locales/fr-locale.js +119 -0
- package/dist/collection/themes/dark-theme.js +18 -0
- package/dist/collection/themes/light-theme.js +18 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-active-users.js +1 -1
- package/dist/components/kritzel-avatar.js +1 -1
- package/dist/components/kritzel-awareness-cursors.js +1 -1
- package/dist/components/kritzel-back-to-content.js +1 -1
- package/dist/components/kritzel-brush-style.js +1 -1
- package/dist/components/kritzel-button.js +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-context-menu.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-current-user-dialog.js +1 -1
- package/dist/components/kritzel-current-user.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-export.js +1 -1
- package/dist/components/kritzel-font-size.js +1 -1
- package/dist/components/kritzel-font.js +1 -1
- package/dist/components/kritzel-icon.js +1 -1
- package/dist/components/kritzel-input.js +1 -1
- package/dist/components/kritzel-login-dialog.js +1 -1
- package/dist/components/kritzel-master-detail.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-more-menu.js +1 -1
- package/dist/components/kritzel-numeric-input.js +1 -1
- package/dist/components/kritzel-opacity-slider.js +1 -1
- package/dist/components/kritzel-pill-tabs.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-share-dialog.js +1 -1
- package/dist/components/kritzel-slide-toggle.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-watermark.d.ts +11 -0
- package/dist/components/kritzel-watermark.js +1 -0
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/kritzel-zoom-panel.d.ts +11 -0
- package/dist/components/kritzel-zoom-panel.js +1 -0
- package/dist/components/{p-B5xxfwKF.js → p-3HxnBrCM.js} +1 -1
- package/dist/components/p-6RjeGuvH.js +1 -0
- package/dist/components/p-7NsK0uHu.js +1 -0
- package/dist/components/{p-dcAernE1.js → p-BCNyR5Sw.js} +1 -1
- package/dist/components/{p-C2SX-XRr.js → p-BG6hOSrm.js} +1 -1
- package/dist/components/p-BKJSh8qQ.js +1 -0
- package/dist/components/{p-SptaSMno.js → p-BKvHg9cv.js} +1 -1
- package/dist/components/p-Bc55X65h.js +1 -0
- package/dist/components/p-BpnIvNvq.js +1 -0
- package/dist/components/p-BvRrA4hN.js +1 -0
- package/dist/components/{p-B2w8X7vn.js → p-BxpKq94F.js} +1 -1
- package/dist/components/{p-BFoK4W--.js → p-Bzv9Px8v.js} +1 -1
- package/dist/components/{p-COLHjboZ.js → p-C9HGoDHE.js} +1 -1
- package/dist/components/p-CEnEDaix.js +1 -0
- package/dist/components/p-CIcLzcfA.js +1 -0
- package/dist/components/p-CPtDfadX.js +1 -0
- package/dist/components/p-C_fKgKHu.js +9 -0
- package/dist/components/p-CdR76C4L.js +1 -0
- package/dist/components/p-Cu9KYyoq.js +1 -0
- package/dist/components/p-CyqRcqsO.js +1 -0
- package/dist/components/{p-UoPj5QjH.js → p-DDkmsPpV.js} +1 -1
- package/dist/components/{p-D-sRVAbQ.js → p-DI4vQRE3.js} +1 -1
- package/dist/components/{p-CJOhfMU5.js → p-DNdXJp8F.js} +1 -1
- package/dist/components/p-DX5K8xnh.js +1 -0
- package/dist/components/{p-DEy7zJCe.js → p-DZdgXCAx.js} +1 -1
- package/dist/components/p-DdH1cKED.js +1 -0
- package/dist/components/p-DdsSSqFY.js +1 -0
- package/dist/components/p-DgmtCdnL.js +1 -0
- package/dist/components/{p-BzYU3-MJ.js → p-DmWSRsjK.js} +1 -1
- package/dist/components/{p-Bj2laX89.js → p-Dz-Ti24X.js} +1 -1
- package/dist/components/{p-BiG1dxPS.js → p-F5_X4dZG.js} +1 -1
- package/dist/components/{p-x6doYeiI.js → p-IpoC5EEY.js} +1 -1
- package/dist/components/p-Jn6TNdfe.js +1 -0
- package/dist/components/{p-BfNHpqQ8.js → p-NuLP1xHe.js} +1 -1
- package/dist/components/{p-skWUIStn.js → p-SDZNC8GF.js} +1 -1
- package/dist/components/{p-BYmp9Ovv.js → p-U4oawa1x.js} +1 -1
- package/dist/components/{p-DM11KXUT.js → p-f8aW1ye7.js} +1 -1
- package/dist/components/p-v7dxxrL5.js +1 -0
- package/dist/components/p-vAeiXe6c.js +1 -0
- package/dist/esm/index-Dhio9uis.js +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/{kritzel-active-users_42.entry.js → kritzel-active-users_44.entry.js} +709 -146
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{schema.constants-DiCnmIYK.js → schema.constants-DchTXG3V.js} +1163 -172
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-DchTXG3V.js +1 -0
- package/dist/stencil/p-c9a3807b.entry.js +9 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/core.class.d.ts +16 -0
- package/dist/types/classes/handlers/context-menu.handler.d.ts +13 -0
- package/dist/types/classes/managers/license.manager.d.ts +141 -0
- package/dist/types/classes/managers/localization.manager.d.ts +121 -0
- package/dist/types/classes/objects/custom-element.class.d.ts +2 -0
- package/dist/types/classes/objects/group.class.d.ts +6 -1
- package/dist/types/classes/objects/image.class.d.ts +1 -1
- package/dist/types/classes/objects/path.class.d.ts +3 -2
- package/dist/types/classes/objects/selection-group.class.d.ts +6 -1
- package/dist/types/classes/objects/shape.class.d.ts +2 -0
- package/dist/types/classes/objects/text.class.d.ts +2 -1
- package/dist/types/classes/tools/brush-tool.class.d.ts +1 -1
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +53 -1
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +55 -3
- package/dist/types/components/core/kritzel-watermark/kritzel-watermark.d.ts +20 -0
- package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +3 -0
- package/dist/types/components/ui/kritzel-current-user/kritzel-current-user.d.ts +3 -0
- package/dist/types/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.d.ts +3 -0
- package/dist/types/components/ui/kritzel-export/kritzel-export.d.ts +4 -1
- package/dist/types/components/ui/kritzel-more-menu/kritzel-more-menu.d.ts +3 -0
- package/dist/types/components/ui/kritzel-settings/kritzel-settings.d.ts +16 -0
- package/dist/types/components/ui/kritzel-share-dialog/kritzel-share-dialog.d.ts +3 -0
- package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +3 -0
- package/dist/types/components/ui/kritzel-utility-panel/kritzel-utility-panel.d.ts +3 -0
- package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +3 -0
- package/dist/types/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.d.ts +20 -0
- package/dist/types/components.d.ts +445 -26
- package/dist/types/constants/engine.constants.d.ts +2 -0
- package/dist/types/constants/license.constants.d.ts +25 -0
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/helpers/localization.helper.d.ts +18 -0
- package/dist/types/helpers/math.helper.d.ts +1 -0
- package/dist/types/helpers/svg-export.helper.d.ts +81 -7
- package/dist/types/index.d.ts +13 -0
- package/dist/types/interfaces/context-menu-item.interface.d.ts +7 -1
- package/dist/types/interfaces/line-options.interface.d.ts +2 -0
- package/dist/types/interfaces/localization.interface.d.ts +143 -0
- package/dist/types/interfaces/path-options.interface.d.ts +2 -0
- package/dist/types/interfaces/settings.interface.d.ts +3 -0
- package/dist/types/interfaces/theme.interface.d.ts +27 -2
- package/dist/types/locales/de-locale.d.ts +5 -0
- package/dist/types/locales/en-locale.d.ts +6 -0
- package/dist/types/locales/fr-locale.d.ts +5 -0
- package/package.json +4 -7
- package/dist/components/p-2xYAGd0I.js +0 -1
- package/dist/components/p-B2Os1ya_.js +0 -1
- package/dist/components/p-BTEV1WwT.js +0 -1
- package/dist/components/p-BbactVA0.js +0 -1
- package/dist/components/p-BqwqGFQY.js +0 -1
- package/dist/components/p-C0TN5IAi.js +0 -1
- package/dist/components/p-CFgkUYoO.js +0 -1
- package/dist/components/p-COgo9OWy.js +0 -1
- package/dist/components/p-CUPYGT8c.js +0 -1
- package/dist/components/p-CcyIAi9S.js +0 -1
- package/dist/components/p-Cj78L1Kk.js +0 -1
- package/dist/components/p-CkAVEdDw.js +0 -9
- package/dist/components/p-CmuNn1Tc.js +0 -1
- package/dist/components/p-DDYoDSrm.js +0 -1
- package/dist/components/p-DbB730vO.js +0 -1
- package/dist/components/p-DlwYHzSj.js +0 -1
- package/dist/components/p-FK7b3BGt.js +0 -1
- package/dist/components/p-J9_SwObO.js +0 -1
- package/dist/stencil/p-67775031.entry.js +0 -9
- package/dist/stencil/p-DiCnmIYK.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,b as o}from"./p-Dhio9uis.js";export{s as setNonce}from"./p-Dhio9uis.js";import{g as t}from"./p-DQuL1Twl.js";(()=>{const o=import.meta.url,t={};return""!==o&&(t.resourcesUrl=new URL(".",o).href),e(t)})().then((async e=>(await t(),o(JSON.parse('[["p-67775031",[[512,"kritzel-editor",{"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"lockDrawingScale":[1028,"lock-drawing-scale"],"viewportBoundaryLeft":[1026,"viewport-boundary-left"],"viewportBoundaryRight":[1026,"viewport-boundary-right"],"viewportBoundaryTop":[1026,"viewport-boundary-top"],"viewportBoundaryBottom":[1026,"viewport-boundary-bottom"],"wheelEnabled":[1028,"wheel-enabled"],"debugInfo":[1040],"user":[16],"activeUsers":[16],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"themes":[16],"theme":[1025],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"isWorkspaceManagerVisible":[4,"is-workspace-manager-visible"],"isMoreMenuVisible":[4,"is-more-menu-visible"],"isObjectDistanceFadingActive":[4,"is-object-distance-fading-active"],"syncConfig":[16],"assetStorageConfig":[16],"cursorTarget":[16],"loginConfig":[16],"isLoading":[4,"is-loading"],"editorId":[1,"editor-id"],"activeWorkspaceId":[1,"active-workspace-id"],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"isBackToContentButtonVisible":[32],"shortcuts":[32],"currentIsPublic":[32],"isEditorVisible":[32],"getObjectById":[64],"addObject":[64],"addObjects":[64],"updateObject":[64],"removeObject":[64],"removeObjects":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"panToObject":[64],"backToContent":[64],"centerAllObjects":[64],"centerObjects":[64],"setViewport":[64],"panTo":[64],"zoomTo":[64],"zoomIn":[64],"zoomOut":[64],"getViewport":[64],"screenToWorld":[64],"worldToScreen":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64],"loadSharedWorkspace":[64],"reinitSync":[64],"registerTool":[64],"changeActiveTool":[64],"changeActiveToolByName":[64],"disable":[64],"enable":[64],"copy":[64],"cut":[64],"paste":[64],"delete":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"alignObjects":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"getScreenshot":[64],"exportViewportAsPng":[64],"exportViewportAsSvg":[64],"exportSelectedObjectsAsPng":[64],"exportSelectedObjectsAsSvg":[64],"downloadAsJson":[64],"importFromFile":[64],"loadObjectsFromJson":[64],"getObjectsTotalCount":[64],"getAllObjects":[64],"findObjects":[64],"getCopiedObjects":[64],"getObjectsInViewport":[64],"hideContextMenu":[64],"openContextMenu":[64],"triggerSelectionChange":[64],"getDisplayableShortcuts":[64],"openLoginDialog":[64],"setLoginLoading":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":[{"onIsEngineReady":0}],"isControlsReady":[{"onIsControlsReady":0}],"workspaces":[{"onWorkspacesChange":0}],"activeWorkspace":[{"onActiveWorkspaceChange":0}],"activeWorkspaceId":[{"onActiveWorkspaceIdChange":0}],"theme":[{"onCurrentThemeChange":0}],"themes":[{"onThemesChange":0}]}],[513,"kritzel-controls",{"visible":[4],"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"theme":[1],"firstConfig":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"canScrollLeft":[32],"canScrollRight":[32],"needsScrolling":[32],"displayValues":[32],"internalControls":[32],"closeTooltip":[64]},[[8,"keydown","handleKeyDown"]],{"controls":[{"onControlsChange":0}],"theme":[{"onThemeChange":0}]}],[513,"kritzel-settings",{"availableThemes":[16],"shortcuts":[16],"settings":[16],"isDialogOpen":[32],"selectedCategoryId":[32],"scaleMin":[32],"scaleMax":[32],"lockDrawingScale":[32],"theme":[32],"viewportBoundaryLeft":[32],"viewportBoundaryRight":[32],"viewportBoundaryTop":[32],"viewportBoundaryBottom":[32],"debugInfo":[32],"open":[64]},null,{"settings":[{"onSettingsPropChange":0}]}],[513,"kritzel-export",{"workspaceName":[1,"workspace-name"],"isDialogOpen":[32],"previewUrl":[32],"isLoading":[32],"activeTab":[32],"exportFilename":[32],"viewportExportFormat":[32],"open":[64]}],[513,"kritzel-workspace-manager",{"visible":[4],"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[513,"kritzel-engine",{"workspace":[16],"editorId":[1,"editor-id"],"activeWorkspaceId":[1,"active-workspace-id"],"syncConfig":[16],"assetStorageConfig":[16],"user":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"lockDrawingScale":[4,"lock-drawing-scale"],"isObjectDistanceFadingActive":[4,"is-object-distance-fading-active"],"theme":[1],"themes":[16],"viewportBoundaryLeft":[2,"viewport-boundary-left"],"viewportBoundaryRight":[2,"viewport-boundary-right"],"viewportBoundaryTop":[2,"viewport-boundary-top"],"viewportBoundaryBottom":[2,"viewport-boundary-bottom"],"debugInfo":[16],"wheelEnabled":[4,"wheel-enabled"],"isLoading":[4,"is-loading"],"forceUpdate":[32],"triggerSelectionChange":[64],"registerTool":[64],"changeActiveTool":[64],"changeActiveToolByName":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"cut":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"alignObjects":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"openContextMenu":[64],"getObjectById":[64],"getAllObjects":[64],"findObjects":[64],"getObjectsTotalCount":[64],"addObject":[64],"addObjects":[64],"updateObject":[64],"removeObject":[64],"removeObjects":[64],"getSelectedObjects":[64],"getDisplayableShortcuts":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"panToObject":[64],"backToContent":[64],"centerAllObjects":[64],"centerObjects":[64],"setViewport":[64],"panTo":[64],"zoomTo":[64],"zoomIn":[64],"zoomOut":[64],"getViewport":[64],"screenToWorld":[64],"worldToScreen":[64],"getCopiedObjects":[64],"getObjectsInViewport":[64],"getScreenshot":[64],"exportViewportAsPng":[64],"exportViewportAsSvg":[64],"getSelectedObjectsAsSvgString":[64],"exportSelectedObjectsAsSvg":[64],"getSelectedObjectsAsPngDataUrl":[64],"exportSelectedObjectsAsPng":[64],"exportAsJson":[64],"importFromJson":[64],"loadObjectsFromJson":[64],"downloadAsJson":[64],"importFromFile":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64],"getIsPublic":[64],"loadSharedWorkspace":[64],"reinitSync":[64],"saveSettings":[64],"loadSettings":[64]},[[1,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[1,"pointerleave","handlePointerLeave"],[1,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":[{"onWorkspaceChange":0}],"activeWorkspaceId":[{"onActiveWorkspaceIdChange":0}],"syncConfig":[{"onSyncConfigChange":0}],"assetStorageConfig":[{"onAssetStorageConfigChange":0}],"user":[{"onUserChange":0}],"globalContextMenuItems":[{"onGlobalContextMenuItemsChange":0}],"objectContextMenuItems":[{"onObjectContextMenuItemsChange":0}],"scaleMax":[{"validateScaleMax":0}],"scaleMin":[{"validateScaleMin":0}],"cursorTarget":[{"onCursorTargetChange":0}],"lockDrawingScale":[{"onLockDrawingScaleChange":0}],"isObjectDistanceFadingActive":[{"onIsObjectDistanceFadingActiveChange":0}],"theme":[{"onThemeChange":0}],"themes":[{"onThemesChange":0}],"viewportBoundaryLeft":[{"onViewportBoundaryLeftChange":0}],"viewportBoundaryRight":[{"onViewportBoundaryRightChange":0}],"viewportBoundaryTop":[{"onViewportBoundaryTopChange":0}],"viewportBoundaryBottom":[{"onViewportBoundaryBottomChange":0}],"debugInfo":[{"onDebugInfoChange":0}],"isLoading":[{"onIsLoadingChange":0}]}],[513,"kritzel-more-menu",{"visible":[4],"items":[16],"icon":[1],"iconSize":[2,"icon-size"],"offsetY":[2,"offset-y"],"menuAnchor":[32],"isTouchDevice":[32]}],[513,"kritzel-current-user",{"user":[16],"avatarSize":[2,"avatar-size"]}],[513,"kritzel-share-dialog",{"isPublic":[4,"is-public"],"workspaceId":[1,"workspace-id"],"isDialogOpen":[32],"internalIsPublic":[32],"copySuccess":[32],"open":[64],"close":[64]},null,{"isPublic":[{"onIsPublicChange":0}]}],[513,"kritzel-login-dialog",{"providers":[16],"dialogTitle":[1,"dialog-title"],"subtitle":[1],"isDialogOpen":[32],"loadingProvider":[32],"open":[64],"close":[64],"setLoading":[64]}],[513,"kritzel-active-users",{"users":[16],"avatarSize":[2,"avatar-size"],"maxVisible":[2,"max-visible"],"overlap":[2]}],[513,"kritzel-back-to-content",{"visible":[4],"text":[1]}],[769,"kritzel-button",{"variant":[1],"disabled":[4],"type":[1]}],[513,"kritzel-tool-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"theme":[1],"engine":[16],"config":[32],"palette":[32],"sizes":[32],"currentOpacity":[32],"updateTrigger":[32]},null,{"tool":[{"handleToolChange":0}],"theme":[{"onThemeChange":0}],"engine":[{"handleEngineChange":0}]}],[513,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[513,"kritzel-current-user-dialog",{"user":[16],"isDialogOpen":[32],"open":[64],"close":[64]}],[513,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32],"openSubmenuPath":[32],"submenuPositions":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":[{"onItemsChanged":0}]}],[769,"kritzel-master-detail",{"items":[16],"selectedItemId":[1,"selected-item-id"],"focusedIndex":[32],"showMobileDetail":[32]},null,{"selectedItemId":[{"watchSelectedItemId":0}]}],[513,"kritzel-pill-tabs",{"tabs":[16],"value":[1025]}],[513,"kritzel-utility-panel",{"undoState":[16]}],[513,"kritzel-awareness-cursors",{"core":[16],"showEdgeIndicators":[4,"show-edge-indicators"],"edgeIndicatorPadding":[2,"edge-indicator-padding"],"remoteCursors":[32],"objectVersion":[32]}],[513,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[513,"kritzel-input",{"value":[1025],"label":[1],"placeholder":[1],"suffix":[1],"type":[1],"disabled":[4],"inputValue":[32]},null,{"value":[{"onValueChange":0}]}],[513,"kritzel-numeric-input",{"value":[1026],"min":[2],"max":[2],"step":[2],"label":[1],"placeholder":[1],"inputValue":[32]},null,{"value":[{"onValueChange":0}]}],[769,"kritzel-tooltip",{"isVisible":[1028,"is-visible"],"anchorElement":[16],"triggerElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"open":[64],"close":[64],"toggle":[64],"focusContent":[64]},[[4,"click","handleOutsideClick"],[6,"pointerdown","handleOutsidePointerDown"],[4,"kritzelTooltipCloseAll","handleCloseAll"],[9,"resize","handleWindowResize"]],{"triggerElement":[{"handleTriggerElementChange":0}],"isVisible":[{"handleVisibilityChange":0}]}],[513,"kritzel-color-palette",{"colors":[16],"selectedColor":[1040],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"],"opacity":[2],"theme":[1]}],[513,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[513,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[513,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[513,"kritzel-line-endings",{"styles":[16],"value":[1040]}],[513,"kritzel-opacity-slider",{"value":[1026],"min":[2],"max":[2],"step":[2],"previewColor":[1,"preview-color"]}],[513,"kritzel-shape-fill",{"value":[1025]}],[513,"kritzel-slide-toggle",{"checked":[1028],"disabled":[4],"label":[1]}],[513,"kritzel-avatar",{"user":[16],"name":[1],"size":[2],"color":[1],"imageError":[32]},null,{"user":[{"userChanged":0}],"profileImageUrl":[{"profileImageUrlChanged":0}]}],[513,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[513,"kritzel-color",{"value":[1],"theme":[1],"size":[2]}],[513,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[513,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":[{"onItemChange":0}]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"kritzel-dismiss-menus","handleDismissMenus"],[8,"click","handleOutsideClick"],[6,"pointerdown","handleOutsidePointerDown"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":[{"anchorChanged":0}]}],[769,"kritzel-dialog",{"isOpen":[516,"is-open"],"dialogTitle":[1,"dialog-title"],"closable":[4],"closeOnBackdrop":[4,"close-on-backdrop"],"closeOnEscape":[4,"close-on-escape"],"autoFocus":[4,"auto-focus"],"trapFocus":[4,"trap-focus"],"size":[1],"fullscreenOnMobile":[4,"fullscreen-on-mobile"],"contained":[516],"isAnimating":[32],"mobileLockedHeight":[32],"containerRect":[32],"containerBorderRadius":[32],"open":[64],"close":[64],"focusFirstElement":[64]},[[8,"keydown","handleKeyDown"],[9,"resize","handleWindowResize"],[8,"orientationchange","handleOrientationChange"]],{"isOpen":[{"handleIsOpenChange":0}]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[16],"forceOpenDirection":[1,"force-open-direction"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32],"isOpen":[32],"focusedIndex":[32],"openDirection":[32]},[[4,"click","handleDocumentClick"],[4,"keydown","handleDocumentKeydown"]],{"options":[{"optionsChanged":0}],"value":[{"externalValueChanged":0}]}],[513,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["p-fb32cd8f",[[513,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]]'),e))));
|
|
1
|
+
import{p as e,b as o}from"./p-Dhio9uis.js";export{s as setNonce}from"./p-Dhio9uis.js";import{g as t}from"./p-DQuL1Twl.js";(()=>{const o=import.meta.url,t={};return""!==o&&(t.resourcesUrl=new URL(".",o).href),e(t)})().then((async e=>(await t(),o(JSON.parse('[["p-c9a3807b",[[512,"kritzel-editor",{"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"lockDrawingScale":[1028,"lock-drawing-scale"],"viewportBoundaryLeft":[1026,"viewport-boundary-left"],"viewportBoundaryRight":[1026,"viewport-boundary-right"],"viewportBoundaryTop":[1026,"viewport-boundary-top"],"viewportBoundaryBottom":[1026,"viewport-boundary-bottom"],"debugInfo":[1040],"user":[16],"activeUsers":[16],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"themes":[16],"theme":[1025],"licenseKey":[1,"license-key"],"locale":[1025],"locales":[16],"fallbackLocale":[1,"fallback-locale"],"customSvgIcons":[16],"isPanningEnabled":[1028,"is-panning-enabled"],"isZoomingEnabled":[1028,"is-zooming-enabled"],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"isWorkspaceManagerVisible":[4,"is-workspace-manager-visible"],"isMoreMenuVisible":[4,"is-more-menu-visible"],"isZoomPanelVisible":[4,"is-zoom-panel-visible"],"isObjectDistanceFadingActive":[4,"is-object-distance-fading-active"],"syncConfig":[16],"assetStorageConfig":[16],"cursorTarget":[16],"loginConfig":[16],"isLoading":[4,"is-loading"],"editorId":[1,"editor-id"],"activeWorkspaceId":[1,"active-workspace-id"],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"isBackToContentButtonVisible":[32],"resolvedTerms":[32],"availableLocaleOptions":[32],"currentZoomPercent":[32],"shortcuts":[32],"currentIsPublic":[32],"isEditorVisible":[32],"getObjectById":[64],"addObject":[64],"addObjects":[64],"updateObject":[64],"removeObject":[64],"removeObjects":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"panToObject":[64],"backToContent":[64],"centerAllObjects":[64],"centerObjects":[64],"setViewport":[64],"panTo":[64],"zoomTo":[64],"zoomIn":[64],"zoomOut":[64],"getViewport":[64],"screenToWorld":[64],"worldToScreen":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64],"loadSharedWorkspace":[64],"reinitSync":[64],"registerTool":[64],"changeActiveTool":[64],"changeActiveToolByName":[64],"disable":[64],"enable":[64],"copy":[64],"cut":[64],"paste":[64],"delete":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"alignObjects":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"getScreenshot":[64],"exportViewportAsPng":[64],"exportViewportAsSvg":[64],"exportSelectedObjectsAsPng":[64],"exportSelectedObjectsAsSvg":[64],"downloadAsJson":[64],"importFromFile":[64],"loadObjectsFromJson":[64],"getObjectsTotalCount":[64],"getAllObjects":[64],"findObjects":[64],"getCopiedObjects":[64],"getObjectsInViewport":[64],"hideContextMenu":[64],"openContextMenu":[64],"triggerSelectionChange":[64],"getDisplayableShortcuts":[64],"openLoginDialog":[64],"setLoginLoading":[64],"setLocale":[64],"getLocale":[64],"getAvailableLocales":[64],"registerLocales":[64],"t":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":[{"onIsEngineReady":0}],"isControlsReady":[{"onIsControlsReady":0}],"workspaces":[{"onWorkspacesChange":0}],"activeWorkspace":[{"onActiveWorkspaceChange":0}],"activeWorkspaceId":[{"onActiveWorkspaceIdChange":0}],"theme":[{"onCurrentThemeChange":0}],"themes":[{"onThemesChange":0}],"locale":[{"onLocaleChange":0}]}],[513,"kritzel-controls",{"visible":[4],"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"theme":[1],"terms":[16],"firstConfig":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"canScrollLeft":[32],"canScrollRight":[32],"needsScrolling":[32],"displayValues":[32],"internalControls":[32],"closeTooltip":[64]},[[8,"keydown","handleKeyDown"]],{"controls":[{"onControlsChange":0}],"theme":[{"onThemeChange":0}]}],[513,"kritzel-settings",{"availableThemes":[16],"availableLocales":[16],"shortcuts":[16],"terms":[16],"settings":[16],"isDialogOpen":[32],"selectedCategoryId":[32],"scaleMin":[32],"scaleMax":[32],"lockDrawingScale":[32],"theme":[32],"locale":[32],"viewportBoundaryLeft":[32],"viewportBoundaryRight":[32],"viewportBoundaryTop":[32],"viewportBoundaryBottom":[32],"debugInfo":[32],"open":[64]},null,{"settings":[{"onSettingsPropChange":0}]}],[513,"kritzel-engine",{"workspace":[16],"editorId":[1,"editor-id"],"activeWorkspaceId":[1,"active-workspace-id"],"syncConfig":[16],"assetStorageConfig":[16],"user":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"lockDrawingScale":[4,"lock-drawing-scale"],"isObjectDistanceFadingActive":[4,"is-object-distance-fading-active"],"theme":[1],"licenseKey":[1,"license-key"],"themes":[16],"locale":[1],"locales":[16],"fallbackLocale":[1,"fallback-locale"],"viewportBoundaryLeft":[2,"viewport-boundary-left"],"viewportBoundaryRight":[2,"viewport-boundary-right"],"viewportBoundaryTop":[2,"viewport-boundary-top"],"viewportBoundaryBottom":[2,"viewport-boundary-bottom"],"debugInfo":[16],"isPanningEnabled":[4,"is-panning-enabled"],"isZoomingEnabled":[4,"is-zooming-enabled"],"isLoading":[4,"is-loading"],"forceUpdate":[32],"triggerSelectionChange":[64],"registerTool":[64],"changeActiveTool":[64],"changeActiveToolByName":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"cut":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"alignObjects":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"openContextMenu":[64],"getObjectById":[64],"getAllObjects":[64],"findObjects":[64],"getObjectsTotalCount":[64],"addObject":[64],"addObjects":[64],"updateObject":[64],"removeObject":[64],"removeObjects":[64],"getSelectedObjects":[64],"getDisplayableShortcuts":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"panToObject":[64],"backToContent":[64],"centerAllObjects":[64],"centerObjects":[64],"setViewport":[64],"panTo":[64],"zoomTo":[64],"zoomIn":[64],"zoomOut":[64],"getViewport":[64],"screenToWorld":[64],"worldToScreen":[64],"getCopiedObjects":[64],"getObjectsInViewport":[64],"getScreenshot":[64],"exportViewportAsPng":[64],"exportViewportAsSvg":[64],"getSelectedObjectsAsSvgString":[64],"exportSelectedObjectsAsSvg":[64],"getSelectedObjectsAsPngDataUrl":[64],"exportSelectedObjectsAsPng":[64],"exportAsJson":[64],"importFromJson":[64],"loadObjectsFromJson":[64],"downloadAsJson":[64],"importFromFile":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64],"getIsPublic":[64],"loadSharedWorkspace":[64],"reinitSync":[64],"saveSettings":[64],"loadSettings":[64],"registerLocales":[64],"setLocale":[64],"getLocale":[64],"getAvailableLocales":[64],"getAvailableLocaleOptions":[64],"t":[64],"getResolvedTerms":[64]},[[1,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[1,"pointerleave","handlePointerLeave"],[1,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":[{"onWorkspaceChange":0}],"activeWorkspaceId":[{"onActiveWorkspaceIdChange":0}],"syncConfig":[{"onSyncConfigChange":0}],"assetStorageConfig":[{"onAssetStorageConfigChange":0}],"user":[{"onUserChange":0}],"globalContextMenuItems":[{"onGlobalContextMenuItemsChange":0}],"objectContextMenuItems":[{"onObjectContextMenuItemsChange":0}],"scaleMax":[{"validateScaleMax":0}],"scaleMin":[{"validateScaleMin":0}],"cursorTarget":[{"onCursorTargetChange":0}],"lockDrawingScale":[{"onLockDrawingScaleChange":0}],"isObjectDistanceFadingActive":[{"onIsObjectDistanceFadingActiveChange":0}],"theme":[{"onThemeChange":0}],"licenseKey":[{"onLicenseKeyChange":0}],"themes":[{"onThemesChange":0}],"locale":[{"onLocaleChange":0}],"locales":[{"onLocalesChange":0}],"fallbackLocale":[{"onFallbackLocaleChange":0}],"viewportBoundaryLeft":[{"onViewportBoundaryLeftChange":0}],"viewportBoundaryRight":[{"onViewportBoundaryRightChange":0}],"viewportBoundaryTop":[{"onViewportBoundaryTopChange":0}],"viewportBoundaryBottom":[{"onViewportBoundaryBottomChange":0}],"debugInfo":[{"onDebugInfoChange":0}],"isLoading":[{"onIsLoadingChange":0}]}],[513,"kritzel-export",{"workspaceName":[1,"workspace-name"],"terms":[16],"isDialogOpen":[32],"previewUrl":[32],"isLoading":[32],"activeTab":[32],"exportFilename":[32],"viewportExportFormat":[32],"open":[64]}],[513,"kritzel-workspace-manager",{"visible":[4],"activeWorkspace":[1040],"workspaces":[16],"terms":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[513,"kritzel-more-menu",{"visible":[4],"items":[16],"icon":[1],"iconSize":[2,"icon-size"],"offsetY":[2,"offset-y"],"terms":[16],"menuAnchor":[32],"isTouchDevice":[32]}],[513,"kritzel-current-user",{"user":[16],"avatarSize":[2,"avatar-size"],"terms":[16]}],[513,"kritzel-share-dialog",{"isPublic":[4,"is-public"],"workspaceId":[1,"workspace-id"],"terms":[16],"isDialogOpen":[32],"internalIsPublic":[32],"copySuccess":[32],"open":[64],"close":[64]},null,{"isPublic":[{"onIsPublicChange":0}]}],[513,"kritzel-login-dialog",{"providers":[16],"dialogTitle":[1,"dialog-title"],"subtitle":[1],"isDialogOpen":[32],"loadingProvider":[32],"open":[64],"close":[64],"setLoading":[64]}],[513,"kritzel-active-users",{"users":[16],"avatarSize":[2,"avatar-size"],"maxVisible":[2,"max-visible"],"overlap":[2]}],[513,"kritzel-back-to-content",{"visible":[4],"text":[1]}],[513,"kritzel-zoom-panel",{"visible":[4],"disabled":[4],"zoomPercent":[2,"zoom-percent"],"terms":[16]}],[769,"kritzel-button",{"variant":[1],"disabled":[4],"type":[1]}],[513,"kritzel-tool-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"theme":[1],"engine":[16],"terms":[16],"config":[32],"palette":[32],"sizes":[32],"currentOpacity":[32],"updateTrigger":[32]},null,{"tool":[{"handleToolChange":0}],"theme":[{"onThemeChange":0}],"engine":[{"handleEngineChange":0}]}],[513,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[513,"kritzel-current-user-dialog",{"user":[16],"terms":[16],"isDialogOpen":[32],"open":[64],"close":[64]}],[513,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32],"openSubmenuPath":[32],"submenuPositions":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":[{"onItemsChanged":0}]}],[769,"kritzel-master-detail",{"items":[16],"selectedItemId":[1,"selected-item-id"],"focusedIndex":[32],"showMobileDetail":[32]},null,{"selectedItemId":[{"watchSelectedItemId":0}]}],[513,"kritzel-pill-tabs",{"tabs":[16],"value":[1025]}],[513,"kritzel-utility-panel",{"undoState":[16],"terms":[16]}],[513,"kritzel-awareness-cursors",{"core":[16],"showEdgeIndicators":[4,"show-edge-indicators"],"edgeIndicatorPadding":[2,"edge-indicator-padding"],"remoteCursors":[32],"objectVersion":[32]}],[513,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[513,"kritzel-input",{"value":[1025],"label":[1],"placeholder":[1],"suffix":[1],"type":[1],"disabled":[4],"inputValue":[32]},null,{"value":[{"onValueChange":0}]}],[513,"kritzel-numeric-input",{"value":[1026],"min":[2],"max":[2],"step":[2],"label":[1],"placeholder":[1],"inputValue":[32]},null,{"value":[{"onValueChange":0}]}],[769,"kritzel-tooltip",{"isVisible":[1028,"is-visible"],"anchorElement":[16],"triggerElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"open":[64],"close":[64],"toggle":[64],"focusContent":[64]},[[4,"click","handleOutsideClick"],[6,"pointerdown","handleOutsidePointerDown"],[4,"kritzelTooltipCloseAll","handleCloseAll"],[9,"resize","handleWindowResize"]],{"triggerElement":[{"handleTriggerElementChange":0}],"isVisible":[{"handleVisibilityChange":0}]}],[513,"kritzel-watermark",{"core":[16],"label":[1]}],[513,"kritzel-color-palette",{"colors":[16],"selectedColor":[1040],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"],"opacity":[2],"theme":[1]}],[513,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[513,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[513,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[513,"kritzel-line-endings",{"styles":[16],"value":[1040]}],[513,"kritzel-opacity-slider",{"value":[1026],"min":[2],"max":[2],"step":[2],"previewColor":[1,"preview-color"]}],[513,"kritzel-shape-fill",{"value":[1025]}],[513,"kritzel-slide-toggle",{"checked":[1028],"disabled":[4],"label":[1]}],[513,"kritzel-avatar",{"user":[16],"name":[1],"size":[2],"color":[1],"imageError":[32]},null,{"user":[{"userChanged":0}],"profileImageUrl":[{"profileImageUrlChanged":0}]}],[513,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[513,"kritzel-color",{"value":[1],"theme":[1],"size":[2]}],[513,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[513,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":[{"onItemChange":0}]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"kritzel-dismiss-menus","handleDismissMenus"],[8,"click","handleOutsideClick"],[6,"pointerdown","handleOutsidePointerDown"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":[{"anchorChanged":0}]}],[769,"kritzel-dialog",{"isOpen":[516,"is-open"],"dialogTitle":[1,"dialog-title"],"closable":[4],"closeOnBackdrop":[4,"close-on-backdrop"],"closeOnEscape":[4,"close-on-escape"],"autoFocus":[4,"auto-focus"],"trapFocus":[4,"trap-focus"],"size":[1],"fullscreenOnMobile":[4,"fullscreen-on-mobile"],"contained":[516],"isAnimating":[32],"mobileLockedHeight":[32],"containerRect":[32],"containerBorderRadius":[32],"open":[64],"close":[64],"focusFirstElement":[64]},[[8,"keydown","handleKeyDown"],[9,"resize","handleWindowResize"],[8,"orientationchange","handleOrientationChange"]],{"isOpen":[{"handleIsOpenChange":0}]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[16],"forceOpenDirection":[1,"force-open-direction"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32],"isOpen":[32],"focusedIndex":[32],"openDirection":[32]},[[4,"click","handleDocumentClick"],[4,"keydown","handleDocumentKeydown"]],{"options":[{"optionsChanged":0}],"value":[{"externalValueChanged":0}]}],[513,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["p-fb32cd8f",[[513,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]]'),e))));
|
|
@@ -12,6 +12,8 @@ import { KritzelAppStateMap } from '../structures/app-state-map.structure';
|
|
|
12
12
|
import { KritzelAnchorManager } from '../managers/anchor.manager';
|
|
13
13
|
import { KritzelCursorManager } from '../managers/cursor.manager';
|
|
14
14
|
import { KritzelThemeManager } from '../managers/theme.manager';
|
|
15
|
+
import { KritzelLocalizationManager } from '../managers/localization.manager';
|
|
16
|
+
import { KritzelLicenseManager } from '../managers/license.manager';
|
|
15
17
|
import { IKritzelUser } from '../../interfaces/user.interface';
|
|
16
18
|
interface InitializeWorkspaceOptions {
|
|
17
19
|
/**
|
|
@@ -44,6 +46,10 @@ export declare class KritzelCore {
|
|
|
44
46
|
private readonly _cursorManager;
|
|
45
47
|
/** Manager for theme styling */
|
|
46
48
|
private readonly _themeManager;
|
|
49
|
+
/** Manager for localization / translated UI strings */
|
|
50
|
+
private readonly _localizationManager;
|
|
51
|
+
/** Manager for license validation and watermark gating */
|
|
52
|
+
private readonly _licenseManager;
|
|
47
53
|
/** Per-core registry of drawing tools (one instance per editor). */
|
|
48
54
|
private readonly _toolRegistry;
|
|
49
55
|
/** Optional unique identifier for namespacing storage keys across multiple editor instances */
|
|
@@ -80,6 +86,16 @@ export declare class KritzelCore {
|
|
|
80
86
|
* @returns The KritzelThemeManager for managing visual themes
|
|
81
87
|
*/
|
|
82
88
|
get themeManager(): KritzelThemeManager;
|
|
89
|
+
/**
|
|
90
|
+
* Gets the localization manager.
|
|
91
|
+
* @returns The KritzelLocalizationManager for resolving translated UI strings
|
|
92
|
+
*/
|
|
93
|
+
get localizationManager(): KritzelLocalizationManager;
|
|
94
|
+
/**
|
|
95
|
+
* Gets the license manager.
|
|
96
|
+
* @returns The KritzelLicenseManager for validating licenses and gating the watermark
|
|
97
|
+
*/
|
|
98
|
+
get licenseManager(): KritzelLicenseManager;
|
|
83
99
|
/**
|
|
84
100
|
* Gets the tool registry scoped to this core instance.
|
|
85
101
|
* @returns The KritzelToolRegistry owned by this core
|
|
@@ -22,6 +22,19 @@ export declare class KritzelContextMenuHandler extends KritzelBaseHandler {
|
|
|
22
22
|
* @param objectContextMenuItems - Array of menu items to show when right-clicking on objects.
|
|
23
23
|
*/
|
|
24
24
|
constructor(core: KritzelCore, globalContextMenuItems: any[], objectContextMenuItems: any[]);
|
|
25
|
+
/**
|
|
26
|
+
* Resolves the active context menu items for display, translating each item's
|
|
27
|
+
* `label` through the current locale. When the label is a known
|
|
28
|
+
* {@link KritzelTermKey} the translation is used; any other string is passed
|
|
29
|
+
* through unchanged. Runs at menu-open time so the labels reflect the locale
|
|
30
|
+
* active at that moment.
|
|
31
|
+
* @returns A new array of items with resolved labels.
|
|
32
|
+
*/
|
|
33
|
+
private resolveLabels;
|
|
34
|
+
/**
|
|
35
|
+
* Gets the active context menu items (object or global) with localized labels.
|
|
36
|
+
*/
|
|
37
|
+
private getResolvedContextMenuItems;
|
|
25
38
|
/**
|
|
26
39
|
* Handles the context menu event (typically triggered by right-click).
|
|
27
40
|
* This method performs the following operations:
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { KritzelCore } from '../core/core.class';
|
|
2
|
+
/**
|
|
3
|
+
* Manages license validation state for the Kritzel editor.
|
|
4
|
+
*
|
|
5
|
+
* The manager is owned per {@link KritzelCore} instance (like the theme and
|
|
6
|
+
* localization managers) so that multiple editors on the same page validate
|
|
7
|
+
* independently.
|
|
8
|
+
*
|
|
9
|
+
* A license key is an offline Ed25519 signed token of the form
|
|
10
|
+
* `KRTZL1.<base64url(payload)>.<base64url(signature)>`. The library verifies it
|
|
11
|
+
* against the embedded {@link KRITZEL_LICENSE_PUBLIC_KEY}; only the owner can
|
|
12
|
+
* mint tokens, with the matching private key (see scripts/license/).
|
|
13
|
+
*
|
|
14
|
+
* Responsibilities:
|
|
15
|
+
* - Cheaply reject absent/malformed/expired keys synchronously so the watermark
|
|
16
|
+
* never flashes off for an obviously invalid key.
|
|
17
|
+
* - Verify the signature asynchronously via WebCrypto, then drive a rerender if
|
|
18
|
+
* the licensed state changed so the watermark is re-asserted on the reactive
|
|
19
|
+
* render path.
|
|
20
|
+
* - Periodically re-check on a randomized interval so the check is harder to
|
|
21
|
+
* stub out programmatically than a fixed `setInterval`. Re-checks reuse the
|
|
22
|
+
* cached verified token and only re-evaluate expiry, so crypto is not re-run
|
|
23
|
+
* on an unchanged key every tick.
|
|
24
|
+
*
|
|
25
|
+
* Failure semantics (fail open):
|
|
26
|
+
* - No key provided -> unlicensed (free tier, watermark shown). The normal
|
|
27
|
+
* default, not an error.
|
|
28
|
+
* - Key present but cleanly invalid (malformed, bad signature, expired) ->
|
|
29
|
+
* unlicensed.
|
|
30
|
+
* - Key present but validation throws an *unexpected* internal error, or the
|
|
31
|
+
* runtime lacks Ed25519 support in WebCrypto -> fail open and treat as
|
|
32
|
+
* licensed so a library defect or old browser never breaks a paying
|
|
33
|
+
* customer's app.
|
|
34
|
+
*/
|
|
35
|
+
export declare class KritzelLicenseManager {
|
|
36
|
+
private readonly _core;
|
|
37
|
+
/** The most recently provided license key, re-checked on each periodic tick. */
|
|
38
|
+
private _licenseKey?;
|
|
39
|
+
/** Cached result of the latest validation. */
|
|
40
|
+
private _isLicensed;
|
|
41
|
+
/**
|
|
42
|
+
* The token whose signature most recently verified successfully. Lets the
|
|
43
|
+
* periodic re-check skip crypto and only re-evaluate expiry while the key is
|
|
44
|
+
* unchanged.
|
|
45
|
+
*/
|
|
46
|
+
private _verifiedToken?;
|
|
47
|
+
/**
|
|
48
|
+
* Monotonic id incremented on every {@link validate} call. An in-flight async
|
|
49
|
+
* verification only commits its result if its id still matches, so a stale
|
|
50
|
+
* verification resolving after a newer call can never clobber fresh state.
|
|
51
|
+
*/
|
|
52
|
+
private _validationId;
|
|
53
|
+
/** Cached imported public key, lazily created on first signature check. */
|
|
54
|
+
private _publicKeyPromise?;
|
|
55
|
+
/** Handle for the self-rescheduling re-validation timer. */
|
|
56
|
+
private _timer;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a new KritzelLicenseManager instance.
|
|
59
|
+
* @param core - The KritzelCore instance this manager belongs to
|
|
60
|
+
*/
|
|
61
|
+
constructor(core: KritzelCore);
|
|
62
|
+
/**
|
|
63
|
+
* Whether the editor is currently considered licensed (watermark hidden).
|
|
64
|
+
*/
|
|
65
|
+
get isLicensed(): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Validates the given license key.
|
|
68
|
+
*
|
|
69
|
+
* Runs a synchronous structural pre-check first: an absent, malformed, or
|
|
70
|
+
* already-expired key resolves the state immediately (no async work). A
|
|
71
|
+
* structurally valid key then has its signature verified asynchronously; the
|
|
72
|
+
* licensed state is committed (and a rerender triggered) only if it changed.
|
|
73
|
+
*
|
|
74
|
+
* The return value reflects the state known *synchronously* at call time. The
|
|
75
|
+
* authoritative result for a structurally valid key arrives shortly after via
|
|
76
|
+
* the async verification and the reactive rerender.
|
|
77
|
+
*
|
|
78
|
+
* @param key - The license key to validate, or undefined to clear the license
|
|
79
|
+
* @returns The licensed state known synchronously at call time
|
|
80
|
+
*/
|
|
81
|
+
validate(key?: string): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Starts periodic re-validation on a randomized interval between
|
|
84
|
+
* {@link MIN_REVALIDATION_DELAY_MS} and {@link MAX_REVALIDATION_DELAY_MS}.
|
|
85
|
+
*
|
|
86
|
+
* Uses a self-rescheduling `setTimeout` (a fresh random delay each cycle)
|
|
87
|
+
* rather than a fixed `setInterval`, making the check fractionally harder to
|
|
88
|
+
* predict and no-op programmatically. Any existing timer is cleared first so
|
|
89
|
+
* the method is idempotent.
|
|
90
|
+
*/
|
|
91
|
+
startPeriodicValidation(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Stops periodic re-validation and releases the timer.
|
|
94
|
+
*/
|
|
95
|
+
stopPeriodicValidation(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Cleanup hook called when the editor is torn down.
|
|
98
|
+
*/
|
|
99
|
+
destroy(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Commits a new licensed state, triggering a rerender only when it changed.
|
|
102
|
+
* The {@link validationId} guard is checked by async callers; synchronous
|
|
103
|
+
* callers pass the current id.
|
|
104
|
+
*/
|
|
105
|
+
private commit;
|
|
106
|
+
/**
|
|
107
|
+
* Schedules the next re-validation tick at a randomized delay.
|
|
108
|
+
*/
|
|
109
|
+
private scheduleNextValidation;
|
|
110
|
+
/**
|
|
111
|
+
* Returns a random delay within the configured re-validation window.
|
|
112
|
+
*/
|
|
113
|
+
private getRandomRevalidationDelay;
|
|
114
|
+
/**
|
|
115
|
+
* Synchronous structural pre-check of a license key: verifies the format
|
|
116
|
+
* prefix, three-part structure, JSON payload, and (if present) that the token
|
|
117
|
+
* has not expired. Does not verify the signature.
|
|
118
|
+
*
|
|
119
|
+
* @returns `rejected` for absent/malformed/expired keys, or `pass` with the
|
|
120
|
+
* parsed segments and claims for a structurally valid, unexpired token.
|
|
121
|
+
*/
|
|
122
|
+
private preCheck;
|
|
123
|
+
/**
|
|
124
|
+
* Verifies the Ed25519 signature of the token against the embedded public
|
|
125
|
+
* key. Resolves true/false for a definitive valid/invalid signature.
|
|
126
|
+
*
|
|
127
|
+
* Rejects (rather than resolving false) on unexpected crypto failures or when
|
|
128
|
+
* the runtime lacks Ed25519 support, so the caller fails open.
|
|
129
|
+
*/
|
|
130
|
+
private verifySignature;
|
|
131
|
+
/**
|
|
132
|
+
* Imports and caches the embedded Ed25519 public key for signature checks.
|
|
133
|
+
*/
|
|
134
|
+
private getPublicKey;
|
|
135
|
+
/** Decodes a base64url string to its UTF-8 text. */
|
|
136
|
+
private base64UrlToString;
|
|
137
|
+
/** Decodes a base64url string to raw bytes. */
|
|
138
|
+
private base64UrlToBytes;
|
|
139
|
+
/** Encodes a string to its UTF-8 bytes. */
|
|
140
|
+
private utf8Bytes;
|
|
141
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { KritzelCore } from '../core/core.class';
|
|
2
|
+
import { KritzelLocale, KritzelTermKey, KritzelTermVars, LocaleCode } from '../../interfaces/localization.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Manages localization state and term resolution across the Kritzel editor.
|
|
5
|
+
*
|
|
6
|
+
* The manager is owned per {@link KritzelCore} instance (like the theme manager)
|
|
7
|
+
* so that multiple editors on the same page can use different languages in
|
|
8
|
+
* isolation.
|
|
9
|
+
*
|
|
10
|
+
* Term resolution follows a deterministic fallback chain for each key:
|
|
11
|
+
* 1. active locale's custom terms
|
|
12
|
+
* 2. active locale's built-in terms
|
|
13
|
+
* 3. fallback locale's custom terms
|
|
14
|
+
* 4. fallback locale's built-in terms
|
|
15
|
+
* 5. the key itself (last resort)
|
|
16
|
+
*
|
|
17
|
+
* Persistence of the selected locale is handled by the KritzelSettings
|
|
18
|
+
* component; this manager only reads the stored value.
|
|
19
|
+
*/
|
|
20
|
+
export declare class KritzelLocalizationManager {
|
|
21
|
+
private readonly _core;
|
|
22
|
+
private readonly _storageKey;
|
|
23
|
+
/** Built-in locale definitions, keyed by locale code. */
|
|
24
|
+
private readonly _builtinLocales;
|
|
25
|
+
/** Consumer-registered locale definitions, keyed by locale code. */
|
|
26
|
+
private readonly _customLocales;
|
|
27
|
+
private _currentLocale;
|
|
28
|
+
private _fallbackLocale;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new KritzelLocalizationManager instance.
|
|
31
|
+
* Seeds the built-in locales and initializes the current locale from the
|
|
32
|
+
* settings object in localStorage (or the default locale).
|
|
33
|
+
*
|
|
34
|
+
* @param core - The KritzelCore instance this manager belongs to
|
|
35
|
+
*/
|
|
36
|
+
constructor(core: KritzelCore);
|
|
37
|
+
/**
|
|
38
|
+
* Gets the currently active locale code.
|
|
39
|
+
*/
|
|
40
|
+
get currentLocale(): LocaleCode;
|
|
41
|
+
/**
|
|
42
|
+
* Gets the fallback locale code used when a term is missing from the active locale.
|
|
43
|
+
*/
|
|
44
|
+
get fallbackLocale(): LocaleCode;
|
|
45
|
+
/**
|
|
46
|
+
* Sets the fallback locale code used when a term is missing from the active locale.
|
|
47
|
+
*
|
|
48
|
+
* @param code - The fallback locale code
|
|
49
|
+
*/
|
|
50
|
+
setFallbackLocale(code: LocaleCode): void;
|
|
51
|
+
/**
|
|
52
|
+
* Registers consumer-provided locale definitions. Definitions are merged by
|
|
53
|
+
* code; registering the same code again replaces the previous definition.
|
|
54
|
+
* A registered locale may provide a partial set of terms — missing terms are
|
|
55
|
+
* resolved through the fallback chain.
|
|
56
|
+
*
|
|
57
|
+
* @param locales - The locale definitions to register
|
|
58
|
+
*/
|
|
59
|
+
registerLocales(locales: KritzelLocale[]): void;
|
|
60
|
+
/**
|
|
61
|
+
* Sets the active locale and triggers a re-render so UI strings update.
|
|
62
|
+
*
|
|
63
|
+
* @param code - The locale code to activate
|
|
64
|
+
*/
|
|
65
|
+
setLocale(code: LocaleCode): void;
|
|
66
|
+
/**
|
|
67
|
+
* Gets the list of available locale codes (built-in and registered).
|
|
68
|
+
*/
|
|
69
|
+
getAvailableLocales(): LocaleCode[];
|
|
70
|
+
/**
|
|
71
|
+
* Gets the available locales as `{ code, label }` pairs for use in a selector.
|
|
72
|
+
* A registered locale's label takes precedence over the built-in label; the
|
|
73
|
+
* code is used as the label when none is provided.
|
|
74
|
+
*/
|
|
75
|
+
getAvailableLocaleOptions(): {
|
|
76
|
+
code: LocaleCode;
|
|
77
|
+
label: string;
|
|
78
|
+
}[];
|
|
79
|
+
/**
|
|
80
|
+
* Gets the display label for a locale code, falling back to the code itself.
|
|
81
|
+
*
|
|
82
|
+
* @param code - The locale code
|
|
83
|
+
*/
|
|
84
|
+
getLocaleLabel(code: LocaleCode): string;
|
|
85
|
+
/**
|
|
86
|
+
* Resolves a term key to its translated string for the active locale and
|
|
87
|
+
* interpolates any `{placeholder}` tokens.
|
|
88
|
+
*
|
|
89
|
+
* @param key - The term key to resolve
|
|
90
|
+
* @param vars - Optional values for `{placeholder}` interpolation
|
|
91
|
+
* @returns The translated, interpolated string (or the key if unresolved)
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* manager.translate('menu.copy'); // 'Copy'
|
|
95
|
+
* manager.translate('share.expires', { date: '5/1' }); // 'Expires 5/1'
|
|
96
|
+
*/
|
|
97
|
+
translate(key: KritzelTermKey, vars?: KritzelTermVars): string;
|
|
98
|
+
/**
|
|
99
|
+
* Resolves every known term key for the active locale into a flat map.
|
|
100
|
+
*
|
|
101
|
+
* The key set is the union of all keys defined across the built-in and
|
|
102
|
+
* registered locales, so consumer-added keys are included. Each value is
|
|
103
|
+
* resolved through the same fallback chain as {@link translate} (without
|
|
104
|
+
* interpolation, since these are shared, variable-free UI labels).
|
|
105
|
+
*
|
|
106
|
+
* @returns A map of every term key to its resolved string for the active locale
|
|
107
|
+
*/
|
|
108
|
+
getAllTerms(): Partial<Record<KritzelTermKey, string>>;
|
|
109
|
+
/**
|
|
110
|
+
* Reads the stored locale from the settings object in localStorage using this
|
|
111
|
+
* instance's namespaced key.
|
|
112
|
+
*
|
|
113
|
+
* @returns The stored locale code if valid, or the default locale
|
|
114
|
+
*/
|
|
115
|
+
getStoredLocale(): LocaleCode;
|
|
116
|
+
/**
|
|
117
|
+
* Cleans up the localization manager state.
|
|
118
|
+
* Provided for lifecycle parity with other managers.
|
|
119
|
+
*/
|
|
120
|
+
cleanup(): void;
|
|
121
|
+
}
|
|
@@ -25,6 +25,7 @@ export declare class KritzelCustomElement extends KritzelBaseObject<HTMLElement>
|
|
|
25
25
|
element: HTMLElement;
|
|
26
26
|
translateX?: number;
|
|
27
27
|
translateY?: number;
|
|
28
|
+
rotation?: number;
|
|
28
29
|
scale?: number;
|
|
29
30
|
height?: number;
|
|
30
31
|
width?: number;
|
|
@@ -46,6 +47,7 @@ export declare class KritzelCustomElement extends KritzelBaseObject<HTMLElement>
|
|
|
46
47
|
element: HTMLElement;
|
|
47
48
|
translateX?: number;
|
|
48
49
|
translateY?: number;
|
|
50
|
+
rotation?: number;
|
|
49
51
|
scale?: number;
|
|
50
52
|
height?: number;
|
|
51
53
|
width?: number;
|
|
@@ -15,6 +15,9 @@ import { KritzelPolygon } from '../../interfaces/polygon.interface';
|
|
|
15
15
|
*/
|
|
16
16
|
export declare class KritzelGroup extends KritzelBaseObject<HTMLElement> {
|
|
17
17
|
__class__: string;
|
|
18
|
+
constructor(config?: {
|
|
19
|
+
rotation?: number;
|
|
20
|
+
});
|
|
18
21
|
/**
|
|
19
22
|
* IDs of child objects within this group.
|
|
20
23
|
* Children can be any KritzelBaseObject, including other KritzelGroups for nesting.
|
|
@@ -54,7 +57,9 @@ export declare class KritzelGroup extends KritzelBaseObject<HTMLElement> {
|
|
|
54
57
|
* @param core - The KritzelCore instance providing access to store and state management.
|
|
55
58
|
* @returns A new KritzelGroup instance configured with the core context.
|
|
56
59
|
*/
|
|
57
|
-
static create(core: KritzelCore
|
|
60
|
+
static create(core: KritzelCore, config?: {
|
|
61
|
+
rotation?: number;
|
|
62
|
+
}): KritzelGroup;
|
|
58
63
|
/**
|
|
59
64
|
* Creates a KritzelGroup from an array of existing objects.
|
|
60
65
|
* The objects are added as children and the group's bounding box is calculated
|
|
@@ -101,7 +101,7 @@ export declare class KritzelImage extends KritzelBaseObject<HTMLImageElement> {
|
|
|
101
101
|
* @param core - The KritzelCore instance providing access to store and state management.
|
|
102
102
|
* @returns A new KritzelImage instance configured with the core context.
|
|
103
103
|
*/
|
|
104
|
-
static create(core: KritzelCore): KritzelImage;
|
|
104
|
+
static create(core: KritzelCore, config?: Partial<KritzelImage>): KritzelImage;
|
|
105
105
|
/**
|
|
106
106
|
* Resizes the image while maintaining aspect ratio based on the new height.
|
|
107
107
|
* Updates the image's position and dimensions, then syncs changes to y.js
|
|
@@ -21,7 +21,7 @@ export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
|
|
|
21
21
|
isVisible: boolean;
|
|
22
22
|
isDebugInfoVisible: boolean;
|
|
23
23
|
isCompleted: boolean;
|
|
24
|
-
private _adjustedPoints
|
|
24
|
+
private _adjustedPoints;
|
|
25
25
|
/**
|
|
26
26
|
* Gets the SVG viewBox string based on the path's position and dimensions.
|
|
27
27
|
* @returns The viewBox attribute value in the format "x y width height"
|
|
@@ -42,6 +42,7 @@ export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
|
|
|
42
42
|
points: number[][];
|
|
43
43
|
translateX?: number;
|
|
44
44
|
translateY?: number;
|
|
45
|
+
rotation?: number;
|
|
45
46
|
scale?: number;
|
|
46
47
|
strokeWidth?: number;
|
|
47
48
|
fill?: ThemeAwareColor;
|
|
@@ -134,7 +135,7 @@ export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
|
|
|
134
135
|
private pointToLineSegmentDistance;
|
|
135
136
|
/**
|
|
136
137
|
* Updates width, height, x, y, translateX, and translateY based on current points.
|
|
137
|
-
*
|
|
138
|
+
* Uses the unrotated local points and stroke width for base dimensions.
|
|
138
139
|
* Called during initial setup to establish the path's dimensions and position.
|
|
139
140
|
*/
|
|
140
141
|
private updateDimensions;
|
|
@@ -33,6 +33,9 @@ interface UnchangedObjectSnapshot {
|
|
|
33
33
|
*/
|
|
34
34
|
export declare class KritzelSelectionGroup extends KritzelBaseObject<HTMLElement> {
|
|
35
35
|
__class__: string;
|
|
36
|
+
constructor(config?: {
|
|
37
|
+
rotation?: number;
|
|
38
|
+
});
|
|
36
39
|
private _objectIds;
|
|
37
40
|
private _cachedObjects;
|
|
38
41
|
private _cachedObjectIdsHash;
|
|
@@ -89,7 +92,9 @@ export declare class KritzelSelectionGroup extends KritzelBaseObject<HTMLElement
|
|
|
89
92
|
* @param core - The KritzelCore instance to associate with this selection group
|
|
90
93
|
* @returns A new KritzelSelectionGroup instance configured with default settings
|
|
91
94
|
*/
|
|
92
|
-
static create(core: KritzelCore
|
|
95
|
+
static create(core: KritzelCore, config?: {
|
|
96
|
+
rotation?: number;
|
|
97
|
+
}): KritzelSelectionGroup;
|
|
93
98
|
/**
|
|
94
99
|
* Adds multiple objects to the selection group.
|
|
95
100
|
* Only adds objects that are not already in the selection.
|
|
@@ -59,6 +59,7 @@ export declare class KritzelShape extends KritzelBaseObject<HTMLDivElement> {
|
|
|
59
59
|
y?: number;
|
|
60
60
|
translateX?: number;
|
|
61
61
|
translateY?: number;
|
|
62
|
+
rotation?: number;
|
|
62
63
|
width?: number;
|
|
63
64
|
height?: number;
|
|
64
65
|
shapeType?: ShapeType;
|
|
@@ -85,6 +86,7 @@ export declare class KritzelShape extends KritzelBaseObject<HTMLDivElement> {
|
|
|
85
86
|
y?: number;
|
|
86
87
|
translateX?: number;
|
|
87
88
|
translateY?: number;
|
|
89
|
+
rotation?: number;
|
|
88
90
|
width?: number;
|
|
89
91
|
height?: number;
|
|
90
92
|
shapeType?: ShapeType;
|
|
@@ -61,6 +61,7 @@ export declare class KritzelText extends KritzelBaseObject<HTMLDivElement> {
|
|
|
61
61
|
height?: number;
|
|
62
62
|
width?: number;
|
|
63
63
|
scale?: number;
|
|
64
|
+
rotation?: number;
|
|
64
65
|
initialWidth?: number;
|
|
65
66
|
initialHeight?: number;
|
|
66
67
|
scaleX?: number;
|
|
@@ -75,7 +76,7 @@ export declare class KritzelText extends KritzelBaseObject<HTMLDivElement> {
|
|
|
75
76
|
* @param scale - Optional scale factor (defaults to current viewport scale).
|
|
76
77
|
* @returns A new, fully initialized KritzelText instance.
|
|
77
78
|
*/
|
|
78
|
-
static create(core: KritzelCore, fontSize?: number, fontFamily?: string, scale?: number): KritzelText;
|
|
79
|
+
static create(core: KritzelCore, fontSize?: number, fontFamily?: string, scale?: number, rotation?: number): KritzelText;
|
|
79
80
|
/**
|
|
80
81
|
* Mounts the text object to a DOM element, attaching the ProseMirror editor.
|
|
81
82
|
* Applies font styling and ensures the editor is properly rendered.
|
|
@@ -26,7 +26,7 @@ export declare class KritzelBrushTool extends KritzelBaseTool {
|
|
|
26
26
|
* websocket traffic without visible quality loss — `perfect-freehand`
|
|
27
27
|
* already smooths the rendered stroke.
|
|
28
28
|
*/
|
|
29
|
-
static readonly MIN_POINT_DISTANCE_PX =
|
|
29
|
+
static readonly MIN_POINT_DISTANCE_PX = 3;
|
|
30
30
|
/** Tracks the ID of the path currently being drawn */
|
|
31
31
|
private _currentPathId;
|
|
32
32
|
/**
|