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.
- package/dist/cjs/index.cjs.js +70 -1
- package/dist/cjs/kritzel-active-users_42.cjs.entry.js +200 -41
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/cjs/{workspace.migrations-D5sPPbQN.js → workspace.migrations-BlC8KRoQ.js} +12 -63
- package/dist/collection/classes/core/core.class.js +16 -5
- package/dist/collection/classes/core/store.class.js +8 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +2 -2
- package/dist/collection/classes/handlers/key.handler.js +1 -2
- package/dist/collection/classes/objects/shape.class.js +2 -3
- package/dist/collection/classes/objects/text.class.js +2 -3
- package/dist/collection/classes/providers/sync/in-memory-sync-provider.class.js +68 -0
- package/dist/collection/classes/registries/tool.registry.js +29 -8
- package/dist/collection/classes/tools/image-tool.class.js +2 -3
- package/dist/collection/classes/tools/line-tool.class.js +1 -2
- package/dist/collection/classes/tools/shape-tool.class.js +3 -4
- package/dist/collection/classes/tools/text-tool.class.js +2 -3
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +0 -2
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +16 -7
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +2 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +56 -32
- package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +1 -0
- package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +43 -9
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +1 -1
- package/dist/collection/constants/version.js +1 -1
- package/dist/collection/helpers/tool-config.helper.js +6 -5
- package/dist/collection/index.js +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-more-menu.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/p-8b9zAWnS.js +1 -0
- package/dist/components/{p-Cx6YyDdF.js → p-BV3EJRtU.js} +1 -1
- package/dist/components/p-CSODtZrV.js +1 -0
- package/dist/components/p-CoJdbj3f.js +1 -0
- package/dist/components/p-Ctd1w9-z.js +1 -0
- package/dist/components/{p-C9jegh9w.js → p-D0ctIEh_.js} +1 -1
- package/dist/components/p-P0p4WBpa.js +9 -0
- package/dist/esm/index.js +71 -3
- package/dist/esm/kritzel-active-users_42.entry.js +200 -41
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/esm/{workspace.migrations-BnTvdnKU.js → workspace.migrations-BLXBI--a.js} +13 -62
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-3058e485.entry.js +9 -0
- package/dist/stencil/p-BLXBI--a.js +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/core.class.d.ts +8 -0
- package/dist/types/classes/providers/sync/in-memory-sync-provider.class.d.ts +38 -0
- package/dist/types/classes/registries/tool.registry.d.ts +24 -7
- package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +5 -0
- package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +4 -0
- package/dist/types/components.d.ts +2 -0
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/components/p-BWB2UGxj.js +0 -9
- package/dist/components/p-BWJGv9ZO.js +0 -1
- package/dist/components/p-BWRjTm0J.js +0 -1
- package/dist/components/p-Clo5Ydi1.js +0 -1
- package/dist/components/p-D9-C4GfD.js +0 -1
- package/dist/stencil/p-BnTvdnKU.js +0 -1
- package/dist/stencil/p-bfd1fca8.entry.js +0 -9
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var workspace_migrations = require('./workspace.migrations-
|
|
3
|
+
var workspace_migrations = require('./workspace.migrations-BlC8KRoQ.js');
|
|
4
4
|
var Y = require('yjs');
|
|
5
5
|
var yWebsocket = require('y-websocket');
|
|
6
6
|
require('y-indexeddb');
|
|
@@ -452,6 +452,74 @@ class BroadcastSyncProvider {
|
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
|
|
455
|
+
/**
|
|
456
|
+
* Module-scoped cache that survives component removal and remounting
|
|
457
|
+
* within the same JS runtime. Cleared on page reload.
|
|
458
|
+
*/
|
|
459
|
+
const sessionCache = new Map();
|
|
460
|
+
/**
|
|
461
|
+
* In-memory sync provider for session-scoped persistence.
|
|
462
|
+
*
|
|
463
|
+
* State survives the component being removed from the DOM and later
|
|
464
|
+
* re-added within the same page session, but is lost on page reload.
|
|
465
|
+
* Intended for documentation demos where durable IndexedDB persistence
|
|
466
|
+
* is not desired.
|
|
467
|
+
*/
|
|
468
|
+
class InMemorySyncProvider {
|
|
469
|
+
type = 'local';
|
|
470
|
+
doc;
|
|
471
|
+
cacheKey;
|
|
472
|
+
isConnected = false;
|
|
473
|
+
constructor(docName, doc, options) {
|
|
474
|
+
this.doc = doc;
|
|
475
|
+
this.cacheKey = options?.name ?? docName;
|
|
476
|
+
}
|
|
477
|
+
handleUpdate = (_update, origin) => {
|
|
478
|
+
// Skip updates that originated from connect() rehydration to avoid a
|
|
479
|
+
// redundant re-encode of the state we just applied.
|
|
480
|
+
if (origin === this) {
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
sessionCache.set(this.cacheKey, Y__namespace.encodeStateAsUpdate(this.doc));
|
|
484
|
+
};
|
|
485
|
+
async connect() {
|
|
486
|
+
if (this.isConnected) {
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
const cached = sessionCache.get(this.cacheKey);
|
|
490
|
+
if (cached) {
|
|
491
|
+
Y__namespace.applyUpdate(this.doc, cached, this);
|
|
492
|
+
}
|
|
493
|
+
this.doc.on('update', this.handleUpdate);
|
|
494
|
+
this.isConnected = true;
|
|
495
|
+
}
|
|
496
|
+
disconnect() {
|
|
497
|
+
this.isConnected = false;
|
|
498
|
+
}
|
|
499
|
+
async reconnect() {
|
|
500
|
+
this.disconnect();
|
|
501
|
+
return this.connect();
|
|
502
|
+
}
|
|
503
|
+
destroy() {
|
|
504
|
+
this.doc.off('update', this.handleUpdate);
|
|
505
|
+
this.isConnected = false;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Clears the in-memory cache.
|
|
509
|
+
*
|
|
510
|
+
* @param name - If provided, only the entry with this cache key is removed.
|
|
511
|
+
* If omitted, all entries are cleared.
|
|
512
|
+
*/
|
|
513
|
+
static clear(name) {
|
|
514
|
+
if (name !== undefined) {
|
|
515
|
+
sessionCache.delete(name);
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
sessionCache.clear();
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
|
|
455
523
|
/**
|
|
456
524
|
* WebSocket sync provider for real-time collaboration
|
|
457
525
|
*/
|
|
@@ -1128,5 +1196,6 @@ exports.runMigrations = workspace_migrations.runMigrations;
|
|
|
1128
1196
|
exports.BroadcastSyncProvider = BroadcastSyncProvider;
|
|
1129
1197
|
exports.HocuspocusSyncProvider = HocuspocusSyncProvider;
|
|
1130
1198
|
exports.HttpAssetProvider = HttpAssetProvider;
|
|
1199
|
+
exports.InMemorySyncProvider = InMemorySyncProvider;
|
|
1131
1200
|
exports.PresignedAssetProvider = PresignedAssetProvider;
|
|
1132
1201
|
exports.WebSocketSyncProvider = WebSocketSyncProvider;
|