kritzel-stencil 0.1.72 → 0.1.74

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 (177) hide show
  1. package/dist/cjs/index-Dc7LOVhs.js +2 -2
  2. package/dist/cjs/index.cjs.js +58 -18
  3. package/dist/cjs/{kritzel-active-users_41.cjs.entry.js → kritzel-active-users_42.cjs.entry.js} +586 -172
  4. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/stencil.cjs.js +1 -1
  7. package/dist/cjs/{workspace.migrations-DcwqsqPC.js → workspace.migrations-Dyt35LBC.js} +58 -5
  8. package/dist/collection/classes/core/core.class.js +9 -3
  9. package/dist/collection/classes/core/store.class.js +20 -6
  10. package/dist/collection/classes/handlers/selection.handler.js +15 -2
  11. package/dist/collection/classes/objects/base-object.class.js +2 -0
  12. package/dist/collection/classes/objects/custom-element.class.js +1 -0
  13. package/dist/collection/classes/objects/group.class.js +1 -0
  14. package/dist/collection/classes/objects/image.class.js +1 -0
  15. package/dist/collection/classes/objects/line.class.js +1 -0
  16. package/dist/collection/classes/objects/path.class.js +1 -0
  17. package/dist/collection/classes/objects/selection-box.class.js +1 -0
  18. package/dist/collection/classes/objects/selection-group.class.js +13 -1
  19. package/dist/collection/classes/objects/shape.class.js +1 -0
  20. package/dist/collection/classes/objects/text.class.js +1 -0
  21. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js +57 -17
  22. package/dist/collection/classes/structures/object-map.structure.js +102 -7
  23. package/dist/collection/classes/tools/brush-tool.class.js +4 -0
  24. package/dist/collection/classes/tools/line-tool.class.js +4 -0
  25. package/dist/collection/classes/tools/shape-tool.class.js +2 -0
  26. package/dist/collection/collection-manifest.json +3 -2
  27. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.css +110 -0
  28. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.js +347 -0
  29. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  30. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +3 -3
  31. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +150 -109
  32. package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.js +3 -3
  33. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +1 -1
  34. package/dist/collection/components/shared/kritzel-button/kritzel-button.js +2 -2
  35. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  36. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  37. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +1 -1
  38. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  39. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  40. package/dist/collection/components/shared/kritzel-input/kritzel-input.js +1 -1
  41. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.js +3 -3
  42. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
  43. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
  44. package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.js +1 -1
  45. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
  46. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  47. package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.js +1 -1
  48. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
  49. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  50. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
  51. package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
  52. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -1
  53. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +5 -5
  54. package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.js +1 -1
  55. package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +1 -1
  56. package/dist/collection/components/ui/kritzel-export/kritzel-export.js +1 -1
  57. package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.js +1 -1
  58. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +1 -1
  59. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +1 -1
  60. package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.js +2 -2
  61. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  62. package/dist/collection/constants/schema.constants.js +1 -1
  63. package/dist/collection/constants/version.js +1 -1
  64. package/dist/collection/interfaces/remote-cursor.interface.js +1 -0
  65. package/dist/collection/migrations/workspace.migrations.js +10 -1
  66. package/dist/components/index.d.ts +2 -0
  67. package/dist/components/index.js +1 -1
  68. package/dist/components/kritzel-active-users.js +1 -1
  69. package/dist/components/kritzel-avatar.js +1 -1
  70. package/dist/components/kritzel-awareness-cursors.d.ts +11 -0
  71. package/dist/components/kritzel-awareness-cursors.js +1 -0
  72. package/dist/components/kritzel-back-to-content.js +1 -1
  73. package/dist/components/kritzel-brush-style.js +1 -1
  74. package/dist/components/kritzel-button.js +1 -1
  75. package/dist/components/kritzel-color-palette.js +1 -1
  76. package/dist/components/kritzel-color.js +1 -1
  77. package/dist/components/kritzel-context-menu.js +1 -1
  78. package/dist/components/kritzel-controls.js +1 -1
  79. package/dist/components/kritzel-current-user-dialog.js +1 -1
  80. package/dist/components/kritzel-current-user.js +1 -1
  81. package/dist/components/kritzel-cursor-trail.js +1 -1
  82. package/dist/components/kritzel-dropdown.js +1 -1
  83. package/dist/components/kritzel-editor.js +1 -1
  84. package/dist/components/kritzel-engine.js +1 -1
  85. package/dist/components/kritzel-export.js +1 -1
  86. package/dist/components/kritzel-font-family.js +1 -1
  87. package/dist/components/kritzel-font-size.js +1 -1
  88. package/dist/components/kritzel-font.js +1 -1
  89. package/dist/components/kritzel-input.js +1 -1
  90. package/dist/components/kritzel-login-dialog.js +1 -1
  91. package/dist/components/kritzel-master-detail.js +1 -1
  92. package/dist/components/kritzel-menu-item.js +1 -1
  93. package/dist/components/kritzel-menu.js +1 -1
  94. package/dist/components/kritzel-more-menu.js +1 -1
  95. package/dist/components/kritzel-numeric-input.js +1 -1
  96. package/dist/components/kritzel-opacity-slider.js +1 -1
  97. package/dist/components/kritzel-portal.js +1 -1
  98. package/dist/components/kritzel-settings.js +1 -1
  99. package/dist/components/kritzel-share-dialog.js +1 -1
  100. package/dist/components/kritzel-slide-toggle.js +1 -1
  101. package/dist/components/kritzel-split-button.js +1 -1
  102. package/dist/components/kritzel-stroke-size.js +1 -1
  103. package/dist/components/kritzel-tool-config.js +1 -1
  104. package/dist/components/kritzel-tooltip.js +1 -1
  105. package/dist/components/kritzel-utility-panel.js +1 -1
  106. package/dist/components/kritzel-workspace-manager.js +1 -1
  107. package/dist/components/{p-Dp8idtVD.js → p-0kShCfeb.js} +1 -1
  108. package/dist/components/{p-B47JuZiD.js → p-2OYw6GJ7.js} +1 -1
  109. package/dist/components/p-7o2FWtFx.js +1 -0
  110. package/dist/components/{p-dR_q96Q3.js → p-B4Oqnl55.js} +1 -1
  111. package/dist/components/{p-C5KuV1pK.js → p-BA0ayKqO.js} +1 -1
  112. package/dist/components/{p-NbNVTRk6.js → p-BEJQ2kP7.js} +1 -1
  113. package/dist/components/p-BSipRoFx.js +1 -0
  114. package/dist/components/{p-CDadAOMw.js → p-BeFUNGEI.js} +1 -1
  115. package/dist/components/{p-35nrk8s0.js → p-BiByyU2C.js} +1 -1
  116. package/dist/components/{p-CCAWSyDD.js → p-BiouZo1q.js} +1 -1
  117. package/dist/components/{p-CSExtYKI.js → p-ByR0VXeU.js} +1 -1
  118. package/dist/components/{p-1MGcXTLv.js → p-C1uR_ZNW.js} +1 -1
  119. package/dist/components/{p-x8PzaMuD.js → p-C69Stayh.js} +1 -1
  120. package/dist/components/{p-Ch0UlFwq.js → p-C7SBI_0T.js} +1 -1
  121. package/dist/components/{p-DEzfXrGX.js → p-CAIGuV2J.js} +1 -1
  122. package/dist/components/p-CJ2eHeoV.js +1 -0
  123. package/dist/components/p-CW-VyJgK.js +1 -0
  124. package/dist/components/{p-DW4ADV9w.js → p-CZhyKp-f.js} +1 -1
  125. package/dist/components/p-CsR4owzk.js +1 -0
  126. package/dist/components/{p-BG1IxseV.js → p-CsoDfhD5.js} +1 -1
  127. package/dist/components/{p-DpFu5yAt.js → p-D1O7DxL4.js} +1 -1
  128. package/dist/components/{p-B5ouV8EQ.js → p-DRbG92F9.js} +1 -1
  129. package/dist/components/{p-C3eaM9TB.js → p-DS0xx1eT.js} +1 -1
  130. package/dist/components/{p-jx8VOz7S.js → p-DSzQ6H2j.js} +1 -1
  131. package/dist/components/{p-DsIlDGDO.js → p-DXjuuVq9.js} +1 -1
  132. package/dist/components/p-DXpYcAnT.js +1 -0
  133. package/dist/components/{p-DiFVw6IQ.js → p-Da46jw3N.js} +1 -1
  134. package/dist/components/{p-C6kZf91d.js → p-Dj_Qjga5.js} +1 -1
  135. package/dist/components/{p-Do0Q5-iC.js → p-DvIEvoZu.js} +1 -1
  136. package/dist/components/{p-CnVzLD5e.js → p-GYI7sDxr.js} +1 -1
  137. package/dist/components/{p-CcBM_ClD.js → p-HLbqRJGs.js} +1 -1
  138. package/dist/components/{p-VHyNcODZ.js → p-KQzWumjB.js} +1 -1
  139. package/dist/components/p-RJWe82kG.js +9 -0
  140. package/dist/components/{p-VAkeZOZL.js → p-TyR-YTXm.js} +1 -1
  141. package/dist/components/{p-CHtn5xr6.js → p-b4gyXoju.js} +1 -1
  142. package/dist/components/p-iRL0wQHQ.js +1 -0
  143. package/dist/components/{p-CqLaHE27.js → p-kj9wbLY8.js} +1 -1
  144. package/dist/components/{p-DaHq4iG1.js → p-xM-_OeRO.js} +1 -1
  145. package/dist/esm/index-MV-81ybv.js +2 -2
  146. package/dist/esm/index.js +59 -19
  147. package/dist/esm/{kritzel-active-users_41.entry.js → kritzel-active-users_42.entry.js} +586 -173
  148. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  149. package/dist/esm/loader.js +1 -1
  150. package/dist/esm/stencil.js +1 -1
  151. package/dist/esm/{workspace.migrations-BGixvB76.js → workspace.migrations-B99F1MdT.js} +58 -5
  152. package/dist/stencil/index.esm.js +1 -1
  153. package/dist/stencil/p-2a60e1bc.entry.js +9 -0
  154. package/dist/stencil/p-B99F1MdT.js +1 -0
  155. package/dist/stencil/{p-016ad76a.entry.js → p-fc21e29c.entry.js} +1 -1
  156. package/dist/stencil/stencil.esm.js +1 -1
  157. package/dist/types/classes/core/store.class.d.ts +10 -2
  158. package/dist/types/classes/objects/base-object.class.d.ts +1 -0
  159. package/dist/types/classes/objects/selection-group.class.d.ts +5 -0
  160. package/dist/types/classes/providers/hocuspocus-sync-provider.class.d.ts +3 -0
  161. package/dist/types/classes/structures/object-map.structure.d.ts +41 -0
  162. package/dist/types/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.d.ts +26 -0
  163. package/dist/types/components.d.ts +39 -4
  164. package/dist/types/constants/schema.constants.d.ts +1 -1
  165. package/dist/types/constants/version.d.ts +1 -1
  166. package/dist/types/interfaces/object.interface.d.ts +1 -0
  167. package/dist/types/interfaces/remote-cursor.interface.d.ts +17 -0
  168. package/dist/types/interfaces/theme.interface.d.ts +7 -0
  169. package/package.json +1 -1
  170. package/dist/components/p-B2vjbWy-.js +0 -9
  171. package/dist/components/p-BvToKcu1.js +0 -1
  172. package/dist/components/p-CNro30tB.js +0 -1
  173. package/dist/components/p-Duv3EM3w.js +0 -1
  174. package/dist/components/p-KFsLHwYm.js +0 -1
  175. package/dist/components/p-hCORwbZh.js +0 -1
  176. package/dist/stencil/p-BGixvB76.js +0 -1
  177. package/dist/stencil/p-a0f5c4ad.entry.js +0 -9
@@ -132,10 +132,10 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
132
132
  }
133
133
  switch(bundleId) {
134
134
 
135
- case 'kritzel-active-users_41.cjs':
135
+ case 'kritzel-active-users_42.cjs':
136
136
  return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
137
137
  /* webpackMode: "lazy" */
138
- './kritzel-active-users_41.cjs.entry.js')); }).then(processMod, consoleError);
138
+ './kritzel-active-users_42.cjs.entry.js')); }).then(processMod, consoleError);
139
139
  case 'kritzel-brush-style.cjs':
140
140
  return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
141
141
  /* webpackMode: "lazy" */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var workspace_migrations = require('./workspace.migrations-DcwqsqPC.js');
3
+ var workspace_migrations = require('./workspace.migrations-Dyt35LBC.js');
4
4
  var Y = require('yjs');
5
5
  var yWebsocket = require('y-websocket');
6
6
  require('y-indexeddb');
@@ -556,6 +556,9 @@ class HocuspocusSyncProvider {
556
556
  isConnected = false;
557
557
  isSynced = false;
558
558
  usesSharedSocket = false;
559
+ isDestroyed = false;
560
+ connectTimeout = null;
561
+ pendingConnectReject = null;
559
562
  get awareness() {
560
563
  return this.provider.awareness;
561
564
  }
@@ -574,8 +577,13 @@ class HocuspocusSyncProvider {
574
577
  name,
575
578
  document: doc,
576
579
  token: options?.token || null,
580
+ onStatus: (data) => {
581
+ if (options?.onStatus) {
582
+ options.onStatus(data);
583
+ }
584
+ },
577
585
  onConnect: () => {
578
- if (this.isConnected) {
586
+ if (this.isConnected || this.isDestroyed) {
579
587
  return;
580
588
  }
581
589
  this.isConnected = true;
@@ -587,7 +595,7 @@ class HocuspocusSyncProvider {
587
595
  }
588
596
  },
589
597
  onDisconnect: () => {
590
- if (!this.isConnected && !this.isSynced) {
598
+ if (this.isDestroyed || (!this.isConnected && !this.isSynced)) {
591
599
  return;
592
600
  }
593
601
  this.isConnected = false;
@@ -600,7 +608,7 @@ class HocuspocusSyncProvider {
600
608
  }
601
609
  },
602
610
  onSynced: () => {
603
- if (this.isSynced) {
611
+ if (this.isSynced || this.isDestroyed) {
604
612
  return;
605
613
  }
606
614
  this.isSynced = true;
@@ -619,9 +627,6 @@ class HocuspocusSyncProvider {
619
627
  if (options?.onAuthenticationFailed) {
620
628
  config.onAuthenticationFailed = options.onAuthenticationFailed;
621
629
  }
622
- if (options?.onStatus) {
623
- config.onStatus = options.onStatus;
624
- }
625
630
  this.provider = new workspace_migrations.HocuspocusProvider(config);
626
631
  // Must call attach() explicitly when using shared socket
627
632
  this.provider.attach();
@@ -637,8 +642,14 @@ class HocuspocusSyncProvider {
637
642
  name,
638
643
  document: doc,
639
644
  token: options?.token || null,
645
+ autoConnect: false,
646
+ onStatus: (data) => {
647
+ if (options?.onStatus) {
648
+ options.onStatus(data);
649
+ }
650
+ },
640
651
  onConnect: () => {
641
- if (this.isConnected) {
652
+ if (this.isConnected || this.isDestroyed) {
642
653
  return;
643
654
  }
644
655
  this.isConnected = true;
@@ -650,7 +661,7 @@ class HocuspocusSyncProvider {
650
661
  }
651
662
  },
652
663
  onDisconnect: () => {
653
- if (!this.isConnected && !this.isSynced) {
664
+ if (this.isDestroyed || (!this.isConnected && !this.isSynced)) {
654
665
  return;
655
666
  }
656
667
  this.isConnected = false;
@@ -663,7 +674,7 @@ class HocuspocusSyncProvider {
663
674
  }
664
675
  },
665
676
  onSynced: () => {
666
- if (this.isSynced) {
677
+ if (this.isSynced || this.isDestroyed) {
667
678
  return;
668
679
  }
669
680
  this.isSynced = true;
@@ -682,9 +693,6 @@ class HocuspocusSyncProvider {
682
693
  if (options?.onAuthenticationFailed) {
683
694
  config.onAuthenticationFailed = options.onAuthenticationFailed;
684
695
  }
685
- if (options?.onStatus) {
686
- config.onStatus = options.onStatus;
687
- }
688
696
  if (options?.WebSocketPolyfill) {
689
697
  config.WebSocketPolyfill = options.WebSocketPolyfill;
690
698
  }
@@ -752,22 +760,36 @@ class HocuspocusSyncProvider {
752
760
  };
753
761
  }
754
762
  async connect() {
755
- if (this.isSynced) {
763
+ if (this.isSynced || this.isDestroyed) {
756
764
  return;
757
765
  }
758
766
  return new Promise((resolve, reject) => {
759
- const timeout = setTimeout(() => {
767
+ // Store reject function so we can cancel the connection if destroyed
768
+ this.pendingConnectReject = reject;
769
+ this.connectTimeout = setTimeout(() => {
770
+ this.pendingConnectReject = null;
771
+ this.connectTimeout = null;
760
772
  reject(new Error('Hocuspocus connection timeout'));
761
773
  }, 10000); // 10 second timeout
762
774
  const syncHandler = () => {
763
- clearTimeout(timeout);
775
+ if (this.connectTimeout) {
776
+ clearTimeout(this.connectTimeout);
777
+ this.connectTimeout = null;
778
+ }
779
+ this.pendingConnectReject = null;
764
780
  this.provider.off('synced', syncHandler);
765
- resolve();
781
+ if (!this.isDestroyed) {
782
+ resolve();
783
+ }
766
784
  };
767
785
  this.provider.on('synced', syncHandler);
768
786
  // If already synced, resolve immediately
769
787
  if (this.provider.isSynced) {
770
- clearTimeout(timeout);
788
+ if (this.connectTimeout) {
789
+ clearTimeout(this.connectTimeout);
790
+ this.connectTimeout = null;
791
+ }
792
+ this.pendingConnectReject = null;
771
793
  this.provider.off('synced', syncHandler);
772
794
  resolve();
773
795
  return;
@@ -779,6 +801,14 @@ class HocuspocusSyncProvider {
779
801
  });
780
802
  }
781
803
  disconnect() {
804
+ // Cancel any pending connection attempt
805
+ if (this.connectTimeout) {
806
+ clearTimeout(this.connectTimeout);
807
+ this.connectTimeout = null;
808
+ }
809
+ if (this.pendingConnectReject) {
810
+ this.pendingConnectReject = null; // Don't reject, just abandon the promise
811
+ }
782
812
  if (this.provider) {
783
813
  if (this.usesSharedSocket) {
784
814
  // Detach from shared socket instead of disconnecting
@@ -792,6 +822,16 @@ class HocuspocusSyncProvider {
792
822
  this.isSynced = false;
793
823
  }
794
824
  destroy() {
825
+ // Mark as destroyed first to prevent any callbacks from doing work
826
+ this.isDestroyed = true;
827
+ // Cancel any pending connection attempt
828
+ if (this.connectTimeout) {
829
+ clearTimeout(this.connectTimeout);
830
+ this.connectTimeout = null;
831
+ }
832
+ if (this.pendingConnectReject) {
833
+ this.pendingConnectReject = null; // Don't reject, just abandon the promise
834
+ }
795
835
  if (this.provider) {
796
836
  this.provider.destroy();
797
837
  }