kritzel-stencil 0.3.1 → 0.3.7

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 (67) hide show
  1. package/dist/cjs/index.cjs.js +70 -1
  2. package/dist/cjs/kritzel-active-users_42.cjs.entry.js +200 -41
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/stencil.cjs.js +1 -1
  5. package/dist/cjs/{workspace.migrations-D5sPPbQN.js → workspace.migrations-BlC8KRoQ.js} +12 -63
  6. package/dist/collection/classes/core/core.class.js +16 -5
  7. package/dist/collection/classes/core/store.class.js +8 -1
  8. package/dist/collection/classes/handlers/context-menu.handler.js +2 -2
  9. package/dist/collection/classes/handlers/key.handler.js +1 -2
  10. package/dist/collection/classes/objects/shape.class.js +2 -3
  11. package/dist/collection/classes/objects/text.class.js +2 -3
  12. package/dist/collection/classes/providers/sync/in-memory-sync-provider.class.js +68 -0
  13. package/dist/collection/classes/registries/tool.registry.js +29 -8
  14. package/dist/collection/classes/tools/image-tool.class.js +2 -3
  15. package/dist/collection/classes/tools/line-tool.class.js +1 -2
  16. package/dist/collection/classes/tools/shape-tool.class.js +3 -4
  17. package/dist/collection/classes/tools/text-tool.class.js +2 -3
  18. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +0 -2
  19. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +16 -7
  20. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +2 -1
  21. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +56 -32
  22. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +1 -0
  23. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +43 -9
  24. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +1 -1
  25. package/dist/collection/constants/version.js +1 -1
  26. package/dist/collection/helpers/tool-config.helper.js +6 -5
  27. package/dist/collection/index.js +1 -0
  28. package/dist/components/index.js +1 -1
  29. package/dist/components/kritzel-controls.js +1 -1
  30. package/dist/components/kritzel-editor.js +1 -1
  31. package/dist/components/kritzel-engine.js +1 -1
  32. package/dist/components/kritzel-more-menu.js +1 -1
  33. package/dist/components/kritzel-settings.js +1 -1
  34. package/dist/components/kritzel-tool-config.js +1 -1
  35. package/dist/components/kritzel-utility-panel.js +1 -1
  36. package/dist/components/p-8b9zAWnS.js +1 -0
  37. package/dist/components/{p-Cx6YyDdF.js → p-BV3EJRtU.js} +1 -1
  38. package/dist/components/p-CSODtZrV.js +1 -0
  39. package/dist/components/p-CoJdbj3f.js +1 -0
  40. package/dist/components/p-Ctd1w9-z.js +1 -0
  41. package/dist/components/{p-C9jegh9w.js → p-D0ctIEh_.js} +1 -1
  42. package/dist/components/p-P0p4WBpa.js +9 -0
  43. package/dist/esm/index.js +71 -3
  44. package/dist/esm/kritzel-active-users_42.entry.js +200 -41
  45. package/dist/esm/loader.js +1 -1
  46. package/dist/esm/stencil.js +1 -1
  47. package/dist/esm/{workspace.migrations-BnTvdnKU.js → workspace.migrations-BLXBI--a.js} +13 -62
  48. package/dist/stencil/index.esm.js +1 -1
  49. package/dist/stencil/p-3058e485.entry.js +9 -0
  50. package/dist/stencil/p-BLXBI--a.js +1 -0
  51. package/dist/stencil/stencil.esm.js +1 -1
  52. package/dist/types/classes/core/core.class.d.ts +8 -0
  53. package/dist/types/classes/providers/sync/in-memory-sync-provider.class.d.ts +38 -0
  54. package/dist/types/classes/registries/tool.registry.d.ts +24 -7
  55. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +5 -0
  56. package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +4 -0
  57. package/dist/types/components.d.ts +2 -0
  58. package/dist/types/constants/version.d.ts +1 -1
  59. package/dist/types/index.d.ts +1 -0
  60. package/package.json +1 -1
  61. package/dist/components/p-BWB2UGxj.js +0 -9
  62. package/dist/components/p-BWJGv9ZO.js +0 -1
  63. package/dist/components/p-BWRjTm0J.js +0 -1
  64. package/dist/components/p-Clo5Ydi1.js +0 -1
  65. package/dist/components/p-D9-C4GfD.js +0 -1
  66. package/dist/stencil/p-BnTvdnKU.js +0 -1
  67. package/dist/stencil/p-bfd1fca8.entry.js +0 -9
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { H as HocuspocusProvider, a as HocuspocusProviderWebsocket } from './workspace.migrations-BnTvdnKU.js';
2
- export { E as APP_STATE_MIGRATIONS, A as AssetNotFoundError, C as CURRENT_APP_STATE_SCHEMA_VERSION, z as CURRENT_WORKSPACE_SCHEMA_VERSION, v as DEFAULT_ASSET_STORAGE_CONFIG, D as DEFAULT_BRUSH_CONFIG, u as DEFAULT_LINE_TOOL_CONFIG, t as DEFAULT_TEXT_CONFIG, p as IndexedDBAssetProvider, I as IndexedDBSyncProvider, y as KritzelAlignment, r as KritzelAnchorManager, o as KritzelAssetResolver, g as KritzelBrushTool, m as KritzelCursorHelper, i as KritzelEraserTool, e as KritzelGroup, c as KritzelImage, j as KritzelImageTool, d as KritzelLine, h as KritzelLineTool, b as KritzelPath, n as KritzelSelectionTool, f as KritzelShape, l as KritzelShapeTool, K as KritzelText, k as KritzelTextTool, s as KritzelThemeManager, q as KritzelWorkspace, S as ShapeType, W as WORKSPACE_EXPORT_VERSION, F as WORKSPACE_MIGRATIONS, x as darkTheme, w as lightTheme, B as runMigrations } from './workspace.migrations-BnTvdnKU.js';
1
+ import { H as HocuspocusProvider, a as HocuspocusProviderWebsocket } from './workspace.migrations-BLXBI--a.js';
2
+ export { E as APP_STATE_MIGRATIONS, A as AssetNotFoundError, C as CURRENT_APP_STATE_SCHEMA_VERSION, z as CURRENT_WORKSPACE_SCHEMA_VERSION, v as DEFAULT_ASSET_STORAGE_CONFIG, D as DEFAULT_BRUSH_CONFIG, u as DEFAULT_LINE_TOOL_CONFIG, t as DEFAULT_TEXT_CONFIG, p as IndexedDBAssetProvider, I as IndexedDBSyncProvider, y as KritzelAlignment, r as KritzelAnchorManager, o as KritzelAssetResolver, g as KritzelBrushTool, m as KritzelCursorHelper, i as KritzelEraserTool, e as KritzelGroup, c as KritzelImage, j as KritzelImageTool, d as KritzelLine, h as KritzelLineTool, b as KritzelPath, n as KritzelSelectionTool, f as KritzelShape, l as KritzelShapeTool, K as KritzelText, k as KritzelTextTool, s as KritzelThemeManager, q as KritzelWorkspace, S as ShapeType, W as WORKSPACE_EXPORT_VERSION, F as WORKSPACE_MIGRATIONS, x as darkTheme, w as lightTheme, B as runMigrations } from './workspace.migrations-BLXBI--a.js';
3
3
  import * as Y from 'yjs';
4
4
  import { WebsocketProvider } from 'y-websocket';
5
5
  import 'y-indexeddb';
@@ -431,6 +431,74 @@ class BroadcastSyncProvider {
431
431
  }
432
432
  }
433
433
 
434
+ /**
435
+ * Module-scoped cache that survives component removal and remounting
436
+ * within the same JS runtime. Cleared on page reload.
437
+ */
438
+ const sessionCache = new Map();
439
+ /**
440
+ * In-memory sync provider for session-scoped persistence.
441
+ *
442
+ * State survives the component being removed from the DOM and later
443
+ * re-added within the same page session, but is lost on page reload.
444
+ * Intended for documentation demos where durable IndexedDB persistence
445
+ * is not desired.
446
+ */
447
+ class InMemorySyncProvider {
448
+ type = 'local';
449
+ doc;
450
+ cacheKey;
451
+ isConnected = false;
452
+ constructor(docName, doc, options) {
453
+ this.doc = doc;
454
+ this.cacheKey = options?.name ?? docName;
455
+ }
456
+ handleUpdate = (_update, origin) => {
457
+ // Skip updates that originated from connect() rehydration to avoid a
458
+ // redundant re-encode of the state we just applied.
459
+ if (origin === this) {
460
+ return;
461
+ }
462
+ sessionCache.set(this.cacheKey, Y.encodeStateAsUpdate(this.doc));
463
+ };
464
+ async connect() {
465
+ if (this.isConnected) {
466
+ return;
467
+ }
468
+ const cached = sessionCache.get(this.cacheKey);
469
+ if (cached) {
470
+ Y.applyUpdate(this.doc, cached, this);
471
+ }
472
+ this.doc.on('update', this.handleUpdate);
473
+ this.isConnected = true;
474
+ }
475
+ disconnect() {
476
+ this.isConnected = false;
477
+ }
478
+ async reconnect() {
479
+ this.disconnect();
480
+ return this.connect();
481
+ }
482
+ destroy() {
483
+ this.doc.off('update', this.handleUpdate);
484
+ this.isConnected = false;
485
+ }
486
+ /**
487
+ * Clears the in-memory cache.
488
+ *
489
+ * @param name - If provided, only the entry with this cache key is removed.
490
+ * If omitted, all entries are cleared.
491
+ */
492
+ static clear(name) {
493
+ if (name !== undefined) {
494
+ sessionCache.delete(name);
495
+ }
496
+ else {
497
+ sessionCache.clear();
498
+ }
499
+ }
500
+ }
501
+
434
502
  /**
435
503
  * WebSocket sync provider for real-time collaboration
436
504
  */
@@ -1063,4 +1131,4 @@ class PresignedAssetProvider {
1063
1131
  }
1064
1132
  }
1065
1133
 
1066
- export { BroadcastSyncProvider, HocuspocusSyncProvider, HttpAssetProvider, PresignedAssetProvider, WebSocketSyncProvider };
1134
+ export { BroadcastSyncProvider, HocuspocusSyncProvider, HttpAssetProvider, InMemorySyncProvider, PresignedAssetProvider, WebSocketSyncProvider };