kritzel-stencil 0.4.24 → 0.4.26

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 (225) hide show
  1. package/LICENSE +21 -21
  2. package/LICENSE.md +49 -49
  3. package/dist/cjs/{index-Dn19mGl-.js → index-Xav9JFHg.js} +13 -49
  4. package/dist/cjs/index.cjs.js +7 -1
  5. package/dist/cjs/{kritzel-active-users_47.cjs.entry.js → kritzel-active-users_46.cjs.entry.js} +112 -217
  6. package/dist/cjs/kritzel-brush-style.cjs.entry.js +2 -2
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/{schema.constants-CY0WWJYd.js → schema.constants-CjN-B633.js} +20 -44
  9. package/dist/cjs/stencil.cjs.js +3 -3
  10. package/dist/collection/classes/providers/sync/hocuspocus-sync-provider.class.js +3 -0
  11. package/dist/collection/classes/providers/sync/websocket-sync-provider.class.js +3 -0
  12. package/dist/collection/collection-manifest.json +1 -2
  13. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.css +115 -115
  14. package/dist/collection/components/core/kritzel-awareness-cursors/kritzel-awareness-cursors.js +1 -1
  15. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -10
  16. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  17. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +160 -160
  18. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +18 -20
  19. package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +80 -80
  20. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +22 -124
  21. package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.css +29 -29
  22. package/dist/collection/components/core/kritzel-watermark/kritzel-watermark.js +2 -2
  23. package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.css +58 -58
  24. package/dist/collection/components/shared/kritzel-avatar/kritzel-avatar.js +3 -3
  25. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +42 -42
  26. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +3 -3
  27. package/dist/collection/components/shared/kritzel-button/kritzel-button.css +73 -73
  28. package/dist/collection/components/shared/kritzel-button/kritzel-button.js +2 -2
  29. package/dist/collection/components/shared/kritzel-color/kritzel-color.css +24 -24
  30. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  31. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +46 -46
  32. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  33. package/dist/collection/components/shared/kritzel-dialog/kritzel-dialog.css +209 -209
  34. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +190 -190
  35. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +2 -2
  36. package/dist/collection/components/shared/kritzel-font/kritzel-font.css +10 -10
  37. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  38. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +48 -48
  39. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +2 -2
  40. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +30 -30
  41. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  42. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +18 -18
  43. package/dist/collection/components/shared/kritzel-input/kritzel-input.css +69 -69
  44. package/dist/collection/components/shared/kritzel-input/kritzel-input.js +1 -1
  45. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -60
  46. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +3 -3
  47. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.css +190 -190
  48. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.js +3 -3
  49. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +34 -34
  50. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
  51. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +166 -166
  52. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
  53. package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.css +102 -102
  54. package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.js +1 -1
  55. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -85
  56. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
  57. package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.css +68 -68
  58. package/dist/collection/components/shared/kritzel-pill-tabs/kritzel-pill-tabs.js +2 -2
  59. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  60. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -47
  61. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +4 -4
  62. package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.css +48 -48
  63. package/dist/collection/components/shared/kritzel-slide-toggle/kritzel-slide-toggle.js +1 -1
  64. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +78 -78
  65. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
  66. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +37 -37
  67. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  68. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +18 -18
  69. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
  70. package/dist/collection/components/ui/kritzel-active-users/kritzel-active-users.css +65 -65
  71. package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.css +42 -42
  72. package/dist/collection/components/ui/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
  73. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +112 -112
  74. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +331 -331
  75. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +6 -6
  76. package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.css +11 -11
  77. package/dist/collection/components/ui/kritzel-current-user/kritzel-current-user.js +1 -1
  78. package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.css +39 -39
  79. package/dist/collection/components/ui/kritzel-current-user-dialog/kritzel-current-user-dialog.js +1 -1
  80. package/dist/collection/components/ui/kritzel-export/kritzel-export.css +89 -89
  81. package/dist/collection/components/ui/kritzel-export/kritzel-export.js +1 -1
  82. package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.css +50 -50
  83. package/dist/collection/components/ui/kritzel-loading-overlay/kritzel-loading-overlay.js +1 -1
  84. package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.css +98 -98
  85. package/dist/collection/components/ui/kritzel-login-dialog/kritzel-login-dialog.js +1 -1
  86. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +58 -58
  87. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +2 -2
  88. package/dist/collection/components/ui/kritzel-notification-card/kritzel-notification-card.css +101 -101
  89. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.css +137 -137
  90. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +1 -1
  91. package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.css +150 -150
  92. package/dist/collection/components/ui/kritzel-share-dialog/kritzel-share-dialog.js +2 -2
  93. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -38
  94. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +45 -45
  95. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  96. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +16 -16
  97. package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.css +72 -72
  98. package/dist/collection/components/ui/kritzel-zoom-panel/kritzel-zoom-panel.js +1 -1
  99. package/dist/collection/constants/version.js +1 -1
  100. package/dist/collection/helpers/cursor.helper.js +6 -6
  101. package/dist/collection/helpers/svg-export.helper.js +41 -41
  102. package/dist/components/index.d.ts +0 -2
  103. package/dist/components/index.js +9 -4
  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 +94 -102
  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-tool-config.js +1 -1
  146. package/dist/components/kritzel-tooltip.js +1 -1
  147. package/dist/components/kritzel-utility-panel.js +1 -1
  148. package/dist/components/kritzel-watermark.js +1 -1
  149. package/dist/components/kritzel-workspace-manager.js +1 -1
  150. package/dist/components/kritzel-zoom-panel.js +1 -1
  151. package/dist/components/{p-BFYT03fw.js → p-B38_9BJg.js} +3 -3
  152. package/dist/components/{p-C9_yBEoX.js → p-B43upypT.js} +10 -30
  153. package/dist/components/{p-Covorf4C.js → p-BFYtCsZu.js} +3 -3
  154. package/dist/components/{p-BppcoKoo.js → p-BPzdPKWE.js} +5 -5
  155. package/dist/components/{p-Cx-L_28S.js → p-Ba0c-tu2.js} +3 -3
  156. package/dist/components/{p-MhQxGUvY.js → p-BeSKOETx.js} +3 -3
  157. package/dist/components/{p-CLAz6RJc.js → p-BprEDRpA.js} +3 -3
  158. package/dist/components/{p-BXUx_C0N.js → p-BsLI_BWq.js} +2 -2
  159. package/dist/components/{p-CSKToqUl.js → p-C0FEC_gS.js} +4 -4
  160. package/dist/components/{p-D2VcPEtL.js → p-CAXR5-S9.js} +6 -6
  161. package/dist/components/{p-DYPA7jpg.js → p-CBrn5AIB.js} +2 -2
  162. package/dist/components/{p-D3BzgkIE.js → p-CSPYkLLH.js} +2 -2
  163. package/dist/components/{p-Ck-87E2G.js → p-CSuU8frA.js} +1 -1
  164. package/dist/components/{p-Di--2boB.js → p-CXpv9Rxe.js} +3 -3
  165. package/dist/components/{p-dAXnRkjA.js → p-Ce1j1-Hg.js} +5 -5
  166. package/dist/components/{p-BrA9NBEE.js → p-CeffYwAK.js} +21 -21
  167. package/dist/components/{p-DT_WBwsw.js → p-ChPs27Fd.js} +6 -6
  168. package/dist/components/{p-3tBE7SyG.js → p-Cm33td2O.js} +2 -2
  169. package/dist/components/{p-BkXQL5Dl.js → p-CoXN583u.js} +5 -5
  170. package/dist/components/{p-Ch-KG9To.js → p-CucCT7Qn.js} +3 -3
  171. package/dist/components/{p-DPsbNStn.js → p-Cva3jIIU.js} +2 -2
  172. package/dist/components/{p-D0Trc3IQ.js → p-D0Ed8epW.js} +5 -5
  173. package/dist/components/{p-DafP9PAA.js → p-DFMZEarE.js} +2 -2
  174. package/dist/components/{p-BShrnlam.js → p-DK0anxtL.js} +2 -2
  175. package/dist/components/{p-zG-WUBGF.js → p-DN9p3G9K.js} +4 -4
  176. package/dist/components/{p-DcUIO14-.js → p-DOTdJ3JQ.js} +4 -4
  177. package/dist/components/{p-CWAChRD5.js → p-DOl-95VY.js} +12 -12
  178. package/dist/components/{p-Dznwo6oc.js → p-DTB3ykgO.js} +2 -2
  179. package/dist/components/{p-BZZ3KRPk.js → p-DUmLsjKb.js} +3 -3
  180. package/dist/components/{p-DwEYMvIn.js → p-DUoQyGKc.js} +66 -178
  181. package/dist/components/{p-QSyeAy8R.js → p-DX2nriaq.js} +2 -2
  182. package/dist/components/{p-BrqSjRJN.js → p-D_cyY7Nd.js} +3 -3
  183. package/dist/components/{p-CHoOe3FD.js → p-Df3BwVGy.js} +3 -3
  184. package/dist/components/{p-CSWCmyzb.js → p-DhabvHJM.js} +5 -5
  185. package/dist/components/{p-o3NYKrVL.js → p-DkHYY72B.js} +3 -3
  186. package/dist/components/{p-vDCa_ZDm.js → p-DnmVD1Mz.js} +3 -3
  187. package/dist/components/{p-fSV6KVTC.js → p-DoxFuOy1.js} +3 -3
  188. package/dist/components/{p-b0J2ktAm.js → p-Dpm75DfV.js} +7 -7
  189. package/dist/components/{p-ME1sDz3f.js → p-Dvn6ad4a.js} +2 -2
  190. package/dist/components/{p-Qdo3E8dr.js → p-NOWtUeeQ.js} +2 -2
  191. package/dist/components/{p-Dp1CD4gK.js → p-OUl5CA4Y.js} +2 -2
  192. package/dist/components/{p-D6JycG-I.js → p-bAacqNHq.js} +3 -3
  193. package/dist/components/{p-DjXQxw9R.js → p-djJSnjAX.js} +3 -3
  194. package/dist/components/{p-1Q4VnThv.js → p-jIKskj3S.js} +3 -3
  195. package/dist/components/{p-DW1B118Q.js → p-m7SeNszM.js} +9 -9
  196. package/dist/esm/{index-2va1Pk9z.js → index-Dhio9uis.js} +13 -49
  197. package/dist/esm/index.js +8 -2
  198. package/dist/{stencil/p-ce6d432e.entry.js → esm/kritzel-active-users_46.entry.js} +113 -217
  199. package/dist/esm/kritzel-brush-style.entry.js +2 -2
  200. package/dist/esm/loader.js +3 -3
  201. package/dist/esm/{schema.constants-DBvUmuDH.js → schema.constants-DfvqHmxc.js} +20 -44
  202. package/dist/esm/stencil.js +4 -4
  203. package/dist/stencil/index.esm.js +8 -2
  204. package/dist/{esm/kritzel-active-users_47.entry.js → stencil/p-5c045d3e.entry.js} +113 -217
  205. package/dist/stencil/{p-DBvUmuDH.js → p-DfvqHmxc.js} +20 -44
  206. package/dist/stencil/{p-2va1Pk9z.js → p-Dhio9uis.js} +11 -47
  207. package/dist/stencil/{p-df06ca3a.entry.js → p-fb32cd8f.entry.js} +2 -2
  208. package/dist/stencil/stencil.esm.js +4 -4
  209. package/dist/types/classes/providers/sync/hocuspocus-sync-provider.class.d.ts +1 -0
  210. package/dist/types/classes/providers/sync/websocket-sync-provider.class.d.ts +1 -0
  211. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +0 -1
  212. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +0 -14
  213. package/dist/types/components.d.ts +0 -42
  214. package/dist/types/constants/version.d.ts +1 -1
  215. package/dist/types/interfaces/sync-provider.interface.d.ts +7 -0
  216. package/dist/types/stencil-public-runtime.d.ts +0 -12
  217. package/loader/index.d.ts +1 -1
  218. package/package.json +1 -1
  219. package/readme.md +10 -10
  220. package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.css +0 -50
  221. package/dist/collection/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.js +0 -66
  222. package/dist/components/kritzel-sync-indicator.d.ts +0 -11
  223. package/dist/components/kritzel-sync-indicator.js +0 -6
  224. package/dist/components/p-Bxi-Bm49.js +0 -39
  225. package/dist/types/components/shared/kritzel-sync-indicator/kritzel-sync-indicator.d.ts +0 -7
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
2
 
3
- const kritzelOpacitySliderCss = () => `:host{display:flex;flex-direction:column;padding:0;box-sizing:border-box}.opacity-container{display:flex;align-items:center;width:232px}.slider-wrapper{flex:1;display:flex;align-items:center}.opacity-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient( to right, var(--kritzel-opacity-slider-active-color, #007AFF) 0%, var(--kritzel-opacity-slider-active-color, #007AFF) var(--slider-progress, 100%), var(--kritzel-opacity-slider-track-color, #e0e0e0) var(--slider-progress, 100%), var(--kritzel-opacity-slider-track-color, #e0e0e0) 100% );outline:none;cursor:var(--kritzel-global-pointer-cursor, pointer)}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--kritzel-opacity-slider-thumb-color, #ffffff);border:2px solid var(--kritzel-opacity-slider-thumb-border-color, #007AFF);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:transform 0.1s ease}.opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.opacity-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--kritzel-opacity-slider-thumb-color, #ffffff);border:2px solid var(--kritzel-opacity-slider-thumb-border-color, #007AFF);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:transform 0.1s ease}.opacity-slider::-moz-range-thumb:hover{transform:scale(1.1)}.opacity-slider::-moz-range-track{height:6px;border-radius:3px;background:transparent}.opacity-slider:focus{outline:none}.opacity-slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}.opacity-slider:focus::-moz-range-thumb{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}`;
3
+ const kritzelOpacitySliderCss = () => `:host{display:flex;flex-direction:column;padding:0;box-sizing:border-box}.opacity-container{display:flex;align-items:center;width:232px}.slider-wrapper{flex:1;display:flex;align-items:center}.opacity-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient( to right, var(--kritzel-opacity-slider-active-color, #007AFF) 0%, var(--kritzel-opacity-slider-active-color, #007AFF) var(--slider-progress, 100%), var(--kritzel-opacity-slider-track-color, #e0e0e0) var(--slider-progress, 100%), var(--kritzel-opacity-slider-track-color, #e0e0e0) 100% );outline:none;cursor:var(--kritzel-global-pointer-cursor, pointer)}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--kritzel-opacity-slider-thumb-color, #ffffff);border:2px solid var(--kritzel-opacity-slider-thumb-border-color, #007AFF);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:transform 0.1s ease}.opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.opacity-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--kritzel-opacity-slider-thumb-color, #ffffff);border:2px solid var(--kritzel-opacity-slider-thumb-border-color, #007AFF);cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:transform 0.1s ease}.opacity-slider::-moz-range-thumb:hover{transform:scale(1.1)}.opacity-slider::-moz-range-track{height:6px;border-radius:3px;background:transparent}.opacity-slider:focus{outline:none}.opacity-slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}.opacity-slider:focus::-moz-range-thumb{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}`;
4
4
 
5
5
  const KritzelOpacitySlider = /*@__PURE__*/ proxyCustomElement(class KritzelOpacitySlider extends H {
6
6
  constructor(registerHost) {
@@ -33,7 +33,7 @@ const KritzelOpacitySlider = /*@__PURE__*/ proxyCustomElement(class KritzelOpaci
33
33
  }
34
34
  render() {
35
35
  const percentage = this.getPercentage();
36
- return (h(Host, { key: 'f1f0dad662e93506ddfc99e648a3cedc841de730' }, h("div", { key: '7b495a97a92f8fa8b28c33323d60b790781c7271', class: "opacity-container" }, h("div", { key: 'c41d3b0543a3bf78dc15602e0439f56aef21ddbe', class: "slider-wrapper" }, h("input", { key: 'd9ba313d84b91a0f9312ef1ad9fe67cc231073c9', type: "range", class: "opacity-slider", min: this.min, max: this.max, step: this.step, value: this.value, onInput: (e) => this.handleInput(e), style: {
36
+ return (h(Host, { key: '51b1e93e982f29f181f9f542dcc2939fca08d7de' }, h("div", { key: '3376dac02effb137c04efc5aa9de96d4a5b36452', class: "opacity-container" }, h("div", { key: '3d1d2c0fe1b4b4185e37dcbf61a6c3a955fe1356', class: "slider-wrapper" }, h("input", { key: '6c43f519ff5d7bbc17ce7804909e52efc6e9533b', type: "range", class: "opacity-slider", min: this.min, max: this.max, step: this.step, value: this.value, onInput: (e) => this.handleInput(e), style: {
37
37
  '--slider-progress': `${percentage}%`,
38
38
  '--kritzel-opacity-slider-thumb-border-color': this.previewColor,
39
39
  } })))));
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
2
- import { d as defineCustomElement$1 } from './p-DcUIO14-.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
+ import { d as defineCustomElement$1 } from './p-DOTdJ3JQ.js';
3
3
 
4
4
  const kritzelStrokeSizeCss = () => `:host{display:flex;align-items:flex-start;gap:0;padding:0;width:100%;box-sizing:border-box}.size-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fill, 32px);gap:8px;justify-items:center}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-global-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}`;
5
5
 
@@ -21,7 +21,7 @@ const KritzelStrokeSize = /*@__PURE__*/ proxyCustomElement(class KritzelStrokeSi
21
21
  }
22
22
  render() {
23
23
  const sizes = this.sizes ?? [];
24
- return (h(Host, { key: 'c0920f9f5c038774e8515134e5d5a89dc71b11ab' }, h("div", { key: '05dc9a4b9e91114562bdbaede31c37576a9bd6e9', class: "size-grid" }, sizes.map(size => (h("div", { tabIndex: 0, class: {
24
+ return (h(Host, { key: '8b12f354a3395cd69c7199115ce998cf2eb26eb2' }, h("div", { key: '39008613327d50b75270dd78ea498113e5e9617b', class: "size-grid" }, sizes.map(size => (h("div", { tabIndex: 0, class: {
25
25
  'size-container': true,
26
26
  'selected': this.selectedSize === size,
27
27
  }, onClick: () => this.handleSizeClick(size) }, h("kritzel-color", { value: 'var(--kritzel-global-text-primary)', size: size })))))));
@@ -1,9 +1,9 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
2
- import { d as defineCustomElement$5 } from './p-QSyeAy8R.js';
3
- import { d as defineCustomElement$4 } from './p-CHoOe3FD.js';
4
- import { d as defineCustomElement$3 } from './p-Ck-87E2G.js';
5
- import { d as defineCustomElement$2 } from './p-Qdo3E8dr.js';
6
- import { d as defineCustomElement$1 } from './p-1Q4VnThv.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
+ import { d as defineCustomElement$5 } from './p-DX2nriaq.js';
3
+ import { d as defineCustomElement$4 } from './p-Df3BwVGy.js';
4
+ import { d as defineCustomElement$3 } from './p-CSuU8frA.js';
5
+ import { d as defineCustomElement$2 } from './p-NOWtUeeQ.js';
6
+ import { d as defineCustomElement$1 } from './p-jIKskj3S.js';
7
7
 
8
8
  const kritzelExportCss = () => `:host{display:flex;flex-direction:column;min-height:0}.export-content{display:flex;flex-direction:column;gap:16px;padding:0;flex:1}.export-content kritzel-pill-tabs{align-self:center}.export-tab-content{display:flex;flex-direction:column;gap:16px;min-height:330px}.format-selection{display:flex;flex-direction:column;gap:6px}.format-selection label{font-size:14px;font-weight:500;color:var(--kritzel-global-text-primary, #333)}.export-primary-button{width:100%;padding:12px 24px;background-color:var(--kritzel-global-primary-color, #007AFF);color:var(--kritzel-global-primary-text-color, #fff);border:none;border-radius:var(--kritzel-button-border-radius, 8px);font-size:14px;font-weight:600;cursor:pointer;transition:background-color 0.2s ease;-webkit-tap-highlight-color:transparent}.export-primary-button:hover{background-color:var(--kritzel-global-primary-hover-color, #0066d6)}.export-primary-button:focus-visible{outline:revert;outline-offset:revert}.preview-container{width:100%;display:flex;justify-content:center;align-items:center;box-sizing:border-box;margin-bottom:8px}.preview-container img{max-width:100%;max-height:250px;object-fit:contain;box-shadow:0 4px 8px rgba(0, 0, 0, 0.15);border-radius:4px;border:1px solid var(--kritzel-global-border-color, #dbdbdb)}.export-content p{margin:0;color:var(--kritzel-global-text-secondary, #666)}@media (max-width: 576px){.export-tab-content{flex:1;min-height:0}}`;
9
9
 
@@ -87,7 +87,7 @@ const KritzelExport = /*@__PURE__*/ proxyCustomElement(class KritzelExport exten
87
87
  return (h("div", { class: "export-tab-content" }, h("kritzel-input", { label: this.terms['export.filename.label'] ?? 'Filename', value: this.exportFilename, placeholder: this.terms['export.filename.placeholder'] ?? 'Enter filename', suffix: ".json", onValueChange: this.handleFilenameChange })));
88
88
  }
89
89
  render() {
90
- return (h(Host, { key: '68aef5d406aa819577ca773ea3616b93b9dfc9e7' }, h("kritzel-dialog", { key: '5072ac78ce417ed4d057d44f5532c7ac5c0f5dd6', isOpen: this.isDialogOpen, dialogTitle: this.terms['export.dialogTitle'] ?? 'Export', closable: true, contained: true, onDialogClose: this.closeDialog }, h("div", { key: '8642b3f39b20a5434a8eb5346fb4a71b9aca39da', class: "export-content" }, h("kritzel-pill-tabs", { key: 'b45da668b2f777a826de32ff2fde51e72f6f3deb', tabs: this.tabs, value: this.activeTab, onValueChange: this.handleTabChange }), this.activeTab === 'viewport' && this.renderViewportExport(), this.activeTab === 'workspace' && this.renderWorkspaceExport()), h("div", { key: '594a6ade24ecd869e23e57228ad2f5eff9ee90a8', slot: "footer" }, h("button", { key: '187c56cfd5f00acedb1dfd337a192495a19b5362', class: "export-primary-button", onClick: this.handleExport }, this.terms['export.exportButton'] ?? 'Export')))));
90
+ return (h(Host, { key: '61ce7589d0453a1bd9fde8f33a711e06225eacde' }, h("kritzel-dialog", { key: '48da046edabdb5659b6edefaca56adb7531f9862', isOpen: this.isDialogOpen, dialogTitle: this.terms['export.dialogTitle'] ?? 'Export', closable: true, contained: true, onDialogClose: this.closeDialog }, h("div", { key: 'b7afc64ad1f558a78aa68c07b4dec65e6ca21c67', class: "export-content" }, h("kritzel-pill-tabs", { key: '59f759ade5a590eda6ba87f89eb433ced62da0cd', tabs: this.tabs, value: this.activeTab, onValueChange: this.handleTabChange }), this.activeTab === 'viewport' && this.renderViewportExport(), this.activeTab === 'workspace' && this.renderWorkspaceExport()), h("div", { key: 'a38bf30c9c5256d417cd3b0baf743e245a8cf3e4', slot: "footer" }, h("button", { key: '3dc9c53416ff9c8ca47df003f41767a2143fa4ef', class: "export-primary-button", onClick: this.handleExport }, this.terms['export.exportButton'] ?? 'Export')))));
91
91
  }
92
92
  static get style() { return kritzelExportCss(); }
93
93
  }, [513, "kritzel-export", {
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
2
 
3
3
  const kritzelSlideToggleCss = () => `:host{display:inline-flex;align-items:center;cursor:var(--kritzel-global-pointer-cursor, pointer);outline:none;z-index:1;-webkit-tap-highlight-color:transparent}:host(:focus-visible) .toggle-track{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}:host(.disabled){opacity:0.5;pointer-events:none;cursor:default}.toggle-track{position:relative;width:var(--kritzel-slide-toggle-width, 40px);height:var(--kritzel-slide-toggle-height, 22px);background-color:var(--kritzel-slide-toggle-track-color, #ccc);border-radius:var(--kritzel-slide-toggle-border-radius, 11px);transition:background-color var(--kritzel-slide-toggle-transition-duration, 0.2s) ease}:host(.checked) .toggle-track{background-color:var(--kritzel-slide-toggle-track-checked-color, #007AFF)}.toggle-thumb{position:absolute;top:50%;left:2px;transform:translateY(-50%);width:var(--kritzel-slide-toggle-thumb-size, 18px);height:var(--kritzel-slide-toggle-thumb-size, 18px);background-color:var(--kritzel-slide-toggle-thumb-color, #fff);border-radius:50%;box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:left var(--kritzel-slide-toggle-transition-duration, 0.2s) ease}:host(.checked) .toggle-thumb{left:calc(var(--kritzel-slide-toggle-width, 40px) - var(--kritzel-slide-toggle-thumb-size, 18px) - 2px)}`;
4
4
 
@@ -32,7 +32,7 @@ const KritzelSlideToggle = /*@__PURE__*/ proxyCustomElement(class KritzelSlideTo
32
32
  }
33
33
  };
34
34
  render() {
35
- return (h(Host, { key: 'd92f521cf1c7c16db079416dd0943c7bc4f721e9', class: { checked: this.checked, disabled: this.disabled }, tabIndex: this.disabled ? -1 : 0, role: "switch", "aria-checked": this.checked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.label, onClick: this.handleToggle, onKeyDown: this.handleKeyDown }, h("div", { key: 'e6086cf26ff3065d1215c548f30318414f710798', class: "toggle-track" }, h("div", { key: '38e6c2edef2fde42ac75063858ad44b83e3f8f7b', class: "toggle-thumb" }))));
35
+ return (h(Host, { key: 'd8a9509138995da84fe798da448f0487d8c082b5', class: { checked: this.checked, disabled: this.disabled }, tabIndex: this.disabled ? -1 : 0, role: "switch", "aria-checked": this.checked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.label, onClick: this.handleToggle, onKeyDown: this.handleKeyDown }, h("div", { key: '0966d487def99332139fe6f4a604fff310088d72', class: "toggle-track" }, h("div", { key: 'aeec11224dffa71178f38b0a96a7e15c35f67bcf', class: "toggle-thumb" }))));
36
36
  }
37
37
  static get style() { return kritzelSlideToggleCss(); }
38
38
  }, [513, "kritzel-slide-toggle", {
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
2
 
3
3
  const kritzelInputCss = () => `:host{display:block}.input-container{display:flex;flex-direction:column;gap:6px}.input-label{font-size:14px;font-weight:500;color:var(--kritzel-text-input-label-color, #333333)}.input-wrapper{display:flex;align-items:center;border:1px solid var(--kritzel-text-input-border-color, #ebebeb);border-radius:var(--kritzel-text-input-border-radius, 6px);overflow:hidden;background:var(--kritzel-text-input-background, #ffffff);transition:border-color 150ms ease}.input-wrapper:hover:not(:focus-within){border-color:var(--kritzel-text-input-hover-border-color, #cccccc)}.input-wrapper:focus-within{border-color:var(--kritzel-text-input-focus-border-color, #007AFF);border-width:2px}.text-input{flex:1;padding:10px 12px;border:none;outline:none;font-size:14px;font-family:inherit;background:transparent;color:var(--kritzel-text-input-text-color, #333333);box-sizing:border-box}.text-input::placeholder{color:var(--kritzel-text-input-placeholder-color, #999999)}.text-input::selection{background-color:var(--kritzel-text-input-selection-background, #007AFF);color:var(--kritzel-text-input-selection-color, #ffffff)}.text-input:disabled{cursor:not-allowed;opacity:0.6}.input-suffix{padding:10px 12px;background:var(--kritzel-text-input-suffix-background, #f5f5f5);color:var(--kritzel-text-input-suffix-color, #666666);font-size:14px;border-left:1px solid var(--kritzel-text-input-border-color, #ebebeb);flex-shrink:0}`;
4
4
 
@@ -39,7 +39,7 @@ const KritzelInput = /*@__PURE__*/ proxyCustomElement(class KritzelInput extends
39
39
  this.valueChange.emit(input.value);
40
40
  };
41
41
  render() {
42
- return (h(Host, { key: 'b79679b0c9af30caa31423bdadb99819713c567e' }, h("div", { key: '7e54ab560bf19c41cc581e90777f3196931b727a', class: "input-container" }, this.label && h("label", { key: '9d4698d1c145a6aa481b4723d278ceb6e4909344', class: "input-label" }, this.label), h("div", { key: 'b4346d79a9b04ca3e663b490b837af3e8a838075', class: { 'input-wrapper': true, 'has-suffix': !!this.suffix } }, h("input", { key: '686abee5f9444b5227c634bab9743f32d964d74d', type: this.type, class: "text-input", value: this.inputValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput }), this.suffix && h("span", { key: 'd0daea49eb781f6c0e6ca310b5f0493e96be5de6', class: "input-suffix" }, this.suffix)))));
42
+ return (h(Host, { key: '92393344834011156bda2f682e559e7806864d19' }, h("div", { key: '5d569b8746d9285701259979ec554dbb41df4490', class: "input-container" }, this.label && h("label", { key: 'a27844d3da23d353b0ea2dede3c664fdbcbb6aab', class: "input-label" }, this.label), h("div", { key: 'fab4f3f1bda07c78f39ea96ba87c42be5de08286', class: { 'input-wrapper': true, 'has-suffix': !!this.suffix } }, h("input", { key: '4294687bc9f6006b0b64427c111af08d82ad5ffd', type: this.type, class: "text-input", value: this.inputValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput }), this.suffix && h("span", { key: '83adbd2978c92e969fedd9ad75f2c89b017b31a5', class: "input-suffix" }, this.suffix)))));
43
43
  }
44
44
  static get watchers() { return {
45
45
  "value": [{
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
1
+ import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
2
 
3
3
  const kritzelFontCss = () => `:host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}`;
4
4
 
@@ -14,7 +14,7 @@ const KritzelFont = /*@__PURE__*/ proxyCustomElement(class KritzelFont extends H
14
14
  size = 24;
15
15
  color = '#000000';
16
16
  render() {
17
- return (h(Host, { key: '8e4cf962a3456fb293faa678725e0c86af08bf49' }, h("div", { key: 'acf6986196dffd5c00b7edefa9453259149bf3cf', class: "font-preview", style: {
17
+ return (h(Host, { key: '08ef3f41967f34f17cbbc42982b0edbb59edb2e2' }, h("div", { key: 'dc7b64d53dbee634a2da068c618a352e6b43bea7', class: "font-preview", style: {
18
18
  fontFamily: this.fontFamily,
19
19
  fontSize: `${this.size}px`,
20
20
  color: this.color
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
1
+ import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
2
  import { O as ObjectHelper } from './p-DPONTran.js';
3
3
  import { a as KritzelColorHelper } from './p-7I4Uzjrw.js';
4
4
 
@@ -1998,7 +1998,7 @@ class KritzelLine extends KritzelBaseObject {
1998
1998
  }
1999
1999
  }
2000
2000
 
2001
- const kritzelAwarenessCursorsCss = () => `:host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:1}.awareness-cursor{position:absolute;top:0;left:0;transition:transform var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, opacity 300ms ease;will-change:transform}.awareness-cursor.stale{opacity:0}.awareness-cursor.tracking-object{transition-duration:0ms}.cursor-arrow{filter:drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3))}.cursor-label{position:absolute;left:16px;top:16px;white-space:nowrap;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;font-size:var(--kritzel-awareness-cursor-label-font-size, 12px);color:var(--kritzel-awareness-cursor-label-text-color, #ffffff);padding:2px 8px;border-radius:4px;line-height:1.4;font-weight:500;pointer-events:none;user-select:none}.edge-indicator{position:absolute;top:-12px;left:-12px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:transform var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, opacity 300ms ease;will-change:transform;pointer-events:auto;user-select:none;cursor:pointer}.edge-indicator.stale{opacity:0}.edge-indicator.tracking-object{transition-duration:0ms}.edge-arrow{position:absolute;filter:drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3));transition:opacity 300ms ease}.edge-arrow.stale{opacity:0}.edge-label{position:absolute;white-space:nowrap;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;font-size:var(--kritzel-awareness-cursor-label-font-size, 12px);color:var(--kritzel-awareness-cursor-label-text-color, #ffffff);padding:2px 8px;border-radius:4px;line-height:1.4;font-weight:500;pointer-events:none;opacity:0;transform-origin:center;transition:opacity 150ms ease}.edge-indicator:hover .edge-label{opacity:1}.remote-selection-box{position:absolute;top:0;left:0;border-width:2px;border-style:solid;pointer-events:none;will-change:transform, width, height;transition:transform var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, width var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, height var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out}`;
2001
+ const kritzelAwarenessCursorsCss = () => `:host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:1}.awareness-cursor{position:absolute;top:0;left:0;transition:transform var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, opacity 300ms ease;will-change:transform}.awareness-cursor.stale{opacity:0}.awareness-cursor.tracking-object{transition-duration:0ms}.cursor-arrow{filter:drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3))}.cursor-label{position:absolute;left:16px;top:16px;white-space:nowrap;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;font-size:var(--kritzel-awareness-cursor-label-font-size, 12px);color:var(--kritzel-awareness-cursor-label-text-color, #ffffff);padding:2px 8px;border-radius:4px;line-height:1.4;font-weight:500;pointer-events:none;user-select:none}.edge-indicator{position:absolute;top:-12px;left:-12px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:transform var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, opacity 300ms ease;will-change:transform;pointer-events:auto;user-select:none;cursor:pointer}.edge-indicator.stale{opacity:0}.edge-indicator.tracking-object{transition-duration:0ms}.edge-arrow{position:absolute;filter:drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3));transition:opacity 300ms ease}.edge-arrow.stale{opacity:0}.edge-label{position:absolute;white-space:nowrap;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;font-size:var(--kritzel-awareness-cursor-label-font-size, 12px);color:var(--kritzel-awareness-cursor-label-text-color, #ffffff);padding:2px 8px;border-radius:4px;line-height:1.4;font-weight:500;pointer-events:none;opacity:0;transform-origin:center;transition:opacity 150ms ease}.edge-indicator:hover .edge-label{opacity:1}.remote-selection-box{position:absolute;top:0;left:0;border-width:2px;border-style:solid;pointer-events:none;will-change:transform, width, height;transition:transform var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, width var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out, height var(--kritzel-awareness-cursor-transition-duration, 100ms) ease-out}`;
2002
2002
 
2003
2003
  const STALE_THRESHOLD_MS = 10_000;
2004
2004
  const REMOVE_THRESHOLD_MS = 30_000;
@@ -2207,7 +2207,7 @@ const KritzelAwarenessCursors = /*@__PURE__*/ proxyCustomElement(class KritzelAw
2207
2207
  }
2208
2208
  render() {
2209
2209
  const cursors = Array.from(this.remoteCursors.values());
2210
- return (h(Host, { key: 'b157f337127f7e5852acc0d6a246fa42e944a501' }, cursors.map(remoteCursor => {
2210
+ return (h(Host, { key: '9be6694250bafe011be27301d1c7a53fc7957657' }, cursors.map(remoteCursor => {
2211
2211
  if (!remoteCursor.cursor)
2212
2212
  return null;
2213
2213
  // When a remote user is actively drawing, derive cursor position from
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
2
- import { d as defineCustomElement$1 } from './p-CHoOe3FD.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
+ import { d as defineCustomElement$1 } from './p-Df3BwVGy.js';
3
3
 
4
4
  const kritzelFontFamilyCss = () => `:host{display:flex;align-items:flex-start;gap:8px;padding:0;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:var(--kritzel-global-pointer-cursor, pointer);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)}.font-style-button.italic-text{font-style:italic}`;
5
5
 
@@ -46,7 +46,7 @@ const KritzelFontFamily = /*@__PURE__*/ proxyCustomElement(class KritzelFontFami
46
46
  label: option.label,
47
47
  style: { fontFamily: option.cssFontFamily ?? option.value },
48
48
  }));
49
- return (h(Host, { key: '42b2805b1d2df47a1b2336dffac32ee50740809e' }, h("kritzel-dropdown", { key: '3e1f019b2ecacea061f687c93f4fdd6a384b93b7', options: dropdownOptions, value: this.selectedFontFamily, onValueChanged: this.handleDropdownValueChange, selectStyles: { fontFamily: selectedFontFamily } })));
49
+ return (h(Host, { key: '059350f34370f7a291f47a42721ca5d9bb82df49' }, h("kritzel-dropdown", { key: 'fbd8cf1ae463c7e9b76d0ac754a41de54397058e', options: dropdownOptions, value: this.selectedFontFamily, onValueChanged: this.handleDropdownValueChange, selectStyles: { fontFamily: selectedFontFamily } })));
50
50
  }
51
51
  static get watchers() { return {
52
52
  "fontOptions": [{
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
2
- import { d as defineCustomElement$1 } from './p-Ck-87E2G.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
+ import { d as defineCustomElement$1 } from './p-CSuU8frA.js';
3
3
 
4
4
  const kritzelPillTabsCss = () => `:host{display:block;max-width:100%}.pill-tabs-container{display:inline-flex;align-items:center;gap:4px;padding:4px;max-width:100%;border-radius:var(--kritzel-pill-tabs-border-radius, 10px);background:var(--kritzel-pill-tabs-background, #f0f0f0);box-sizing:border-box}.pill-tab{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;max-width:100%;padding:8px 16px;border:none;border-radius:var(--kritzel-pill-tabs-tab-border-radius, 8px);background:var(--kritzel-pill-tabs-tab-background, transparent);color:var(--kritzel-pill-tabs-tab-text-color, #666666);font-family:inherit;font-size:14px;font-weight:500;cursor:var(--kritzel-global-pointer-cursor, pointer);transition:background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;white-space:nowrap}.pill-tab:hover:not(.selected){background:var(--kritzel-pill-tabs-tab-background-hover, rgba(0, 0, 0, 0.05))}.pill-tab.selected{background:var(--kritzel-pill-tabs-tab-background-selected, #ffffff);color:var(--kritzel-pill-tabs-tab-text-color-selected, #000000);box-shadow:var(--kritzel-pill-tabs-tab-shadow-selected, 0 1px 3px rgba(0, 0, 0, 0.1))}.pill-tab:focus{outline:none}.pill-tab:focus-visible{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}.pill-tab-label{display:block;min-width:0;max-width:var(--kritzel-pill-tabs-tab-label-max-width, 10rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1}.pill-tab kritzel-icon{flex-shrink:0}`;
5
5
 
@@ -62,7 +62,7 @@ const KritzelPillTabs = /*@__PURE__*/ proxyCustomElement(class KritzelPillTabs e
62
62
  buttons?.[newIndex]?.focus();
63
63
  }
64
64
  render() {
65
- return (h(Host, { key: '16fce447fb7db0539ba115ef19771ac78f30a302' }, h("div", { key: '95487da922621b18c1ec422eb0d464131dbc28d3', class: "pill-tabs-container", role: "tablist" }, this.tabs.map((tab, index) => (h("button", { key: tab.id, class: {
65
+ return (h(Host, { key: 'f02f93ada5ec002695b62f511c847de201a8cbe4' }, h("div", { key: 'bb08ae773f1b993cb330556a5778d71fc5e91ce1', class: "pill-tabs-container", role: "tablist" }, this.tabs.map((tab, index) => (h("button", { key: tab.id, class: {
66
66
  'pill-tab': true,
67
67
  'selected': this.value === tab.id,
68
68
  }, role: "tab", "aria-selected": this.value === tab.id ? 'true' : 'false', tabIndex: this.value === tab.id ? 0 : -1, onClick: () => this.handleTabClick(tab.id), onKeyDown: (e) => this.handleKeyDown(e, index) }, tab.icon && h("kritzel-icon", { name: tab.icon, size: 16 }), h("span", { class: "pill-tab-label" }, tab.label)))))));
@@ -1,18 +1,18 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-C9_yBEoX.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-B43upypT.js';
2
2
  import { C as CURRENT_APP_STATE_SCHEMA_VERSION, a as CURRENT_WORKSPACE_SCHEMA_VERSION } from './p-CW-VyJgK.js';
3
- import { d as defineCustomElement$6 } from './p-QSyeAy8R.js';
4
- import { d as defineCustomElement$5 } from './p-CHoOe3FD.js';
5
- import { d as defineCustomElement$4 } from './p-Ck-87E2G.js';
6
- import { d as defineCustomElement$3 } from './p-CSWCmyzb.js';
7
- import { d as defineCustomElement$2 } from './p-Dznwo6oc.js';
8
- import { d as defineCustomElement$1 } from './p-ME1sDz3f.js';
3
+ import { d as defineCustomElement$6 } from './p-DX2nriaq.js';
4
+ import { d as defineCustomElement$5 } from './p-Df3BwVGy.js';
5
+ import { d as defineCustomElement$4 } from './p-CSuU8frA.js';
6
+ import { d as defineCustomElement$3 } from './p-DhabvHJM.js';
7
+ import { d as defineCustomElement$2 } from './p-DTB3ykgO.js';
8
+ import { d as defineCustomElement$1 } from './p-Dvn6ad4a.js';
9
9
 
10
10
  /**
11
11
  * The current version of the Kritzel library.
12
12
  * This file is auto-generated by the version bump scripts.
13
13
  * Do not modify manually.
14
14
  */
15
- const KRITZEL_VERSION = '0.4.24';
15
+ const KRITZEL_VERSION = '0.4.26';
16
16
 
17
17
  const kritzelSettingsCss = () => `:host{display:contents}kritzel-dialog{--kritzel-dialog-body-padding:0;--kritzel-dialog-width-large:800px;--kritzel-dialog-height-large:500px}.footer-button{padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px}.cancel-button{border:1px solid #ebebeb;background:#fff;color:inherit}.cancel-button:hover{background:#f5f5f5}.settings-tab-panel{display:none}.settings-tab-panel.is-active{display:block}.settings-content{padding:0}.settings-content h3{margin:0 0 16px 0;font-size:18px;font-weight:600;color:var(--kritzel-settings-content-heading-color, #333333)}.settings-content p{margin:0;font-size:14px;color:var(--kritzel-settings-content-text-color, #666666);line-height:1.5}.settings-group{display:flex;flex-direction:column;gap:24px}.settings-item{display:flex;flex-direction:column;gap:8px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-label{font-size:14px;font-weight:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.settings-description{font-size:12px;color:var(--kritzel-settings-description-color, #888888);margin:0;line-height:1.4}.shortcuts-list{display:flex;flex-direction:column;gap:24px}.shortcuts-category{display:flex;flex-direction:column;gap:8px}.shortcuts-category-title{font-size:14px;font-weight:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.shortcuts-group{display:flex;flex-direction:column;gap:4px}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-item-bg, rgba(0, 0, 0, 0.02))}.shortcut-label{font-size:14px;color:var(--kritzel-settings-content-text-color, #666666)}.shortcut-key{font-family:monospace;font-size:12px;padding:2px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-key-bg, #f0f0f0);color:var(--kritzel-settings-shortcut-key-color, #333333);border:1px solid var(--kritzel-settings-shortcut-key-border, #ddd)}`;
18
18
 
@@ -228,7 +228,7 @@ const KritzelSettings = /*@__PURE__*/ proxyCustomElement(class KritzelSettings e
228
228
  return (h("div", { class: "settings-categories-wrapper" }, h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'general' } }, h("div", { class: "settings-content" }, h("h3", null, this.t('settings.general.title', 'General Settings')), h("div", { class: "settings-group" }, h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.general.theme.label', 'Theme')), h("p", { class: "settings-description" }, this.t('settings.general.theme.description', 'Select a registered color theme for the editor interface.')), h("kritzel-dropdown", { options: this.availableThemes.map(t => ({ value: t, label: t })), value: this.theme, onValueChanged: this.handleThemeChange })), this.availableLocales.length > 0 && (h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.general.language.label', 'Language')), h("p", { class: "settings-description" }, this.t('settings.general.language.description', 'Select the display language for the editor interface.')), h("kritzel-dropdown", { options: this.availableLocales.map(l => ({ value: l.code, label: l.label })), value: this.locale, onValueChanged: this.handleLocaleChange }))), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.general.lockDrawingScale.label', 'Lock Drawing Scale')), h("p", { class: "settings-description" }, this.t('settings.general.lockDrawingScale.description', 'When enabled, drawn objects maintain a fixed visual size regardless of the current zoom level.')), h("kritzel-slide-toggle", { checked: this.lockDrawingScale, label: this.t('settings.general.lockDrawingScale.label', 'Lock Drawing Scale'), onCheckedChange: this.handleLockDrawingScaleChange }))))), h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'viewport' } }, h("div", { class: "settings-content" }, h("h3", null, this.t('settings.viewport.title', 'Viewport Settings')), h("div", { class: "settings-group" }, h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.viewport.minZoom.label', 'Minimum Zoom Level')), h("p", { class: "settings-description" }, this.t('settings.viewport.minZoom.description', 'Sets the minimum zoom level. Lower values allow zooming out further to see more of the canvas.')), h("kritzel-numeric-input", { value: this.scaleMin, min: 0.0001, max: 1, step: 0.0001, onValueChange: this.handleScaleMinChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.viewport.maxZoom.label', 'Maximum Zoom Level')), h("p", { class: "settings-description" }, this.t('settings.viewport.maxZoom.description', 'Sets the maximum zoom level. Higher values allow zooming in closer for detailed work.')), h("kritzel-numeric-input", { value: this.scaleMax, min: 1, max: 1000, step: 1, onValueChange: this.handleScaleMaxChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryLeft.label', 'Viewport Boundary Left')), h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryLeft.description', 'Left boundary in world coordinates. Set to limit how far left the viewport can pan.')), h("kritzel-numeric-input", { value: this.viewportBoundaryLeft, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryLeftChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryRight.label', 'Viewport Boundary Right')), h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryRight.description', 'Right boundary in world coordinates. Set to limit how far right the viewport can pan.')), h("kritzel-numeric-input", { value: this.viewportBoundaryRight, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryRightChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryTop.label', 'Viewport Boundary Top')), h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryTop.description', 'Top boundary in world coordinates. Set to limit how far up the viewport can pan.')), h("kritzel-numeric-input", { value: this.viewportBoundaryTop, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryTopChange })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.viewport.boundaryBottom.label', 'Viewport Boundary Bottom')), h("p", { class: "settings-description" }, this.t('settings.viewport.boundaryBottom.description', 'Bottom boundary in world coordinates. Set to limit how far down the viewport can pan.')), h("kritzel-numeric-input", { value: this.viewportBoundaryBottom, step: 100, placeholder: this.t('settings.viewport.boundaryPlaceholder', 'Infinite'), onValueChange: this.handleViewportBoundaryBottomChange }))))), h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'shortcuts' } }, h("div", { class: "settings-content" }, h("h3", null, this.t('settings.shortcuts.title', 'Keyboard Shortcuts')), h("div", { class: "shortcuts-list" }, Array.from(this.groupShortcutsByCategory()).map(([category, shortcuts]) => (h("div", { class: "shortcuts-category", key: category }, h("h4", { class: "shortcuts-category-title" }, category), h("div", { class: "shortcuts-group" }, shortcuts.map(shortcut => (h("div", { class: "shortcut-item", key: shortcut.key + shortcut.label }, h("span", { class: "shortcut-label" }, shortcut.label), h("kbd", { class: "shortcut-key" }, this.formatKeyCombo(shortcut)))))))))))), h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'developer' } }, h("div", { class: "settings-content" }, h("h3", null, this.t('settings.developer.title', 'Developer Options')), h("div", { class: "settings-group" }, h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.developer.showViewportInfo.label', 'Show Viewport Info')), h("p", { class: "settings-description" }, this.t('settings.developer.showViewportInfo.description', 'Display viewport debug information such as position, zoom level, and boundaries.')), h("kritzel-slide-toggle", { checked: this.debugInfo.showViewportInfo, label: this.t('settings.developer.showViewportInfo.label', 'Show Viewport Info'), onCheckedChange: this.handleDebugInfoChange('showViewportInfo') })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.developer.showObjectInfo.label', 'Show Object Info')), h("p", { class: "settings-description" }, this.t('settings.developer.showObjectInfo.description', 'Display debug information about objects on the canvas.')), h("kritzel-slide-toggle", { checked: this.debugInfo.showObjectInfo, label: this.t('settings.developer.showObjectInfo.label', 'Show Object Info'), onCheckedChange: this.handleDebugInfoChange('showObjectInfo') })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.developer.showSyncProviderInfo.label', 'Show Sync Provider Info')), h("p", { class: "settings-description" }, this.t('settings.developer.showSyncProviderInfo.description', 'Display debug information about the sync provider connection status.')), h("kritzel-slide-toggle", { checked: this.debugInfo.showSyncProviderInfo, label: this.t('settings.developer.showSyncProviderInfo.label', 'Show Sync Provider Info'), onCheckedChange: this.handleDebugInfoChange('showSyncProviderInfo') })), h("div", { class: "settings-item" }, h("label", { class: "settings-label" }, this.t('settings.developer.showMigrationInfo.label', 'Show Migration Info')), h("p", { class: "settings-description" }, this.t('settings.developer.showMigrationInfo.description', 'Display debug information about data migrations.')), h("kritzel-slide-toggle", { checked: this.debugInfo.showMigrationInfo, label: this.t('settings.developer.showMigrationInfo.label', 'Show Migration Info'), onCheckedChange: this.handleDebugInfoChange('showMigrationInfo') }))))), h("div", { class: { 'settings-tab-panel': true, 'is-active': this.selectedCategoryId === 'about' } }, h("div", { class: "settings-content" }, h("h3", null, this.t('settings.about.title', 'About')), h("p", null, this.t('settings.about.description', 'Kritzel - A drawing application')), h("p", { class: "version-info" }, "Version ", KRITZEL_VERSION), h("p", { class: "version-info" }, "App-State Schema v", CURRENT_APP_STATE_SCHEMA_VERSION), h("p", { class: "version-info" }, "Workspace Schema v", CURRENT_WORKSPACE_SCHEMA_VERSION)))));
229
229
  }
230
230
  render() {
231
- return (h(Host, { key: '830e1761493f6a45dfc8d7a63e260de00418c219' }, h("kritzel-dialog", { key: '35bebb215d583ee21b658c5a926335c6c4ffbbeb', isOpen: this.isDialogOpen, dialogTitle: this.t('settings.dialogTitle', 'Settings'), size: "large", contained: true, onDialogClose: this.closeDialog }, h("kritzel-master-detail", { key: '0bfbe1a9de453b9282a4a787aaa243f50c2af620', items: this.categories, selectedItemId: this.selectedCategoryId, onItemSelect: this.handleCategorySelect }, this.renderCategoryContent()))));
231
+ return (h(Host, { key: '96981b34953ffdda4cfdfa9e6acc832dedc0c64a' }, h("kritzel-dialog", { key: '792a68aa1fe66780a937a95db802e9c6a2135091', isOpen: this.isDialogOpen, dialogTitle: this.t('settings.dialogTitle', 'Settings'), size: "large", contained: true, onDialogClose: this.closeDialog }, h("kritzel-master-detail", { key: 'dc7d99c2b90ea4a86bc23527a39eaec70d95acc8', items: this.categories, selectedItemId: this.selectedCategoryId, onItemSelect: this.handleCategorySelect }, this.renderCategoryContent()))));
232
232
  }
233
233
  static get watchers() { return {
234
234
  "settings": [{
@@ -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,11 +104,6 @@ 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
 
115
108
  if (!hmrVersionId || !BUILD.hotModuleReplacement) {
116
109
  const processMod = importedModule => {
@@ -119,10 +112,10 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
119
112
  }
120
113
  switch(bundleId) {
121
114
 
122
- case 'kritzel-active-users_47':
115
+ case 'kritzel-active-users_46':
123
116
  return import(
124
117
  /* webpackMode: "lazy" */
125
- './kritzel-active-users_47.entry.js').then(processMod, consoleError);
118
+ './kritzel-active-users_46.entry.js').then(processMod, consoleError);
126
119
  case 'kritzel-brush-style':
127
120
  return import(
128
121
  /* webpackMode: "lazy" */
@@ -134,17 +127,15 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
134
127
  /* webpackInclude: /\.entry\.js$/ */
135
128
  /* webpackExclude: /\.system\.entry\.js$/ */
136
129
  /* webpackMode: "lazy" */
137
- `./${bundleId}.entry.js${cacheBustParams ? "?" + cacheBustParams : ""}`
130
+ `./${bundleId}.entry.js${""}`
138
131
  ).then(
139
132
  (importedModule) => {
140
133
  {
141
- failedLoadAttempts.delete(bundleId);
142
134
  cmpModules.set(bundleId, importedModule);
143
135
  }
144
136
  return importedModule[exportName];
145
137
  },
146
138
  (e) => {
147
- failedLoadAttempts.set(bundleId, retryCount + 1);
148
139
  consoleError(e, hostRef.$hostElement$);
149
140
  }
150
141
  );
@@ -154,8 +145,6 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
154
145
  var styles = /* @__PURE__ */ new Map();
155
146
  var HYDRATED_CSS = "{visibility:hidden}.hydrated{visibility:inherit}";
156
147
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
157
- var MAX_LAZY_LOAD_RETRIES = 3;
158
- var LAZY_LOAD_RETRY_INTERVAL_MS = 1e3;
159
148
  var win = typeof window !== "undefined" ? window : {};
160
149
  var plt = {
161
150
  $flags$: 0,
@@ -199,10 +188,6 @@ var supportsMutableAdoptedStyleSheets = supportsConstructableStylesheets ? /* @_
199
188
  var queuePending = false;
200
189
  var queueDomReads = [];
201
190
  var queueDomWrites = [];
202
- var scheduleFlush = () => {
203
- var _a;
204
- return ((_a = win.document) == null ? void 0 : _a.hidden) ? nextTick(flush) : plt.raf(flush);
205
- };
206
191
  var queueTask = (queue, write) => (cb) => {
207
192
  queue.push(cb);
208
193
  if (!queuePending) {
@@ -210,7 +195,7 @@ var queueTask = (queue, write) => (cb) => {
210
195
  if (write && plt.$flags$ & 4 /* queueSync */) {
211
196
  nextTick(flush);
212
197
  } else {
213
- scheduleFlush();
198
+ plt.raf(flush);
214
199
  }
215
200
  }
216
201
  };
@@ -229,7 +214,7 @@ var flush = () => {
229
214
  {
230
215
  consume(queueDomWrites);
231
216
  if (queuePending = queueDomReads.length > 0) {
232
- scheduleFlush();
217
+ plt.raf(flush);
233
218
  }
234
219
  }
235
220
  };
@@ -421,11 +406,6 @@ var h = (nodeName, vnodeData, ...children) => {
421
406
  } else if (child != null && typeof child !== "boolean") {
422
407
  if (simple = typeof nodeName !== "function" && !isComplexType(child)) {
423
408
  child = String(child);
424
- } else if (typeof nodeName !== "function" && child.$flags$ === void 0) {
425
- {
426
- consoleError("Invalid vNode child");
427
- }
428
- continue;
429
409
  }
430
410
  if (simple && lastSimple) {
431
411
  vNodeChildren[vNodeChildren.length - 1].$text$ += child;
@@ -654,7 +634,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
654
634
  }
655
635
  }
656
636
  if (newValue == null || newValue === false) {
657
- if (newValue !== false || elm.getAttribute(memberName) === "" || flags & 4 /* isHost */ && !isEnumeratedAttribute(memberName)) {
637
+ if (newValue !== false || elm.getAttribute(memberName) === "") {
658
638
  {
659
639
  elm.removeAttribute(memberName);
660
640
  }
@@ -667,8 +647,6 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
667
647
  }
668
648
  }
669
649
  };
670
- var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
671
- var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
672
650
  var parseClassListRegex = /\s/;
673
651
  var parseClassList = (value) => {
674
652
  if (typeof value === "object" && value && "baseVal" in value) {
@@ -976,7 +954,9 @@ var flushQueuedRefCallbacks = () => {
976
954
  }
977
955
  };
978
956
  var insertBefore = (parent, newNode, reference, isInitialLoad) => {
979
- {
957
+ if (parent.__insertBefore) {
958
+ return parent.__insertBefore(newNode, reference);
959
+ } else {
980
960
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
981
961
  }
982
962
  };
@@ -1244,7 +1224,6 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1244
1224
  };
1245
1225
 
1246
1226
  // src/runtime/proxy-component.ts
1247
- var reflectedAttrValue = (propValue) => propValue == null || propValue === false ? null : propValue === true ? "" : String(propValue);
1248
1227
  var proxyComponent = (Cstr, cmpMeta, flags) => {
1249
1228
  var _a, _b;
1250
1229
  const prototype = Cstr.prototype;
@@ -1377,13 +1356,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1377
1356
  return;
1378
1357
  }
1379
1358
  const propFlags = members.find(([m]) => m === propName);
1380
- const propMemberFlags = propFlags ? propFlags[1][0] : 0;
1381
- const isBooleanTarget = propMemberFlags & 4 /* Boolean */;
1382
- if (propMemberFlags & 512 /* ReflectAttr */ && propMemberFlags & 8 /* Any */ && // a complex value is never written to an attribute, so a change while the prop holds
1383
- // one is always external
1384
- !isComplexType(this[propName]) && reflectedAttrValue(this[propName]) === newValue) {
1385
- return;
1386
- }
1359
+ const isBooleanTarget = propFlags && propFlags[1][0] & 4 /* Boolean */;
1387
1360
  const isSpuriousBooleanRemoval = isBooleanTarget && newValue === null && this[propName] === void 0;
1388
1361
  if (isBooleanTarget) {
1389
1362
  newValue = newValue === null || newValue === "false" ? false : true;
@@ -1415,12 +1388,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1415
1388
 
1416
1389
  // src/runtime/initialize-component.ts
1417
1390
  var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1418
- var _a;
1419
1391
  let Cstr;
1420
1392
  try {
1421
1393
  if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1422
1394
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1423
- hostRef.$flags$ &= -1025 /* hasFailedLoad */;
1424
1395
  const bundleId = cmpMeta.$lazyBundleId$;
1425
1396
  if (bundleId) {
1426
1397
  const CstrImport = loadModule(cmpMeta, hostRef);
@@ -1432,11 +1403,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1432
1403
  Cstr = CstrImport;
1433
1404
  }
1434
1405
  if (!Cstr) {
1435
- hostRef.$flags$ &= -33 /* hasInitializedComponent */;
1436
- hostRef.$loadRetryCount$ = ((_a = hostRef.$loadRetryCount$) != null ? _a : 0) + 1;
1437
- if (hostRef.$loadRetryCount$ < MAX_LAZY_LOAD_RETRIES) {
1438
- hostRef.$flags$ |= 1024 /* hasFailedLoad */;
1439
- }
1440
1406
  throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
1441
1407
  }
1442
1408
  if (!Cstr.isProxied) {
@@ -1498,7 +1464,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1498
1464
  hostRef.$onRenderResolve$();
1499
1465
  hostRef.$onRenderResolve$ = void 0;
1500
1466
  }
1501
- if (hostRef.$onReadyResolve$ && !(hostRef.$flags$ & 1024 /* hasFailedLoad */)) {
1467
+ if (hostRef.$onReadyResolve$) {
1502
1468
  hostRef.$onReadyResolve$(elm);
1503
1469
  }
1504
1470
  }
@@ -1545,8 +1511,6 @@ var connectedCallback = (elm) => {
1545
1511
  addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
1546
1512
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1547
1513
  fireConnectedCallback(hostRef.$lazyInstance$, elm);
1548
- } else if (hostRef.$flags$ & 1024 /* hasFailedLoad */) {
1549
- setTimeout(() => initializeComponent(elm, hostRef, cmpMeta), LAZY_LOAD_RETRY_INTERVAL_MS);
1550
1514
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1551
1515
  hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));
1552
1516
  }
@@ -1669,7 +1633,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1669
1633
  }
1670
1634
  disconnectedCallback() {
1671
1635
  plt.jmp(() => disconnectedCallback(this));
1672
- nextTick(() => {
1636
+ plt.raf(() => {
1673
1637
  var _a3;
1674
1638
  const hostRef = getHostRef(this);
1675
1639
  if (!hostRef) {
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { H as HocuspocusProvider, a as HocuspocusProviderWebsocket } from './schema.constants-DBvUmuDH.js';
2
- export { P as APP_STATE_MIGRATIONS, A as AssetNotFoundError, R as CURRENT_APP_STATE_SCHEMA_VERSION, T as CURRENT_WORKSPACE_SCHEMA_VERSION, E as DEFAULT_ASSET_STORAGE_CONFIG, D as DEFAULT_BRUSH_CONFIG, C as DEFAULT_LINE_TOOL_CONFIG, B as DEFAULT_TEXT_CONFIG, L as DE_LOCALE, J as EN_LOCALE, M as FR_LOCALE, I as IndexedDBAssetProvider, N as KritzelAlignment, t as KritzelAnchorManager, r as KritzelAssetResolver, K as KritzelBaseObject, i as KritzelBaseTool, j as KritzelBrushTool, p as KritzelCursorHelper, h as KritzelCustomElement, x as KritzelCustomElementRendererRegistry, l as KritzelEraserTool, y as KritzelFontRegistry, f as KritzelGroup, d as KritzelImage, m as KritzelImageTool, w as KritzelLicenseManager, e as KritzelLine, k as KritzelLineTool, v as KritzelLocalizationManager, c as KritzelPath, q as KritzelSelectionTool, g as KritzelShape, o as KritzelShapeTool, b as KritzelText, n as KritzelTextTool, u as KritzelThemeManager, s as KritzelWorkspace, S as ShapeType, W as WORKSPACE_EXPORT_VERSION, Q as WORKSPACE_MIGRATIONS, G as darkTheme, z as hasRemoteSyncProvider, F as lightTheme, O as runMigrations } from './schema.constants-DBvUmuDH.js';
1
+ import { H as HocuspocusProvider, a as HocuspocusProviderWebsocket } from './schema.constants-DfvqHmxc.js';
2
+ export { P as APP_STATE_MIGRATIONS, A as AssetNotFoundError, R as CURRENT_APP_STATE_SCHEMA_VERSION, T as CURRENT_WORKSPACE_SCHEMA_VERSION, E as DEFAULT_ASSET_STORAGE_CONFIG, D as DEFAULT_BRUSH_CONFIG, C as DEFAULT_LINE_TOOL_CONFIG, B as DEFAULT_TEXT_CONFIG, L as DE_LOCALE, J as EN_LOCALE, M as FR_LOCALE, I as IndexedDBAssetProvider, N as KritzelAlignment, t as KritzelAnchorManager, r as KritzelAssetResolver, K as KritzelBaseObject, i as KritzelBaseTool, j as KritzelBrushTool, p as KritzelCursorHelper, h as KritzelCustomElement, x as KritzelCustomElementRendererRegistry, l as KritzelEraserTool, y as KritzelFontRegistry, f as KritzelGroup, d as KritzelImage, m as KritzelImageTool, w as KritzelLicenseManager, e as KritzelLine, k as KritzelLineTool, v as KritzelLocalizationManager, c as KritzelPath, q as KritzelSelectionTool, g as KritzelShape, o as KritzelShapeTool, b as KritzelText, n as KritzelTextTool, u as KritzelThemeManager, s as KritzelWorkspace, S as ShapeType, W as WORKSPACE_EXPORT_VERSION, Q as WORKSPACE_MIGRATIONS, G as darkTheme, z as hasRemoteSyncProvider, F as lightTheme, O as runMigrations } from './schema.constants-DfvqHmxc.js';
3
3
  import * as Y from 'yjs';
4
4
  import { IndexeddbPersistence } from 'y-indexeddb';
5
5
  import { WebsocketProvider } from 'y-websocket';
@@ -552,6 +552,9 @@ class WebSocketSyncProvider {
552
552
  get awareness() {
553
553
  return this.provider.awareness;
554
554
  }
555
+ get rawProvider() {
556
+ return this.provider;
557
+ }
555
558
  constructor(docName, doc, options) {
556
559
  const url = options?.url || 'ws://localhost:1234';
557
560
  const roomName = options?.roomName || docName;
@@ -668,6 +671,9 @@ class HocuspocusSyncProvider {
668
671
  get awareness() {
669
672
  return this.provider.awareness;
670
673
  }
674
+ get rawProvider() {
675
+ return this.provider;
676
+ }
671
677
  get connectionStatus() {
672
678
  return this._connectionStatus;
673
679
  }