kritzel-stencil 0.1.83 → 0.1.86

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 (187) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/index.cjs.js +1 -1
  3. package/dist/cjs/kritzel-active-users_42.cjs.entry.js +94 -94
  4. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  5. package/dist/cjs/{workspace.migrations-K5oVASsb.js → workspace.migrations-Dj-FiYEO.js} +6 -6
  6. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.css +115 -115
  7. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.js +1 -1
  8. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -10
  9. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  10. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +71 -71
  11. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +12 -12
  12. package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +99 -99
  13. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +14 -14
  14. package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.css +58 -58
  15. package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.js +3 -3
  16. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +42 -42
  17. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +3 -3
  18. package/dist/collection/components/shared/kritzel-button/kritzel-button.css +72 -72
  19. package/dist/collection/components/shared/kritzel-button/kritzel-button.js +2 -2
  20. package/dist/collection/components/shared/kritzel-color/kritzel-color.css +24 -24
  21. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  22. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +46 -46
  23. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  24. package/dist/collection/components/shared/kritzel-dialog/kritzel-dialog.css +179 -179
  25. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +190 -190
  26. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +2 -2
  27. package/dist/collection/components/shared/kritzel-font/kritzel-font.css +10 -10
  28. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  29. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +48 -48
  30. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +3 -3
  31. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +30 -30
  32. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  33. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +18 -18
  34. package/dist/collection/components/shared/kritzel-input/kritzel-input.css +69 -69
  35. package/dist/collection/components/shared/kritzel-input/kritzel-input.js +1 -1
  36. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -60
  37. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +3 -3
  38. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.css +190 -190
  39. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.js +3 -3
  40. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +34 -34
  41. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
  42. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +160 -160
  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.css +102 -102
  45. package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.js +1 -1
  46. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -85
  47. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
  48. package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.css +58 -58
  49. package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.js +2 -2
  50. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  51. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -47
  52. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +4 -4
  53. package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.css +48 -48
  54. package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.js +1 -1
  55. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +78 -78
  56. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
  57. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +37 -37
  58. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  59. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +18 -18
  60. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
  61. package/dist/collection/components/ui/kritzel-active-users/kritzel-active-users.css +65 -65
  62. package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.css +42 -42
  63. package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
  64. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +105 -105
  65. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -1
  66. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +330 -330
  67. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +5 -5
  68. package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.css +11 -11
  69. package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.js +1 -1
  70. package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.css +29 -29
  71. package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +1 -1
  72. package/dist/collection/components/ui/kritzel-export/kritzel-export.css +89 -89
  73. package/dist/collection/components/ui/kritzel-export/kritzel-export.js +1 -1
  74. package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.css +98 -98
  75. package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.js +1 -1
  76. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +45 -45
  77. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +2 -2
  78. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.css +129 -129
  79. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +1 -1
  80. package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.css +133 -133
  81. package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.js +2 -2
  82. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -38
  83. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +45 -45
  84. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  85. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +5 -5
  86. package/dist/collection/constants/version.js +1 -1
  87. package/dist/collection/helpers/cursor.helper.js +6 -6
  88. package/dist/collection/helpers/svg-export.helper.js +31 -31
  89. package/dist/components/index.js +1 -1
  90. package/dist/components/kritzel-active-users.js +1 -1
  91. package/dist/components/kritzel-avatar.js +1 -1
  92. package/dist/components/kritzel-awareness-cursors.js +1 -1
  93. package/dist/components/kritzel-back-to-content.js +1 -1
  94. package/dist/components/kritzel-brush-style.js +1 -1
  95. package/dist/components/kritzel-button.js +1 -1
  96. package/dist/components/kritzel-color-palette.js +1 -1
  97. package/dist/components/kritzel-color.js +1 -1
  98. package/dist/components/kritzel-context-menu.js +1 -1
  99. package/dist/components/kritzel-controls.js +1 -1
  100. package/dist/components/kritzel-current-user-dialog.js +1 -1
  101. package/dist/components/kritzel-current-user.js +1 -1
  102. package/dist/components/kritzel-cursor-trail.js +1 -1
  103. package/dist/components/kritzel-dialog.js +1 -1
  104. package/dist/components/kritzel-dropdown.js +1 -1
  105. package/dist/components/kritzel-editor.js +1 -1
  106. package/dist/components/kritzel-engine.js +1 -1
  107. package/dist/components/kritzel-export.js +1 -1
  108. package/dist/components/kritzel-font-family.js +1 -1
  109. package/dist/components/kritzel-font-size.js +1 -1
  110. package/dist/components/kritzel-font.js +1 -1
  111. package/dist/components/kritzel-input.js +1 -1
  112. package/dist/components/kritzel-line-endings.js +1 -1
  113. package/dist/components/kritzel-login-dialog.js +1 -1
  114. package/dist/components/kritzel-master-detail.js +1 -1
  115. package/dist/components/kritzel-menu-item.js +1 -1
  116. package/dist/components/kritzel-menu.js +1 -1
  117. package/dist/components/kritzel-more-menu.js +1 -1
  118. package/dist/components/kritzel-numeric-input.js +1 -1
  119. package/dist/components/kritzel-opacity-slider.js +1 -1
  120. package/dist/components/kritzel-pill-tabs.js +1 -1
  121. package/dist/components/kritzel-portal.js +1 -1
  122. package/dist/components/kritzel-settings.js +1 -1
  123. package/dist/components/kritzel-shape-fill.js +1 -1
  124. package/dist/components/kritzel-share-dialog.js +1 -1
  125. package/dist/components/kritzel-slide-toggle.js +1 -1
  126. package/dist/components/kritzel-split-button.js +1 -1
  127. package/dist/components/kritzel-stroke-size.js +1 -1
  128. package/dist/components/kritzel-tool-config.js +1 -1
  129. package/dist/components/kritzel-tooltip.js +1 -1
  130. package/dist/components/kritzel-utility-panel.js +1 -1
  131. package/dist/components/kritzel-workspace-manager.js +1 -1
  132. package/dist/components/{p-B5WII1Lk.js → p-0cs6zQLB.js} +1 -1
  133. package/dist/components/p-7yTPTHbQ.js +1 -0
  134. package/dist/components/{p-DwemlMvt.js → p-B3UJucEe.js} +1 -1
  135. package/dist/components/{p-DUQmBcTy.js → p-B5a3arJg.js} +1 -1
  136. package/dist/components/{p-DCH4Rlqx.js → p-BIdZCZ_l.js} +1 -1
  137. package/dist/components/{p-CNMpVlot.js → p-BMPgR5Bt.js} +1 -1
  138. package/dist/components/{p-CKfjz1gj.js → p-BOcGfEkz.js} +1 -1
  139. package/dist/components/{p-DUnKjQN7.js → p-BVEYAGm1.js} +1 -1
  140. package/dist/components/{p-CMGHx71q.js → p-BYX50YSd.js} +1 -1
  141. package/dist/components/{p-BjPmEs5A.js → p-BfJav4Zz.js} +1 -1
  142. package/dist/components/{p-CLo-TjD_.js → p-BgopgrfE.js} +1 -1
  143. package/dist/components/{p-CJzg_ejc.js → p-BsQ4E7I8.js} +1 -1
  144. package/dist/components/{p-V3VW2JKl.js → p-C-ZoFpSf.js} +1 -1
  145. package/dist/components/p-C0U3Mg5I.js +1 -0
  146. package/dist/components/{p-Brwz_Dpb.js → p-C3Dwuqka.js} +1 -1
  147. package/dist/components/{p-CS7r-zhx.js → p-C4vg_-vg.js} +1 -1
  148. package/dist/components/{p-DrsORMoT.js → p-C4zfI-dj.js} +1 -1
  149. package/dist/components/{p-cjeDomsc.js → p-CBTqCoUx.js} +1 -1
  150. package/dist/components/{p-BaaFG0p-.js → p-CBq-KE9C.js} +1 -1
  151. package/dist/components/{p-CfEGaTaV.js → p-CTj2UdbS.js} +1 -1
  152. package/dist/components/{p-Bat829Bg.js → p-C_OSXZqJ.js} +1 -1
  153. package/dist/components/{p-B4F19Aqj.js → p-CaKSDRid.js} +1 -1
  154. package/dist/components/{p-BZ8bK8qT.js → p-CekG3_ce.js} +1 -1
  155. package/dist/components/{p-Dw0Obsn5.js → p-Cz2gQKbL.js} +1 -1
  156. package/dist/components/{p-VxgCvVox.js → p-CzIuqMQA.js} +1 -1
  157. package/dist/components/{p-1ppb4M65.js → p-D6KNaj_Y.js} +1 -1
  158. package/dist/components/{p-rNu5JVNH.js → p-D8fQwcNC.js} +1 -1
  159. package/dist/components/{p-CYl_JKvH.js → p-DBZRCL1u.js} +1 -1
  160. package/dist/components/{p-DkT0KZCm.js → p-DDBaFNFi.js} +1 -1
  161. package/dist/components/{p-CM7rYf9A.js → p-DEd2L0e3.js} +1 -1
  162. package/dist/components/{p-DYcsC2zO.js → p-DMvIGnOt.js} +1 -1
  163. package/dist/components/{p-C9zsWWH2.js → p-DPmAV68B.js} +1 -1
  164. package/dist/components/{p-7yR-sKH8.js → p-DRbR0Li3.js} +1 -1
  165. package/dist/components/{p-C-MtTi6x.js → p-DXO_ppUK.js} +1 -1
  166. package/dist/components/p-DemKKw9U.js +1 -0
  167. package/dist/components/{p-D5BXoK9m.js → p-Dxb22STM.js} +1 -1
  168. package/dist/components/p-Nq8UyPCc.js +1 -0
  169. package/dist/components/{p-DEOUiiyI.js → p-R9M5PnAz.js} +1 -1
  170. package/dist/components/{p-D7pwbRUy.js → p-qBqQhAmh.js} +1 -1
  171. package/dist/esm/index.js +1 -1
  172. package/dist/esm/kritzel-active-users_42.entry.js +94 -94
  173. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  174. package/dist/esm/{workspace.migrations-D5iSPf3E.js → workspace.migrations-ByWmiPl8.js} +6 -6
  175. package/dist/stencil/index.esm.js +1 -1
  176. package/dist/stencil/{p-b0be4da1.entry.js → p-10c2b77c.entry.js} +1 -1
  177. package/dist/stencil/p-b38650d2.entry.js +9 -0
  178. package/dist/stencil/stencil.esm.js +1 -1
  179. package/dist/types/constants/version.d.ts +1 -1
  180. package/package.json +2 -2
  181. package/readme.md +114 -114
  182. package/dist/components/p-B4h_tGG1.js +0 -1
  183. package/dist/components/p-CJKsuQun.js +0 -1
  184. package/dist/components/p-DKeBfe_l.js +0 -1
  185. package/dist/components/p-HK-6khHo.js +0 -1
  186. package/dist/stencil/p-c28b30ab.entry.js +0 -9
  187. /package/dist/stencil/{p-D5iSPf3E.js → p-ByWmiPl8.js} +0 -0
@@ -1,46 +1,46 @@
1
- :host {
2
- display: flex;
3
- flex-direction: row;
4
- align-items: center;
5
- padding: 4px;
6
- gap: 8px;
7
- border-top-left-radius: 12px;
8
- border-top-right-radius: 12px;
9
- background-color: var(--kritzel-utility-panel-background-color, #e2e2e2);
10
- width: fit-content;
11
- user-select: none;
12
- z-index: 10000;
13
- }
14
-
15
- .utility-button {
16
- display: flex;
17
- justify-content: center;
18
- align-items: center;
19
- width: 28px;
20
- height: 28px;
21
- padding: 8px 4px;
22
- border: none;
23
- background: none;
24
- cursor: var(--kritzel-global-pointer-cursor, pointer);
25
- color: var(--kritzel-utility-panel-button-color, #333333);
26
- --kritzel-icon-color: var(--kritzel-utility-panel-button-color, #333333);
27
- -webkit-tap-highlight-color: transparent;
28
- border-radius: var(--kritzel-utility-panel-button-border-radius, 8px);
29
- }
30
-
31
- .utility-button:hover,
32
- .utility-button:focus-visible {
33
- background-color: var(--kritzel-utility-panel-button-hover-background-color, hsl(0, 0%, 0%, 4.3%));
34
- }
35
-
36
- .utility-button:disabled {
37
- opacity: 0.4;
38
- cursor: not-allowed;
39
- pointer-events: none;
40
- }
41
-
42
- .utility-separator {
43
- width: 1px;
44
- height: 16px;
45
- background-color: var(--kritzel-utility-panel-separator-color, hsl(0, 0%, 0%, 8%));
1
+ :host {
2
+ display: flex;
3
+ flex-direction: row;
4
+ align-items: center;
5
+ padding: 4px;
6
+ gap: 8px;
7
+ border-top-left-radius: 12px;
8
+ border-top-right-radius: 12px;
9
+ background-color: var(--kritzel-utility-panel-background-color, #e2e2e2);
10
+ width: fit-content;
11
+ user-select: none;
12
+ z-index: 10000;
13
+ }
14
+
15
+ .utility-button {
16
+ display: flex;
17
+ justify-content: center;
18
+ align-items: center;
19
+ width: 28px;
20
+ height: 28px;
21
+ padding: 8px 4px;
22
+ border: none;
23
+ background: none;
24
+ cursor: var(--kritzel-global-pointer-cursor, pointer);
25
+ color: var(--kritzel-utility-panel-button-color, #333333);
26
+ --kritzel-icon-color: var(--kritzel-utility-panel-button-color, #333333);
27
+ -webkit-tap-highlight-color: transparent;
28
+ border-radius: var(--kritzel-utility-panel-button-border-radius, 8px);
29
+ }
30
+
31
+ .utility-button:hover,
32
+ .utility-button:focus-visible {
33
+ background-color: var(--kritzel-utility-panel-button-hover-background-color, hsl(0, 0%, 0%, 4.3%));
34
+ }
35
+
36
+ .utility-button:disabled {
37
+ opacity: 0.4;
38
+ cursor: not-allowed;
39
+ pointer-events: none;
40
+ }
41
+
42
+ .utility-separator {
43
+ width: 1px;
44
+ height: 16px;
45
+ background-color: var(--kritzel-utility-panel-separator-color, hsl(0, 0%, 0%, 8%));
46
46
  }
@@ -17,7 +17,7 @@ export class KritzelUtilityPanel {
17
17
  this.redo.emit();
18
18
  }
19
19
  render() {
20
- return (h(Host, { key: '0277e775741c91fe53daea8b14f9fdec550bef45' }, h("button", { key: '7eff5491f732dc6871b382612cf64a4d661fa39b', class: "utility-button", "data-testid": "utility-undo", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event) }, h("kritzel-icon", { key: '4eff979e1b6158df5a1b17c702765432bd18f642', name: "undo" })), h("button", { key: '73d75b36bfbd9d4299aea16be54ed6e1687a47d1', class: "utility-button", "data-testid": "utility-redo", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event) }, h("kritzel-icon", { key: 'd1556e8b7aa32b102aad9ea572d040e8863197c3', name: "redo" })), h("div", { key: 'eefbdb33bb73d5a48db79fe9621a91da77ddd46d', class: "utility-separator" }), h("button", { key: '15630243403ff4475123e209d0c3e7919718bc00', class: "utility-button", "data-testid": "utility-delete", onClick: () => this.delete.emit() }, h("kritzel-icon", { key: '7a423865d246a4752fc8fa3411133d0bd4f1c75d', name: "delete" }))));
20
+ return (h(Host, { key: '5b03e990a92cbf09a71c067c4c07547da6dcd669' }, h("button", { key: '9a5915187e2684c292b9d5d058a5b6dc3279088d', class: "utility-button", "data-testid": "utility-undo", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event) }, h("kritzel-icon", { key: '33e3f3cdc5ee4c4fc79c5f732355523460d096ab', name: "undo" })), h("button", { key: '03bb54a25b70811a3c90624caf1f29c1534bfdcb', class: "utility-button", "data-testid": "utility-redo", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event) }, h("kritzel-icon", { key: '042140dd6a6251d04d26fee326df30eec46d6825', name: "redo" })), h("div", { key: '16111e0e11d93d928fc6b71fc993e9ca59205a4a', class: "utility-separator" }), h("button", { key: '003edf23960221447cbeb735b04ab6642ef72f4c', class: "utility-button", "data-testid": "utility-delete", onClick: () => this.delete.emit() }, h("kritzel-icon", { key: '2b3cbdbd65efe0b7923b7ecb1b4ff112a08dcc72', name: "delete" }))));
21
21
  }
22
22
  static get is() { return "kritzel-utility-panel"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -1,5 +1,5 @@
1
- :host {
2
- display: flex;
3
- flex-direction: column;
4
- z-index: 1;
5
- }
1
+ :host {
2
+ display: flex;
3
+ flex-direction: column;
4
+ z-index: 1;
5
+ }
@@ -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 const KRITZEL_VERSION = '0.1.83';
6
+ export const KRITZEL_VERSION = '0.1.86';
@@ -38,12 +38,12 @@ export class KritzelCursorHelper {
38
38
  // We rotate around the center of the SVG canvas
39
39
  const center = size / 2;
40
40
  // We use a group to apply the rotation
41
- const svg = `
42
- <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
43
- <g transform="rotate(${rotation} ${center} ${center})">
44
- ${content}
45
- </g>
46
- </svg>
41
+ const svg = `
42
+ <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
43
+ <g transform="rotate(${rotation} ${center} ${center})">
44
+ ${content}
45
+ </g>
46
+ </svg>
47
47
  `;
48
48
  // Encode the SVG for use in a data URI
49
49
  // We need to be careful with encoding to ensure it works across browsers
@@ -66,8 +66,8 @@ export class KritzelSvgExportHelper {
66
66
  .join('\n ');
67
67
  const xmlDecl = includeXmlDeclaration ? '<?xml version="1.0" encoding="UTF-8"?>\n' : '';
68
68
  const defsContent = defs.length > 0 ? `\n <defs>\n ${defs.join('\n ')}\n </defs>` : '';
69
- return `${xmlDecl}<svg xmlns="http://www.w3.org/2000/svg" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" width="${viewBoxWidth}" height="${viewBoxHeight}">${defsContent}
70
- ${elements}
69
+ return `${xmlDecl}<svg xmlns="http://www.w3.org/2000/svg" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" width="${viewBoxWidth}" height="${viewBoxHeight}">${defsContent}
70
+ ${elements}
71
71
  </svg>`;
72
72
  }
73
73
  /**
@@ -123,8 +123,8 @@ export class KritzelSvgExportHelper {
123
123
  const orient = end === 'start' ? 'auto-start-reverse' : 'auto';
124
124
  const refX = 0;
125
125
  const refY = size / 2;
126
- return `<marker id="${markerId}" markerWidth="${size}" markerHeight="${size}" refX="${refX}" refY="${refY}" orient="${orient}" markerUnits="userSpaceOnUse">
127
- <path d="${path}" fill="${fill}" transform="scale(${size / 10})"/>
126
+ return `<marker id="${markerId}" markerWidth="${size}" markerHeight="${size}" refX="${refX}" refY="${refY}" orient="${orient}" markerUnits="userSpaceOnUse">
127
+ <path d="${path}" fill="${fill}" transform="scale(${size / 10})"/>
128
128
  </marker>`;
129
129
  }
130
130
  /**
@@ -166,10 +166,10 @@ export class KritzelSvgExportHelper {
166
166
  const stroke = KritzelColorHelper.resolveThemeColor(path.stroke, theme);
167
167
  const opacity = path.opacity !== 1 ? ` opacity="${path.opacity}"` : '';
168
168
  // Path needs to be wrapped in a g with translation since path.d uses local coordinates
169
- return `<g transform="${transform}"${opacity}>
170
- <svg viewBox="${path.viewBox}" width="${path.totalWidth / path.scale}" height="${path.totalHeight / path.scale}" overflow="visible">
171
- <path d="${path.d}" fill="${fill || 'none'}" stroke="${stroke || 'none'}"${path.strokeWidth ? ` stroke-width="${path.strokeWidth}"` : ''}/>
172
- </svg>
169
+ return `<g transform="${transform}"${opacity}>
170
+ <svg viewBox="${path.viewBox}" width="${path.totalWidth / path.scale}" height="${path.totalHeight / path.scale}" overflow="visible">
171
+ <path d="${path.d}" fill="${fill || 'none'}" stroke="${stroke || 'none'}"${path.strokeWidth ? ` stroke-width="${path.strokeWidth}"` : ''}/>
172
+ </svg>
173
173
  </g>`;
174
174
  }
175
175
  /**
@@ -184,10 +184,10 @@ export class KritzelSvgExportHelper {
184
184
  const opacity = line.opacity !== 1 ? ` opacity="${line.opacity}"` : '';
185
185
  const markerStart = line.hasStartArrow ? ` marker-start="url(#${line.startMarkerId})"` : '';
186
186
  const markerEnd = line.hasEndArrow ? ` marker-end="url(#${line.endMarkerId})"` : '';
187
- return `<g transform="${transform}"${opacity}>
188
- <svg viewBox="${line.viewBox}" width="${line.totalWidth / line.scale}" height="${line.totalHeight / line.scale}" overflow="visible">
189
- <path d="${line.d}" fill="none" stroke="${stroke}" stroke-width="${line.strokeWidth}" stroke-linecap="round"${markerStart}${markerEnd}/>
190
- </svg>
187
+ return `<g transform="${transform}"${opacity}>
188
+ <svg viewBox="${line.viewBox}" width="${line.totalWidth / line.scale}" height="${line.totalHeight / line.scale}" overflow="visible">
189
+ <path d="${line.d}" fill="none" stroke="${stroke}" stroke-width="${line.strokeWidth}" stroke-linecap="round"${markerStart}${markerEnd}/>
190
+ </svg>
191
191
  </g>`;
192
192
  }
193
193
  /**
@@ -212,18 +212,18 @@ export class KritzelSvgExportHelper {
212
212
  const textHtml = this.prosemirrorToHtml(shape.content, shape, theme);
213
213
  if (textHtml) {
214
214
  const fontColor = KritzelColorHelper.resolveThemeColor(shape.fontColor, theme);
215
- textContent = `
216
- <foreignObject x="${shape.x}" y="${shape.y}" width="${shape.width}" height="${shape.height}">
217
- <div xmlns="http://www.w3.org/1999/xhtml" style="width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; font-family: ${shape.fontFamily}; font-size: ${shape.fontSize}px; color: ${fontColor}; overflow: hidden;">
218
- ${textHtml}
219
- </div>
215
+ textContent = `
216
+ <foreignObject x="${shape.x}" y="${shape.y}" width="${shape.width}" height="${shape.height}">
217
+ <div xmlns="http://www.w3.org/1999/xhtml" style="width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; font-family: ${shape.fontFamily}; font-size: ${shape.fontSize}px; color: ${fontColor}; overflow: hidden;">
218
+ ${textHtml}
219
+ </div>
220
220
  </foreignObject>`;
221
221
  }
222
222
  }
223
- return `<g transform="${transform}"${opacity}>
224
- <svg viewBox="${shape.viewBox}" width="${shape.totalWidth / shape.scale}" height="${shape.totalHeight / shape.scale}" overflow="visible" preserveAspectRatio="none">
225
- <path d="${pathD}" fill="${fill || 'transparent'}" stroke="${stroke}" stroke-width="${shape.strokeWidth}"/>${textContent}
226
- </svg>
223
+ return `<g transform="${transform}"${opacity}>
224
+ <svg viewBox="${shape.viewBox}" width="${shape.totalWidth / shape.scale}" height="${shape.totalHeight / shape.scale}" overflow="visible" preserveAspectRatio="none">
225
+ <path d="${pathD}" fill="${fill || 'transparent'}" stroke="${stroke}" stroke-width="${shape.strokeWidth}"/>${textContent}
226
+ </svg>
227
227
  </g>`;
228
228
  }
229
229
  /**
@@ -242,12 +242,12 @@ export class KritzelSvgExportHelper {
242
242
  // Calculate dimensions accounting for scale
243
243
  const width = text.totalWidth / text.scale;
244
244
  const height = text.totalHeight / text.scale;
245
- return `<g transform="${transform}"${opacity}>
246
- <foreignObject x="0" y="0" width="${width}" height="${height}">
247
- <div xmlns="http://www.w3.org/1999/xhtml" style="font-family: ${text.fontFamily}; font-size: ${text.fontSize}pt; color: ${fontColor}; background-color: ${bgColor || 'transparent'}; transform: scale(${text.scaleFactor}); transform-origin: top left; white-space: pre-wrap; word-wrap: break-word;">
248
- ${htmlContent}
249
- </div>
250
- </foreignObject>
245
+ return `<g transform="${transform}"${opacity}>
246
+ <foreignObject x="0" y="0" width="${width}" height="${height}">
247
+ <div xmlns="http://www.w3.org/1999/xhtml" style="font-family: ${text.fontFamily}; font-size: ${text.fontSize}pt; color: ${fontColor}; background-color: ${bgColor || 'transparent'}; transform: scale(${text.scaleFactor}); transform-origin: top left; white-space: pre-wrap; word-wrap: break-word;">
248
+ ${htmlContent}
249
+ </div>
250
+ </foreignObject>
251
251
  </g>`;
252
252
  }
253
253
  /**
@@ -261,8 +261,8 @@ export class KritzelSvgExportHelper {
261
261
  // Calculate dimensions
262
262
  const width = image.totalWidth / image.scale;
263
263
  const height = image.totalHeight / image.scale;
264
- return `<g transform="${transform}"${opacity}>
265
- <image href="${image.src}" x="0" y="0" width="${width}" height="${height}" preserveAspectRatio="xMidYMid meet"/>
264
+ return `<g transform="${transform}"${opacity}>
265
+ <image href="${image.src}" x="0" y="0" width="${width}" height="${height}" preserveAspectRatio="xMidYMid meet"/>
266
266
  </g>`;
267
267
  }
268
268
  /**
@@ -281,8 +281,8 @@ export class KritzelSvgExportHelper {
281
281
  return '';
282
282
  }
283
283
  const opacity = group.opacity !== 1 ? ` opacity="${group.opacity}"` : '';
284
- return `<g${opacity}>
285
- ${children}
284
+ return `<g${opacity}>
285
+ ${children}
286
286
  </g>`;
287
287
  }
288
288
  /**
@@ -1 +1 @@
1
- export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-BWj1eE2b.js";export{d as KritzelBrushTool,b as KritzelGroup,a as KritzelImage,e as KritzelLineTool,h as KritzelSelectionTool,c as KritzelShape,g as KritzelShapeTool,K as KritzelText,f as KritzelTextTool,S as ShapeType}from"./p-zM6hQ55n.js";export{a as KritzelLine,K as KritzelPath}from"./p-DQK_4lkI.js";export{A as APP_STATE_MIGRATIONS,I as IndexedDBSyncProvider,d as KritzelAlignment,c as KritzelAnchorManager,b as KritzelCursorHelper,K as KritzelEraserTool,a as KritzelImageTool,W as WORKSPACE_MIGRATIONS,r as runMigrations}from"./p-CKfjz1gj.js";import*as t from"yjs";import{WebsocketProvider as i}from"y-websocket";export{D as DEFAULT_BRUSH_CONFIG,b as DEFAULT_LINE_TOOL_CONFIG,a as DEFAULT_TEXT_CONFIG,H as HocuspocusSyncProvider,KritzelEditor,defineCustomElement as defineCustomElementKritzelEditor}from"./kritzel-editor.js";export{K as KritzelWorkspace,W as WORKSPACE_EXPORT_VERSION}from"./p-DhMlShij.js";export{K as KritzelThemeManager,d as darkTheme,l as lightTheme}from"./p-CjazGGq3.js";export{C as CURRENT_APP_STATE_SCHEMA_VERSION,a as CURRENT_WORKSPACE_SCHEMA_VERSION}from"./p-CW-VyJgK.js";export{KritzelActiveUsers,defineCustomElement as defineCustomElementKritzelActiveUsers}from"./kritzel-active-users.js";export{KritzelAvatar,defineCustomElement as defineCustomElementKritzelAvatar}from"./kritzel-avatar.js";export{KritzelAwarenessCursors,defineCustomElement as defineCustomElementKritzelAwarenessCursors}from"./kritzel-awareness-cursors.js";export{KritzelBackToContent,defineCustomElement as defineCustomElementKritzelBackToContent}from"./kritzel-back-to-content.js";export{KritzelBrushStyle,defineCustomElement as defineCustomElementKritzelBrushStyle}from"./kritzel-brush-style.js";export{KritzelButton,defineCustomElement as defineCustomElementKritzelButton}from"./kritzel-button.js";export{KritzelColor,defineCustomElement as defineCustomElementKritzelColor}from"./kritzel-color.js";export{KritzelColorPalette,defineCustomElement as defineCustomElementKritzelColorPalette}from"./kritzel-color-palette.js";export{KritzelContextMenu,defineCustomElement as defineCustomElementKritzelContextMenu}from"./kritzel-context-menu.js";export{KritzelControls,defineCustomElement as defineCustomElementKritzelControls}from"./kritzel-controls.js";export{KritzelCurrentUser,defineCustomElement as defineCustomElementKritzelCurrentUser}from"./kritzel-current-user.js";export{KritzelCurrentUserDialog,defineCustomElement as defineCustomElementKritzelCurrentUserDialog}from"./kritzel-current-user-dialog.js";export{KritzelCursorTrail,defineCustomElement as defineCustomElementKritzelCursorTrail}from"./kritzel-cursor-trail.js";export{KritzelDialog,defineCustomElement as defineCustomElementKritzelDialog}from"./kritzel-dialog.js";export{KritzelDropdown,defineCustomElement as defineCustomElementKritzelDropdown}from"./kritzel-dropdown.js";export{KritzelEngine,defineCustomElement as defineCustomElementKritzelEngine}from"./kritzel-engine.js";export{KritzelExport,defineCustomElement as defineCustomElementKritzelExport}from"./kritzel-export.js";export{KritzelFont,defineCustomElement as defineCustomElementKritzelFont}from"./kritzel-font.js";export{KritzelFontFamily,defineCustomElement as defineCustomElementKritzelFontFamily}from"./kritzel-font-family.js";export{KritzelFontSize,defineCustomElement as defineCustomElementKritzelFontSize}from"./kritzel-font-size.js";export{KritzelIcon,defineCustomElement as defineCustomElementKritzelIcon}from"./kritzel-icon.js";export{KritzelInput,defineCustomElement as defineCustomElementKritzelInput}from"./kritzel-input.js";export{KritzelLineEndings,defineCustomElement as defineCustomElementKritzelLineEndings}from"./kritzel-line-endings.js";export{KritzelLoginDialog,defineCustomElement as defineCustomElementKritzelLoginDialog}from"./kritzel-login-dialog.js";export{KritzelMasterDetail,defineCustomElement as defineCustomElementKritzelMasterDetail}from"./kritzel-master-detail.js";export{KritzelMenu,defineCustomElement as defineCustomElementKritzelMenu}from"./kritzel-menu.js";export{KritzelMenuItem,defineCustomElement as defineCustomElementKritzelMenuItem}from"./kritzel-menu-item.js";export{KritzelMoreMenu,defineCustomElement as defineCustomElementKritzelMoreMenu}from"./kritzel-more-menu.js";export{KritzelNumericInput,defineCustomElement as defineCustomElementKritzelNumericInput}from"./kritzel-numeric-input.js";export{KritzelOpacitySlider,defineCustomElement as defineCustomElementKritzelOpacitySlider}from"./kritzel-opacity-slider.js";export{KritzelPillTabs,defineCustomElement as defineCustomElementKritzelPillTabs}from"./kritzel-pill-tabs.js";export{KritzelPortal,defineCustomElement as defineCustomElementKritzelPortal}from"./kritzel-portal.js";export{KritzelSettings,defineCustomElement as defineCustomElementKritzelSettings}from"./kritzel-settings.js";export{KritzelShapeFill,defineCustomElement as defineCustomElementKritzelShapeFill}from"./kritzel-shape-fill.js";export{KritzelShareDialog,defineCustomElement as defineCustomElementKritzelShareDialog}from"./kritzel-share-dialog.js";export{KritzelSlideToggle,defineCustomElement as defineCustomElementKritzelSlideToggle}from"./kritzel-slide-toggle.js";export{KritzelSplitButton,defineCustomElement as defineCustomElementKritzelSplitButton}from"./kritzel-split-button.js";export{KritzelStrokeSize,defineCustomElement as defineCustomElementKritzelStrokeSize}from"./kritzel-stroke-size.js";export{KritzelToolConfig,defineCustomElement as defineCustomElementKritzelToolConfig}from"./kritzel-tool-config.js";export{KritzelTooltip,defineCustomElement as defineCustomElementKritzelTooltip}from"./kritzel-tooltip.js";export{KritzelUtilityPanel,defineCustomElement as defineCustomElementKritzelUtilityPanel}from"./kritzel-utility-panel.js";export{KritzelWorkspaceManager,defineCustomElement as defineCustomElementKritzelWorkspaceManager}from"./kritzel-workspace-manager.js";const o=Math.floor,n=127,m=Number.MAX_SAFE_INTEGER;class u{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const z=()=>new u,E=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let r=0;r<e.bufs.length;r++)t+=e.bufs[r].length;return t})(e));let r=0;for(let s=0;s<e.bufs.length;s++){const i=e.bufs[s];t.set(i,r),r+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),r),t},p=(e,t)=>{const r=e.cbuf.length;e.cpos===r&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*r),e.cpos=0),e.cbuf[e.cpos++]=t},k=(e,t)=>{for(;t>n;)p(e,128|n&t),t=o(t/128);p(e,n&t)},x=(e,t)=>{k(e,t.byteLength),((e,t)=>{const r=e.cbuf.length,s=e.cpos,i=((e,t)=>e<t?e:t)(r-s,t.length),o=t.length-i;e.cbuf.set(t.subarray(0,i),s),e.cpos+=i,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*r,o)),e.cbuf.set(t.subarray(i)),e.cpos=o)})(e,t)},j=e=>Error(e),T=j("Unexpected end of array"),y=j("Integer out of Range");class w{constructor(e){this.arr=e,this.pos=0}}const P=e=>((e,t)=>{const r=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,r})(e,M(e)),M=e=>{let t=0,r=1;const s=e.arr.length;for(;e.pos<s;){const s=e.arr[e.pos++];if(t+=(s&n)*r,r*=128,s<128)return t;if(t>m)throw y}throw T};class U{type="local";doc;channel;_synced=!1;constructor(e,t,r){this.doc=t,this.channel=new BroadcastChannel(e),this.channel.onmessage=e=>{this.handleMessage(e.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),r?.quiet||console.info("BroadcastChannel Provider initialized: "+e)}handleDocUpdate=(e,t)=>{if(t!==this){const t=z();k(t,0),x(t,e),this.channel.postMessage(E(t))}};handleMessage(e){const r=(e=>new w(e))(new Uint8Array(e));switch(M(r)){case 0:const e=P(r);t.applyUpdate(this.doc,e,this);break;case 1:this.broadcastSync();break;case 2:const s=P(r),i=t.encodeStateAsUpdate(this.doc,s);if(i.length>0){const e=z();k(e,0),x(e,i),this.channel.postMessage(E(e))}}}broadcastSync(){const e=z();k(e,2),x(e,t.encodeStateVector(this.doc)),this.channel.postMessage(E(e))}async connect(){if(!this._synced)return new Promise((e=>{const t=()=>{this._synced?e():setTimeout(t,50)};t()}))}disconnect(){}async reconnect(){return this.disconnect(),this.connect()}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}class _{type="network";provider;isConnected=!1;_quiet=!1;get awareness(){return this.provider.awareness}constructor(e,t,r){const s=r?.url||"ws://localhost:1234",o=r?.roomName||e;this.provider=new i(s,o,t,{params:r?.params,protocols:r?.protocols,WebSocketPolyfill:r?.WebSocketPolyfill,awareness:r?.awareness,maxBackoffTime:r?.maxBackoffTime,disableBc:!0}),this._quiet=r?.quiet??!1,this.setupEventListeners(),this._quiet||console.info(`WebSocket Provider initialized: ${s}/${o}`)}static with(e){return{create:(t,r,s)=>{const i=s?{...e,...s}:e;return new _(t,r,i)}}}setupEventListeners(){this.provider.on("status",(({status:e})=>{"connected"===e?(this.isConnected=!0,this._quiet||console.info("WebSocket connected")):"disconnected"===e&&(this.isConnected=!1,this._quiet||console.info("WebSocket disconnected"))})),this.provider.on("sync",(e=>{e&&!this._quiet&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((e,t)=>{const r=setTimeout((()=>{t(Error("WebSocket connection timeout"))}),1e4),s=({status:t})=>{"connected"===t&&(clearTimeout(r),this.provider.off("status",s),this.isConnected=!0,e())};this.provider.on("status",s),this.provider.wsconnected&&(clearTimeout(r),this.provider.off("status",s),this.isConnected=!0,e())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}async reconnect(){return this.disconnect(),this.connect()}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}export{U as BroadcastSyncProvider,_ as WebSocketSyncProvider}
1
+ export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-BWj1eE2b.js";export{d as KritzelBrushTool,b as KritzelGroup,a as KritzelImage,e as KritzelLineTool,h as KritzelSelectionTool,c as KritzelShape,g as KritzelShapeTool,K as KritzelText,f as KritzelTextTool,S as ShapeType}from"./p-zM6hQ55n.js";export{a as KritzelLine,K as KritzelPath}from"./p-DQK_4lkI.js";export{A as APP_STATE_MIGRATIONS,I as IndexedDBSyncProvider,d as KritzelAlignment,c as KritzelAnchorManager,b as KritzelCursorHelper,K as KritzelEraserTool,a as KritzelImageTool,W as WORKSPACE_MIGRATIONS,r as runMigrations}from"./p-BOcGfEkz.js";import*as t from"yjs";import{WebsocketProvider as i}from"y-websocket";export{D as DEFAULT_BRUSH_CONFIG,b as DEFAULT_LINE_TOOL_CONFIG,a as DEFAULT_TEXT_CONFIG,H as HocuspocusSyncProvider,KritzelEditor,defineCustomElement as defineCustomElementKritzelEditor}from"./kritzel-editor.js";export{K as KritzelWorkspace,W as WORKSPACE_EXPORT_VERSION}from"./p-DhMlShij.js";export{K as KritzelThemeManager,d as darkTheme,l as lightTheme}from"./p-CjazGGq3.js";export{C as CURRENT_APP_STATE_SCHEMA_VERSION,a as CURRENT_WORKSPACE_SCHEMA_VERSION}from"./p-CW-VyJgK.js";export{KritzelActiveUsers,defineCustomElement as defineCustomElementKritzelActiveUsers}from"./kritzel-active-users.js";export{KritzelAvatar,defineCustomElement as defineCustomElementKritzelAvatar}from"./kritzel-avatar.js";export{KritzelAwarenessCursors,defineCustomElement as defineCustomElementKritzelAwarenessCursors}from"./kritzel-awareness-cursors.js";export{KritzelBackToContent,defineCustomElement as defineCustomElementKritzelBackToContent}from"./kritzel-back-to-content.js";export{KritzelBrushStyle,defineCustomElement as defineCustomElementKritzelBrushStyle}from"./kritzel-brush-style.js";export{KritzelButton,defineCustomElement as defineCustomElementKritzelButton}from"./kritzel-button.js";export{KritzelColor,defineCustomElement as defineCustomElementKritzelColor}from"./kritzel-color.js";export{KritzelColorPalette,defineCustomElement as defineCustomElementKritzelColorPalette}from"./kritzel-color-palette.js";export{KritzelContextMenu,defineCustomElement as defineCustomElementKritzelContextMenu}from"./kritzel-context-menu.js";export{KritzelControls,defineCustomElement as defineCustomElementKritzelControls}from"./kritzel-controls.js";export{KritzelCurrentUser,defineCustomElement as defineCustomElementKritzelCurrentUser}from"./kritzel-current-user.js";export{KritzelCurrentUserDialog,defineCustomElement as defineCustomElementKritzelCurrentUserDialog}from"./kritzel-current-user-dialog.js";export{KritzelCursorTrail,defineCustomElement as defineCustomElementKritzelCursorTrail}from"./kritzel-cursor-trail.js";export{KritzelDialog,defineCustomElement as defineCustomElementKritzelDialog}from"./kritzel-dialog.js";export{KritzelDropdown,defineCustomElement as defineCustomElementKritzelDropdown}from"./kritzel-dropdown.js";export{KritzelEngine,defineCustomElement as defineCustomElementKritzelEngine}from"./kritzel-engine.js";export{KritzelExport,defineCustomElement as defineCustomElementKritzelExport}from"./kritzel-export.js";export{KritzelFont,defineCustomElement as defineCustomElementKritzelFont}from"./kritzel-font.js";export{KritzelFontFamily,defineCustomElement as defineCustomElementKritzelFontFamily}from"./kritzel-font-family.js";export{KritzelFontSize,defineCustomElement as defineCustomElementKritzelFontSize}from"./kritzel-font-size.js";export{KritzelIcon,defineCustomElement as defineCustomElementKritzelIcon}from"./kritzel-icon.js";export{KritzelInput,defineCustomElement as defineCustomElementKritzelInput}from"./kritzel-input.js";export{KritzelLineEndings,defineCustomElement as defineCustomElementKritzelLineEndings}from"./kritzel-line-endings.js";export{KritzelLoginDialog,defineCustomElement as defineCustomElementKritzelLoginDialog}from"./kritzel-login-dialog.js";export{KritzelMasterDetail,defineCustomElement as defineCustomElementKritzelMasterDetail}from"./kritzel-master-detail.js";export{KritzelMenu,defineCustomElement as defineCustomElementKritzelMenu}from"./kritzel-menu.js";export{KritzelMenuItem,defineCustomElement as defineCustomElementKritzelMenuItem}from"./kritzel-menu-item.js";export{KritzelMoreMenu,defineCustomElement as defineCustomElementKritzelMoreMenu}from"./kritzel-more-menu.js";export{KritzelNumericInput,defineCustomElement as defineCustomElementKritzelNumericInput}from"./kritzel-numeric-input.js";export{KritzelOpacitySlider,defineCustomElement as defineCustomElementKritzelOpacitySlider}from"./kritzel-opacity-slider.js";export{KritzelPillTabs,defineCustomElement as defineCustomElementKritzelPillTabs}from"./kritzel-pill-tabs.js";export{KritzelPortal,defineCustomElement as defineCustomElementKritzelPortal}from"./kritzel-portal.js";export{KritzelSettings,defineCustomElement as defineCustomElementKritzelSettings}from"./kritzel-settings.js";export{KritzelShapeFill,defineCustomElement as defineCustomElementKritzelShapeFill}from"./kritzel-shape-fill.js";export{KritzelShareDialog,defineCustomElement as defineCustomElementKritzelShareDialog}from"./kritzel-share-dialog.js";export{KritzelSlideToggle,defineCustomElement as defineCustomElementKritzelSlideToggle}from"./kritzel-slide-toggle.js";export{KritzelSplitButton,defineCustomElement as defineCustomElementKritzelSplitButton}from"./kritzel-split-button.js";export{KritzelStrokeSize,defineCustomElement as defineCustomElementKritzelStrokeSize}from"./kritzel-stroke-size.js";export{KritzelToolConfig,defineCustomElement as defineCustomElementKritzelToolConfig}from"./kritzel-tool-config.js";export{KritzelTooltip,defineCustomElement as defineCustomElementKritzelTooltip}from"./kritzel-tooltip.js";export{KritzelUtilityPanel,defineCustomElement as defineCustomElementKritzelUtilityPanel}from"./kritzel-utility-panel.js";export{KritzelWorkspaceManager,defineCustomElement as defineCustomElementKritzelWorkspaceManager}from"./kritzel-workspace-manager.js";const o=Math.floor,n=127,m=Number.MAX_SAFE_INTEGER;class u{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const z=()=>new u,E=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let r=0;r<e.bufs.length;r++)t+=e.bufs[r].length;return t})(e));let r=0;for(let s=0;s<e.bufs.length;s++){const i=e.bufs[s];t.set(i,r),r+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),r),t},p=(e,t)=>{const r=e.cbuf.length;e.cpos===r&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*r),e.cpos=0),e.cbuf[e.cpos++]=t},k=(e,t)=>{for(;t>n;)p(e,128|n&t),t=o(t/128);p(e,n&t)},x=(e,t)=>{k(e,t.byteLength),((e,t)=>{const r=e.cbuf.length,s=e.cpos,i=((e,t)=>e<t?e:t)(r-s,t.length),o=t.length-i;e.cbuf.set(t.subarray(0,i),s),e.cpos+=i,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*r,o)),e.cbuf.set(t.subarray(i)),e.cpos=o)})(e,t)},j=e=>Error(e),T=j("Unexpected end of array"),y=j("Integer out of Range");class w{constructor(e){this.arr=e,this.pos=0}}const P=e=>((e,t)=>{const r=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,r})(e,M(e)),M=e=>{let t=0,r=1;const s=e.arr.length;for(;e.pos<s;){const s=e.arr[e.pos++];if(t+=(s&n)*r,r*=128,s<128)return t;if(t>m)throw y}throw T};class U{type="local";doc;channel;_synced=!1;constructor(e,t,r){this.doc=t,this.channel=new BroadcastChannel(e),this.channel.onmessage=e=>{this.handleMessage(e.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),r?.quiet||console.info("BroadcastChannel Provider initialized: "+e)}handleDocUpdate=(e,t)=>{if(t!==this){const t=z();k(t,0),x(t,e),this.channel.postMessage(E(t))}};handleMessage(e){const r=(e=>new w(e))(new Uint8Array(e));switch(M(r)){case 0:const e=P(r);t.applyUpdate(this.doc,e,this);break;case 1:this.broadcastSync();break;case 2:const s=P(r),i=t.encodeStateAsUpdate(this.doc,s);if(i.length>0){const e=z();k(e,0),x(e,i),this.channel.postMessage(E(e))}}}broadcastSync(){const e=z();k(e,2),x(e,t.encodeStateVector(this.doc)),this.channel.postMessage(E(e))}async connect(){if(!this._synced)return new Promise((e=>{const t=()=>{this._synced?e():setTimeout(t,50)};t()}))}disconnect(){}async reconnect(){return this.disconnect(),this.connect()}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}class _{type="network";provider;isConnected=!1;_quiet=!1;get awareness(){return this.provider.awareness}constructor(e,t,r){const s=r?.url||"ws://localhost:1234",o=r?.roomName||e;this.provider=new i(s,o,t,{params:r?.params,protocols:r?.protocols,WebSocketPolyfill:r?.WebSocketPolyfill,awareness:r?.awareness,maxBackoffTime:r?.maxBackoffTime,disableBc:!0}),this._quiet=r?.quiet??!1,this.setupEventListeners(),this._quiet||console.info(`WebSocket Provider initialized: ${s}/${o}`)}static with(e){return{create:(t,r,s)=>{const i=s?{...e,...s}:e;return new _(t,r,i)}}}setupEventListeners(){this.provider.on("status",(({status:e})=>{"connected"===e?(this.isConnected=!0,this._quiet||console.info("WebSocket connected")):"disconnected"===e&&(this.isConnected=!1,this._quiet||console.info("WebSocket disconnected"))})),this.provider.on("sync",(e=>{e&&!this._quiet&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((e,t)=>{const r=setTimeout((()=>{t(Error("WebSocket connection timeout"))}),1e4),s=({status:t})=>{"connected"===t&&(clearTimeout(r),this.provider.off("status",s),this.isConnected=!0,e())};this.provider.on("status",s),this.provider.wsconnected&&(clearTimeout(r),this.provider.off("status",s),this.isConnected=!0,e())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}async reconnect(){return this.disconnect(),this.connect()}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}export{U as BroadcastSyncProvider,_ as WebSocketSyncProvider}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-B4F19Aqj.js";const p=o,r=s;export{p as KritzelActiveUsers,r as defineCustomElement}
1
+ import{K as o,d as s}from"./p-CaKSDRid.js";const a=o,p=s;export{a as KritzelActiveUsers,p as defineCustomElement}
@@ -1 +1 @@
1
- import{K as s,d as o}from"./p-Dw0Obsn5.js";const p=s,r=o;export{p as KritzelAvatar,r as defineCustomElement}
1
+ import{K as o,d as s}from"./p-Cz2gQKbL.js";const p=o,r=s;export{p as KritzelAvatar,r as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-B4h_tGG1.js";const t=o,p=s;export{t as KritzelAwarenessCursors,p as defineCustomElement}
1
+ import{K as o,d as s}from"./p-C0U3Mg5I.js";const p=o,r=s;export{p as KritzelAwarenessCursors,r as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-DCH4Rlqx.js";const p=o,r=s;export{p as KritzelBackToContent,r as defineCustomElement}
1
+ import{K as o,d as s}from"./p-BIdZCZ_l.js";const p=o,r=s;export{p as KritzelBackToContent,r as defineCustomElement}
@@ -1 +1 @@
1
- import{p as e,H as t,c as o,h as s,d as r,t as n}from"./p-BWj1eE2b.js";import{d as l}from"./p-cjeDomsc.js";import{d as c}from"./p-Gm5hSQ-e.js";const i=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.typeChange=o(this,"typeChange")}type="pen";brushOptions=[{value:"pen",label:"Pen"},{value:"highlighter",label:"Highlighter"}];typeChange;handleDropdownValueChange(e){this.typeChange.emit(e.detail)}render(){const e=this.brushOptions.map((e=>({value:e.value,label:e.label})));return s(r,{key:"66ecc7850e816be6f0c38e2a53d96493e8141a7c"},s("kritzel-dropdown",{key:"792caa0c4ff4c8ee3c5dfd404ba5456e6a4c16e4",options:e,value:this.type,onValueChanged:e=>this.handleDropdownValueChange(e)},s("button",{key:"7c82f747c86846c19635be47c797371300855f5e",class:"brush-style-button",slot:"prefix"},s("kritzel-icon",{key:"59d4863c0660d0c6281031321e11518c57d8ae71",name:this.type,size:16}))))}static get style(){return":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)}"}},[513,"kritzel-brush-style",{type:[1],brushOptions:[16]}]),a=i,d=function(){"undefined"!=typeof customElements&&["kritzel-brush-style","kritzel-dropdown","kritzel-icon"].forEach((e=>{switch(e){case"kritzel-brush-style":customElements.get(n(e))||customElements.define(n(e),i);break;case"kritzel-dropdown":customElements.get(n(e))||l();break;case"kritzel-icon":customElements.get(n(e))||c()}}))};export{a as KritzelBrushStyle,d as defineCustomElement}
1
+ import{p as e,H as t,c as o,h as s,d as r,t as n}from"./p-BWj1eE2b.js";import{d as l}from"./p-CBTqCoUx.js";import{d as a}from"./p-Gm5hSQ-e.js";const c=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.typeChange=o(this,"typeChange")}type="pen";brushOptions=[{value:"pen",label:"Pen"},{value:"highlighter",label:"Highlighter"}];typeChange;handleDropdownValueChange(e){this.typeChange.emit(e.detail)}render(){const e=this.brushOptions.map((e=>({value:e.value,label:e.label})));return s(r,{key:"126d6ebbd4b90eef936ccb90905da373a5f9b3ac"},s("kritzel-dropdown",{key:"22e8e49b74c43b410384e247d4b0c779b1ee7b2e",options:e,value:this.type,onValueChanged:e=>this.handleDropdownValueChange(e)},s("button",{key:"0b00fc066db7a2afb5ab101bc20badbb8c065d4a",class:"brush-style-button",slot:"prefix"},s("kritzel-icon",{key:"ed074981009c37c86a22cbc70656663060c22553",name:this.type,size:16}))))}static get style(){return":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)}"}},[513,"kritzel-brush-style",{type:[1],brushOptions:[16]}]),i=c,b=function(){"undefined"!=typeof customElements&&["kritzel-brush-style","kritzel-dropdown","kritzel-icon"].forEach((e=>{switch(e){case"kritzel-brush-style":customElements.get(n(e))||customElements.define(n(e),c);break;case"kritzel-dropdown":customElements.get(n(e))||l();break;case"kritzel-icon":customElements.get(n(e))||a()}}))};export{i as KritzelBrushStyle,b as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-Bat829Bg.js";const t=o,a=s;export{t as KritzelButton,a as defineCustomElement}
1
+ import{K as o,d as s}from"./p-C_OSXZqJ.js";const p=o,r=s;export{p as KritzelButton,r as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as p}from"./p-Brwz_Dpb.js";const r=o,s=p;export{r as KritzelColorPalette,s as defineCustomElement}
1
+ import{K as o,d as s}from"./p-C3Dwuqka.js";const a=o,p=s;export{a as KritzelColorPalette,p as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-BZ8bK8qT.js";const p=o,r=s;export{p as KritzelColor,r as defineCustomElement}
1
+ import{K as o,d as s}from"./p-CekG3_ce.js";const e=o,p=s;export{e as KritzelColor,p as defineCustomElement}
@@ -1 +1 @@
1
- import{K as s,d as o}from"./p-7yR-sKH8.js";const p=s,r=o;export{p as KritzelContextMenu,r as defineCustomElement}
1
+ import{K as o,d as s}from"./p-DRbR0Li3.js";const p=o,r=s;export{p as KritzelContextMenu,r as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-CLo-TjD_.js";const p=o,r=s;export{p as KritzelControls,r as defineCustomElement}
1
+ import{K as o,d as p}from"./p-BgopgrfE.js";const r=o,s=p;export{r as KritzelControls,s as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-DEOUiiyI.js";const i=o,p=s;export{i as KritzelCurrentUserDialog,p as defineCustomElement}
1
+ import{K as o,d as s}from"./p-R9M5PnAz.js";const p=o,r=s;export{p as KritzelCurrentUserDialog,r as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-D5BXoK9m.js";const m=o,p=s;export{m as KritzelCurrentUser,p as defineCustomElement}
1
+ import{K as o,d as s}from"./p-Dxb22STM.js";const p=o,r=s;export{p as KritzelCurrentUser,r as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-C-MtTi6x.js";const t=o,p=s;export{t as KritzelCursorTrail,p as defineCustomElement}
1
+ import{K as p,d as o}from"./p-DXO_ppUK.js";const s=p,r=o;export{s as KritzelCursorTrail,r as defineCustomElement}
@@ -1 +1 @@
1
- import{K as s,d as o}from"./p-BjPmEs5A.js";const m=s,p=o;export{m as KritzelDialog,p as defineCustomElement}
1
+ import{K as o,d as s}from"./p-BfJav4Zz.js";const a=o,p=s;export{a as KritzelDialog,p as defineCustomElement}
@@ -1 +1 @@
1
- import{K as o,d as s}from"./p-cjeDomsc.js";const c=o,m=s;export{c as KritzelDropdown,m as defineCustomElement}
1
+ import{K as o,d as s}from"./p-CBTqCoUx.js";const p=o,r=s;export{p as KritzelDropdown,r as defineCustomElement}