kritzel-stencil 0.4.19 → 0.4.21

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 (217) hide show
  1. package/LICENSE +21 -21
  2. package/LICENSE.md +49 -49
  3. package/dist/cjs/{index-Dn19mGl-.js → index-Xav9JFHg.js} +11 -47
  4. package/dist/cjs/index.cjs.js +1 -1
  5. package/dist/cjs/kritzel-active-users_47.cjs.entry.js +151 -119
  6. package/dist/cjs/kritzel-brush-style.cjs.entry.js +2 -2
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{schema.constants-CY0WWJYd.js → schema.constants-CjN-B633.js} +20 -44
  9. package/dist/cjs/stencil.cjs.js +2 -2
  10. package/dist/collection/classes/structures/app-state-map.structure.js +16 -6
  11. package/dist/collection/collection-manifest.json +1 -1
  12. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.css +115 -115
  13. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.js +1 -1
  14. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -10
  15. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  16. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +160 -160
  17. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +18 -18
  18. package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +80 -80
  19. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +43 -21
  20. package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.css +29 -29
  21. package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.js +2 -2
  22. package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.css +58 -58
  23. package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.js +3 -3
  24. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +42 -42
  25. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +3 -3
  26. package/dist/collection/components/shared/kritzel-button/kritzel-button.css +73 -73
  27. package/dist/collection/components/shared/kritzel-button/kritzel-button.js +2 -2
  28. package/dist/collection/components/shared/kritzel-color/kritzel-color.css +24 -24
  29. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  30. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +46 -46
  31. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  32. package/dist/collection/components/shared/kritzel-dialog/kritzel-dialog.css +209 -209
  33. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +190 -190
  34. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +2 -2
  35. package/dist/collection/components/shared/kritzel-font/kritzel-font.css +10 -10
  36. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  37. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +48 -48
  38. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +2 -2
  39. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +30 -30
  40. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  41. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +18 -18
  42. package/dist/collection/components/shared/kritzel-input/kritzel-input.css +69 -69
  43. package/dist/collection/components/shared/kritzel-input/kritzel-input.js +1 -1
  44. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -60
  45. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +3 -3
  46. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.css +190 -190
  47. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.js +3 -3
  48. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +34 -34
  49. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
  50. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +166 -166
  51. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
  52. package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.css +102 -102
  53. package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.js +1 -1
  54. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -85
  55. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
  56. package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.css +68 -68
  57. package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.js +2 -2
  58. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  59. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -47
  60. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +4 -4
  61. package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.css +48 -48
  62. package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.js +1 -1
  63. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +78 -78
  64. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
  65. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +37 -37
  66. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  67. package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.css +50 -50
  68. package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.js +1 -1
  69. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +18 -18
  70. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
  71. package/dist/collection/components/ui/kritzel-active-users/kritzel-active-users.css +65 -65
  72. package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.css +42 -42
  73. package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
  74. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +112 -112
  75. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +331 -331
  76. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +6 -6
  77. package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.css +11 -11
  78. package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.js +1 -1
  79. package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.css +39 -39
  80. package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +1 -1
  81. package/dist/collection/components/ui/kritzel-export/kritzel-export.css +89 -89
  82. package/dist/collection/components/ui/kritzel-export/kritzel-export.js +1 -1
  83. package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.css +50 -50
  84. package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.js +1 -1
  85. package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.css +98 -98
  86. package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.js +1 -1
  87. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +58 -58
  88. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +2 -2
  89. package/dist/collection/components/ui/kritzel-notification-card/kritzel-notification-card.css +101 -101
  90. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.css +137 -137
  91. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +1 -1
  92. package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.css +150 -150
  93. package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.js +2 -2
  94. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -38
  95. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +45 -45
  96. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  97. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +16 -16
  98. package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.css +72 -72
  99. package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.js +1 -1
  100. package/dist/collection/constants/version.js +1 -1
  101. package/dist/collection/helpers/cursor.helper.js +6 -6
  102. package/dist/collection/helpers/svg-export.helper.js +41 -41
  103. package/dist/components/index.js +3 -3
  104. package/dist/components/kritzel-active-users.js +1 -1
  105. package/dist/components/kritzel-avatar.js +1 -1
  106. package/dist/components/kritzel-awareness-cursors.js +1 -1
  107. package/dist/components/kritzel-back-to-content.js +1 -1
  108. package/dist/components/kritzel-brush-style.js +4 -4
  109. package/dist/components/kritzel-button.js +1 -1
  110. package/dist/components/kritzel-color-palette.js +1 -1
  111. package/dist/components/kritzel-color.js +1 -1
  112. package/dist/components/kritzel-context-menu.js +1 -1
  113. package/dist/components/kritzel-controls.js +1 -1
  114. package/dist/components/kritzel-current-user-dialog.js +1 -1
  115. package/dist/components/kritzel-current-user.js +1 -1
  116. package/dist/components/kritzel-cursor-trail.js +1 -1
  117. package/dist/components/kritzel-dialog.js +1 -1
  118. package/dist/components/kritzel-dropdown.js +1 -1
  119. package/dist/components/kritzel-editor.js +56 -56
  120. package/dist/components/kritzel-engine.js +1 -1
  121. package/dist/components/kritzel-export.js +1 -1
  122. package/dist/components/kritzel-font-family.js +1 -1
  123. package/dist/components/kritzel-font-size.js +1 -1
  124. package/dist/components/kritzel-font.js +1 -1
  125. package/dist/components/kritzel-icon.js +1 -1
  126. package/dist/components/kritzel-input.js +1 -1
  127. package/dist/components/kritzel-line-endings.js +1 -1
  128. package/dist/components/kritzel-loading-overlay.js +1 -1
  129. package/dist/components/kritzel-login-dialog.js +1 -1
  130. package/dist/components/kritzel-master-detail.js +1 -1
  131. package/dist/components/kritzel-menu-item.js +1 -1
  132. package/dist/components/kritzel-menu.js +1 -1
  133. package/dist/components/kritzel-more-menu.js +1 -1
  134. package/dist/components/kritzel-notification-card.js +1 -1
  135. package/dist/components/kritzel-numeric-input.js +1 -1
  136. package/dist/components/kritzel-opacity-slider.js +1 -1
  137. package/dist/components/kritzel-pill-tabs.js +1 -1
  138. package/dist/components/kritzel-portal.js +1 -1
  139. package/dist/components/kritzel-settings.js +1 -1
  140. package/dist/components/kritzel-shape-fill.js +1 -1
  141. package/dist/components/kritzel-share-dialog.js +1 -1
  142. package/dist/components/kritzel-slide-toggle.js +1 -1
  143. package/dist/components/kritzel-split-button.js +1 -1
  144. package/dist/components/kritzel-stroke-size.js +1 -1
  145. package/dist/components/kritzel-sync-indicator.js +1 -1
  146. package/dist/components/kritzel-tool-config.js +1 -1
  147. package/dist/components/kritzel-tooltip.js +1 -1
  148. package/dist/components/kritzel-utility-panel.js +1 -1
  149. package/dist/components/kritzel-watermark.js +1 -1
  150. package/dist/components/kritzel-workspace-manager.js +1 -1
  151. package/dist/components/kritzel-zoom-panel.js +1 -1
  152. package/dist/components/{p-CLAz6RJc.js → p-2WiGyky4.js} +3 -3
  153. package/dist/components/{p-zG-WUBGF.js → p-4SPnZZkH.js} +4 -4
  154. package/dist/components/{p-MhQxGUvY.js → p-B-585egz.js} +3 -3
  155. package/dist/components/{p-C9_yBEoX.js → p-B43upypT.js} +10 -30
  156. package/dist/components/{p-CSKToqUl.js → p-B5SWPDuq.js} +4 -4
  157. package/dist/components/{p-Covorf4C.js → p-BFYtCsZu.js} +3 -3
  158. package/dist/components/{p-DYPA7jpg.js → p-BPsKYMH6.js} +2 -2
  159. package/dist/components/{p-BL0aCu3R.js → p-BdCrcQ0_.js} +9 -9
  160. package/dist/components/{p-Cx-L_28S.js → p-BoN700-O.js} +3 -3
  161. package/dist/components/{p-ME1sDz3f.js → p-BozrueXV.js} +2 -2
  162. package/dist/components/{p-D2VcPEtL.js → p-BrNsOp2v.js} +6 -6
  163. package/dist/components/{p-BXUx_C0N.js → p-BsLI_BWq.js} +2 -2
  164. package/dist/components/{p-dAXnRkjA.js → p-C98Eb3_R.js} +5 -5
  165. package/dist/components/{p-Bxi-Bm49.js → p-CAoN_STZ.js} +2 -2
  166. package/dist/components/{p-CSWCmyzb.js → p-CF8pLc07.js} +5 -5
  167. package/dist/components/{p-D3BzgkIE.js → p-CSPYkLLH.js} +2 -2
  168. package/dist/components/{p-Ck-87E2G.js → p-CSuU8frA.js} +1 -1
  169. package/dist/components/{p-Di--2boB.js → p-CXpv9Rxe.js} +3 -3
  170. package/dist/components/{p-Csxx9TbU.js → p-C_f_QElb.js} +104 -96
  171. package/dist/components/{p-o3NYKrVL.js → p-CaBbajU2.js} +3 -3
  172. package/dist/components/{p-3tBE7SyG.js → p-Cm33td2O.js} +2 -2
  173. package/dist/components/{p-vDCa_ZDm.js → p-CrHvaLRV.js} +3 -3
  174. package/dist/components/{p-DT_WBwsw.js → p-CwZ3KKFq.js} +6 -6
  175. package/dist/components/{p-BZZ3KRPk.js → p-CzW58DHM.js} +3 -3
  176. package/dist/components/{p-BrqSjRJN.js → p-Czhdc844.js} +3 -3
  177. package/dist/components/{p-BkXQL5Dl.js → p-D1rjfWgJ.js} +5 -5
  178. package/dist/components/{p-DPsbNStn.js → p-DB58Oa5V.js} +2 -2
  179. package/dist/components/{p-DafP9PAA.js → p-DBqoPgev.js} +2 -2
  180. package/dist/components/{p-BrA9NBEE.js → p-DDTMGbtA.js} +21 -21
  181. package/dist/components/{p-Dznwo6oc.js → p-DKGg-76-.js} +2 -2
  182. package/dist/components/{p-Dp1CD4gK.js → p-DVXTPI71.js} +2 -2
  183. package/dist/components/{p-QSyeAy8R.js → p-DX2nriaq.js} +2 -2
  184. package/dist/components/{p-CHoOe3FD.js → p-Df3BwVGy.js} +3 -3
  185. package/dist/components/{p-DcUIO14-.js → p-Dt7-I2Xz.js} +4 -4
  186. package/dist/components/{p-BShrnlam.js → p-DtnMdWWB.js} +2 -2
  187. package/dist/components/{p-Ch-KG9To.js → p-DwMqCX2P.js} +3 -3
  188. package/dist/components/{p-fSV6KVTC.js → p-GKmqCI8r.js} +3 -3
  189. package/dist/components/{p-CWAChRD5.js → p-HoO86l1o.js} +12 -12
  190. package/dist/components/{p-Qdo3E8dr.js → p-PjPPCHVL.js} +2 -2
  191. package/dist/components/{p-D6JycG-I.js → p-bAacqNHq.js} +3 -3
  192. package/dist/components/{p-DjXQxw9R.js → p-djJSnjAX.js} +3 -3
  193. package/dist/components/{p-b0J2ktAm.js → p-dsxHDlQ3.js} +7 -7
  194. package/dist/components/{p-BppcoKoo.js → p-eZXIu4yK.js} +5 -5
  195. package/dist/components/{p-BFYT03fw.js → p-fL9rl200.js} +3 -3
  196. package/dist/components/{p-1Q4VnThv.js → p-jIKskj3S.js} +3 -3
  197. package/dist/components/{p-D0Trc3IQ.js → p-vqEUQ-4Q.js} +5 -5
  198. package/dist/esm/{index-2va1Pk9z.js → index-Dhio9uis.js} +11 -47
  199. package/dist/esm/index.js +2 -2
  200. package/dist/esm/kritzel-active-users_47.entry.js +151 -119
  201. package/dist/esm/kritzel-brush-style.entry.js +2 -2
  202. package/dist/esm/loader.js +2 -2
  203. package/dist/esm/{schema.constants-DBvUmuDH.js → schema.constants-DfvqHmxc.js} +20 -44
  204. package/dist/esm/stencil.js +3 -3
  205. package/dist/stencil/index.esm.js +2 -2
  206. package/dist/stencil/{p-0250005e.entry.js → p-832b80e9.entry.js} +151 -119
  207. package/dist/stencil/{p-DBvUmuDH.js → p-DfvqHmxc.js} +20 -44
  208. package/dist/stencil/{p-2va1Pk9z.js → p-Dhio9uis.js} +11 -47
  209. package/dist/stencil/{p-df06ca3a.entry.js → p-fb32cd8f.entry.js} +2 -2
  210. package/dist/stencil/stencil.esm.js +4 -4
  211. package/dist/types/classes/structures/app-state-map.structure.d.ts +6 -0
  212. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +5 -0
  213. package/dist/types/constants/version.d.ts +1 -1
  214. package/dist/types/stencil-public-runtime.d.ts +0 -12
  215. package/loader/index.d.ts +1 -1
  216. package/package.json +1 -1
  217. package/readme.md +10 -10
@@ -5732,11 +5732,10 @@ class Fitter {
5732
5732
  }
5733
5733
  openMore() {
5734
5734
  let { content, openStart, openEnd } = this.unplaced;
5735
- if (maxOpen(content, -1) <= openStart)
5735
+ let inner = contentAt(content, openStart);
5736
+ if (!inner.childCount || inner.firstChild.isLeaf)
5736
5737
  return false;
5737
- if (this.unplaced.size > 1 && maxOpen(content, 1) > openEnd)
5738
- openEnd++;
5739
- this.unplaced = new Slice(content, openStart + 1, openEnd);
5738
+ this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));
5740
5739
  return true;
5741
5740
  }
5742
5741
  dropNode() {
@@ -5906,14 +5905,6 @@ function invalidMarks(type, fragment, start) {
5906
5905
  function definesContent(type) {
5907
5906
  return type.spec.defining || type.spec.definingForContent;
5908
5907
  }
5909
- function maxOpen(frag, side) {
5910
- for (let count = 0;; count++) {
5911
- let ch = side < 0 ? frag.firstChild : frag.lastChild;
5912
- if (!ch || ch.isAtom)
5913
- return count;
5914
- frag = ch.content;
5915
- }
5916
- }
5917
5908
  function replaceRange(tr, from, to, slice) {
5918
5909
  if (!slice.size)
5919
5910
  return tr.deleteRange(from, to);
@@ -8618,8 +8609,7 @@ class WidgetViewDesc extends ViewDesc {
8618
8609
  wrap.appendChild(dom);
8619
8610
  dom = wrap;
8620
8611
  }
8621
- if (!dom.hasAttribute("contenteditable"))
8622
- dom.contentEditable = "false";
8612
+ dom.contentEditable = "false";
8623
8613
  dom.classList.add("ProseMirror-widget");
8624
8614
  }
8625
8615
  super(parent, [], dom, null);
@@ -10467,14 +10457,8 @@ function maybeWrapTrusted(html) {
10467
10457
  // With the require-trusted-types-for CSP, Chrome will block
10468
10458
  // innerHTML, even on a detached document. This wraps the string in
10469
10459
  // a way that makes the browser allow us to use its parser again.
10470
- if (!_policy) {
10471
- if (_policy = trustedTypes.defaultPolicy)
10472
- try {
10473
- return _policy.createHTML(html);
10474
- }
10475
- catch (_a) { }
10476
- _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s) => s });
10477
- }
10460
+ if (!_policy)
10461
+ _policy = trustedTypes.defaultPolicy || trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s) => s });
10478
10462
  return _policy.createHTML(html);
10479
10463
  }
10480
10464
  function readHTML(html) {
@@ -10531,12 +10515,6 @@ function addContext(slice, context) {
10531
10515
  let type = schema.nodes[array[i]];
10532
10516
  if (!type || type.hasRequiredAttrs())
10533
10517
  break;
10534
- try {
10535
- type.checkAttrs(array[i + 1]);
10536
- }
10537
- catch (e) {
10538
- break;
10539
- }
10540
10518
  content = Fragment.from(type.create(array[i + 1], content));
10541
10519
  openStart++;
10542
10520
  openEnd++;
@@ -14195,20 +14173,16 @@ a custom function to determine the type of the newly split off block.
14195
14173
  */
14196
14174
  function splitBlockAs(splitNode) {
14197
14175
  return (state, dispatch) => {
14176
+ let { $from} = state.selection;
14198
14177
  if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {
14199
- let { $from } = state.selection;
14200
14178
  if (!$from.parentOffset || !canSplit(state.doc, $from.pos))
14201
14179
  return false;
14202
14180
  if (dispatch)
14203
14181
  dispatch(state.tr.split($from.pos).scrollIntoView());
14204
14182
  return true;
14205
14183
  }
14206
- if (!state.selection.$from.depth)
14184
+ if (!$from.depth)
14207
14185
  return false;
14208
- let tr = state.tr;
14209
- if (!state.selection.empty && (state.selection instanceof TextSelection || state.selection instanceof AllSelection))
14210
- tr.deleteSelection();
14211
- let { $from } = tr.selection, mapFrom = tr.steps.length;
14212
14186
  let types = [];
14213
14187
  let splitDepth, deflt, atEnd = false, atStart = false;
14214
14188
  for (let d = $from.depth;; d--) {
@@ -14227,7 +14201,10 @@ function splitBlockAs(splitNode) {
14227
14201
  types.unshift(null);
14228
14202
  }
14229
14203
  }
14230
- let splitPos = $from.pos;
14204
+ let tr = state.tr;
14205
+ if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)
14206
+ tr.deleteSelection();
14207
+ let splitPos = tr.mapping.map($from.pos);
14231
14208
  let can = canSplit(tr.doc, splitPos, types.length, types);
14232
14209
  if (!can) {
14233
14210
  types[0] = deflt ? { type: deflt } : null;
@@ -14237,10 +14214,9 @@ function splitBlockAs(splitNode) {
14237
14214
  return false;
14238
14215
  tr.split(splitPos, types.length, types);
14239
14216
  if (!atEnd && atStart && $from.node(splitDepth).type != deflt) {
14240
- let mapping = tr.mapping.slice(mapFrom);
14241
- let first = mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);
14217
+ let first = tr.mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);
14242
14218
  if (deflt && $from.node(splitDepth - 1).canReplaceWith($first.index(), $first.index() + 1, deflt))
14243
- tr.setNodeMarkup(mapping.map($from.before(splitDepth)), deflt);
14219
+ tr.setNodeMarkup(tr.mapping.map($from.before(splitDepth)), deflt);
14244
14220
  }
14245
14221
  if (dispatch)
14246
14222
  dispatch(tr.scrollIntoView());
@@ -22881,12 +22857,12 @@ class KritzelCursorHelper {
22881
22857
  // We rotate around the center of the SVG canvas
22882
22858
  const center = size / 2;
22883
22859
  // We use a group to apply the rotation
22884
- const svg = `
22885
- <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
22886
- <g transform="rotate(${rotation} ${center} ${center})">
22887
- ${content}
22888
- </g>
22889
- </svg>
22860
+ const svg = `
22861
+ <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
22862
+ <g transform="rotate(${rotation} ${center} ${center})">
22863
+ ${content}
22864
+ </g>
22865
+ </svg>
22890
22866
  `;
22891
22867
  // Encode the SVG for use in a data URI
22892
22868
  // We need to be careful with encoding to ensure it works across browsers
@@ -2,7 +2,7 @@ const NAMESPACE = 'stencil';
2
2
  const BUILD = /* stencil */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, state: true, updatable: true};
3
3
 
4
4
  /*
5
- Stencil Client Platform v4.44.2 | MIT Licensed | https://stenciljs.com
5
+ Stencil Client Platform v4.43.5 | MIT Licensed | https://stenciljs.com
6
6
  */
7
7
 
8
8
 
@@ -94,9 +94,7 @@ var consoleError = (e, el) => (0, console.error)(e, el);
94
94
 
95
95
  // src/client/client-load-module.ts
96
96
  var cmpModules = /* @__PURE__ */ new Map();
97
- var failedLoadAttempts = /* @__PURE__ */ new Map();
98
97
  var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
99
- var _a;
100
98
  const exportName = cmpMeta.$tagName$.replace(/-/g, "_");
101
99
  const bundleId = cmpMeta.$lazyBundleId$;
102
100
  if (!bundleId) {
@@ -106,28 +104,21 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
106
104
  if (module) {
107
105
  return module[exportName];
108
106
  }
109
- const retryCount = (_a = failedLoadAttempts.get(bundleId)) != null ? _a : 0;
110
- const cacheBustParams = [
111
- retryCount > 0 ? `s-retry=${retryCount}` : "",
112
- ""
113
- ].filter(Boolean).join("&");
114
107
  /*!__STENCIL_STATIC_IMPORT_SWITCH__*/
115
108
  return import(
116
109
  /* @vite-ignore */
117
110
  /* webpackInclude: /\.entry\.js$/ */
118
111
  /* webpackExclude: /\.system\.entry\.js$/ */
119
112
  /* webpackMode: "lazy" */
120
- `./${bundleId}.entry.js${cacheBustParams ? "?" + cacheBustParams : ""}`
113
+ `./${bundleId}.entry.js${""}`
121
114
  ).then(
122
115
  (importedModule) => {
123
116
  {
124
- failedLoadAttempts.delete(bundleId);
125
117
  cmpModules.set(bundleId, importedModule);
126
118
  }
127
119
  return importedModule[exportName];
128
120
  },
129
121
  (e) => {
130
- failedLoadAttempts.set(bundleId, retryCount + 1);
131
122
  consoleError(e, hostRef.$hostElement$);
132
123
  }
133
124
  );
@@ -137,8 +128,6 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
137
128
  var styles = /* @__PURE__ */ new Map();
138
129
  var HYDRATED_CSS = "{visibility:hidden}.hydrated{visibility:inherit}";
139
130
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
140
- var MAX_LAZY_LOAD_RETRIES = 3;
141
- var LAZY_LOAD_RETRY_INTERVAL_MS = 1e3;
142
131
  var win = typeof window !== "undefined" ? window : {};
143
132
  var plt = {
144
133
  $flags$: 0,
@@ -182,10 +171,6 @@ var supportsMutableAdoptedStyleSheets = supportsConstructableStylesheets ? /* @_
182
171
  var queuePending = false;
183
172
  var queueDomReads = [];
184
173
  var queueDomWrites = [];
185
- var scheduleFlush = () => {
186
- var _a;
187
- return ((_a = win.document) == null ? void 0 : _a.hidden) ? nextTick(flush) : plt.raf(flush);
188
- };
189
174
  var queueTask = (queue, write) => (cb) => {
190
175
  queue.push(cb);
191
176
  if (!queuePending) {
@@ -193,7 +178,7 @@ var queueTask = (queue, write) => (cb) => {
193
178
  if (write && plt.$flags$ & 4 /* queueSync */) {
194
179
  nextTick(flush);
195
180
  } else {
196
- scheduleFlush();
181
+ plt.raf(flush);
197
182
  }
198
183
  }
199
184
  };
@@ -212,7 +197,7 @@ var flush = () => {
212
197
  {
213
198
  consume(queueDomWrites);
214
199
  if (queuePending = queueDomReads.length > 0) {
215
- scheduleFlush();
200
+ plt.raf(flush);
216
201
  }
217
202
  }
218
203
  };
@@ -404,11 +389,6 @@ var h = (nodeName, vnodeData, ...children) => {
404
389
  } else if (child != null && typeof child !== "boolean") {
405
390
  if (simple = typeof nodeName !== "function" && !isComplexType(child)) {
406
391
  child = String(child);
407
- } else if (typeof nodeName !== "function" && child.$flags$ === void 0) {
408
- {
409
- consoleError("Invalid vNode child");
410
- }
411
- continue;
412
392
  }
413
393
  if (simple && lastSimple) {
414
394
  vNodeChildren[vNodeChildren.length - 1].$text$ += child;
@@ -637,7 +617,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
637
617
  }
638
618
  }
639
619
  if (newValue == null || newValue === false) {
640
- if (newValue !== false || elm.getAttribute(memberName) === "" || flags & 4 /* isHost */ && !isEnumeratedAttribute(memberName)) {
620
+ if (newValue !== false || elm.getAttribute(memberName) === "") {
641
621
  {
642
622
  elm.removeAttribute(memberName);
643
623
  }
@@ -650,8 +630,6 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
650
630
  }
651
631
  }
652
632
  };
653
- var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
654
- var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
655
633
  var parseClassListRegex = /\s/;
656
634
  var parseClassList = (value) => {
657
635
  if (typeof value === "object" && value && "baseVal" in value) {
@@ -959,7 +937,9 @@ var flushQueuedRefCallbacks = () => {
959
937
  }
960
938
  };
961
939
  var insertBefore = (parent, newNode, reference, isInitialLoad) => {
962
- {
940
+ if (parent.__insertBefore) {
941
+ return parent.__insertBefore(newNode, reference);
942
+ } else {
963
943
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
964
944
  }
965
945
  };
@@ -1227,7 +1207,6 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1227
1207
  };
1228
1208
 
1229
1209
  // src/runtime/proxy-component.ts
1230
- var reflectedAttrValue = (propValue) => propValue == null || propValue === false ? null : propValue === true ? "" : String(propValue);
1231
1210
  var proxyComponent = (Cstr, cmpMeta, flags) => {
1232
1211
  var _a, _b;
1233
1212
  const prototype = Cstr.prototype;
@@ -1360,13 +1339,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1360
1339
  return;
1361
1340
  }
1362
1341
  const propFlags = members.find(([m]) => m === propName);
1363
- const propMemberFlags = propFlags ? propFlags[1][0] : 0;
1364
- const isBooleanTarget = propMemberFlags & 4 /* Boolean */;
1365
- if (propMemberFlags & 512 /* ReflectAttr */ && propMemberFlags & 8 /* Any */ && // a complex value is never written to an attribute, so a change while the prop holds
1366
- // one is always external
1367
- !isComplexType(this[propName]) && reflectedAttrValue(this[propName]) === newValue) {
1368
- return;
1369
- }
1342
+ const isBooleanTarget = propFlags && propFlags[1][0] & 4 /* Boolean */;
1370
1343
  const isSpuriousBooleanRemoval = isBooleanTarget && newValue === null && this[propName] === void 0;
1371
1344
  if (isBooleanTarget) {
1372
1345
  newValue = newValue === null || newValue === "false" ? false : true;
@@ -1398,12 +1371,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1398
1371
 
1399
1372
  // src/runtime/initialize-component.ts
1400
1373
  var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1401
- var _a;
1402
1374
  let Cstr;
1403
1375
  try {
1404
1376
  if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1405
1377
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1406
- hostRef.$flags$ &= -1025 /* hasFailedLoad */;
1407
1378
  const bundleId = cmpMeta.$lazyBundleId$;
1408
1379
  if (bundleId) {
1409
1380
  const CstrImport = loadModule(cmpMeta, hostRef);
@@ -1415,11 +1386,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1415
1386
  Cstr = CstrImport;
1416
1387
  }
1417
1388
  if (!Cstr) {
1418
- hostRef.$flags$ &= -33 /* hasInitializedComponent */;
1419
- hostRef.$loadRetryCount$ = ((_a = hostRef.$loadRetryCount$) != null ? _a : 0) + 1;
1420
- if (hostRef.$loadRetryCount$ < MAX_LAZY_LOAD_RETRIES) {
1421
- hostRef.$flags$ |= 1024 /* hasFailedLoad */;
1422
- }
1423
1389
  throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
1424
1390
  }
1425
1391
  if (!Cstr.isProxied) {
@@ -1481,7 +1447,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1481
1447
  hostRef.$onRenderResolve$();
1482
1448
  hostRef.$onRenderResolve$ = void 0;
1483
1449
  }
1484
- if (hostRef.$onReadyResolve$ && !(hostRef.$flags$ & 1024 /* hasFailedLoad */)) {
1450
+ if (hostRef.$onReadyResolve$) {
1485
1451
  hostRef.$onReadyResolve$(elm);
1486
1452
  }
1487
1453
  }
@@ -1528,8 +1494,6 @@ var connectedCallback = (elm) => {
1528
1494
  addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
1529
1495
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1530
1496
  fireConnectedCallback(hostRef.$lazyInstance$, elm);
1531
- } else if (hostRef.$flags$ & 1024 /* hasFailedLoad */) {
1532
- setTimeout(() => initializeComponent(elm, hostRef, cmpMeta), LAZY_LOAD_RETRY_INTERVAL_MS);
1533
1497
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1534
1498
  hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));
1535
1499
  }
@@ -1652,7 +1616,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1652
1616
  }
1653
1617
  disconnectedCallback() {
1654
1618
  plt.jmp(() => disconnectedCallback(this));
1655
- nextTick(() => {
1619
+ plt.raf(() => {
1656
1620
  var _a3;
1657
1621
  const hostRef = getHostRef(this);
1658
1622
  if (!hostRef) {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './p-2va1Pk9z.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './p-Dhio9uis.js';
2
2
 
3
3
  const kritzelBrushStyleCss = () => `:host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.brush-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}`;
4
4
 
@@ -21,7 +21,7 @@ const KritzelBrushStyle = class {
21
21
  value: option.value,
22
22
  label: option.label,
23
23
  }));
24
- return (h(Host, { key: '51a7f84685032fd8fc967b22bee7c0711e811a54' }, h("kritzel-dropdown", { key: 'e49d7062c695458d345738d88a0adfc96b575e61', options: dropdownOptions, value: this.type, onValueChanged: event => this.handleDropdownValueChange(event) }, h("button", { key: 'ebbbf1a55b89e91012ca44c5cf30acfb77332b50', class: "brush-style-button", slot: "prefix" }, h("kritzel-icon", { key: 'dae002c9ab5e3486c726202426eb076a8f33b109', name: this.type, size: 16 })))));
24
+ return (h(Host, { key: '7b05e93ce8d28c23503e4ca358a487165169f1ad' }, h("kritzel-dropdown", { key: 'a8f2f30762b339411cd3995482c3bc658855f749', options: dropdownOptions, value: this.type, onValueChanged: event => this.handleDropdownValueChange(event) }, h("button", { key: 'ac06462897a0fbd5011533095fafb7491a75508a', class: "brush-style-button", slot: "prefix" }, h("kritzel-icon", { key: 'caee4c657c7fee478b1038ebd2ef3b502cf73e5e', name: this.type, size: 16 })))));
25
25
  }
26
26
  };
27
27
  KritzelBrushStyle.style = kritzelBrushStyleCss();
@@ -1,9 +1,9 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './p-2va1Pk9z.js';
2
- export { s as setNonce } from './p-2va1Pk9z.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './p-Dhio9uis.js';
2
+ export { s as setNonce } from './p-Dhio9uis.js';
3
3
  import { g as globalScripts } from './p-DQuL1Twl.js';
4
4
 
5
5
  /*
6
- Stencil Client Patch Browser v4.44.2 | MIT Licensed | https://stenciljs.com
6
+ Stencil Client Patch Browser v4.43.5 | MIT Licensed | https://stenciljs.com
7
7
  */
8
8
 
9
9
  var patchBrowser = () => {
@@ -17,5 +17,5 @@ var patchBrowser = () => {
17
17
 
18
18
  patchBrowser().then(async (options) => {
19
19
  await globalScripts();
20
- return bootstrapLazy(JSON.parse("[[\"p-0250005e\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"moreMenuItems\":[16],\"themes\":[16],\"theme\":[1025],\"licenseKey\":[1,\"license-key\"],\"locale\":[1025],\"locales\":[16],\"fallbackLocale\":[1,\"fallback-locale\"],\"customSvgIcons\":[16],\"customFonts\":[16],\"isPanningEnabled\":[1028,\"is-panning-enabled\"],\"isZoomingEnabled\":[1028,\"is-zooming-enabled\"],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"isZoomPanelVisible\":[4,\"is-zoom-panel-visible\"],\"isObjectDistanceFadingActive\":[4,\"is-object-distance-fading-active\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"resolvedTerms\":[32],\"availableLocaleOptions\":[32],\"currentZoomPercent\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"isEditorVisible\":[32],\"activeNotification\":[32],\"isNotificationDismissing\":[32],\"contextMenuState\":[32],\"normalizedControls\":[32],\"resolvedMoreMenuItems\":[32],\"isSyncing\":[32],\"isLoadingOverlayVisible\":[32],\"getObjectById\":[64],\"addObject\":[64],\"addObjects\":[64],\"updateObject\":[64],\"removeObject\":[64],\"removeObjects\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"panToObject\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"centerObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"zoomIn\":[64],\"zoomOut\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"changeActiveToolByName\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectSupportedExportFormats\":[64],\"canExportSelectedObjectAs\":[64],\"exportSelectedObject\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"openContextMenu\":[64],\"triggerSelectionChange\":[64],\"beginSceneBootstrap\":[64],\"endSceneBootstrap\":[64],\"getDisplayableShortcuts\":[64],\"triggerNotification\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64],\"setLocale\":[64],\"getLocale\":[64],\"getAvailableLocales\":[64],\"registerLocales\":[64],\"registerFonts\":[64],\"t\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"customFonts\":[{\"onCustomFontsChange\":0}],\"controls\":[{\"onControlsChange\":0}],\"moreMenuItems\":[{\"onMoreMenuItemsChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"loginConfig\":[{\"onLoginConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"theme\":[{\"onCurrentThemeChange\":0}],\"themes\":[{\"onThemesChange\":0}],\"locale\":[{\"onLocaleChange\":0}]}],[513,\"kritzel-controls\",{\"visible\":[4],\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"terms\":[16],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"internalControls\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"controls\":[{\"onControlsChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-settings\",{\"availableThemes\":[16],\"availableLocales\":[16],\"shortcuts\":[16],\"terms\":[16],\"settings\":[16],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"theme\":[32],\"locale\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]},null,{\"settings\":[{\"onSettingsPropChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"terms\":[16],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"terms\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"isObjectDistanceFadingActive\":[4,\"is-object-distance-fading-active\"],\"theme\":[1],\"licenseKey\":[1,\"license-key\"],\"themes\":[16],\"locale\":[1],\"locales\":[16],\"fallbackLocale\":[1,\"fallback-locale\"],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"isPanningEnabled\":[4,\"is-panning-enabled\"],\"isZoomingEnabled\":[4,\"is-zooming-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"isSyncing\":[32],\"triggerSelectionChange\":[64],\"beginSceneBootstrap\":[64],\"endSceneBootstrap\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"changeActiveToolByName\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"openContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"addObjects\":[64],\"updateObject\":[64],\"removeObject\":[64],\"removeObjects\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"panToObject\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"centerObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"zoomIn\":[64],\"zoomOut\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectSupportedExportFormats\":[64],\"canExportSelectedObjectAs\":[64],\"exportSelectedObject\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"saveSettings\":[64],\"loadSettings\":[64],\"registerLocales\":[64],\"setLocale\":[64],\"getLocale\":[64],\"getAvailableLocales\":[64],\"getAvailableLocaleOptions\":[64],\"t\":[64],\"getResolvedTerms\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[8,\"copy\",\"handleCopy\"],[8,\"cut\",\"handleCut\"],[8,\"paste\",\"handlePaste\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"globalContextMenuItems\":[{\"onGlobalContextMenuItemsChange\":0}],\"objectContextMenuItems\":[{\"onObjectContextMenuItemsChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"isObjectDistanceFadingActive\":[{\"onIsObjectDistanceFadingActiveChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"licenseKey\":[{\"onLicenseKeyChange\":0}],\"themes\":[{\"onThemesChange\":0}],\"locale\":[{\"onLocaleChange\":0}],\"locales\":[{\"onLocalesChange\":0}],\"fallbackLocale\":[{\"onFallbackLocaleChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"terms\":[16],\"menuAnchor\":[32],\"isTouchDevice\":[32],\"visibleItems\":[32]},null,{\"items\":[{\"onItemsChange\":0}]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"terms\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"terms\":[16],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"qrCodeDataUrl\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}],\"workspaceId\":[{\"onWorkspaceIdChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuPath\":[32],\"submenuPositions\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"],\"terms\":[16]}],[513,\"kritzel-notification-card\",{\"notification\":[16],\"showTimestamp\":[4,\"show-timestamp\"],\"locale\":[1]}],[513,\"kritzel-zoom-panel\",{\"visible\":[4],\"disabled\":[4],\"zoomPercent\":[2,\"zoom-percent\"],\"terms\":[16]}],[513,\"kritzel-loading-overlay\",{\"visible\":[4],\"text\":[1]}],[513,\"kritzel-sync-indicator\",{\"visible\":[4],\"text\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"engine\":[16],\"terms\":[16],\"config\":[32],\"palette\":[32],\"sizes\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},null,{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"engine\":[{\"handleEngineChange\":0}]}],[513,\"kritzel-split-button\",{\"buttonIcon\":[1,\"button-icon\"],\"dropdownIcon\":[1,\"dropdown-icon\"],\"items\":[16],\"mainButtonDisabled\":[4,\"main-button-disabled\"],\"menuButtonDisabled\":[4,\"menu-button-disabled\"],\"isMenuOpen\":[32],\"isTouchDevice\":[32],\"anchorElement\":[32],\"menuScrollTop\":[32],\"open\":[64],\"focusMenu\":[64]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16],\"terms\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-watermark\",{\"core\":[16],\"label\":[1]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]},null,{\"fontOptions\":[{\"handleFontOptionsChange\":0}]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"contained\":[516],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"containerRect\":[32],\"containerBorderRadius\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[9,\"resize\",\"handleWindowResize\"],[8,\"orientationchange\",\"handleOrientationChange\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"p-df06ca3a\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
20
+ return bootstrapLazy(JSON.parse("[[\"p-832b80e9\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"moreMenuItems\":[16],\"themes\":[16],\"theme\":[1025],\"licenseKey\":[1,\"license-key\"],\"locale\":[1025],\"locales\":[16],\"fallbackLocale\":[1,\"fallback-locale\"],\"customSvgIcons\":[16],\"customFonts\":[16],\"isPanningEnabled\":[1028,\"is-panning-enabled\"],\"isZoomingEnabled\":[1028,\"is-zooming-enabled\"],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"isZoomPanelVisible\":[4,\"is-zoom-panel-visible\"],\"isObjectDistanceFadingActive\":[4,\"is-object-distance-fading-active\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"resolvedTerms\":[32],\"availableLocaleOptions\":[32],\"currentZoomPercent\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"isEditorVisible\":[32],\"activeNotification\":[32],\"isNotificationDismissing\":[32],\"contextMenuState\":[32],\"normalizedControls\":[32],\"resolvedMoreMenuItems\":[32],\"isSyncing\":[32],\"isLoadingOverlayVisible\":[32],\"getObjectById\":[64],\"addObject\":[64],\"addObjects\":[64],\"updateObject\":[64],\"removeObject\":[64],\"removeObjects\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"panToObject\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"centerObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"zoomIn\":[64],\"zoomOut\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"changeActiveToolByName\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectSupportedExportFormats\":[64],\"canExportSelectedObjectAs\":[64],\"exportSelectedObject\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"openContextMenu\":[64],\"triggerSelectionChange\":[64],\"beginSceneBootstrap\":[64],\"endSceneBootstrap\":[64],\"getDisplayableShortcuts\":[64],\"triggerNotification\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64],\"setLocale\":[64],\"getLocale\":[64],\"getAvailableLocales\":[64],\"registerLocales\":[64],\"registerFonts\":[64],\"t\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"customFonts\":[{\"onCustomFontsChange\":0}],\"controls\":[{\"onControlsChange\":0}],\"moreMenuItems\":[{\"onMoreMenuItemsChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"loginConfig\":[{\"onLoginConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"theme\":[{\"onCurrentThemeChange\":0}],\"themes\":[{\"onThemesChange\":0}],\"locale\":[{\"onLocaleChange\":0}]}],[513,\"kritzel-controls\",{\"visible\":[4],\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"terms\":[16],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"internalControls\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"controls\":[{\"onControlsChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-settings\",{\"availableThemes\":[16],\"availableLocales\":[16],\"shortcuts\":[16],\"terms\":[16],\"settings\":[16],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"theme\":[32],\"locale\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]},null,{\"settings\":[{\"onSettingsPropChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"terms\":[16],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"terms\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"isObjectDistanceFadingActive\":[4,\"is-object-distance-fading-active\"],\"theme\":[1],\"licenseKey\":[1,\"license-key\"],\"themes\":[16],\"locale\":[1],\"locales\":[16],\"fallbackLocale\":[1,\"fallback-locale\"],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"isPanningEnabled\":[4,\"is-panning-enabled\"],\"isZoomingEnabled\":[4,\"is-zooming-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"isSyncing\":[32],\"triggerSelectionChange\":[64],\"beginSceneBootstrap\":[64],\"endSceneBootstrap\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"changeActiveToolByName\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"openContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"addObjects\":[64],\"updateObject\":[64],\"removeObject\":[64],\"removeObjects\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"panToObject\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"centerObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"zoomIn\":[64],\"zoomOut\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectSupportedExportFormats\":[64],\"canExportSelectedObjectAs\":[64],\"exportSelectedObject\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"saveSettings\":[64],\"loadSettings\":[64],\"registerLocales\":[64],\"setLocale\":[64],\"getLocale\":[64],\"getAvailableLocales\":[64],\"getAvailableLocaleOptions\":[64],\"t\":[64],\"getResolvedTerms\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[8,\"copy\",\"handleCopy\"],[8,\"cut\",\"handleCut\"],[8,\"paste\",\"handlePaste\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"globalContextMenuItems\":[{\"onGlobalContextMenuItemsChange\":0}],\"objectContextMenuItems\":[{\"onObjectContextMenuItemsChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"isObjectDistanceFadingActive\":[{\"onIsObjectDistanceFadingActiveChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"licenseKey\":[{\"onLicenseKeyChange\":0}],\"themes\":[{\"onThemesChange\":0}],\"locale\":[{\"onLocaleChange\":0}],\"locales\":[{\"onLocalesChange\":0}],\"fallbackLocale\":[{\"onFallbackLocaleChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"terms\":[16],\"menuAnchor\":[32],\"isTouchDevice\":[32],\"visibleItems\":[32]},null,{\"items\":[{\"onItemsChange\":0}]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"terms\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"terms\":[16],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"qrCodeDataUrl\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}],\"workspaceId\":[{\"onWorkspaceIdChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuPath\":[32],\"submenuPositions\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"],\"terms\":[16]}],[513,\"kritzel-notification-card\",{\"notification\":[16],\"showTimestamp\":[4,\"show-timestamp\"],\"locale\":[1]}],[513,\"kritzel-zoom-panel\",{\"visible\":[4],\"disabled\":[4],\"zoomPercent\":[2,\"zoom-percent\"],\"terms\":[16]}],[513,\"kritzel-loading-overlay\",{\"visible\":[4],\"text\":[1]}],[513,\"kritzel-sync-indicator\",{\"visible\":[4],\"text\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"engine\":[16],\"terms\":[16],\"config\":[32],\"palette\":[32],\"sizes\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},null,{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"engine\":[{\"handleEngineChange\":0}]}],[513,\"kritzel-split-button\",{\"buttonIcon\":[1,\"button-icon\"],\"dropdownIcon\":[1,\"dropdown-icon\"],\"items\":[16],\"mainButtonDisabled\":[4,\"main-button-disabled\"],\"menuButtonDisabled\":[4,\"menu-button-disabled\"],\"isMenuOpen\":[32],\"isTouchDevice\":[32],\"anchorElement\":[32],\"menuScrollTop\":[32],\"open\":[64],\"focusMenu\":[64]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16],\"terms\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-watermark\",{\"core\":[16],\"label\":[1]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]},null,{\"fontOptions\":[{\"handleFontOptionsChange\":0}]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"contained\":[516],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"containerRect\":[32],\"containerBorderRadius\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[9,\"resize\",\"handleWindowResize\"],[8,\"orientationchange\",\"handleOrientationChange\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"p-fb32cd8f\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
21
21
  });
@@ -17,11 +17,17 @@ export declare class KritzelAppStateMap {
17
17
  private _isReady;
18
18
  private _onRemoteChangeCallback;
19
19
  private _workspacesObserver;
20
+ private _networkSyncPromise;
20
21
  /**
21
22
  * Indicates whether the app state map has been initialized and is ready for use.
22
23
  * @returns True if initialized and all providers are connected, false otherwise.
23
24
  */
24
25
  get isReady(): boolean;
26
+ /**
27
+ * Settles when network providers finish their initial sync (or fail/time out).
28
+ * Resolves immediately when no network providers are configured.
29
+ */
30
+ whenNetworkSynced(): Promise<void>;
25
31
  /**
26
32
  * Indicates whether any configured sync provider replicates over the network.
27
33
  * Used by the engine to warn when a matching remote asset storage
@@ -671,6 +671,11 @@ export declare class KritzelEngine {
671
671
  private initializeAssetStorage;
672
672
  private logUnlicensedWelcomeBanner;
673
673
  private doInitializeSyncAndWorkspace;
674
+ /**
675
+ * On a cold start the remote workspace list may still be in flight; creating a
676
+ * fallback workspace before it arrives would pollute the synced app state.
677
+ */
678
+ private waitForRemoteAppStateIfEmpty;
674
679
  private resolveStartupWorkspace;
675
680
  private tryResolveActiveWorkspaceFromId;
676
681
  private switchToWorkspaceById;
@@ -3,4 +3,4 @@
3
3
  * This file is auto-generated by the version bump scripts.
4
4
  * Do not modify manually.
5
5
  */
6
- export declare const KRITZEL_VERSION = "0.4.18";
6
+ export declare const KRITZEL_VERSION = "0.4.21";
@@ -1008,7 +1008,6 @@ export declare namespace JSXBase {
1008
1008
  onClose?: (event: Event) => void;
1009
1009
  open?: boolean;
1010
1010
  returnValue?: string;
1011
- closedby?: 'any' | 'closerequest' | 'none';
1012
1011
  }
1013
1012
  interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {
1014
1013
  height?: number | string;
@@ -1046,8 +1045,6 @@ export declare namespace JSXBase {
1046
1045
  allowtransparency?: string | boolean;
1047
1046
  frameBorder?: number | string;
1048
1047
  frameborder?: number | string;
1049
- fetchPriority?: 'high' | 'low' | 'auto';
1050
- fetchpriority?: 'high' | 'low' | 'auto';
1051
1048
  importance?: 'low' | 'auto' | 'high';
1052
1049
  height?: number | string;
1053
1050
  loading?: 'lazy' | 'auto' | 'eager';
@@ -1070,8 +1067,6 @@ export declare namespace JSXBase {
1070
1067
  crossOrigin?: string;
1071
1068
  crossorigin?: string;
1072
1069
  decoding?: 'async' | 'auto' | 'sync';
1073
- fetchPriority?: 'high' | 'low' | 'auto';
1074
- fetchpriority?: 'high' | 'low' | 'auto';
1075
1070
  importance?: 'low' | 'auto' | 'high';
1076
1071
  height?: number | string;
1077
1072
  loading?: 'lazy' | 'auto' | 'eager';
@@ -1171,8 +1166,6 @@ export declare namespace JSXBase {
1171
1166
  }
1172
1167
  interface LinkHTMLAttributes<T> extends HTMLAttributes<T> {
1173
1168
  as?: string;
1174
- fetchPriority?: 'high' | 'low' | 'auto';
1175
- fetchpriority?: 'high' | 'low' | 'auto';
1176
1169
  href?: string;
1177
1170
  hrefLang?: string;
1178
1171
  hreflang?: string;
@@ -1296,8 +1289,6 @@ export declare namespace JSXBase {
1296
1289
  crossOrigin?: string;
1297
1290
  crossorigin?: string;
1298
1291
  defer?: boolean;
1299
- fetchPriority?: 'high' | 'low' | 'auto';
1300
- fetchpriority?: 'high' | 'low' | 'auto';
1301
1292
  importance?: 'low' | 'auto' | 'high';
1302
1293
  integrity?: string;
1303
1294
  nonce?: string;
@@ -1413,10 +1404,7 @@ export declare namespace JSXBase {
1413
1404
  tabIndex?: number;
1414
1405
  tabindex?: number | string;
1415
1406
  title?: string;
1416
- translate?: 'yes' | 'no' | (string & {});
1417
1407
  popover?: string | null;
1418
- focusgroup?: string;
1419
- focusgroupstart?: boolean;
1420
1408
  inputMode?: string;
1421
1409
  inputmode?: string;
1422
1410
  enterKeyHint?: string;
package/loader/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export interface CustomElementsDefineOptions {
8
8
  ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
9
9
  rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
10
10
  }
11
- export declare function defineCustomElements(win?: Window, opts?: CustomElementsDefineOptions): Promise<void>;
11
+ export declare function defineCustomElements(win?: Window, opts?: CustomElementsDefineOptions): void;
12
12
  /**
13
13
  * @deprecated
14
14
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kritzel-stencil",
3
- "version": "0.4.19",
3
+ "version": "0.4.21",
4
4
  "homepage": "https://kritzel.io/",
5
5
  "description": "Kritzel helps you build infinite whiteboard experiences.",
6
6
  "keywords": [
package/readme.md CHANGED
@@ -1,11 +1,11 @@
1
- # Kritzel Stencil Core
2
-
3
- This package contains the shared Stencil-based core that powers Kritzel's framework-specific variants.
4
-
5
- It is not intended as the primary entry point for application integration. Instead, use the framework wrapper that matches your stack:
6
-
7
- - [Kritzel for Angular](https://kritzel.io/docs/angular/quick-start)
8
- - [Kritzel for React](https://kritzel.io/docs/react/quick-start)
9
- - [Kritzel for Vue](https://kritzel.io/docs/vue/quick-start)
10
-
1
+ # Kritzel Stencil Core
2
+
3
+ This package contains the shared Stencil-based core that powers Kritzel's framework-specific variants.
4
+
5
+ It is not intended as the primary entry point for application integration. Instead, use the framework wrapper that matches your stack:
6
+
7
+ - [Kritzel for Angular](https://kritzel.io/docs/angular/quick-start)
8
+ - [Kritzel for React](https://kritzel.io/docs/react/quick-start)
9
+ - [Kritzel for Vue](https://kritzel.io/docs/vue/quick-start)
10
+
11
11
  For licensing details, see the [Kritzel License](https://kritzel.io/license).