@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.
Files changed (373) hide show
  1. package/LICENSE.md +50 -0
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  3. package/dist/cjs/engine.constants-CakmdKMW.js +28206 -0
  4. package/dist/cjs/index-BbbWU2aN.js +1742 -0
  5. package/dist/cjs/index.cjs.js +4232 -0
  6. package/dist/cjs/kritzel-awareness-cursors_5.cjs.entry.js +28004 -0
  7. package/dist/cjs/loader.cjs.js +13 -0
  8. package/dist/cjs/stencil.cjs.js +25 -0
  9. package/dist/collection/classes/core/core.class.js +1389 -0
  10. package/dist/collection/classes/core/reviver.class.js +124 -0
  11. package/dist/collection/classes/core/store.class.js +337 -0
  12. package/dist/collection/classes/core/viewport.class.js +794 -0
  13. package/dist/collection/classes/core/workspace.class.js +112 -0
  14. package/dist/collection/classes/handlers/base.handler.js +20 -0
  15. package/dist/collection/classes/handlers/context-menu.handler.js +170 -0
  16. package/dist/collection/classes/handlers/hover.handler.js +35 -0
  17. package/dist/collection/classes/handlers/key.handler.js +162 -0
  18. package/dist/collection/classes/handlers/line-handle.handler.js +475 -0
  19. package/dist/collection/classes/handlers/move.handler.js +295 -0
  20. package/dist/collection/classes/handlers/resize.handler.js +327 -0
  21. package/dist/collection/classes/handlers/rotation.handler.js +174 -0
  22. package/dist/collection/classes/handlers/selection.handler.js +526 -0
  23. package/dist/collection/classes/managers/anchor.manager.js +1476 -0
  24. package/dist/collection/classes/managers/browser-permission.manager.js +64 -0
  25. package/dist/collection/classes/managers/clipboard.manager.js +346 -0
  26. package/dist/collection/classes/managers/clipboard.types.js +1 -0
  27. package/dist/collection/classes/managers/cursor.manager.js +139 -0
  28. package/dist/collection/classes/managers/license.manager.js +341 -0
  29. package/dist/collection/classes/managers/localization.manager.js +227 -0
  30. package/dist/collection/classes/managers/theme.manager.js +206 -0
  31. package/dist/collection/classes/objects/base-object.class.js +462 -0
  32. package/dist/collection/classes/objects/dynamic-object.class.js +437 -0
  33. package/dist/collection/classes/objects/group.class.js +590 -0
  34. package/dist/collection/classes/objects/image.class.js +500 -0
  35. package/dist/collection/classes/objects/line.class.js +789 -0
  36. package/dist/collection/classes/objects/path.class.js +578 -0
  37. package/dist/collection/classes/objects/selection-box.class.js +32 -0
  38. package/dist/collection/classes/objects/selection-group.class.js +752 -0
  39. package/dist/collection/classes/objects/shape.class.js +628 -0
  40. package/dist/collection/classes/objects/text.class.js +461 -0
  41. package/dist/collection/classes/providers/assets/asset-resolver.class.js +536 -0
  42. package/dist/collection/classes/providers/assets/http-asset-provider.class.js +111 -0
  43. package/dist/collection/classes/providers/assets/indexeddb-asset-provider.class.js +241 -0
  44. package/dist/collection/classes/providers/assets/presigned-asset-provider.class.js +86 -0
  45. package/dist/collection/classes/providers/paste-intent/event-paste-intent.provider.js +48 -0
  46. package/dist/collection/classes/providers/paste-intent/ios-paste-intent.provider.js +16 -0
  47. package/dist/collection/classes/providers/paste-intent/navigator-paste-intent.provider.js +86 -0
  48. package/dist/collection/classes/providers/sync/broadcast-sync-provider.class.js +100 -0
  49. package/dist/collection/classes/providers/sync/hocuspocus-sync-provider.class.js +333 -0
  50. package/dist/collection/classes/providers/sync/in-memory-sync-provider.class.js +69 -0
  51. package/dist/collection/classes/providers/sync/indexeddb-sync-provider.class.js +39 -0
  52. package/dist/collection/classes/providers/sync/websocket-sync-provider.class.js +110 -0
  53. package/dist/collection/classes/registries/dynamic-object-renderer.registry.js +52 -0
  54. package/dist/collection/classes/registries/font-registry.class.js +161 -0
  55. package/dist/collection/classes/registries/icon-registry.class.js +118 -0
  56. package/dist/collection/classes/registries/paste-intent-provider.registry.js +26 -0
  57. package/dist/collection/classes/registries/tool.registry.js +69 -0
  58. package/dist/collection/classes/structures/app-state-map.structure.js +461 -0
  59. package/dist/collection/classes/structures/object-map.structure.js +1103 -0
  60. package/dist/collection/classes/structures/quadtree.structure.js +251 -0
  61. package/dist/collection/classes/tools/base-tool.class.js +88 -0
  62. package/dist/collection/classes/tools/brush-tool.class.js +236 -0
  63. package/dist/collection/classes/tools/eraser-tool.class.js +133 -0
  64. package/dist/collection/classes/tools/image-tool.class.js +152 -0
  65. package/dist/collection/classes/tools/line-tool.class.js +249 -0
  66. package/dist/collection/classes/tools/selection-tool.class.js +611 -0
  67. package/dist/collection/classes/tools/shape-tool.class.js +251 -0
  68. package/dist/collection/classes/tools/text-tool.class.js +179 -0
  69. package/dist/collection/collection-manifest.json +17 -0
  70. package/dist/collection/components/kritzel-awareness-cursors/kritzel-awareness-cursors.css +115 -0
  71. package/dist/collection/components/kritzel-awareness-cursors/kritzel-awareness-cursors.js +380 -0
  72. package/dist/collection/components/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -0
  73. package/dist/collection/components/kritzel-cursor-trail/kritzel-cursor-trail.js +153 -0
  74. package/dist/collection/components/kritzel-engine/kritzel-engine.css +81 -0
  75. package/dist/collection/components/kritzel-engine/kritzel-engine.js +6345 -0
  76. package/dist/collection/components/kritzel-icon/kritzel-icon.css +18 -0
  77. package/dist/collection/components/kritzel-icon/kritzel-icon.js +93 -0
  78. package/dist/collection/components/kritzel-watermark/kritzel-watermark.css +29 -0
  79. package/dist/collection/components/kritzel-watermark/kritzel-watermark.js +83 -0
  80. package/dist/collection/configs/default-asset-storage.config.js +9 -0
  81. package/dist/collection/configs/default-brush-tool.config.js +9 -0
  82. package/dist/collection/configs/default-engine-config.js +73 -0
  83. package/dist/collection/configs/default-line-tool.config.js +12 -0
  84. package/dist/collection/configs/default-shape-tool.config.js +15 -0
  85. package/dist/collection/configs/default-sync.config.js +6 -0
  86. package/dist/collection/configs/default-text-tool.config.js +12 -0
  87. package/dist/collection/constants/color-palette.constants.js +40 -0
  88. package/dist/collection/constants/core.constants.js +1 -0
  89. package/dist/collection/constants/engine.constants.js +4 -0
  90. package/dist/collection/constants/license.constants.js +25 -0
  91. package/dist/collection/constants/schema.constants.js +4 -0
  92. package/dist/collection/constants/storage.constants.js +1 -0
  93. package/dist/collection/constants/stroke-size.constants.js +2 -0
  94. package/dist/collection/constants/text-tool-fonts.constants.js +18 -0
  95. package/dist/collection/constants/version.js +6 -0
  96. package/dist/collection/enums/alignment.enum.js +9 -0
  97. package/dist/collection/enums/event-button.enum.js +6 -0
  98. package/dist/collection/enums/handle-type.enum.js +7 -0
  99. package/dist/collection/enums/shape-type.enum.js +6 -0
  100. package/dist/collection/events/active-workspace-change.event.js +1 -0
  101. package/dist/collection/events/editor-is-ready.event.js +1 -0
  102. package/dist/collection/events/login.event.js +1 -0
  103. package/dist/collection/helpers/alignment.helper.js +73 -0
  104. package/dist/collection/helpers/class.helper.js +5 -0
  105. package/dist/collection/helpers/color.helper.js +106 -0
  106. package/dist/collection/helpers/cursor.helper.js +57 -0
  107. package/dist/collection/helpers/devices.helper.js +28 -0
  108. package/dist/collection/helpers/event.helper.js +58 -0
  109. package/dist/collection/helpers/geometry.helper.js +149 -0
  110. package/dist/collection/helpers/html.helper.js +116 -0
  111. package/dist/collection/helpers/image-file.helper.js +6 -0
  112. package/dist/collection/helpers/keyboard.helper.js +55 -0
  113. package/dist/collection/helpers/localization.helper.js +25 -0
  114. package/dist/collection/helpers/math.helper.js +8 -0
  115. package/dist/collection/helpers/migration.helper.js +45 -0
  116. package/dist/collection/helpers/object.helper.js +29 -0
  117. package/dist/collection/helpers/svg-export.helper.js +655 -0
  118. package/dist/collection/helpers/theme.helper.js +77 -0
  119. package/dist/collection/helpers/tool-config.helper.js +63 -0
  120. package/dist/collection/helpers/wheel.helper.js +113 -0
  121. package/dist/collection/index.js +107 -0
  122. package/dist/collection/interfaces/anchor.interface.js +1 -0
  123. package/dist/collection/interfaces/arrow-head.interface.js +1 -0
  124. package/dist/collection/interfaces/asset-provider.interface.js +1 -0
  125. package/dist/collection/interfaces/asset-storage-config.interface.js +1 -0
  126. package/dist/collection/interfaces/asset.interface.js +1 -0
  127. package/dist/collection/interfaces/bounding-box.interface.js +1 -0
  128. package/dist/collection/interfaces/clonable.interface.js +1 -0
  129. package/dist/collection/interfaces/context-menu-item.interface.js +1 -0
  130. package/dist/collection/interfaces/context-menu-state.interface.js +1 -0
  131. package/dist/collection/interfaces/debug-info.interface.js +1 -0
  132. package/dist/collection/interfaces/dialog.interface.js +1 -0
  133. package/dist/collection/interfaces/document-metadata.interface.js +1 -0
  134. package/dist/collection/interfaces/dynamic-object-renderer.interface.js +1 -0
  135. package/dist/collection/interfaces/engine-state.interface.js +1 -0
  136. package/dist/collection/interfaces/font.interface.js +1 -0
  137. package/dist/collection/interfaces/localization.interface.js +1 -0
  138. package/dist/collection/interfaces/login-config.interface.js +1 -0
  139. package/dist/collection/interfaces/master-detail.interface.js +1 -0
  140. package/dist/collection/interfaces/menu-item.interface.js +1 -0
  141. package/dist/collection/interfaces/migration.interface.js +1 -0
  142. package/dist/collection/interfaces/notification.interface.js +1 -0
  143. package/dist/collection/interfaces/object-change-event.interface.js +1 -0
  144. package/dist/collection/interfaces/object-export.interface.js +1 -0
  145. package/dist/collection/interfaces/object.interface.js +1 -0
  146. package/dist/collection/interfaces/paste-intent-provider.interface.js +1 -0
  147. package/dist/collection/interfaces/point.interface.js +1 -0
  148. package/dist/collection/interfaces/polygon.interface.js +1 -0
  149. package/dist/collection/interfaces/remote-cursor.interface.js +1 -0
  150. package/dist/collection/interfaces/selection-state.interface.js +1 -0
  151. package/dist/collection/interfaces/serializable.interface.js +1 -0
  152. package/dist/collection/interfaces/settings.interface.js +1 -0
  153. package/dist/collection/interfaces/share.interface.js +1 -0
  154. package/dist/collection/interfaces/shortcut.interface.js +1 -0
  155. package/dist/collection/interfaces/sync-config.interface.js +21 -0
  156. package/dist/collection/interfaces/sync-provider.interface.js +1 -0
  157. package/dist/collection/interfaces/theme.interface.js +1 -0
  158. package/dist/collection/interfaces/tool-config.interface.js +1 -0
  159. package/dist/collection/interfaces/tool-type.interface.js +1 -0
  160. package/dist/collection/interfaces/tool.interface.js +1 -0
  161. package/dist/collection/interfaces/toolbar-item.interface.js +1 -0
  162. package/dist/collection/interfaces/undo-state.interface.js +1 -0
  163. package/dist/collection/interfaces/user.interface.js +1 -0
  164. package/dist/collection/interfaces/viewport-state.interface.js +1 -0
  165. package/dist/collection/locales/de-locale.js +119 -0
  166. package/dist/collection/locales/en-locale.js +120 -0
  167. package/dist/collection/locales/fr-locale.js +119 -0
  168. package/dist/collection/migrations/app-state.migrations.js +47 -0
  169. package/dist/collection/migrations/workspace.migrations.js +67 -0
  170. package/dist/collection/themes/dark-theme.js +340 -0
  171. package/dist/collection/themes/light-theme.js +346 -0
  172. package/dist/collection/types/deep-readonly.type.js +1 -0
  173. package/dist/collection/types/state.types.js +1 -0
  174. package/dist/components/index.d.ts +47 -0
  175. package/dist/components/index.js +4143 -0
  176. package/dist/components/kritzel-awareness-cursors.d.ts +11 -0
  177. package/dist/components/kritzel-awareness-cursors.js +6 -0
  178. package/dist/components/kritzel-cursor-trail.d.ts +11 -0
  179. package/dist/components/kritzel-cursor-trail.js +6 -0
  180. package/dist/components/kritzel-engine.d.ts +11 -0
  181. package/dist/components/kritzel-engine.js +52641 -0
  182. package/dist/components/kritzel-icon.d.ts +11 -0
  183. package/dist/components/kritzel-icon.js +6 -0
  184. package/dist/components/kritzel-watermark.d.ts +11 -0
  185. package/dist/components/kritzel-watermark.js +6 -0
  186. package/dist/components/p-B2Htv9ou.js +49 -0
  187. package/dist/components/p-BvRGQvVI.js +3456 -0
  188. package/dist/components/p-CfSx6HU_.js +1469 -0
  189. package/dist/components/p-YP8wAcF4.js +122 -0
  190. package/dist/components/p-fx6msYHJ.js +167 -0
  191. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  192. package/dist/esm/engine.constants-Bl5-pbq-.js +28143 -0
  193. package/dist/esm/index-BU9Mv7y0.js +1715 -0
  194. package/dist/esm/index.js +4134 -0
  195. package/dist/esm/kritzel-awareness-cursors_5.entry.js +27978 -0
  196. package/dist/esm/loader.js +11 -0
  197. package/dist/esm/stencil.js +21 -0
  198. package/dist/index.cjs.js +1 -0
  199. package/dist/index.js +1 -0
  200. package/dist/stencil/index.esm.js +4134 -0
  201. package/dist/stencil/p-BU9Mv7y0.js +1702 -0
  202. package/dist/stencil/p-Bl5-pbq-.js +28143 -0
  203. package/dist/stencil/p-DQuL1Twl.js +3 -0
  204. package/dist/stencil/p-f0a8b7af.entry.js +27978 -0
  205. package/dist/stencil/stencil.esm.js +21 -0
  206. package/dist/types/classes/core/core.class.d.ts +532 -0
  207. package/dist/types/classes/core/reviver.class.d.ts +32 -0
  208. package/dist/types/classes/core/store.class.d.ts +198 -0
  209. package/dist/types/classes/core/viewport.class.d.ts +256 -0
  210. package/dist/types/classes/core/workspace.class.d.ts +95 -0
  211. package/dist/types/classes/handlers/base.handler.d.ts +18 -0
  212. package/dist/types/classes/handlers/context-menu.handler.d.ts +67 -0
  213. package/dist/types/classes/handlers/hover.handler.d.ts +23 -0
  214. package/dist/types/classes/handlers/key.handler.d.ts +44 -0
  215. package/dist/types/classes/handlers/line-handle.handler.d.ts +115 -0
  216. package/dist/types/classes/handlers/move.handler.d.ts +94 -0
  217. package/dist/types/classes/handlers/resize.handler.d.ts +95 -0
  218. package/dist/types/classes/handlers/rotation.handler.d.ts +50 -0
  219. package/dist/types/classes/handlers/selection.handler.d.ts +153 -0
  220. package/dist/types/classes/managers/anchor.manager.d.ts +513 -0
  221. package/dist/types/classes/managers/browser-permission.manager.d.ts +41 -0
  222. package/dist/types/classes/managers/clipboard.manager.d.ts +71 -0
  223. package/dist/types/classes/managers/clipboard.types.d.ts +23 -0
  224. package/dist/types/classes/managers/cursor.manager.d.ts +66 -0
  225. package/dist/types/classes/managers/license.manager.d.ts +147 -0
  226. package/dist/types/classes/managers/localization.manager.d.ts +145 -0
  227. package/dist/types/classes/managers/theme.manager.d.ts +112 -0
  228. package/dist/types/classes/objects/base-object.class.d.ts +266 -0
  229. package/dist/types/classes/objects/dynamic-object.class.d.ts +148 -0
  230. package/dist/types/classes/objects/group.class.d.ts +231 -0
  231. package/dist/types/classes/objects/image.class.d.ts +246 -0
  232. package/dist/types/classes/objects/line.class.d.ts +285 -0
  233. package/dist/types/classes/objects/path.class.d.ts +220 -0
  234. package/dist/types/classes/objects/selection-box.class.d.ts +19 -0
  235. package/dist/types/classes/objects/selection-group.class.d.ts +267 -0
  236. package/dist/types/classes/objects/shape.class.d.ts +322 -0
  237. package/dist/types/classes/objects/text.class.d.ts +197 -0
  238. package/dist/types/classes/providers/assets/asset-resolver.class.d.ts +141 -0
  239. package/dist/types/classes/providers/assets/http-asset-provider.class.d.ts +79 -0
  240. package/dist/types/classes/providers/assets/indexeddb-asset-provider.class.d.ts +69 -0
  241. package/dist/types/classes/providers/assets/presigned-asset-provider.class.d.ts +69 -0
  242. package/dist/types/classes/providers/paste-intent/event-paste-intent.provider.d.ts +8 -0
  243. package/dist/types/classes/providers/paste-intent/ios-paste-intent.provider.d.ts +6 -0
  244. package/dist/types/classes/providers/paste-intent/navigator-paste-intent.provider.d.ts +9 -0
  245. package/dist/types/classes/providers/sync/broadcast-sync-provider.class.d.ts +23 -0
  246. package/dist/types/classes/providers/sync/hocuspocus-sync-provider.class.d.ts +163 -0
  247. package/dist/types/classes/providers/sync/in-memory-sync-provider.class.d.ts +39 -0
  248. package/dist/types/classes/providers/sync/indexeddb-sync-provider.class.d.ts +25 -0
  249. package/dist/types/classes/providers/sync/websocket-sync-provider.class.d.ts +63 -0
  250. package/dist/types/classes/registries/dynamic-object-renderer.registry.d.ts +32 -0
  251. package/dist/types/classes/registries/font-registry.class.d.ts +19 -0
  252. package/dist/types/classes/registries/icon-registry.class.d.ts +39 -0
  253. package/dist/types/classes/registries/paste-intent-provider.registry.d.ts +10 -0
  254. package/dist/types/classes/registries/tool.registry.d.ts +53 -0
  255. package/dist/types/classes/structures/app-state-map.structure.d.ts +171 -0
  256. package/dist/types/classes/structures/object-map.structure.d.ts +403 -0
  257. package/dist/types/classes/structures/quadtree.structure.d.ts +128 -0
  258. package/dist/types/classes/tools/base-tool.class.d.ts +72 -0
  259. package/dist/types/classes/tools/brush-tool.class.d.ts +68 -0
  260. package/dist/types/classes/tools/eraser-tool.class.d.ts +38 -0
  261. package/dist/types/classes/tools/image-tool.class.d.ts +74 -0
  262. package/dist/types/classes/tools/line-tool.class.d.ts +63 -0
  263. package/dist/types/classes/tools/selection-tool.class.d.ts +188 -0
  264. package/dist/types/classes/tools/shape-tool.class.d.ts +90 -0
  265. package/dist/types/classes/tools/text-tool.class.d.ts +66 -0
  266. package/dist/types/components/kritzel-awareness-cursors/kritzel-awareness-cursors.d.ts +29 -0
  267. package/dist/types/components/kritzel-cursor-trail/kritzel-cursor-trail.d.ts +19 -0
  268. package/dist/types/components/kritzel-engine/kritzel-engine.d.ts +695 -0
  269. package/dist/types/components/kritzel-icon/kritzel-icon.d.ts +6 -0
  270. package/dist/types/components/kritzel-watermark/kritzel-watermark.d.ts +20 -0
  271. package/dist/types/components.d.ts +981 -0
  272. package/dist/types/configs/default-asset-storage.config.d.ts +8 -0
  273. package/dist/types/configs/default-brush-tool.config.d.ts +2 -0
  274. package/dist/types/configs/default-engine-config.d.ts +2 -0
  275. package/dist/types/configs/default-line-tool.config.d.ts +2 -0
  276. package/dist/types/configs/default-shape-tool.config.d.ts +2 -0
  277. package/dist/types/configs/default-sync.config.d.ts +5 -0
  278. package/dist/types/configs/default-text-tool.config.d.ts +2 -0
  279. package/dist/types/constants/color-palette.constants.d.ts +31 -0
  280. package/dist/types/constants/core.constants.d.ts +0 -0
  281. package/dist/types/constants/engine.constants.d.ts +4 -0
  282. package/dist/types/constants/license.constants.d.ts +25 -0
  283. package/dist/types/constants/schema.constants.d.ts +4 -0
  284. package/dist/types/constants/storage.constants.d.ts +1 -0
  285. package/dist/types/constants/stroke-size.constants.d.ts +2 -0
  286. package/dist/types/constants/text-tool-fonts.constants.d.ts +3 -0
  287. package/dist/types/constants/version.d.ts +6 -0
  288. package/dist/types/enums/alignment.enum.d.ts +8 -0
  289. package/dist/types/enums/event-button.enum.d.ts +5 -0
  290. package/dist/types/enums/handle-type.enum.d.ts +6 -0
  291. package/dist/types/enums/shape-type.enum.d.ts +5 -0
  292. package/dist/types/events/active-workspace-change.event.d.ts +7 -0
  293. package/dist/types/events/editor-is-ready.event.d.ts +18 -0
  294. package/dist/types/events/login.event.d.ts +3 -0
  295. package/dist/types/helpers/alignment.helper.d.ts +21 -0
  296. package/dist/types/helpers/class.helper.d.ts +3 -0
  297. package/dist/types/helpers/color.helper.d.ts +34 -0
  298. package/dist/types/helpers/cursor.helper.d.ts +22 -0
  299. package/dist/types/helpers/devices.helper.d.ts +8 -0
  300. package/dist/types/helpers/event.helper.d.ts +6 -0
  301. package/dist/types/helpers/geometry.helper.d.ts +38 -0
  302. package/dist/types/helpers/html.helper.d.ts +8 -0
  303. package/dist/types/helpers/image-file.helper.d.ts +3 -0
  304. package/dist/types/helpers/keyboard.helper.d.ts +6 -0
  305. package/dist/types/helpers/localization.helper.d.ts +18 -0
  306. package/dist/types/helpers/math.helper.d.ts +4 -0
  307. package/dist/types/helpers/migration.helper.d.ts +30 -0
  308. package/dist/types/helpers/object.helper.d.ts +9 -0
  309. package/dist/types/helpers/svg-export.helper.d.ts +231 -0
  310. package/dist/types/helpers/theme.helper.d.ts +42 -0
  311. package/dist/types/helpers/tool-config.helper.d.ts +4 -0
  312. package/dist/types/helpers/wheel.helper.d.ts +9 -0
  313. package/dist/types/index.d.ts +109 -0
  314. package/dist/types/interfaces/anchor.interface.d.ts +147 -0
  315. package/dist/types/interfaces/arrow-head.interface.d.ts +27 -0
  316. package/dist/types/interfaces/asset-provider.interface.d.ts +88 -0
  317. package/dist/types/interfaces/asset-storage-config.interface.d.ts +40 -0
  318. package/dist/types/interfaces/asset.interface.d.ts +43 -0
  319. package/dist/types/interfaces/bounding-box.interface.d.ts +8 -0
  320. package/dist/types/interfaces/clonable.interface.d.ts +3 -0
  321. package/dist/types/interfaces/context-menu-item.interface.d.ts +25 -0
  322. package/dist/types/interfaces/context-menu-state.interface.d.ts +16 -0
  323. package/dist/types/interfaces/debug-info.interface.d.ts +7 -0
  324. package/dist/types/interfaces/dialog.interface.d.ts +4 -0
  325. package/dist/types/interfaces/document-metadata.interface.d.ts +6 -0
  326. package/dist/types/interfaces/dynamic-object-renderer.interface.d.ts +40 -0
  327. package/dist/types/interfaces/engine-state.interface.d.ts +82 -0
  328. package/dist/types/interfaces/font.interface.d.ts +15 -0
  329. package/dist/types/interfaces/localization.interface.d.ts +143 -0
  330. package/dist/types/interfaces/login-config.interface.d.ts +24 -0
  331. package/dist/types/interfaces/master-detail.interface.d.ts +14 -0
  332. package/dist/types/interfaces/menu-item.interface.d.ts +27 -0
  333. package/dist/types/interfaces/migration.interface.d.ts +16 -0
  334. package/dist/types/interfaces/notification.interface.d.ts +10 -0
  335. package/dist/types/interfaces/object-change-event.interface.d.ts +31 -0
  336. package/dist/types/interfaces/object-export.interface.d.ts +20 -0
  337. package/dist/types/interfaces/object.interface.d.ts +53 -0
  338. package/dist/types/interfaces/paste-intent-provider.interface.d.ts +10 -0
  339. package/dist/types/interfaces/point.interface.d.ts +4 -0
  340. package/dist/types/interfaces/polygon.interface.d.ts +7 -0
  341. package/dist/types/interfaces/remote-cursor.interface.d.ts +18 -0
  342. package/dist/types/interfaces/selection-state.interface.d.ts +7 -0
  343. package/dist/types/interfaces/serializable.interface.d.ts +5 -0
  344. package/dist/types/interfaces/settings.interface.d.ts +25 -0
  345. package/dist/types/interfaces/share.interface.d.ts +9 -0
  346. package/dist/types/interfaces/shortcut.interface.d.ts +10 -0
  347. package/dist/types/interfaces/sync-config.interface.d.ts +41 -0
  348. package/dist/types/interfaces/sync-provider.interface.d.ts +66 -0
  349. package/dist/types/interfaces/theme.interface.d.ts +553 -0
  350. package/dist/types/interfaces/tool-config.interface.d.ts +24 -0
  351. package/dist/types/interfaces/tool-type.interface.d.ts +1 -0
  352. package/dist/types/interfaces/tool.interface.d.ts +8 -0
  353. package/dist/types/interfaces/toolbar-item.interface.d.ts +66 -0
  354. package/dist/types/interfaces/undo-state.interface.d.ts +6 -0
  355. package/dist/types/interfaces/user.interface.d.ts +22 -0
  356. package/dist/types/interfaces/viewport-state.interface.d.ts +7 -0
  357. package/dist/types/locales/de-locale.d.ts +5 -0
  358. package/dist/types/locales/en-locale.d.ts +6 -0
  359. package/dist/types/locales/fr-locale.d.ts +5 -0
  360. package/dist/types/migrations/app-state.migrations.d.ts +11 -0
  361. package/dist/types/migrations/workspace.migrations.d.ts +11 -0
  362. package/dist/types/stencil-public-runtime.d.ts +1873 -0
  363. package/dist/types/themes/dark-theme.d.ts +5 -0
  364. package/dist/types/themes/light-theme.d.ts +5 -0
  365. package/dist/types/types/deep-readonly.type.d.ts +7 -0
  366. package/dist/types/types/state.types.d.ts +3 -0
  367. package/loader/cdn.js +1 -0
  368. package/loader/index.cjs.js +1 -0
  369. package/loader/index.d.ts +24 -0
  370. package/loader/index.es2017.js +1 -0
  371. package/loader/index.js +2 -0
  372. package/package.json +101 -0
  373. package/readme.md +11 -0
@@ -0,0 +1,8 @@
1
+ import { KritzelAssetStorageConfig } from '../interfaces/asset-storage-config.interface';
2
+ /**
3
+ * Default asset storage configuration. Stores bytes in IndexedDB only,
4
+ * which provides offline-friendly behavior out of the box. Applications
5
+ * that sync Yjs over the network should also configure a remote provider
6
+ * (e.g. HttpAssetProvider) so images are available across devices.
7
+ */
8
+ export declare const DEFAULT_ASSET_STORAGE_CONFIG: KritzelAssetStorageConfig;
@@ -0,0 +1,2 @@
1
+ import { KritzelBrushToolConfig } from '../interfaces/toolbar-item.interface';
2
+ export declare const DEFAULT_BRUSH_CONFIG: KritzelBrushToolConfig;
@@ -0,0 +1,2 @@
1
+ import { KritzelEngineState } from "../interfaces/engine-state.interface";
2
+ export declare const DEFAULT_ENGINE_CONFIG: KritzelEngineState;
@@ -0,0 +1,2 @@
1
+ import { KritzelLineToolConfig } from '../interfaces/toolbar-item.interface';
2
+ export declare const DEFAULT_LINE_TOOL_CONFIG: KritzelLineToolConfig;
@@ -0,0 +1,2 @@
1
+ import { KritzelShapeToolConfig } from "../interfaces/toolbar-item.interface";
2
+ export declare const DEFAULT_SHAPE_CONFIG: KritzelShapeToolConfig;
@@ -0,0 +1,5 @@
1
+ import { KritzelSyncConfig } from '../interfaces/sync-config.interface';
2
+ /**
3
+ * Default sync configuration - None
4
+ */
5
+ export declare const DEFAULT_SYNC_CONFIG: KritzelSyncConfig;
@@ -0,0 +1,2 @@
1
+ import { KritzelTextToolConfig } from "../interfaces/toolbar-item.interface";
2
+ export declare const DEFAULT_TEXT_CONFIG: KritzelTextToolConfig;
@@ -0,0 +1,31 @@
1
+ import { ThemeName } from '../interfaces/theme.interface';
2
+ /**
3
+ * Supported theme modes for color variations
4
+ */
5
+ /**
6
+ * Color definition with different values per theme
7
+ */
8
+ export interface ThemeAwareColor {
9
+ /** Color value for light theme */
10
+ light: string;
11
+ /** Color value for dark theme */
12
+ dark: string;
13
+ /** Custom colors based on new themes */
14
+ [key: string]: string | undefined;
15
+ /** Optional semantic label for the color */
16
+ label?: string;
17
+ }
18
+ /**
19
+ * Type for a color palette with theme-aware colors only
20
+ */
21
+ export type ColorPalette = readonly ThemeAwareColor[];
22
+ /**
23
+ * Helper function to resolve a color value for a specific theme
24
+ */
25
+ export declare function resolveColor(color: ThemeAwareColor, theme: ThemeName): string;
26
+ /**
27
+ * Default color palette shared across all tool configurations.
28
+ * This ensures consistency in color options throughout the application.
29
+ * All colors support theme-specific variations.
30
+ */
31
+ export declare const DEFAULT_COLOR_PALETTE: ColorPalette;
File without changes
@@ -0,0 +1,4 @@
1
+ export declare const ABSOLUTE_SCALE_MAX = 1000;
2
+ export declare const ABSOLUTE_SCALE_MIN = 0.0001;
3
+ /** Destination opened when the "Powered by Kritzel" watermark is clicked. */
4
+ export declare const KRITZEL_WEBSITE_URL = "https://kritzel.io";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * License verification constants.
3
+ *
4
+ * Kritzel licenses are offline Ed25519 signed tokens. The owner signs each
5
+ * customer's token with a private key that never leaves their machine
6
+ * (see scripts/license/); the library verifies tokens against the public key
7
+ * below. The public key is safe to ship — it can only *verify* signatures,
8
+ * never forge them.
9
+ */
10
+ /**
11
+ * Token format version prefix. A valid license key looks like:
12
+ *
13
+ * KRTZL1.<base64url(payload JSON)>.<base64url(ed25519 signature)>
14
+ *
15
+ * Bump the version (and this prefix) if the token scheme ever changes.
16
+ */
17
+ export declare const KRITZEL_LICENSE_TOKEN_PREFIX = "KRTZL1.";
18
+ /**
19
+ * Raw 32-byte Ed25519 public key (base64url) used to verify license tokens.
20
+ *
21
+ * Generate the matching key pair with `npm run license:keygen` and paste the
22
+ * printed public key here. Replacing this value invalidates every license
23
+ * signed with the previous key.
24
+ */
25
+ export declare const KRITZEL_LICENSE_PUBLIC_KEY = "2IwZDin-qV3kOt8SEQCqdaJsGT9S7tAGapUYJVnVGQo";
@@ -0,0 +1,4 @@
1
+ /** Current schema version for the app-state Y.Doc (workspace list & settings). */
2
+ export declare const CURRENT_APP_STATE_SCHEMA_VERSION = 2;
3
+ /** Current schema version for workspace Y.Docs (drawable objects). */
4
+ export declare const CURRENT_WORKSPACE_SCHEMA_VERSION = 3;
@@ -0,0 +1 @@
1
+ export declare const APP_STATE_INSTANCE_ID_STORAGE_KEY = "kritzel-app-state-instance-id";
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_STROKE_SIZES: number[];
2
+ export declare const DEFAULT_FONT_SIZES: number[];
@@ -0,0 +1,3 @@
1
+ import { KritzelFontRegistration } from '../interfaces/font.interface';
2
+ export declare const DEFAULT_TEXT_TOOL_AVAILABLE_FONTS: KritzelFontRegistration[];
3
+ export declare const resolveTextToolAvailableFonts: (availableFonts?: KritzelFontRegistration[]) => KritzelFontRegistration[];
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The current version of the Kritzel library.
3
+ * This file is auto-generated by the version bump scripts.
4
+ * Do not modify manually.
5
+ */
6
+ export declare const KRITZEL_VERSION = "0.4.31";
@@ -0,0 +1,8 @@
1
+ export declare enum KritzelAlignment {
2
+ StartHorizontal = "start-horizontal",
3
+ CenterHorizontal = "center-horizontal",
4
+ EndHorizontal = "end-horizontal",
5
+ StartVertical = "start-vertical",
6
+ CenterVertical = "center-vertical",
7
+ EndVertical = "end-vertical"
8
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum KritzelMouseButton {
2
+ Left = 0,
3
+ Middle = 1,
4
+ Right = 2
5
+ }
@@ -0,0 +1,6 @@
1
+ export declare enum KritzelHandleType {
2
+ TopLeft = "top-left",
3
+ TopRight = "top-right",
4
+ BottomLeft = "bottom-left",
5
+ BottomRight = "bottom-right"
6
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum ShapeType {
2
+ Rectangle = "rectangle",
3
+ Ellipse = "ellipse",
4
+ Triangle = "triangle"
5
+ }
@@ -0,0 +1,7 @@
1
+ export interface ActiveWorkspaceChangeEvent {
2
+ id: string;
3
+ name: string;
4
+ isPublic: boolean;
5
+ createdAt: Date;
6
+ updatedAt: Date;
7
+ }
@@ -0,0 +1,18 @@
1
+ import { KritzelAssetStorageConfig } from '../interfaces/asset-storage-config.interface';
2
+ import { KritzelLoginConfig } from '../interfaces/login-config.interface';
3
+ import { KritzelSyncConfig } from '../interfaces/sync-config.interface';
4
+ import { ThemeName } from '../interfaces/theme.interface';
5
+ export interface EditorIsReadyEvent {
6
+ host: HTMLElement;
7
+ activeWorkspace: {
8
+ id: string;
9
+ name: string;
10
+ isPublic: boolean;
11
+ createdAt: Date;
12
+ updatedAt: Date;
13
+ };
14
+ syncConfig: KritzelSyncConfig;
15
+ assetStorageConfig?: KritzelAssetStorageConfig;
16
+ loginConfig: KritzelLoginConfig;
17
+ theme: ThemeName;
18
+ }
@@ -0,0 +1,3 @@
1
+ export interface LoginEvent {
2
+ provider: string;
3
+ }
@@ -0,0 +1,21 @@
1
+ import { KritzelBaseObject } from '../classes/objects/base-object.class';
2
+ import { KritzelAlignment } from '../enums/alignment.enum';
3
+ /**
4
+ * Helper class for aligning objects within a selection group.
5
+ */
6
+ export declare class AlignmentHelper {
7
+ /**
8
+ * Calculates the selection bounds from all objects' rotated bounding boxes.
9
+ */
10
+ private static calculateSelectionBounds;
11
+ /**
12
+ * Calculates the new translate positions for each object based on the alignment type.
13
+ * @param objects The objects to align
14
+ * @param alignment The alignment type
15
+ * @returns A map of object IDs to their new translateX and translateY values
16
+ */
17
+ static calculateAlignedPositions(objects: KritzelBaseObject[], alignment: KritzelAlignment): Map<string, {
18
+ translateX: number;
19
+ translateY: number;
20
+ }>;
21
+ }
@@ -0,0 +1,3 @@
1
+ export declare class KritzelClassHelper {
2
+ static isInstanceOf<T>(object: any, className: string): object is T;
3
+ }
@@ -0,0 +1,34 @@
1
+ import { ThemeAwareColor } from '../constants/color-palette.constants';
2
+ import { ThemeName } from '../interfaces/theme.interface';
3
+ export declare class KritzelColorHelper {
4
+ /**
5
+ * Resolves a color value based on the current theme.
6
+ * Handles both simple string colors and theme-aware color objects.
7
+ * @param color - The color to resolve (string or ThemeAwareColor)
8
+ * @param theme - Optional theme to use. If not provided, uses current theme from ThemeManager
9
+ * @returns The resolved hex color string, or empty string if color is undefined
10
+ */
11
+ static resolveThemeColor(color: ThemeAwareColor | undefined, theme?: ThemeName): string;
12
+ /**
13
+ * Applies opacity to a theme-aware color and returns an rgba string.
14
+ * @param color - The theme-aware color object or a hex color string
15
+ * @param opacity - The opacity value between 0 and 1
16
+ * @param theme - Optional theme to use. If not provided, uses current theme from ThemeManager
17
+ * @returns The color as an rgba string, or the resolved hex if opacity is 1
18
+ */
19
+ static applyOpacity(color: ThemeAwareColor | string | undefined, opacity: number, theme?: ThemeName): string;
20
+ /**
21
+ * Determines the appropriate contrast color (black or white) based on the luminance of the given hex color.
22
+ * Uses the relative luminance formula: 0.299*R + 0.587*G + 0.114*B
23
+ * @param hexColor - The hex color string (with or without #)
24
+ * @returns '#000000' for light backgrounds, '#ffffff' for dark backgrounds
25
+ */
26
+ static getContrastColor(hexColor: string): string;
27
+ /**
28
+ * Determines the appropriate text color for both light and dark themes based on the fill color.
29
+ * Returns default theme-appropriate colors if the fill is transparent.
30
+ * @param fillColor - The theme-aware fill color
31
+ * @returns A theme-aware color object with appropriate text colors for both themes
32
+ */
33
+ static determineTextColor(fillColor: ThemeAwareColor): ThemeAwareColor;
34
+ }
@@ -0,0 +1,22 @@
1
+ export declare class KritzelCursorHelper {
2
+ private static _pointerCursor;
3
+ /**
4
+ * Returns the custom pointer cursor CSS value.
5
+ * This can be used instead of `cursor: pointer` for consistent styling.
6
+ */
7
+ static getPointerCursor(): string;
8
+ /**
9
+ * Returns a custom cursor CSS value with support for rotation.
10
+ * The icon is retrieved from the KritzelIconRegistry.
11
+ */
12
+ static getCursor(options: {
13
+ iconName: string;
14
+ rotation?: number;
15
+ color?: string;
16
+ size?: number;
17
+ hotspot?: {
18
+ x: number;
19
+ y: number;
20
+ };
21
+ }): string;
22
+ }
@@ -0,0 +1,8 @@
1
+ export declare class KritzelDevicesHelper {
2
+ static isTouchDevice(): boolean;
3
+ static isAndroid(): boolean;
4
+ static isIOS(): boolean;
5
+ static detectOS(): 'iOS' | 'Android' | 'Other';
6
+ static isMobile(): boolean;
7
+ static isFirefox(): boolean;
8
+ }
@@ -0,0 +1,6 @@
1
+ export declare class KritzelEventHelper {
2
+ static isRightClick(ev: MouseEvent): boolean;
3
+ static isLeftClick(ev: MouseEvent): boolean;
4
+ static isPointerEventOnContextMenu(event: PointerEvent): boolean;
5
+ static onLongPress(event: PointerEvent, onSuccess: (event: PointerEvent) => void, onCancel?: () => void): () => void;
6
+ }
@@ -0,0 +1,38 @@
1
+ import { KritzelPoint } from "../interfaces/point.interface";
2
+ import { KritzelPolygon } from "../interfaces/polygon.interface";
3
+ export declare class KritzelGeometryHelper {
4
+ static doPolygonsIntersect(polygon1: KritzelPolygon, polygon2: KritzelPolygon): boolean;
5
+ static isPointInPolygon(point: KritzelPoint, polygon: KritzelPoint[]): boolean;
6
+ static intersectLines(p1a: KritzelPoint, p1b: KritzelPoint, p2a: KritzelPoint, p2b: KritzelPoint): boolean;
7
+ /**
8
+ * Finds the intersection point between a line segment and a line segment.
9
+ * Returns the intersection point or null if no intersection.
10
+ */
11
+ static getLineIntersectionPoint(p1a: KritzelPoint, p1b: KritzelPoint, p2a: KritzelPoint, p2b: KritzelPoint): KritzelPoint | null;
12
+ /**
13
+ * Finds the closest intersection point between a line segment (from lineStart to lineEnd)
14
+ * and a polygon. Returns the intersection point closest to lineStart, or null if no intersection.
15
+ */
16
+ static getLinePolygonIntersection(lineStart: KritzelPoint, lineEnd: KritzelPoint, polygon: KritzelPolygon): KritzelPoint | null;
17
+ /**
18
+ * Generates a polygon approximation of an ellipse.
19
+ * @param centerX - X coordinate of ellipse center
20
+ * @param centerY - Y coordinate of ellipse center
21
+ * @param rx - Horizontal radius
22
+ * @param ry - Vertical radius
23
+ * @param segments - Number of segments (more = smoother approximation)
24
+ * @param rotation - Optional rotation angle in radians
25
+ */
26
+ static getEllipsePolygonApproximation(centerX: number, centerY: number, rx: number, ry: number, segments?: number, rotation?: number): KritzelPoint[];
27
+ /**
28
+ * Finds the closest intersection point between a line segment and a polygon
29
+ * defined as an array of points. Returns the intersection closest to lineStart,
30
+ * or null if no intersection.
31
+ */
32
+ static getLinePointsArrayIntersection(lineStart: KritzelPoint, lineEnd: KritzelPoint, polygonPoints: KritzelPoint[]): KritzelPoint | null;
33
+ /**
34
+ * Checks if a point is inside a polygon defined as an array of points.
35
+ * This is a convenience wrapper that works with arbitrary polygon point arrays.
36
+ */
37
+ static isPointInPolygonPoints(point: KritzelPoint, polygonPoints: KritzelPoint[]): boolean;
38
+ }
@@ -0,0 +1,8 @@
1
+ export declare class KritzelHTMLHelper {
2
+ static getNumericValueFromStyle(element: HTMLElement, property: string): number;
3
+ static isScrollableElement(element: Element): element is HTMLElement;
4
+ static findScrollableElement(root: Element | null | undefined): HTMLElement | null;
5
+ static getScrollableParent(element: HTMLElement): HTMLElement | Window;
6
+ static isElementInViewport(element: HTMLElement): boolean;
7
+ static getFocusableElements(root: HTMLElement): HTMLElement[];
8
+ }
@@ -0,0 +1,3 @@
1
+ export declare class KritzelImageFileHelper {
2
+ static isGifFile(file: Pick<File, 'name' | 'type'>): boolean;
3
+ }
@@ -0,0 +1,6 @@
1
+ export declare class KritzelKeyboardHelper {
2
+ static forceHideKeyboard(): void;
3
+ static enableInteractiveWidget(): void;
4
+ static disableInteractiveWidget(): void;
5
+ static onKeyboardVisibleChanged(callback: (isOpen: boolean) => void): () => void;
6
+ }
@@ -0,0 +1,18 @@
1
+ import { KritzelTermVars } from '../interfaces/localization.interface';
2
+ /**
3
+ * Pure static utilities for localization term resolution.
4
+ */
5
+ export declare class LocalizationHelper {
6
+ /**
7
+ * Interpolates `{placeholder}` tokens in a term template with the provided
8
+ * variables. Tokens without a matching variable are left untouched.
9
+ *
10
+ * @param template - The raw term string, e.g. `'Expires {date}'`
11
+ * @param vars - Map of placeholder names to replacement values
12
+ * @returns The interpolated string
13
+ *
14
+ * @example
15
+ * LocalizationHelper.interpolate('Hello {name}', { name: 'Ada' }); // 'Hello Ada'
16
+ */
17
+ static interpolate(template: string, vars?: KritzelTermVars): string;
18
+ }
@@ -0,0 +1,4 @@
1
+ export declare class KritzelMathHelper {
2
+ static average(a: number, b: number): number;
3
+ static degreesToRadians(degrees: number): number;
4
+ }
@@ -0,0 +1,30 @@
1
+ import * as Y from 'yjs';
2
+ import { KritzelMigration } from '../interfaces/migration.interface';
3
+ export interface KritzelMigrationResult {
4
+ migrated: boolean;
5
+ fromVersion: number;
6
+ toVersion: number;
7
+ }
8
+ export interface KritzelMigrationOptions {
9
+ quiet?: boolean;
10
+ }
11
+ /**
12
+ * Runs pending schema migrations on a Y.Doc.
13
+ *
14
+ * Reads the current `schemaVersion` from the metadata map (defaults to 0 for
15
+ * documents that predate the migration system), filters and sorts pending
16
+ * migrations, and executes them in a single `'migration'`-origin transaction.
17
+ *
18
+ * The `'migration'` origin is:
19
+ * - NOT tracked by the UndoManager (which only tracks `'local'` and `'temporary'`)
20
+ * - Distinguishable in observers so they can skip re-processing migration writes
21
+ *
22
+ * @param ydoc - The Y.Doc to migrate
23
+ * @param metadataMap - The metadata Y.Map that stores the schemaVersion
24
+ * @param maps - Named Y.Maps available for migration logic (e.g. `{ workspaces }` or `{ objects }`)
25
+ * @param migrations - The ordered array of migration definitions
26
+ * @param currentVersion - The target schema version defined in code
27
+ * @param options - Optional configuration (e.g. `{ quiet: true }` to suppress console logs)
28
+ * @returns A result object indicating whether migrations ran and the version range
29
+ */
30
+ export declare function runMigrations(ydoc: Y.Doc, metadataMap: Y.Map<any>, maps: Record<string, Y.Map<any>>, migrations: KritzelMigration[], currentVersion: number, options?: KritzelMigrationOptions): KritzelMigrationResult;
@@ -0,0 +1,9 @@
1
+ export declare class ObjectHelper {
2
+ static generateUUID(length?: number): string;
3
+ static isEmpty(obj: any): boolean;
4
+ static isClass<T>(object: unknown, className: string): object is T;
5
+ static isKritzelExportable(object: unknown): object is {
6
+ getSupportedExportFormats(): string[];
7
+ exportAs(format: string, context: unknown): Promise<string | null>;
8
+ };
9
+ }