kritzel-stencil 0.1.21 → 0.1.23

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 (43) hide show
  1. package/dist/cjs/{default-line-tool.config-Bva9deYM.js → default-line-tool.config-Ba74O1gD.js} +31 -9
  2. package/dist/cjs/index.cjs.js +1 -1
  3. package/dist/cjs/kritzel-back-to-content_32.cjs.entry.js +127 -114
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/stencil.cjs.js +1 -1
  6. package/dist/collection/classes/objects/shape.class.js +9 -3
  7. package/dist/collection/classes/objects/text.class.js +19 -3
  8. package/dist/collection/classes/tools/text-tool.class.js +3 -3
  9. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +20 -34
  10. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +171 -15
  11. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +29 -72
  12. package/dist/collection/constants/version.js +1 -1
  13. package/dist/components/index.js +1 -1
  14. package/dist/components/kritzel-controls.js +1 -1
  15. package/dist/components/kritzel-editor.js +1 -1
  16. package/dist/components/kritzel-engine.js +1 -1
  17. package/dist/components/kritzel-settings.js +1 -1
  18. package/dist/components/kritzel-tool-config.js +1 -1
  19. package/dist/components/kritzel-tooltip.js +1 -1
  20. package/dist/components/p-0YNMEgri.js +1 -0
  21. package/dist/components/p-B1qfRBi0.js +1 -0
  22. package/dist/components/{p-Dmy0R-7y.js → p-DAPeFBqC.js} +1 -1
  23. package/dist/components/{p-CYX7RMRZ.js → p-DYAnRoi2.js} +1 -1
  24. package/dist/components/{p-BsvZ2juR.js → p-IGA64WxD.js} +1 -1
  25. package/dist/components/{p-BbHELXEC.js → p-mPdux0tA.js} +2 -2
  26. package/dist/esm/{default-line-tool.config-DDIFE6oX.js → default-line-tool.config-BW07ZETV.js} +31 -9
  27. package/dist/esm/index.js +2 -2
  28. package/dist/esm/kritzel-back-to-content_32.entry.js +127 -114
  29. package/dist/esm/loader.js +1 -1
  30. package/dist/esm/stencil.js +1 -1
  31. package/dist/stencil/index.esm.js +1 -1
  32. package/dist/stencil/p-55409078.entry.js +9 -0
  33. package/dist/stencil/p-BW07ZETV.js +1 -0
  34. package/dist/stencil/stencil.esm.js +1 -1
  35. package/dist/types/components/shared/kritzel-tooltip/kritzel-tooltip.d.ts +11 -1
  36. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +3 -11
  37. package/dist/types/components.d.ts +7 -0
  38. package/dist/types/constants/version.d.ts +1 -1
  39. package/package.json +1 -1
  40. package/dist/components/p-BNT9uvII.js +0 -1
  41. package/dist/components/p-DqtvAhfs.js +0 -1
  42. package/dist/stencil/p-3fc743ee.entry.js +0 -9
  43. package/dist/stencil/p-DDIFE6oX.js +0 -1
@@ -14967,7 +14967,7 @@ class KritzelText extends KritzelBaseObject {
14967
14967
  focus(coords) {
14968
14968
  if (this.editor) {
14969
14969
  const doc = this.editor.state.doc;
14970
- if (coords.x && coords.y) {
14970
+ if (coords.x && coords.y && !this.isEmpty) {
14971
14971
  const pos = this.editor.posAtCoords({ left: coords.x, top: coords.y });
14972
14972
  if (pos) {
14973
14973
  this.editor.dispatch(this.editor.state.tr.setSelection(TextSelection.create(doc, pos.pos)));
@@ -15028,13 +15028,29 @@ class KritzelText extends KritzelBaseObject {
15028
15028
  if (!this.isEditing) {
15029
15029
  return;
15030
15030
  }
15031
- event.stopPropagation();
15031
+ // Only stop propagation if the engine is not tracking this pointer.
15032
+ // During text creation, the engine adds the pointer before the text element
15033
+ // is in the DOM. We must let move events propagate so the engine can
15034
+ // update its pointer state.
15035
+ if (!this._core.store.state.pointers.has(event.pointerId)) {
15036
+ event.stopPropagation();
15037
+ }
15032
15038
  }
15033
15039
  handlePointerUp(event) {
15034
15040
  if (!this.isEditing) {
15035
15041
  return;
15036
15042
  }
15037
- event.stopPropagation();
15043
+ // Only stop propagation if the engine is not tracking this pointer.
15044
+ // When a text is created during pointerdown, the engine adds the pointer
15045
+ // to its map before the text element exists in the DOM. By the time
15046
+ // pointerup fires, the text element may intercept the event (especially
15047
+ // on iOS where pointer capture may not redirect events in shadow DOM).
15048
+ // We must let the event propagate so the engine can clean up the pointer.
15049
+ // Without this, stale pointers accumulate and single-finger touches
15050
+ // get misinterpreted as two-finger zoom gestures.
15051
+ if (!this._core.store.state.pointers.has(event.pointerId)) {
15052
+ event.stopPropagation();
15053
+ }
15038
15054
  }
15039
15055
  copy() {
15040
15056
  const copiedObject = super.copy();
@@ -17571,10 +17587,10 @@ class KritzelTextTool extends KritzelBaseTool {
17571
17587
  }
17572
17588
  }
17573
17589
  handlePointerUp(event) {
17574
- if (event.cancelable) {
17575
- event.preventDefault();
17590
+ const activeText = this._core.store.activeText;
17591
+ if (activeText && activeText.isMounted && !activeText.editor?.hasFocus()) {
17592
+ activeText.focus({ x: event.clientX, y: event.clientY });
17576
17593
  }
17577
- this._core.store.activeText?.edit(event);
17578
17594
  }
17579
17595
  }
17580
17596
 
@@ -19159,19 +19175,25 @@ class KritzelShape extends KritzelBaseObject {
19159
19175
  if (!this.isEditing) {
19160
19176
  return;
19161
19177
  }
19162
- event.stopPropagation();
19178
+ if (!this._core.store.state.pointers.has(event.pointerId)) {
19179
+ event.stopPropagation();
19180
+ }
19163
19181
  }
19164
19182
  handlePointerMove(event) {
19165
19183
  if (!this.isEditing) {
19166
19184
  return;
19167
19185
  }
19168
- event.stopPropagation();
19186
+ if (!this._core.store.state.pointers.has(event.pointerId)) {
19187
+ event.stopPropagation();
19188
+ }
19169
19189
  }
19170
19190
  handlePointerUp(event) {
19171
19191
  if (!this.isEditing) {
19172
19192
  return;
19173
19193
  }
19174
- event.stopPropagation();
19194
+ if (!this._core.store.state.pointers.has(event.pointerId)) {
19195
+ event.stopPropagation();
19196
+ }
19175
19197
  }
19176
19198
  copy() {
19177
19199
  const copiedObject = super.copy();
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { w as writeVarUint, a as writeVarUint8Array, t as toUint8Array, r as readVarUint, b as readVarUint8Array, e as encodeStateAsUpdate, c as applyUpdate, d as encodeStateVector, f as createEncoder, g as createDecoder, s as setIfUndefined, h as create, i as fromBase64, v as varStorage, j as toBase64, o as onChange, k as createUint8ArrayFromArrayBuffer, l as offChange, m as readVarString, O as Observable, n as floor, p as getUnixTime, q as equalityDeep, u as writeVarString, x as map, y as ObservableV2, z as length, A as isNode, B as min, C as pow, H as HocuspocusProvider, D as HocuspocusProviderWebsocket } from './default-line-tool.config-DDIFE6oX.js';
2
- export { W as DEFAULT_BRUSH_CONFIG, Y as DEFAULT_LINE_TOOL_CONFIG, X as DEFAULT_TEXT_CONFIG, S as IndexedDBSyncProvider, V as KritzelAnchorManager, T as KritzelAppStateMap, J as KritzelBrushTool, Q as KritzelCursorHelper, M as KritzelEraserTool, I as KritzelGroup, F as KritzelImage, N as KritzelImageTool, G as KritzelLine, L as KritzelLineTool, E as KritzelPath, R as KritzelSelectionTool, K as KritzelText, P as KritzelTextTool, $ as KritzelThemeManager, U as KritzelWorkspace, _ as darkTheme, Z as lightTheme } from './default-line-tool.config-DDIFE6oX.js';
1
+ import { w as writeVarUint, a as writeVarUint8Array, t as toUint8Array, r as readVarUint, b as readVarUint8Array, e as encodeStateAsUpdate, c as applyUpdate, d as encodeStateVector, f as createEncoder, g as createDecoder, s as setIfUndefined, h as create, i as fromBase64, v as varStorage, j as toBase64, o as onChange, k as createUint8ArrayFromArrayBuffer, l as offChange, m as readVarString, O as Observable, n as floor, p as getUnixTime, q as equalityDeep, u as writeVarString, x as map, y as ObservableV2, z as length, A as isNode, B as min, C as pow, H as HocuspocusProvider, D as HocuspocusProviderWebsocket } from './default-line-tool.config-BW07ZETV.js';
2
+ export { W as DEFAULT_BRUSH_CONFIG, Y as DEFAULT_LINE_TOOL_CONFIG, X as DEFAULT_TEXT_CONFIG, S as IndexedDBSyncProvider, V as KritzelAnchorManager, T as KritzelAppStateMap, J as KritzelBrushTool, Q as KritzelCursorHelper, M as KritzelEraserTool, I as KritzelGroup, F as KritzelImage, N as KritzelImageTool, G as KritzelLine, L as KritzelLineTool, E as KritzelPath, R as KritzelSelectionTool, K as KritzelText, P as KritzelTextTool, $ as KritzelThemeManager, U as KritzelWorkspace, _ as darkTheme, Z as lightTheme } from './default-line-tool.config-BW07ZETV.js';
3
3
 
4
4
  /**
5
5
  * BroadcastChannel sync provider for cross-tab synchronization