@kritzel/engine 0.4.31
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/app-globals-V2Kpy_OQ.js +5 -0
- package/dist/cjs/engine.constants-CakmdKMW.js +28206 -0
- package/dist/cjs/index-BbbWU2aN.js +1742 -0
- package/dist/cjs/index.cjs.js +4232 -0
- package/dist/cjs/kritzel-awareness-cursors_5.cjs.entry.js +28004 -0
- package/dist/cjs/loader.cjs.js +13 -0
- package/dist/cjs/stencil.cjs.js +25 -0
- package/dist/collection/classes/core/core.class.js +1389 -0
- package/dist/collection/classes/core/reviver.class.js +124 -0
- package/dist/collection/classes/core/store.class.js +337 -0
- package/dist/collection/classes/core/viewport.class.js +794 -0
- package/dist/collection/classes/core/workspace.class.js +112 -0
- package/dist/collection/classes/handlers/base.handler.js +20 -0
- package/dist/collection/classes/handlers/context-menu.handler.js +170 -0
- package/dist/collection/classes/handlers/hover.handler.js +35 -0
- package/dist/collection/classes/handlers/key.handler.js +162 -0
- package/dist/collection/classes/handlers/line-handle.handler.js +475 -0
- package/dist/collection/classes/handlers/move.handler.js +295 -0
- package/dist/collection/classes/handlers/resize.handler.js +327 -0
- package/dist/collection/classes/handlers/rotation.handler.js +174 -0
- package/dist/collection/classes/handlers/selection.handler.js +526 -0
- package/dist/collection/classes/managers/anchor.manager.js +1476 -0
- package/dist/collection/classes/managers/browser-permission.manager.js +64 -0
- package/dist/collection/classes/managers/clipboard.manager.js +346 -0
- package/dist/collection/classes/managers/clipboard.types.js +1 -0
- package/dist/collection/classes/managers/cursor.manager.js +139 -0
- package/dist/collection/classes/managers/license.manager.js +341 -0
- package/dist/collection/classes/managers/localization.manager.js +227 -0
- package/dist/collection/classes/managers/theme.manager.js +206 -0
- package/dist/collection/classes/objects/base-object.class.js +462 -0
- package/dist/collection/classes/objects/dynamic-object.class.js +437 -0
- package/dist/collection/classes/objects/group.class.js +590 -0
- package/dist/collection/classes/objects/image.class.js +500 -0
- package/dist/collection/classes/objects/line.class.js +789 -0
- package/dist/collection/classes/objects/path.class.js +578 -0
- package/dist/collection/classes/objects/selection-box.class.js +32 -0
- package/dist/collection/classes/objects/selection-group.class.js +752 -0
- package/dist/collection/classes/objects/shape.class.js +628 -0
- package/dist/collection/classes/objects/text.class.js +461 -0
- package/dist/collection/classes/providers/assets/asset-resolver.class.js +536 -0
- package/dist/collection/classes/providers/assets/http-asset-provider.class.js +111 -0
- package/dist/collection/classes/providers/assets/indexeddb-asset-provider.class.js +241 -0
- package/dist/collection/classes/providers/assets/presigned-asset-provider.class.js +86 -0
- package/dist/collection/classes/providers/paste-intent/event-paste-intent.provider.js +48 -0
- package/dist/collection/classes/providers/paste-intent/ios-paste-intent.provider.js +16 -0
- package/dist/collection/classes/providers/paste-intent/navigator-paste-intent.provider.js +86 -0
- package/dist/collection/classes/providers/sync/broadcast-sync-provider.class.js +100 -0
- package/dist/collection/classes/providers/sync/hocuspocus-sync-provider.class.js +333 -0
- package/dist/collection/classes/providers/sync/in-memory-sync-provider.class.js +69 -0
- package/dist/collection/classes/providers/sync/indexeddb-sync-provider.class.js +39 -0
- package/dist/collection/classes/providers/sync/websocket-sync-provider.class.js +110 -0
- package/dist/collection/classes/registries/dynamic-object-renderer.registry.js +52 -0
- package/dist/collection/classes/registries/font-registry.class.js +161 -0
- package/dist/collection/classes/registries/icon-registry.class.js +118 -0
- package/dist/collection/classes/registries/paste-intent-provider.registry.js +26 -0
- package/dist/collection/classes/registries/tool.registry.js +69 -0
- package/dist/collection/classes/structures/app-state-map.structure.js +461 -0
- package/dist/collection/classes/structures/object-map.structure.js +1103 -0
- package/dist/collection/classes/structures/quadtree.structure.js +251 -0
- package/dist/collection/classes/tools/base-tool.class.js +88 -0
- package/dist/collection/classes/tools/brush-tool.class.js +236 -0
- package/dist/collection/classes/tools/eraser-tool.class.js +133 -0
- package/dist/collection/classes/tools/image-tool.class.js +152 -0
- package/dist/collection/classes/tools/line-tool.class.js +249 -0
- package/dist/collection/classes/tools/selection-tool.class.js +611 -0
- package/dist/collection/classes/tools/shape-tool.class.js +251 -0
- package/dist/collection/classes/tools/text-tool.class.js +179 -0
- package/dist/collection/collection-manifest.json +17 -0
- package/dist/collection/components/kritzel-awareness-cursors/kritzel-awareness-cursors.css +115 -0
- package/dist/collection/components/kritzel-awareness-cursors/kritzel-awareness-cursors.js +380 -0
- package/dist/collection/components/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -0
- package/dist/collection/components/kritzel-cursor-trail/kritzel-cursor-trail.js +153 -0
- package/dist/collection/components/kritzel-engine/kritzel-engine.css +81 -0
- package/dist/collection/components/kritzel-engine/kritzel-engine.js +6345 -0
- package/dist/collection/components/kritzel-icon/kritzel-icon.css +18 -0
- package/dist/collection/components/kritzel-icon/kritzel-icon.js +93 -0
- package/dist/collection/components/kritzel-watermark/kritzel-watermark.css +29 -0
- package/dist/collection/components/kritzel-watermark/kritzel-watermark.js +83 -0
- package/dist/collection/configs/default-asset-storage.config.js +9 -0
- package/dist/collection/configs/default-brush-tool.config.js +9 -0
- package/dist/collection/configs/default-engine-config.js +73 -0
- package/dist/collection/configs/default-line-tool.config.js +12 -0
- package/dist/collection/configs/default-shape-tool.config.js +15 -0
- package/dist/collection/configs/default-sync.config.js +6 -0
- package/dist/collection/configs/default-text-tool.config.js +12 -0
- package/dist/collection/constants/color-palette.constants.js +40 -0
- package/dist/collection/constants/core.constants.js +1 -0
- package/dist/collection/constants/engine.constants.js +4 -0
- package/dist/collection/constants/license.constants.js +25 -0
- package/dist/collection/constants/schema.constants.js +4 -0
- package/dist/collection/constants/storage.constants.js +1 -0
- package/dist/collection/constants/stroke-size.constants.js +2 -0
- package/dist/collection/constants/text-tool-fonts.constants.js +18 -0
- package/dist/collection/constants/version.js +6 -0
- package/dist/collection/enums/alignment.enum.js +9 -0
- package/dist/collection/enums/event-button.enum.js +6 -0
- package/dist/collection/enums/handle-type.enum.js +7 -0
- package/dist/collection/enums/shape-type.enum.js +6 -0
- package/dist/collection/events/active-workspace-change.event.js +1 -0
- package/dist/collection/events/editor-is-ready.event.js +1 -0
- package/dist/collection/events/login.event.js +1 -0
- package/dist/collection/helpers/alignment.helper.js +73 -0
- package/dist/collection/helpers/class.helper.js +5 -0
- package/dist/collection/helpers/color.helper.js +106 -0
- package/dist/collection/helpers/cursor.helper.js +57 -0
- package/dist/collection/helpers/devices.helper.js +28 -0
- package/dist/collection/helpers/event.helper.js +58 -0
- package/dist/collection/helpers/geometry.helper.js +149 -0
- package/dist/collection/helpers/html.helper.js +116 -0
- package/dist/collection/helpers/image-file.helper.js +6 -0
- package/dist/collection/helpers/keyboard.helper.js +55 -0
- package/dist/collection/helpers/localization.helper.js +25 -0
- package/dist/collection/helpers/math.helper.js +8 -0
- package/dist/collection/helpers/migration.helper.js +45 -0
- package/dist/collection/helpers/object.helper.js +29 -0
- package/dist/collection/helpers/svg-export.helper.js +655 -0
- package/dist/collection/helpers/theme.helper.js +77 -0
- package/dist/collection/helpers/tool-config.helper.js +63 -0
- package/dist/collection/helpers/wheel.helper.js +113 -0
- package/dist/collection/index.js +107 -0
- package/dist/collection/interfaces/anchor.interface.js +1 -0
- package/dist/collection/interfaces/arrow-head.interface.js +1 -0
- package/dist/collection/interfaces/asset-provider.interface.js +1 -0
- package/dist/collection/interfaces/asset-storage-config.interface.js +1 -0
- package/dist/collection/interfaces/asset.interface.js +1 -0
- package/dist/collection/interfaces/bounding-box.interface.js +1 -0
- package/dist/collection/interfaces/clonable.interface.js +1 -0
- package/dist/collection/interfaces/context-menu-item.interface.js +1 -0
- package/dist/collection/interfaces/context-menu-state.interface.js +1 -0
- package/dist/collection/interfaces/debug-info.interface.js +1 -0
- package/dist/collection/interfaces/dialog.interface.js +1 -0
- package/dist/collection/interfaces/document-metadata.interface.js +1 -0
- package/dist/collection/interfaces/dynamic-object-renderer.interface.js +1 -0
- package/dist/collection/interfaces/engine-state.interface.js +1 -0
- package/dist/collection/interfaces/font.interface.js +1 -0
- package/dist/collection/interfaces/localization.interface.js +1 -0
- package/dist/collection/interfaces/login-config.interface.js +1 -0
- package/dist/collection/interfaces/master-detail.interface.js +1 -0
- package/dist/collection/interfaces/menu-item.interface.js +1 -0
- package/dist/collection/interfaces/migration.interface.js +1 -0
- package/dist/collection/interfaces/notification.interface.js +1 -0
- package/dist/collection/interfaces/object-change-event.interface.js +1 -0
- package/dist/collection/interfaces/object-export.interface.js +1 -0
- package/dist/collection/interfaces/object.interface.js +1 -0
- package/dist/collection/interfaces/paste-intent-provider.interface.js +1 -0
- package/dist/collection/interfaces/point.interface.js +1 -0
- package/dist/collection/interfaces/polygon.interface.js +1 -0
- package/dist/collection/interfaces/remote-cursor.interface.js +1 -0
- package/dist/collection/interfaces/selection-state.interface.js +1 -0
- package/dist/collection/interfaces/serializable.interface.js +1 -0
- package/dist/collection/interfaces/settings.interface.js +1 -0
- package/dist/collection/interfaces/share.interface.js +1 -0
- package/dist/collection/interfaces/shortcut.interface.js +1 -0
- package/dist/collection/interfaces/sync-config.interface.js +21 -0
- package/dist/collection/interfaces/sync-provider.interface.js +1 -0
- package/dist/collection/interfaces/theme.interface.js +1 -0
- package/dist/collection/interfaces/tool-config.interface.js +1 -0
- package/dist/collection/interfaces/tool-type.interface.js +1 -0
- package/dist/collection/interfaces/tool.interface.js +1 -0
- package/dist/collection/interfaces/toolbar-item.interface.js +1 -0
- package/dist/collection/interfaces/undo-state.interface.js +1 -0
- package/dist/collection/interfaces/user.interface.js +1 -0
- package/dist/collection/interfaces/viewport-state.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/migrations/app-state.migrations.js +47 -0
- package/dist/collection/migrations/workspace.migrations.js +67 -0
- package/dist/collection/themes/dark-theme.js +340 -0
- package/dist/collection/themes/light-theme.js +346 -0
- package/dist/collection/types/deep-readonly.type.js +1 -0
- package/dist/collection/types/state.types.js +1 -0
- package/dist/components/index.d.ts +47 -0
- package/dist/components/index.js +4143 -0
- package/dist/components/kritzel-awareness-cursors.d.ts +11 -0
- package/dist/components/kritzel-awareness-cursors.js +6 -0
- package/dist/components/kritzel-cursor-trail.d.ts +11 -0
- package/dist/components/kritzel-cursor-trail.js +6 -0
- package/dist/components/kritzel-engine.d.ts +11 -0
- package/dist/components/kritzel-engine.js +52641 -0
- package/dist/components/kritzel-icon.d.ts +11 -0
- package/dist/components/kritzel-icon.js +6 -0
- package/dist/components/kritzel-watermark.d.ts +11 -0
- package/dist/components/kritzel-watermark.js +6 -0
- package/dist/components/p-B2Htv9ou.js +49 -0
- package/dist/components/p-BvRGQvVI.js +3456 -0
- package/dist/components/p-CfSx6HU_.js +1469 -0
- package/dist/components/p-YP8wAcF4.js +122 -0
- package/dist/components/p-fx6msYHJ.js +167 -0
- package/dist/esm/app-globals-DQuL1Twl.js +3 -0
- package/dist/esm/engine.constants-Bl5-pbq-.js +28143 -0
- package/dist/esm/index-BU9Mv7y0.js +1715 -0
- package/dist/esm/index.js +4134 -0
- package/dist/esm/kritzel-awareness-cursors_5.entry.js +27978 -0
- package/dist/esm/loader.js +11 -0
- package/dist/esm/stencil.js +21 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/stencil/index.esm.js +4134 -0
- package/dist/stencil/p-BU9Mv7y0.js +1702 -0
- package/dist/stencil/p-Bl5-pbq-.js +28143 -0
- package/dist/stencil/p-DQuL1Twl.js +3 -0
- package/dist/stencil/p-f0a8b7af.entry.js +27978 -0
- package/dist/stencil/stencil.esm.js +21 -0
- package/dist/types/classes/core/core.class.d.ts +532 -0
- package/dist/types/classes/core/reviver.class.d.ts +32 -0
- package/dist/types/classes/core/store.class.d.ts +198 -0
- package/dist/types/classes/core/viewport.class.d.ts +256 -0
- package/dist/types/classes/core/workspace.class.d.ts +95 -0
- package/dist/types/classes/handlers/base.handler.d.ts +18 -0
- package/dist/types/classes/handlers/context-menu.handler.d.ts +67 -0
- package/dist/types/classes/handlers/hover.handler.d.ts +23 -0
- package/dist/types/classes/handlers/key.handler.d.ts +44 -0
- package/dist/types/classes/handlers/line-handle.handler.d.ts +115 -0
- package/dist/types/classes/handlers/move.handler.d.ts +94 -0
- package/dist/types/classes/handlers/resize.handler.d.ts +95 -0
- package/dist/types/classes/handlers/rotation.handler.d.ts +50 -0
- package/dist/types/classes/handlers/selection.handler.d.ts +153 -0
- package/dist/types/classes/managers/anchor.manager.d.ts +513 -0
- package/dist/types/classes/managers/browser-permission.manager.d.ts +41 -0
- package/dist/types/classes/managers/clipboard.manager.d.ts +71 -0
- package/dist/types/classes/managers/clipboard.types.d.ts +23 -0
- package/dist/types/classes/managers/cursor.manager.d.ts +66 -0
- package/dist/types/classes/managers/license.manager.d.ts +147 -0
- package/dist/types/classes/managers/localization.manager.d.ts +145 -0
- package/dist/types/classes/managers/theme.manager.d.ts +112 -0
- package/dist/types/classes/objects/base-object.class.d.ts +266 -0
- package/dist/types/classes/objects/dynamic-object.class.d.ts +148 -0
- package/dist/types/classes/objects/group.class.d.ts +231 -0
- package/dist/types/classes/objects/image.class.d.ts +246 -0
- package/dist/types/classes/objects/line.class.d.ts +285 -0
- package/dist/types/classes/objects/path.class.d.ts +220 -0
- package/dist/types/classes/objects/selection-box.class.d.ts +19 -0
- package/dist/types/classes/objects/selection-group.class.d.ts +267 -0
- package/dist/types/classes/objects/shape.class.d.ts +322 -0
- package/dist/types/classes/objects/text.class.d.ts +197 -0
- package/dist/types/classes/providers/assets/asset-resolver.class.d.ts +141 -0
- package/dist/types/classes/providers/assets/http-asset-provider.class.d.ts +79 -0
- package/dist/types/classes/providers/assets/indexeddb-asset-provider.class.d.ts +69 -0
- package/dist/types/classes/providers/assets/presigned-asset-provider.class.d.ts +69 -0
- package/dist/types/classes/providers/paste-intent/event-paste-intent.provider.d.ts +8 -0
- package/dist/types/classes/providers/paste-intent/ios-paste-intent.provider.d.ts +6 -0
- package/dist/types/classes/providers/paste-intent/navigator-paste-intent.provider.d.ts +9 -0
- package/dist/types/classes/providers/sync/broadcast-sync-provider.class.d.ts +23 -0
- package/dist/types/classes/providers/sync/hocuspocus-sync-provider.class.d.ts +163 -0
- package/dist/types/classes/providers/sync/in-memory-sync-provider.class.d.ts +39 -0
- package/dist/types/classes/providers/sync/indexeddb-sync-provider.class.d.ts +25 -0
- package/dist/types/classes/providers/sync/websocket-sync-provider.class.d.ts +63 -0
- package/dist/types/classes/registries/dynamic-object-renderer.registry.d.ts +32 -0
- package/dist/types/classes/registries/font-registry.class.d.ts +19 -0
- package/dist/types/classes/registries/icon-registry.class.d.ts +39 -0
- package/dist/types/classes/registries/paste-intent-provider.registry.d.ts +10 -0
- package/dist/types/classes/registries/tool.registry.d.ts +53 -0
- package/dist/types/classes/structures/app-state-map.structure.d.ts +171 -0
- package/dist/types/classes/structures/object-map.structure.d.ts +403 -0
- package/dist/types/classes/structures/quadtree.structure.d.ts +128 -0
- package/dist/types/classes/tools/base-tool.class.d.ts +72 -0
- package/dist/types/classes/tools/brush-tool.class.d.ts +68 -0
- package/dist/types/classes/tools/eraser-tool.class.d.ts +38 -0
- package/dist/types/classes/tools/image-tool.class.d.ts +74 -0
- package/dist/types/classes/tools/line-tool.class.d.ts +63 -0
- package/dist/types/classes/tools/selection-tool.class.d.ts +188 -0
- package/dist/types/classes/tools/shape-tool.class.d.ts +90 -0
- package/dist/types/classes/tools/text-tool.class.d.ts +66 -0
- package/dist/types/components/kritzel-awareness-cursors/kritzel-awareness-cursors.d.ts +29 -0
- package/dist/types/components/kritzel-cursor-trail/kritzel-cursor-trail.d.ts +19 -0
- package/dist/types/components/kritzel-engine/kritzel-engine.d.ts +695 -0
- package/dist/types/components/kritzel-icon/kritzel-icon.d.ts +6 -0
- package/dist/types/components/kritzel-watermark/kritzel-watermark.d.ts +20 -0
- package/dist/types/components.d.ts +981 -0
- package/dist/types/configs/default-asset-storage.config.d.ts +8 -0
- package/dist/types/configs/default-brush-tool.config.d.ts +2 -0
- package/dist/types/configs/default-engine-config.d.ts +2 -0
- package/dist/types/configs/default-line-tool.config.d.ts +2 -0
- package/dist/types/configs/default-shape-tool.config.d.ts +2 -0
- package/dist/types/configs/default-sync.config.d.ts +5 -0
- package/dist/types/configs/default-text-tool.config.d.ts +2 -0
- package/dist/types/constants/color-palette.constants.d.ts +31 -0
- package/dist/types/constants/core.constants.d.ts +0 -0
- package/dist/types/constants/engine.constants.d.ts +4 -0
- package/dist/types/constants/license.constants.d.ts +25 -0
- package/dist/types/constants/schema.constants.d.ts +4 -0
- package/dist/types/constants/storage.constants.d.ts +1 -0
- package/dist/types/constants/stroke-size.constants.d.ts +2 -0
- package/dist/types/constants/text-tool-fonts.constants.d.ts +3 -0
- package/dist/types/constants/version.d.ts +6 -0
- package/dist/types/enums/alignment.enum.d.ts +8 -0
- package/dist/types/enums/event-button.enum.d.ts +5 -0
- package/dist/types/enums/handle-type.enum.d.ts +6 -0
- package/dist/types/enums/shape-type.enum.d.ts +5 -0
- package/dist/types/events/active-workspace-change.event.d.ts +7 -0
- package/dist/types/events/editor-is-ready.event.d.ts +18 -0
- package/dist/types/events/login.event.d.ts +3 -0
- package/dist/types/helpers/alignment.helper.d.ts +21 -0
- package/dist/types/helpers/class.helper.d.ts +3 -0
- package/dist/types/helpers/color.helper.d.ts +34 -0
- package/dist/types/helpers/cursor.helper.d.ts +22 -0
- package/dist/types/helpers/devices.helper.d.ts +8 -0
- package/dist/types/helpers/event.helper.d.ts +6 -0
- package/dist/types/helpers/geometry.helper.d.ts +38 -0
- package/dist/types/helpers/html.helper.d.ts +8 -0
- package/dist/types/helpers/image-file.helper.d.ts +3 -0
- package/dist/types/helpers/keyboard.helper.d.ts +6 -0
- package/dist/types/helpers/localization.helper.d.ts +18 -0
- package/dist/types/helpers/math.helper.d.ts +4 -0
- package/dist/types/helpers/migration.helper.d.ts +30 -0
- package/dist/types/helpers/object.helper.d.ts +9 -0
- package/dist/types/helpers/svg-export.helper.d.ts +231 -0
- package/dist/types/helpers/theme.helper.d.ts +42 -0
- package/dist/types/helpers/tool-config.helper.d.ts +4 -0
- package/dist/types/helpers/wheel.helper.d.ts +9 -0
- package/dist/types/index.d.ts +109 -0
- package/dist/types/interfaces/anchor.interface.d.ts +147 -0
- package/dist/types/interfaces/arrow-head.interface.d.ts +27 -0
- package/dist/types/interfaces/asset-provider.interface.d.ts +88 -0
- package/dist/types/interfaces/asset-storage-config.interface.d.ts +40 -0
- package/dist/types/interfaces/asset.interface.d.ts +43 -0
- package/dist/types/interfaces/bounding-box.interface.d.ts +8 -0
- package/dist/types/interfaces/clonable.interface.d.ts +3 -0
- package/dist/types/interfaces/context-menu-item.interface.d.ts +25 -0
- package/dist/types/interfaces/context-menu-state.interface.d.ts +16 -0
- package/dist/types/interfaces/debug-info.interface.d.ts +7 -0
- package/dist/types/interfaces/dialog.interface.d.ts +4 -0
- package/dist/types/interfaces/document-metadata.interface.d.ts +6 -0
- package/dist/types/interfaces/dynamic-object-renderer.interface.d.ts +40 -0
- package/dist/types/interfaces/engine-state.interface.d.ts +82 -0
- package/dist/types/interfaces/font.interface.d.ts +15 -0
- package/dist/types/interfaces/localization.interface.d.ts +143 -0
- package/dist/types/interfaces/login-config.interface.d.ts +24 -0
- package/dist/types/interfaces/master-detail.interface.d.ts +14 -0
- package/dist/types/interfaces/menu-item.interface.d.ts +27 -0
- package/dist/types/interfaces/migration.interface.d.ts +16 -0
- package/dist/types/interfaces/notification.interface.d.ts +10 -0
- package/dist/types/interfaces/object-change-event.interface.d.ts +31 -0
- package/dist/types/interfaces/object-export.interface.d.ts +20 -0
- package/dist/types/interfaces/object.interface.d.ts +53 -0
- package/dist/types/interfaces/paste-intent-provider.interface.d.ts +10 -0
- package/dist/types/interfaces/point.interface.d.ts +4 -0
- package/dist/types/interfaces/polygon.interface.d.ts +7 -0
- package/dist/types/interfaces/remote-cursor.interface.d.ts +18 -0
- package/dist/types/interfaces/selection-state.interface.d.ts +7 -0
- package/dist/types/interfaces/serializable.interface.d.ts +5 -0
- package/dist/types/interfaces/settings.interface.d.ts +25 -0
- package/dist/types/interfaces/share.interface.d.ts +9 -0
- package/dist/types/interfaces/shortcut.interface.d.ts +10 -0
- package/dist/types/interfaces/sync-config.interface.d.ts +41 -0
- package/dist/types/interfaces/sync-provider.interface.d.ts +66 -0
- package/dist/types/interfaces/theme.interface.d.ts +553 -0
- package/dist/types/interfaces/tool-config.interface.d.ts +24 -0
- package/dist/types/interfaces/tool-type.interface.d.ts +1 -0
- package/dist/types/interfaces/tool.interface.d.ts +8 -0
- package/dist/types/interfaces/toolbar-item.interface.d.ts +66 -0
- package/dist/types/interfaces/undo-state.interface.d.ts +6 -0
- package/dist/types/interfaces/user.interface.d.ts +22 -0
- package/dist/types/interfaces/viewport-state.interface.d.ts +7 -0
- 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/dist/types/migrations/app-state.migrations.d.ts +11 -0
- package/dist/types/migrations/workspace.migrations.d.ts +11 -0
- package/dist/types/stencil-public-runtime.d.ts +1873 -0
- package/dist/types/themes/dark-theme.d.ts +5 -0
- package/dist/types/themes/light-theme.d.ts +5 -0
- package/dist/types/types/deep-readonly.type.d.ts +7 -0
- package/dist/types/types/state.types.d.ts +3 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +101 -0
- package/readme.md +11 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in German locale.
|
|
3
|
+
*/
|
|
4
|
+
export const DE_LOCALE = {
|
|
5
|
+
code: 'de',
|
|
6
|
+
label: 'Deutsch',
|
|
7
|
+
terms: {
|
|
8
|
+
// Context menu
|
|
9
|
+
'menu.copy': 'Kopieren',
|
|
10
|
+
'menu.cut': 'Ausschneiden',
|
|
11
|
+
'menu.paste': 'Einfügen',
|
|
12
|
+
'menu.selectAll': 'Alles auswählen',
|
|
13
|
+
'menu.order': 'Anordnen',
|
|
14
|
+
'menu.bringToFront': 'In den Vordergrund',
|
|
15
|
+
'menu.sendToBack': 'In den Hintergrund',
|
|
16
|
+
'menu.moveUp': 'Nach vorne',
|
|
17
|
+
'menu.moveDown': 'Nach hinten',
|
|
18
|
+
'menu.align': 'Ausrichten',
|
|
19
|
+
'menu.alignLeft': 'Linksbündig ausrichten',
|
|
20
|
+
'menu.alignCenterHorizontal': 'Horizontal zentrieren',
|
|
21
|
+
'menu.alignRight': 'Rechtsbündig ausrichten',
|
|
22
|
+
'menu.alignTop': 'Oben ausrichten',
|
|
23
|
+
'menu.alignCenterVertical': 'Vertikal zentrieren',
|
|
24
|
+
'menu.alignBottom': 'Unten ausrichten',
|
|
25
|
+
'menu.group': 'Gruppieren',
|
|
26
|
+
'menu.ungroup': 'Gruppierung aufheben',
|
|
27
|
+
'menu.export': 'Exportieren',
|
|
28
|
+
'menu.exportAsSvg': 'Als SVG exportieren',
|
|
29
|
+
'menu.exportAsPng': 'Als PNG exportieren',
|
|
30
|
+
'menu.delete': 'Löschen',
|
|
31
|
+
// More menu
|
|
32
|
+
'menu.share': 'Teilen',
|
|
33
|
+
'menu.import': 'Importieren',
|
|
34
|
+
'menu.settings': 'Einstellungen',
|
|
35
|
+
'menu.logout': 'Abmelden',
|
|
36
|
+
// Settings dialog
|
|
37
|
+
'settings.dialogTitle': 'Einstellungen',
|
|
38
|
+
'settings.categories.general': 'Allgemein',
|
|
39
|
+
'settings.categories.viewport': 'Ansichtsfenster',
|
|
40
|
+
'settings.categories.shortcuts': 'Tastenkürzel',
|
|
41
|
+
'settings.categories.developer': 'Entwickleroptionen',
|
|
42
|
+
'settings.categories.about': 'Über',
|
|
43
|
+
'settings.general.title': 'Allgemeine Einstellungen',
|
|
44
|
+
'settings.general.theme.label': 'Design',
|
|
45
|
+
'settings.general.theme.description': 'Wählen Sie ein registriertes Farbdesign für die Editor-Oberfläche.',
|
|
46
|
+
'settings.general.language.label': 'Sprache',
|
|
47
|
+
'settings.general.language.description': 'Wählen Sie die Anzeigesprache für die Editor-Oberfläche.',
|
|
48
|
+
'settings.general.lockDrawingScale.label': 'Zeichenskalierung sperren',
|
|
49
|
+
'settings.general.lockDrawingScale.description': 'Wenn aktiviert, behalten gezeichnete Objekte unabhängig von der aktuellen Zoomstufe eine feste visuelle Größe.',
|
|
50
|
+
'settings.viewport.title': 'Ansichtsfenster-Einstellungen',
|
|
51
|
+
'settings.viewport.minZoom.label': 'Minimale Zoomstufe',
|
|
52
|
+
'settings.viewport.minZoom.description': 'Legt die minimale Zoomstufe fest. Niedrigere Werte ermöglichen weiteres Herauszoomen, um mehr von der Zeichenfläche zu sehen.',
|
|
53
|
+
'settings.viewport.maxZoom.label': 'Maximale Zoomstufe',
|
|
54
|
+
'settings.viewport.maxZoom.description': 'Legt die maximale Zoomstufe fest. Höhere Werte ermöglichen näheres Heranzoomen für Detailarbeit.',
|
|
55
|
+
'settings.viewport.boundaryLeft.label': 'Ansichtsfenster-Grenze links',
|
|
56
|
+
'settings.viewport.boundaryLeft.description': 'Linke Grenze in Weltkoordinaten. Legen Sie fest, wie weit das Ansichtsfenster nach links verschoben werden kann.',
|
|
57
|
+
'settings.viewport.boundaryRight.label': 'Ansichtsfenster-Grenze rechts',
|
|
58
|
+
'settings.viewport.boundaryRight.description': 'Rechte Grenze in Weltkoordinaten. Legen Sie fest, wie weit das Ansichtsfenster nach rechts verschoben werden kann.',
|
|
59
|
+
'settings.viewport.boundaryTop.label': 'Ansichtsfenster-Grenze oben',
|
|
60
|
+
'settings.viewport.boundaryTop.description': 'Obere Grenze in Weltkoordinaten. Legen Sie fest, wie weit das Ansichtsfenster nach oben verschoben werden kann.',
|
|
61
|
+
'settings.viewport.boundaryBottom.label': 'Ansichtsfenster-Grenze unten',
|
|
62
|
+
'settings.viewport.boundaryBottom.description': 'Untere Grenze in Weltkoordinaten. Legen Sie fest, wie weit das Ansichtsfenster nach unten verschoben werden kann.',
|
|
63
|
+
'settings.viewport.boundaryPlaceholder': 'Unendlich',
|
|
64
|
+
'settings.shortcuts.title': 'Tastenkürzel',
|
|
65
|
+
'settings.developer.title': 'Entwickleroptionen',
|
|
66
|
+
'settings.developer.showViewportInfo.label': 'Ansichtsfenster-Infos anzeigen',
|
|
67
|
+
'settings.developer.showViewportInfo.description': 'Zeigt Debug-Informationen zum Ansichtsfenster an, z. B. Position, Zoomstufe und Grenzen.',
|
|
68
|
+
'settings.developer.showObjectInfo.label': 'Objekt-Infos anzeigen',
|
|
69
|
+
'settings.developer.showObjectInfo.description': 'Zeigt Debug-Informationen zu Objekten auf der Zeichenfläche an.',
|
|
70
|
+
'settings.developer.showSyncProviderInfo.label': 'Sync-Provider-Infos anzeigen',
|
|
71
|
+
'settings.developer.showSyncProviderInfo.description': 'Zeigt Debug-Informationen zum Verbindungsstatus des Sync-Providers an.',
|
|
72
|
+
'settings.developer.showMigrationInfo.label': 'Migrations-Infos anzeigen',
|
|
73
|
+
'settings.developer.showMigrationInfo.description': 'Zeigt Debug-Informationen zu Datenmigrationen an.',
|
|
74
|
+
'settings.about.title': 'Über',
|
|
75
|
+
'settings.about.description': 'Kritzel – Eine Zeichenanwendung',
|
|
76
|
+
// Export dialog
|
|
77
|
+
'export.dialogTitle': 'Exportieren',
|
|
78
|
+
'export.tabs.viewport': 'Ansichtsfenster exportieren',
|
|
79
|
+
'export.tabs.workspace': 'Arbeitsbereich exportieren',
|
|
80
|
+
'export.format.label': 'Format',
|
|
81
|
+
'export.filename.label': 'Dateiname',
|
|
82
|
+
'export.filename.placeholder': 'Dateiname eingeben',
|
|
83
|
+
'export.exportButton': 'Exportieren',
|
|
84
|
+
// Workspace manager
|
|
85
|
+
'workspace.sharedTooltip': 'Geteilter Arbeitsbereich',
|
|
86
|
+
'workspace.rename': 'Umbenennen',
|
|
87
|
+
'workspace.delete': 'Löschen',
|
|
88
|
+
// Zoom panel
|
|
89
|
+
'zoom.zoomIn': 'Vergrößern',
|
|
90
|
+
'zoom.zoomOut': 'Verkleinern',
|
|
91
|
+
// Utility panel
|
|
92
|
+
'utility.undo': 'Rückgängig',
|
|
93
|
+
'utility.redo': 'Wiederholen',
|
|
94
|
+
'utility.delete': 'Ausgewählte Elemente löschen',
|
|
95
|
+
// Share dialog
|
|
96
|
+
'share.dialogTitle': 'Arbeitsbereich teilen',
|
|
97
|
+
'share.linkSharing.label': 'Link-Freigabe',
|
|
98
|
+
'share.linkSharing.enabledDescription': 'Jeder mit dem Link kann auf diesen Arbeitsbereich zugreifen.',
|
|
99
|
+
'share.linkSharing.disabledDescription': 'Die Link-Freigabe ist deaktiviert. Nur Sie können auf diesen Arbeitsbereich zugreifen.',
|
|
100
|
+
'share.linkSharing.toggleLabel': 'Link-Freigabe aktivieren',
|
|
101
|
+
'share.copyLink.title': 'Link kopieren',
|
|
102
|
+
'share.copyLink.copied': 'Kopiert!',
|
|
103
|
+
// Login dialog
|
|
104
|
+
'login.dialogTitle': 'Anmelden',
|
|
105
|
+
// Current user dialog
|
|
106
|
+
'currentUser.dialogTitle': 'Konto',
|
|
107
|
+
// Back to content
|
|
108
|
+
'backToContent.label': 'Zurück zum Inhalt',
|
|
109
|
+
// Tool config
|
|
110
|
+
'toolConfig.collapse': 'Einklappen',
|
|
111
|
+
'toolConfig.expand': 'Ausklappen',
|
|
112
|
+
// More menu button
|
|
113
|
+
'moreMenu.ariaLabel': 'Weitere Optionen',
|
|
114
|
+
// Editor
|
|
115
|
+
'editor.loading': 'Wird geladen...',
|
|
116
|
+
// Watermark
|
|
117
|
+
'watermark.poweredBy': 'Bereitgestellt von Kritzel',
|
|
118
|
+
},
|
|
119
|
+
};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in English locale (default). Provides a complete set of term values
|
|
3
|
+
* that act as the ultimate fallback when other locales omit a key.
|
|
4
|
+
*/
|
|
5
|
+
export const EN_LOCALE = {
|
|
6
|
+
code: 'en',
|
|
7
|
+
label: 'English',
|
|
8
|
+
terms: {
|
|
9
|
+
// Context menu
|
|
10
|
+
'menu.copy': 'Copy',
|
|
11
|
+
'menu.cut': 'Cut',
|
|
12
|
+
'menu.paste': 'Paste',
|
|
13
|
+
'menu.selectAll': 'Select All',
|
|
14
|
+
'menu.order': 'Order',
|
|
15
|
+
'menu.bringToFront': 'Bring to Front',
|
|
16
|
+
'menu.sendToBack': 'Send to Back',
|
|
17
|
+
'menu.moveUp': 'Move Up',
|
|
18
|
+
'menu.moveDown': 'Move Down',
|
|
19
|
+
'menu.align': 'Align',
|
|
20
|
+
'menu.alignLeft': 'Align Left',
|
|
21
|
+
'menu.alignCenterHorizontal': 'Align Center Horizontally',
|
|
22
|
+
'menu.alignRight': 'Align Right',
|
|
23
|
+
'menu.alignTop': 'Align Top',
|
|
24
|
+
'menu.alignCenterVertical': 'Align Center Vertically',
|
|
25
|
+
'menu.alignBottom': 'Align Bottom',
|
|
26
|
+
'menu.group': 'Group',
|
|
27
|
+
'menu.ungroup': 'Ungroup',
|
|
28
|
+
'menu.export': 'Export',
|
|
29
|
+
'menu.exportAsSvg': 'Export as SVG',
|
|
30
|
+
'menu.exportAsPng': 'Export as PNG',
|
|
31
|
+
'menu.delete': 'Delete',
|
|
32
|
+
// More menu
|
|
33
|
+
'menu.share': 'Share',
|
|
34
|
+
'menu.import': 'Import',
|
|
35
|
+
'menu.settings': 'Settings',
|
|
36
|
+
'menu.logout': 'Logout',
|
|
37
|
+
// Settings dialog
|
|
38
|
+
'settings.dialogTitle': 'Settings',
|
|
39
|
+
'settings.categories.general': 'General',
|
|
40
|
+
'settings.categories.viewport': 'Viewport',
|
|
41
|
+
'settings.categories.shortcuts': 'Keyboard Shortcuts',
|
|
42
|
+
'settings.categories.developer': 'Developer Options',
|
|
43
|
+
'settings.categories.about': 'About',
|
|
44
|
+
'settings.general.title': 'General Settings',
|
|
45
|
+
'settings.general.theme.label': 'Theme',
|
|
46
|
+
'settings.general.theme.description': 'Select a registered color theme for the editor interface.',
|
|
47
|
+
'settings.general.language.label': 'Language',
|
|
48
|
+
'settings.general.language.description': 'Select the display language for the editor interface.',
|
|
49
|
+
'settings.general.lockDrawingScale.label': 'Lock Drawing Scale',
|
|
50
|
+
'settings.general.lockDrawingScale.description': 'When enabled, drawn objects maintain a fixed visual size regardless of the current zoom level.',
|
|
51
|
+
'settings.viewport.title': 'Viewport Settings',
|
|
52
|
+
'settings.viewport.minZoom.label': 'Minimum Zoom Level',
|
|
53
|
+
'settings.viewport.minZoom.description': 'Sets the minimum zoom level. Lower values allow zooming out further to see more of the canvas.',
|
|
54
|
+
'settings.viewport.maxZoom.label': 'Maximum Zoom Level',
|
|
55
|
+
'settings.viewport.maxZoom.description': 'Sets the maximum zoom level. Higher values allow zooming in closer for detailed work.',
|
|
56
|
+
'settings.viewport.boundaryLeft.label': 'Viewport Boundary Left',
|
|
57
|
+
'settings.viewport.boundaryLeft.description': 'Left boundary in world coordinates. Set to limit how far left the viewport can pan.',
|
|
58
|
+
'settings.viewport.boundaryRight.label': 'Viewport Boundary Right',
|
|
59
|
+
'settings.viewport.boundaryRight.description': 'Right boundary in world coordinates. Set to limit how far right the viewport can pan.',
|
|
60
|
+
'settings.viewport.boundaryTop.label': 'Viewport Boundary Top',
|
|
61
|
+
'settings.viewport.boundaryTop.description': 'Top boundary in world coordinates. Set to limit how far up the viewport can pan.',
|
|
62
|
+
'settings.viewport.boundaryBottom.label': 'Viewport Boundary Bottom',
|
|
63
|
+
'settings.viewport.boundaryBottom.description': 'Bottom boundary in world coordinates. Set to limit how far down the viewport can pan.',
|
|
64
|
+
'settings.viewport.boundaryPlaceholder': 'Infinite',
|
|
65
|
+
'settings.shortcuts.title': 'Keyboard Shortcuts',
|
|
66
|
+
'settings.developer.title': 'Developer Options',
|
|
67
|
+
'settings.developer.showViewportInfo.label': 'Show Viewport Info',
|
|
68
|
+
'settings.developer.showViewportInfo.description': 'Display viewport debug information such as position, zoom level, and boundaries.',
|
|
69
|
+
'settings.developer.showObjectInfo.label': 'Show Object Info',
|
|
70
|
+
'settings.developer.showObjectInfo.description': 'Display debug information about objects on the canvas.',
|
|
71
|
+
'settings.developer.showSyncProviderInfo.label': 'Show Sync Provider Info',
|
|
72
|
+
'settings.developer.showSyncProviderInfo.description': 'Display debug information about the sync provider connection status.',
|
|
73
|
+
'settings.developer.showMigrationInfo.label': 'Show Migration Info',
|
|
74
|
+
'settings.developer.showMigrationInfo.description': 'Display debug information about data migrations.',
|
|
75
|
+
'settings.about.title': 'About',
|
|
76
|
+
'settings.about.description': 'Kritzel - A drawing application',
|
|
77
|
+
// Export dialog
|
|
78
|
+
'export.dialogTitle': 'Export',
|
|
79
|
+
'export.tabs.viewport': 'Export Viewport',
|
|
80
|
+
'export.tabs.workspace': 'Export Workspace',
|
|
81
|
+
'export.format.label': 'Format',
|
|
82
|
+
'export.filename.label': 'Filename',
|
|
83
|
+
'export.filename.placeholder': 'Enter filename',
|
|
84
|
+
'export.exportButton': 'Export',
|
|
85
|
+
// Workspace manager
|
|
86
|
+
'workspace.sharedTooltip': 'Shared workspace',
|
|
87
|
+
'workspace.rename': 'Rename',
|
|
88
|
+
'workspace.delete': 'Delete',
|
|
89
|
+
// Zoom panel
|
|
90
|
+
'zoom.zoomIn': 'Zoom in',
|
|
91
|
+
'zoom.zoomOut': 'Zoom out',
|
|
92
|
+
// Utility panel
|
|
93
|
+
'utility.undo': 'Undo',
|
|
94
|
+
'utility.redo': 'Redo',
|
|
95
|
+
'utility.delete': 'Delete selected items',
|
|
96
|
+
// Share dialog
|
|
97
|
+
'share.dialogTitle': 'Share Workspace',
|
|
98
|
+
'share.linkSharing.label': 'Link sharing',
|
|
99
|
+
'share.linkSharing.enabledDescription': 'Anyone with the link can access this workspace.',
|
|
100
|
+
'share.linkSharing.disabledDescription': 'Link sharing is disabled. Only you can access this workspace.',
|
|
101
|
+
'share.linkSharing.toggleLabel': 'Enable link sharing',
|
|
102
|
+
'share.copyLink.title': 'Copy link',
|
|
103
|
+
'share.copyLink.copied': 'Copied!',
|
|
104
|
+
// Login dialog
|
|
105
|
+
'login.dialogTitle': 'Sign in',
|
|
106
|
+
// Current user dialog
|
|
107
|
+
'currentUser.dialogTitle': 'Account',
|
|
108
|
+
// Back to content
|
|
109
|
+
'backToContent.label': 'Back to content',
|
|
110
|
+
// Tool config
|
|
111
|
+
'toolConfig.collapse': 'Collapse',
|
|
112
|
+
'toolConfig.expand': 'Expand',
|
|
113
|
+
// More menu button
|
|
114
|
+
'moreMenu.ariaLabel': 'More options',
|
|
115
|
+
// Editor
|
|
116
|
+
'editor.loading': 'Loading...',
|
|
117
|
+
// Watermark
|
|
118
|
+
'watermark.poweredBy': 'Powered by Kritzel',
|
|
119
|
+
},
|
|
120
|
+
};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in French locale.
|
|
3
|
+
*/
|
|
4
|
+
export const FR_LOCALE = {
|
|
5
|
+
code: 'fr',
|
|
6
|
+
label: 'Français',
|
|
7
|
+
terms: {
|
|
8
|
+
// Context menu
|
|
9
|
+
'menu.copy': 'Copier',
|
|
10
|
+
'menu.cut': 'Couper',
|
|
11
|
+
'menu.paste': 'Coller',
|
|
12
|
+
'menu.selectAll': 'Tout sélectionner',
|
|
13
|
+
'menu.order': 'Ordre',
|
|
14
|
+
'menu.bringToFront': 'Mettre au premier plan',
|
|
15
|
+
'menu.sendToBack': "Mettre à l'arrière-plan",
|
|
16
|
+
'menu.moveUp': 'Avancer',
|
|
17
|
+
'menu.moveDown': 'Reculer',
|
|
18
|
+
'menu.align': 'Aligner',
|
|
19
|
+
'menu.alignLeft': 'Aligner à gauche',
|
|
20
|
+
'menu.alignCenterHorizontal': 'Centrer horizontalement',
|
|
21
|
+
'menu.alignRight': 'Aligner à droite',
|
|
22
|
+
'menu.alignTop': 'Aligner en haut',
|
|
23
|
+
'menu.alignCenterVertical': 'Centrer verticalement',
|
|
24
|
+
'menu.alignBottom': 'Aligner en bas',
|
|
25
|
+
'menu.group': 'Grouper',
|
|
26
|
+
'menu.ungroup': 'Dégrouper',
|
|
27
|
+
'menu.export': 'Exporter',
|
|
28
|
+
'menu.exportAsSvg': 'Exporter en SVG',
|
|
29
|
+
'menu.exportAsPng': 'Exporter en PNG',
|
|
30
|
+
'menu.delete': 'Supprimer',
|
|
31
|
+
// More menu
|
|
32
|
+
'menu.share': 'Partager',
|
|
33
|
+
'menu.import': 'Importer',
|
|
34
|
+
'menu.settings': 'Paramètres',
|
|
35
|
+
'menu.logout': 'Déconnexion',
|
|
36
|
+
// Settings dialog
|
|
37
|
+
'settings.dialogTitle': 'Paramètres',
|
|
38
|
+
'settings.categories.general': 'Général',
|
|
39
|
+
'settings.categories.viewport': "Fenêtre d'affichage",
|
|
40
|
+
'settings.categories.shortcuts': 'Raccourcis clavier',
|
|
41
|
+
'settings.categories.developer': 'Options développeur',
|
|
42
|
+
'settings.categories.about': 'À propos',
|
|
43
|
+
'settings.general.title': 'Paramètres généraux',
|
|
44
|
+
'settings.general.theme.label': 'Thème',
|
|
45
|
+
'settings.general.theme.description': "Sélectionnez un thème de couleurs enregistré pour l'interface de l'éditeur.",
|
|
46
|
+
'settings.general.language.label': 'Langue',
|
|
47
|
+
'settings.general.language.description': "Sélectionnez la langue d'affichage de l'interface de l'éditeur.",
|
|
48
|
+
'settings.general.lockDrawingScale.label': "Verrouiller l'échelle de dessin",
|
|
49
|
+
'settings.general.lockDrawingScale.description': "Lorsque cette option est activée, les objets dessinés conservent une taille visuelle fixe quel que soit le niveau de zoom actuel.",
|
|
50
|
+
'settings.viewport.title': "Paramètres de la fenêtre d'affichage",
|
|
51
|
+
'settings.viewport.minZoom.label': 'Niveau de zoom minimal',
|
|
52
|
+
'settings.viewport.minZoom.description': 'Définit le niveau de zoom minimal. Des valeurs plus faibles permettent de dézoomer davantage pour voir une plus grande partie du canevas.',
|
|
53
|
+
'settings.viewport.maxZoom.label': 'Niveau de zoom maximal',
|
|
54
|
+
'settings.viewport.maxZoom.description': 'Définit le niveau de zoom maximal. Des valeurs plus élevées permettent de zoomer davantage pour un travail détaillé.',
|
|
55
|
+
'settings.viewport.boundaryLeft.label': "Limite gauche de la fenêtre d'affichage",
|
|
56
|
+
'settings.viewport.boundaryLeft.description': "Limite gauche en coordonnées du monde. Définissez jusqu'où la fenêtre d'affichage peut se déplacer vers la gauche.",
|
|
57
|
+
'settings.viewport.boundaryRight.label': "Limite droite de la fenêtre d'affichage",
|
|
58
|
+
'settings.viewport.boundaryRight.description': "Limite droite en coordonnées du monde. Définissez jusqu'où la fenêtre d'affichage peut se déplacer vers la droite.",
|
|
59
|
+
'settings.viewport.boundaryTop.label': "Limite supérieure de la fenêtre d'affichage",
|
|
60
|
+
'settings.viewport.boundaryTop.description': "Limite supérieure en coordonnées du monde. Définissez jusqu'où la fenêtre d'affichage peut se déplacer vers le haut.",
|
|
61
|
+
'settings.viewport.boundaryBottom.label': "Limite inférieure de la fenêtre d'affichage",
|
|
62
|
+
'settings.viewport.boundaryBottom.description': "Limite inférieure en coordonnées du monde. Définissez jusqu'où la fenêtre d'affichage peut se déplacer vers le bas.",
|
|
63
|
+
'settings.viewport.boundaryPlaceholder': 'Infini',
|
|
64
|
+
'settings.shortcuts.title': 'Raccourcis clavier',
|
|
65
|
+
'settings.developer.title': 'Options développeur',
|
|
66
|
+
'settings.developer.showViewportInfo.label': "Afficher les infos de la fenêtre d'affichage",
|
|
67
|
+
'settings.developer.showViewportInfo.description': "Affiche les informations de débogage de la fenêtre d'affichage telles que la position, le niveau de zoom et les limites.",
|
|
68
|
+
'settings.developer.showObjectInfo.label': 'Afficher les infos des objets',
|
|
69
|
+
'settings.developer.showObjectInfo.description': 'Affiche les informations de débogage des objets sur le canevas.',
|
|
70
|
+
'settings.developer.showSyncProviderInfo.label': 'Afficher les infos du fournisseur de synchronisation',
|
|
71
|
+
'settings.developer.showSyncProviderInfo.description': "Affiche les informations de débogage sur l'état de connexion du fournisseur de synchronisation.",
|
|
72
|
+
'settings.developer.showMigrationInfo.label': 'Afficher les infos de migration',
|
|
73
|
+
'settings.developer.showMigrationInfo.description': 'Affiche les informations de débogage sur les migrations de données.',
|
|
74
|
+
'settings.about.title': 'À propos',
|
|
75
|
+
'settings.about.description': 'Kritzel - Une application de dessin',
|
|
76
|
+
// Export dialog
|
|
77
|
+
'export.dialogTitle': 'Exporter',
|
|
78
|
+
'export.tabs.viewport': "Exporter la fenêtre d'affichage",
|
|
79
|
+
'export.tabs.workspace': "Exporter l'espace de travail",
|
|
80
|
+
'export.format.label': 'Format',
|
|
81
|
+
'export.filename.label': 'Nom du fichier',
|
|
82
|
+
'export.filename.placeholder': 'Saisir le nom du fichier',
|
|
83
|
+
'export.exportButton': 'Exporter',
|
|
84
|
+
// Workspace manager
|
|
85
|
+
'workspace.sharedTooltip': 'Espace de travail partagé',
|
|
86
|
+
'workspace.rename': 'Renommer',
|
|
87
|
+
'workspace.delete': 'Supprimer',
|
|
88
|
+
// Zoom panel
|
|
89
|
+
'zoom.zoomIn': 'Zoom avant',
|
|
90
|
+
'zoom.zoomOut': 'Zoom arrière',
|
|
91
|
+
// Utility panel
|
|
92
|
+
'utility.undo': 'Annuler',
|
|
93
|
+
'utility.redo': 'Rétablir',
|
|
94
|
+
'utility.delete': 'Supprimer les éléments sélectionnés',
|
|
95
|
+
// Share dialog
|
|
96
|
+
'share.dialogTitle': "Partager l'espace de travail",
|
|
97
|
+
'share.linkSharing.label': 'Partage par lien',
|
|
98
|
+
'share.linkSharing.enabledDescription': 'Toute personne disposant du lien peut accéder à cet espace de travail.',
|
|
99
|
+
'share.linkSharing.disabledDescription': 'Le partage par lien est désactivé. Vous seul pouvez accéder à cet espace de travail.',
|
|
100
|
+
'share.linkSharing.toggleLabel': 'Activer le partage par lien',
|
|
101
|
+
'share.copyLink.title': 'Copier le lien',
|
|
102
|
+
'share.copyLink.copied': 'Copié !',
|
|
103
|
+
// Login dialog
|
|
104
|
+
'login.dialogTitle': 'Se connecter',
|
|
105
|
+
// Current user dialog
|
|
106
|
+
'currentUser.dialogTitle': 'Compte',
|
|
107
|
+
// Back to content
|
|
108
|
+
'backToContent.label': 'Retour au contenu',
|
|
109
|
+
// Tool config
|
|
110
|
+
'toolConfig.collapse': 'Réduire',
|
|
111
|
+
'toolConfig.expand': 'Développer',
|
|
112
|
+
// More menu button
|
|
113
|
+
'moreMenu.ariaLabel': "Plus d'options",
|
|
114
|
+
// Editor
|
|
115
|
+
'editor.loading': 'Chargement...',
|
|
116
|
+
// Watermark
|
|
117
|
+
'watermark.poweredBy': 'Propulsé par Kritzel',
|
|
118
|
+
},
|
|
119
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ordered list of schema migrations for the app-state Y.Doc.
|
|
3
|
+
* Each migration transforms the document from one schema version to the next.
|
|
4
|
+
*
|
|
5
|
+
* To add a new migration:
|
|
6
|
+
* 1. Bump CURRENT_APP_STATE_SCHEMA_VERSION in constants/schema.constants.ts
|
|
7
|
+
* 2. Append a new entry with fromVersion = old version, toVersion = new version
|
|
8
|
+
* 3. Implement the migrate() function — it must be idempotent
|
|
9
|
+
*/
|
|
10
|
+
export const APP_STATE_MIGRATIONS = [
|
|
11
|
+
{
|
|
12
|
+
fromVersion: 1,
|
|
13
|
+
toVersion: 2,
|
|
14
|
+
/**
|
|
15
|
+
* Converts workspace viewport from screen-space { translateX, translateY }
|
|
16
|
+
* to device-independent world-space { centerWorldX, centerWorldY }.
|
|
17
|
+
*
|
|
18
|
+
* Since viewport dimensions are not available during migration, uses the
|
|
19
|
+
* approximation: centerWorld = -translate / scale (world coordinate at screen origin).
|
|
20
|
+
*/
|
|
21
|
+
migrate(_ydoc, maps) {
|
|
22
|
+
const workspacesMap = maps['workspaces'];
|
|
23
|
+
if (!workspacesMap)
|
|
24
|
+
return;
|
|
25
|
+
workspacesMap.forEach((serialized, key) => {
|
|
26
|
+
const viewport = serialized?.viewport;
|
|
27
|
+
if (!viewport)
|
|
28
|
+
return;
|
|
29
|
+
// Idempotency: skip if already migrated
|
|
30
|
+
if ('centerWorldX' in viewport)
|
|
31
|
+
return;
|
|
32
|
+
const scale = viewport.scale ?? 1;
|
|
33
|
+
const translateX = viewport.translateX ?? 0;
|
|
34
|
+
const translateY = viewport.translateY ?? 0;
|
|
35
|
+
const migrated = {
|
|
36
|
+
...serialized,
|
|
37
|
+
viewport: {
|
|
38
|
+
centerWorldX: -translateX / scale || 0,
|
|
39
|
+
centerWorldY: -translateY / scale || 0,
|
|
40
|
+
scale,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
workspacesMap.set(key, migrated);
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const LEGACY_CUSTOM_ELEMENT_CLASS = 'KritzelCustomElement';
|
|
2
|
+
const DYNAMIC_OBJECT_CLASS = 'KritzelDynamicObject';
|
|
3
|
+
/**
|
|
4
|
+
* Rewrites the `__class__` discriminator in-place, recursing into nested children of groups.
|
|
5
|
+
* @returns True if anything was renamed.
|
|
6
|
+
*/
|
|
7
|
+
function renameCustomElementClass(value) {
|
|
8
|
+
if (Array.isArray(value)) {
|
|
9
|
+
return value.reduce((changed, entry) => renameCustomElementClass(entry) || changed, false);
|
|
10
|
+
}
|
|
11
|
+
if (!value || typeof value !== 'object') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const record = value;
|
|
15
|
+
let changed = false;
|
|
16
|
+
if (record.__class__ === LEGACY_CUSTOM_ELEMENT_CLASS) {
|
|
17
|
+
record.__class__ = DYNAMIC_OBJECT_CLASS;
|
|
18
|
+
changed = true;
|
|
19
|
+
}
|
|
20
|
+
for (const key of Object.keys(record)) {
|
|
21
|
+
if (key === '__class__')
|
|
22
|
+
continue;
|
|
23
|
+
changed = renameCustomElementClass(record[key]) || changed;
|
|
24
|
+
}
|
|
25
|
+
return changed;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Ordered list of schema migrations for workspace Y.Docs.
|
|
29
|
+
* Each migration transforms the document from one schema version to the next.
|
|
30
|
+
*
|
|
31
|
+
* To add a new migration:
|
|
32
|
+
* 1. Bump CURRENT_WORKSPACE_SCHEMA_VERSION in constants/schema.constants.ts
|
|
33
|
+
* 2. Append a new entry with fromVersion = old version, toVersion = new version
|
|
34
|
+
* 3. Implement the migrate() function — it must be idempotent
|
|
35
|
+
*/
|
|
36
|
+
export const WORKSPACE_MIGRATIONS = [
|
|
37
|
+
{
|
|
38
|
+
fromVersion: 1,
|
|
39
|
+
toVersion: 2,
|
|
40
|
+
migrate(_ydoc, _maps) {
|
|
41
|
+
// No-op: adds optional userId property to objects.
|
|
42
|
+
// Existing objects without userId are valid (field is optional).
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
fromVersion: 2,
|
|
47
|
+
toVersion: 3,
|
|
48
|
+
/**
|
|
49
|
+
* Renames the `KritzelCustomElement` type discriminator to `KritzelDynamicObject`,
|
|
50
|
+
* including objects nested inside serialized groups.
|
|
51
|
+
*/
|
|
52
|
+
migrate(_ydoc, maps) {
|
|
53
|
+
const objectsMap = maps['objects'];
|
|
54
|
+
if (!objectsMap)
|
|
55
|
+
return;
|
|
56
|
+
objectsMap.forEach((serialized, key) => {
|
|
57
|
+
if (!serialized || typeof serialized !== 'object')
|
|
58
|
+
return;
|
|
59
|
+
// JSON round-trip instead of structuredClone: Yjs rejects cross-realm plain objects.
|
|
60
|
+
const clone = JSON.parse(JSON.stringify(serialized));
|
|
61
|
+
if (renameCustomElementClass(clone)) {
|
|
62
|
+
objectsMap.set(key, clone);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|