kritzel-stencil 0.1.70 → 0.1.71

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 (73) hide show
  1. package/dist/cjs/index.cjs.js +1 -1
  2. package/dist/cjs/kritzel-active-users_41.cjs.entry.js +49 -8
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/stencil.cjs.js +1 -1
  5. package/dist/cjs/{workspace.migrations-TqXdsW1s.js → workspace.migrations-Cma2Vh5E.js} +2 -1
  6. package/dist/collection/classes/registries/icon-registry.class.js +2 -1
  7. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +36 -1
  8. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +34 -0
  9. package/dist/collection/components/shared/kritzel-master-detail/kritzel-master-detail.css +1 -0
  10. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +3 -1
  11. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +5 -0
  12. package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.js +5 -2
  13. package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +21 -2
  14. package/dist/collection/constants/version.js +1 -1
  15. package/dist/components/index.js +1 -1
  16. package/dist/components/kritzel-back-to-content.js +1 -1
  17. package/dist/components/kritzel-brush-style.js +1 -1
  18. package/dist/components/kritzel-context-menu.js +1 -1
  19. package/dist/components/kritzel-controls.js +1 -1
  20. package/dist/components/kritzel-editor.js +1 -1
  21. package/dist/components/kritzel-engine.js +1 -1
  22. package/dist/components/kritzel-export.js +1 -1
  23. package/dist/components/kritzel-icon.js +1 -1
  24. package/dist/components/kritzel-login-dialog.js +1 -1
  25. package/dist/components/kritzel-master-detail.js +1 -1
  26. package/dist/components/kritzel-menu-item.js +1 -1
  27. package/dist/components/kritzel-menu.js +1 -1
  28. package/dist/components/kritzel-more-menu.js +1 -1
  29. package/dist/components/kritzel-pill-tabs.js +1 -1
  30. package/dist/components/kritzel-settings.js +1 -1
  31. package/dist/components/kritzel-share-dialog.js +1 -1
  32. package/dist/components/kritzel-split-button.js +1 -1
  33. package/dist/components/kritzel-tool-config.js +1 -1
  34. package/dist/components/kritzel-utility-panel.js +1 -1
  35. package/dist/components/kritzel-workspace-manager.js +1 -1
  36. package/dist/components/{p-D6RNXsYR.js → p-B47JuZiD.js} +1 -1
  37. package/dist/components/{p-B_j7el2b.js → p-B5ouV8EQ.js} +1 -1
  38. package/dist/components/p-BB6jZPvJ.js +1 -0
  39. package/dist/components/{p-BsM1KXx1.js → p-BG1IxseV.js} +1 -1
  40. package/dist/components/p-BvToKcu1.js +1 -0
  41. package/dist/components/{p-A7HszzcA.js → p-C5KuV1pK.js} +1 -1
  42. package/dist/components/{p-BbUblXxe.js → p-CHmi1QWx.js} +1 -1
  43. package/dist/components/p-CHtn5xr6.js +1 -0
  44. package/dist/components/{p-CcR5avNh.js → p-CNro30tB.js} +1 -1
  45. package/dist/components/{p-C2Fpsb5N.js → p-CUkKKbnu.js} +1 -1
  46. package/dist/components/{p-QkQRIhFK.js → p-DEzfXrGX.js} +1 -1
  47. package/dist/components/{p-BiAXa6dM.js → p-D_Rh1g93.js} +1 -1
  48. package/dist/components/{p-B8t6bOJH.js → p-DiFVw6IQ.js} +1 -1
  49. package/dist/components/{p-CVvPMxWx.js → p-Do0Q5-iC.js} +1 -1
  50. package/dist/components/{p-CmZLak6y.js → p-DsIlDGDO.js} +1 -1
  51. package/dist/components/{p-BJKxjcTR.js → p-MrsvScCa.js} +2 -2
  52. package/dist/components/{p-D6uQVtzS.js → p-VHyNcODZ.js} +1 -1
  53. package/dist/esm/index.js +2 -2
  54. package/dist/esm/kritzel-active-users_41.entry.js +49 -8
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/stencil.js +1 -1
  57. package/dist/esm/{workspace.migrations-CkwNDiZG.js → workspace.migrations-BeeAeDP0.js} +2 -1
  58. package/dist/stencil/index.esm.js +1 -1
  59. package/dist/stencil/p-47cfd58a.entry.js +9 -0
  60. package/dist/stencil/{p-CkwNDiZG.js → p-BeeAeDP0.js} +1 -1
  61. package/dist/stencil/stencil.esm.js +1 -1
  62. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +2 -0
  63. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +4 -0
  64. package/dist/types/components/ui/kritzel-more-menu/kritzel-more-menu.d.ts +1 -0
  65. package/dist/types/components/ui/kritzel-settings/kritzel-settings.d.ts +3 -0
  66. package/dist/types/components.d.ts +18 -0
  67. package/dist/types/constants/version.d.ts +1 -1
  68. package/dist/types/interfaces/settings.interface.d.ts +3 -0
  69. package/package.json +1 -1
  70. package/dist/components/p-BbAIcn3f.js +0 -1
  71. package/dist/components/p-C8HhteY6.js +0 -1
  72. package/dist/components/p-C_DXltJs.js +0 -1
  73. package/dist/stencil/p-95ce0e43.entry.js +0 -9
@@ -1 +1 @@
1
- import{H as a,a as T}from"./p-CkwNDiZG.js";export{A as APP_STATE_MIGRATIONS,C as CURRENT_APP_STATE_SCHEMA_VERSION,w as CURRENT_WORKSPACE_SCHEMA_VERSION,D as DEFAULT_BRUSH_CONFIG,s as DEFAULT_LINE_TOOL_CONFIG,r as DEFAULT_TEXT_CONFIG,I as IndexedDBSyncProvider,v as KritzelAlignment,p as KritzelAnchorManager,g as KritzelBrushTool,m as KritzelCursorHelper,i as KritzelEraserTool,e as KritzelGroup,c as KritzelImage,j as KritzelImageTool,d as KritzelLine,h as KritzelLineTool,b as KritzelPath,n as KritzelSelectionTool,f as KritzelShape,l as KritzelShapeTool,K as KritzelText,k as KritzelTextTool,q as KritzelThemeManager,o as KritzelWorkspace,S as ShapeType,W as WORKSPACE_EXPORT_VERSION,y as WORKSPACE_MIGRATIONS,u as darkTheme,t as lightTheme,x as runMigrations}from"./p-CkwNDiZG.js";import*as E from"yjs";import{WebsocketProvider as z}from"y-websocket";import"y-indexeddb";const _=Math.floor,P=127,H=Number.MAX_SAFE_INTEGER;class R{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const U=()=>new R,N=t=>{const s=new Uint8Array((t=>{let s=t.cpos;for(let e=0;e<t.bufs.length;e++)s+=t.bufs[e].length;return s})(t));let e=0;for(let o=0;o<t.bufs.length;o++){const i=t.bufs[o];s.set(i,e),e+=i.length}return s.set(new Uint8Array(t.cbuf.buffer,0,t.cpos),e),s},O=(t,s)=>{const e=t.cbuf.length;t.cpos===e&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(2*e),t.cpos=0),t.cbuf[t.cpos++]=s},$=(t,s)=>{for(;s>P;)O(t,128|P&s),s=_(s/128);O(t,P&s)},M=(t,s)=>{$(t,s.byteLength),((t,s)=>{const e=t.cbuf.length,o=t.cpos,i=((t,s)=>t<s?t:s)(e-o,s.length),n=s.length-i;t.cbuf.set(s.subarray(0,i),o),t.cpos+=i,n>0&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(((t,s)=>t>s?t:s)(2*e,n)),t.cbuf.set(s.subarray(i)),t.cpos=n)})(t,s)},G=t=>new Error(t),L=G("Unexpected end of array"),B=G("Integer out of Range");class F{constructor(t){this.arr=t,this.pos=0}}const V=t=>((t,s)=>{const e=new Uint8Array(t.arr.buffer,t.pos+t.arr.byteOffset,s);return t.pos+=s,e})(t,X(t)),X=t=>{let s=0,e=1;const o=t.arr.length;for(;t.pos<o;){const o=t.arr[t.pos++];if(s+=(o&P)*e,e*=128,o<128)return s;if(s>H)throw B}throw L};class Z{doc;channel;_synced=!1;constructor(t,s,e){this.doc=s,this.channel=new BroadcastChannel(t),this.channel.onmessage=t=>{this.handleMessage(t.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),e?.quiet||console.info(`BroadcastChannel Provider initialized: ${t}`)}handleDocUpdate=(t,s)=>{if(s!==this){const s=U();$(s,0),M(s,t),this.channel.postMessage(N(s))}};handleMessage(t){const s=(e=new Uint8Array(t),new F(e));var e;switch(X(s)){case 0:const t=V(s);E.applyUpdate(this.doc,t,this);break;case 1:this.broadcastSync();break;case 2:const e=V(s),o=E.encodeStateAsUpdate(this.doc,e);if(o.length>0){const t=U();$(t,0),M(t,o),this.channel.postMessage(N(t))}}}broadcastSync(){const t=U();$(t,2),M(t,E.encodeStateVector(this.doc)),this.channel.postMessage(N(t))}async connect(){if(!this._synced)return new Promise((t=>{const s=()=>{this._synced?t():setTimeout(s,50)};s()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}class J{provider;isConnected=!1;_quiet=!1;get awareness(){return this.provider.awareness}constructor(t,s,e){const o=e?.url||"ws://localhost:1234",i=e?.roomName||t;this.provider=new z(o,i,s,{params:e?.params,protocols:e?.protocols,WebSocketPolyfill:e?.WebSocketPolyfill,awareness:e?.awareness,maxBackoffTime:e?.maxBackoffTime,disableBc:!0}),this._quiet=e?.quiet??!1,this.setupEventListeners(),this._quiet||console.info(`WebSocket Provider initialized: ${o}/${i}`)}static with(t){return{create:(s,e,o)=>{const i=o?{...t,...o}:t;return new J(s,e,i)}}}setupEventListeners(){this.provider.on("status",(({status:t})=>{"connected"===t?(this.isConnected=!0,this._quiet||console.info("WebSocket connected")):"disconnected"===t&&(this.isConnected=!1,this._quiet||console.info("WebSocket disconnected"))})),this.provider.on("sync",(t=>{t&&!this._quiet&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((t,s)=>{const e=setTimeout((()=>{s(new Error("WebSocket connection timeout"))}),1e4),o=({status:s})=>{"connected"===s&&(clearTimeout(e),this.provider.off("status",o),this.isConnected=!0,t())};this.provider.on("status",o),this.provider.wsconnected&&(clearTimeout(e),this.provider.off("status",o),this.isConnected=!0,t())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class Q{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;get awareness(){return this.provider.awareness}static sharedWebSocketProvider=null;constructor(t,s,e){const o=e?.name||t,i=e?.url||"ws://localhost:1234",n=e?.websocketProvider||Q.sharedWebSocketProvider;if(n){this.usesSharedSocket=!0;const t={websocketProvider:n,name:o,document:s,token:e?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,e?.quiet||console.info(`Hocuspocus connected: ${o}`),e?.onConnect&&e.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,e?.quiet||console.info(`Hocuspocus disconnected: ${o}`),e?.onDisconnect&&e.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,e?.quiet||console.info(`Hocuspocus synced: ${o}`),e?.onSynced&&e.onSynced())}};void 0!==e?.forceSyncInterval&&(t.forceSyncInterval=e.forceSyncInterval),e?.onAuthenticationFailed&&(t.onAuthenticationFailed=e.onAuthenticationFailed),e?.onStatus&&(t.onStatus=e.onStatus),this.provider=new a(t),this.provider.attach(),e?.quiet||console.info(`Hocuspocus Provider initialized (multiplexed): ${o}`)}else{this.usesSharedSocket=!1;const t={url:i,name:o,document:s,token:e?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,e?.quiet||console.info(`Hocuspocus connected: ${o}`),e?.onConnect&&e.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,e?.quiet||console.info(`Hocuspocus disconnected: ${o}`),e?.onDisconnect&&e.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,e?.quiet||console.info(`Hocuspocus synced: ${o}`),e?.onSynced&&e.onSynced())}};void 0!==e?.forceSyncInterval&&(t.forceSyncInterval=e.forceSyncInterval),e?.onAuthenticationFailed&&(t.onAuthenticationFailed=e.onAuthenticationFailed),e?.onStatus&&(t.onStatus=e.onStatus),e?.WebSocketPolyfill&&(t.WebSocketPolyfill=e.WebSocketPolyfill),this.provider=new a(t),e?.quiet||console.info(`Hocuspocus Provider initialized: ${i}/${o}`)}}static createSharedWebSocket(t){if(Q.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),Q.sharedWebSocketProvider;const s={url:t.url};return t.WebSocketPolyfill&&(s.WebSocketPolyfill=t.WebSocketPolyfill),t.onConnect&&(s.onConnect=t.onConnect),t.onDisconnect&&(s.onDisconnect=t.onDisconnect),t.onStatus&&(s.onStatus=t.onStatus),Q.sharedWebSocketProvider=new T(s),console.info(`Shared Hocuspocus WebSocket created: ${t.url}`),Q.sharedWebSocketProvider}static destroySharedWebSocket(){Q.sharedWebSocketProvider&&(Q.sharedWebSocketProvider.destroy(),Q.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return Q.sharedWebSocketProvider}static with(t){return{create:(s,e,o)=>{const i=o?{...t,...o}:t;return new Q(s,e,i)}}}async connect(){if(!this.isSynced)return new Promise(((t,s)=>{const e=setTimeout((()=>{s(new Error("Hocuspocus connection timeout"))}),1e4),o=()=>{clearTimeout(e),this.provider.off("synced",o),t()};if(this.provider.on("synced",o),this.provider.isSynced)return clearTimeout(e),this.provider.off("synced",o),void t();this.isConnected||this.usesSharedSocket||this.provider.connect()}))}disconnect(){this.provider&&(this.usesSharedSocket?this.provider.detach():this.provider.disconnect()),this.isConnected=!1,this.isSynced=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1,this.isSynced=!1}}export{Z as BroadcastSyncProvider,Q as HocuspocusSyncProvider,J as WebSocketSyncProvider}
1
+ import{H as a,a as T}from"./p-BeeAeDP0.js";export{A as APP_STATE_MIGRATIONS,C as CURRENT_APP_STATE_SCHEMA_VERSION,w as CURRENT_WORKSPACE_SCHEMA_VERSION,D as DEFAULT_BRUSH_CONFIG,s as DEFAULT_LINE_TOOL_CONFIG,r as DEFAULT_TEXT_CONFIG,I as IndexedDBSyncProvider,v as KritzelAlignment,p as KritzelAnchorManager,g as KritzelBrushTool,m as KritzelCursorHelper,i as KritzelEraserTool,e as KritzelGroup,c as KritzelImage,j as KritzelImageTool,d as KritzelLine,h as KritzelLineTool,b as KritzelPath,n as KritzelSelectionTool,f as KritzelShape,l as KritzelShapeTool,K as KritzelText,k as KritzelTextTool,q as KritzelThemeManager,o as KritzelWorkspace,S as ShapeType,W as WORKSPACE_EXPORT_VERSION,y as WORKSPACE_MIGRATIONS,u as darkTheme,t as lightTheme,x as runMigrations}from"./p-BeeAeDP0.js";import*as E from"yjs";import{WebsocketProvider as z}from"y-websocket";import"y-indexeddb";const P=Math.floor,_=127,H=Number.MAX_SAFE_INTEGER;class R{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const U=()=>new R,O=t=>{const e=new Uint8Array((t=>{let e=t.cpos;for(let s=0;s<t.bufs.length;s++)e+=t.bufs[s].length;return e})(t));let s=0;for(let o=0;o<t.bufs.length;o++){const i=t.bufs[o];e.set(i,s),s+=i.length}return e.set(new Uint8Array(t.cbuf.buffer,0,t.cpos),s),e},$=(t,e)=>{const s=t.cbuf.length;t.cpos===s&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(2*s),t.cpos=0),t.cbuf[t.cpos++]=e},N=(t,e)=>{for(;e>_;)$(t,128|_&e),e=P(e/128);$(t,_&e)},B=(t,e)=>{N(t,e.byteLength),((t,e)=>{const s=t.cbuf.length,o=t.cpos,i=((t,e)=>t<e?t:e)(s-o,e.length),n=e.length-i;t.cbuf.set(e.subarray(0,i),o),t.cpos+=i,n>0&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(((t,e)=>t>e?t:e)(2*s,n)),t.cbuf.set(e.subarray(i)),t.cpos=n)})(t,e)},M=t=>new Error(t),L=M("Unexpected end of array"),F=M("Integer out of Range");class G{constructor(t){this.arr=t,this.pos=0}}const V=t=>((t,e)=>{const s=new Uint8Array(t.arr.buffer,t.pos+t.arr.byteOffset,e);return t.pos+=e,s})(t,X(t)),X=t=>{let e=0,s=1;const o=t.arr.length;for(;t.pos<o;){const o=t.arr[t.pos++];if(e+=(o&_)*s,s*=128,o<128)return e;if(e>H)throw F}throw L};class J{doc;channel;_synced=!1;constructor(t,e,s){this.doc=e,this.channel=new BroadcastChannel(t),this.channel.onmessage=t=>{this.handleMessage(t.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),s?.quiet||console.info(`BroadcastChannel Provider initialized: ${t}`)}handleDocUpdate=(t,e)=>{if(e!==this){const e=U();N(e,0),B(e,t),this.channel.postMessage(O(e))}};handleMessage(t){const e=(s=new Uint8Array(t),new G(s));var s;switch(X(e)){case 0:const t=V(e);E.applyUpdate(this.doc,t,this);break;case 1:this.broadcastSync();break;case 2:const s=V(e),o=E.encodeStateAsUpdate(this.doc,s);if(o.length>0){const t=U();N(t,0),B(t,o),this.channel.postMessage(O(t))}}}broadcastSync(){const t=U();N(t,2),B(t,E.encodeStateVector(this.doc)),this.channel.postMessage(O(t))}async connect(){if(!this._synced)return new Promise((t=>{const e=()=>{this._synced?t():setTimeout(e,50)};e()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}class Q{provider;isConnected=!1;_quiet=!1;get awareness(){return this.provider.awareness}constructor(t,e,s){const o=s?.url||"ws://localhost:1234",i=s?.roomName||t;this.provider=new z(o,i,e,{params:s?.params,protocols:s?.protocols,WebSocketPolyfill:s?.WebSocketPolyfill,awareness:s?.awareness,maxBackoffTime:s?.maxBackoffTime,disableBc:!0}),this._quiet=s?.quiet??!1,this.setupEventListeners(),this._quiet||console.info(`WebSocket Provider initialized: ${o}/${i}`)}static with(t){return{create:(e,s,o)=>{const i=o?{...t,...o}:t;return new Q(e,s,i)}}}setupEventListeners(){this.provider.on("status",(({status:t})=>{"connected"===t?(this.isConnected=!0,this._quiet||console.info("WebSocket connected")):"disconnected"===t&&(this.isConnected=!1,this._quiet||console.info("WebSocket disconnected"))})),this.provider.on("sync",(t=>{t&&!this._quiet&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((t,e)=>{const s=setTimeout((()=>{e(new Error("WebSocket connection timeout"))}),1e4),o=({status:e})=>{"connected"===e&&(clearTimeout(s),this.provider.off("status",o),this.isConnected=!0,t())};this.provider.on("status",o),this.provider.wsconnected&&(clearTimeout(s),this.provider.off("status",o),this.isConnected=!0,t())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class Y{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;get awareness(){return this.provider.awareness}static sharedWebSocketProvider=null;constructor(t,e,s){const o=s?.name||t,i=s?.url||"ws://localhost:1234",n=s?.websocketProvider||Y.sharedWebSocketProvider;if(n){this.usesSharedSocket=!0;const t={websocketProvider:n,name:o,document:e,token:s?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,s?.quiet||console.info(`Hocuspocus connected: ${o}`),s?.onConnect&&s.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info(`Hocuspocus disconnected: ${o}`),s?.onDisconnect&&s.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,s?.quiet||console.info(`Hocuspocus synced: ${o}`),s?.onSynced&&s.onSynced())}};void 0!==s?.forceSyncInterval&&(t.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(t.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(t.onStatus=s.onStatus),this.provider=new a(t),this.provider.attach(),s?.quiet||console.info(`Hocuspocus Provider initialized (multiplexed): ${o}`)}else{this.usesSharedSocket=!1;const t={url:i,name:o,document:e,token:s?.token||null,onConnect:()=>{this.isConnected||(this.isConnected=!0,s?.quiet||console.info(`Hocuspocus connected: ${o}`),s?.onConnect&&s.onConnect())},onDisconnect:()=>{(this.isConnected||this.isSynced)&&(this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info(`Hocuspocus disconnected: ${o}`),s?.onDisconnect&&s.onDisconnect())},onSynced:()=>{this.isSynced||(this.isSynced=!0,s?.quiet||console.info(`Hocuspocus synced: ${o}`),s?.onSynced&&s.onSynced())}};void 0!==s?.forceSyncInterval&&(t.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(t.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(t.onStatus=s.onStatus),s?.WebSocketPolyfill&&(t.WebSocketPolyfill=s.WebSocketPolyfill),this.provider=new a(t),s?.quiet||console.info(`Hocuspocus Provider initialized: ${i}/${o}`)}}static createSharedWebSocket(t){if(Y.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),Y.sharedWebSocketProvider;const e={url:t.url};return t.WebSocketPolyfill&&(e.WebSocketPolyfill=t.WebSocketPolyfill),t.onConnect&&(e.onConnect=t.onConnect),t.onDisconnect&&(e.onDisconnect=t.onDisconnect),t.onStatus&&(e.onStatus=t.onStatus),Y.sharedWebSocketProvider=new T(e),console.info(`Shared Hocuspocus WebSocket created: ${t.url}`),Y.sharedWebSocketProvider}static destroySharedWebSocket(){Y.sharedWebSocketProvider&&(Y.sharedWebSocketProvider.destroy(),Y.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return Y.sharedWebSocketProvider}static with(t){return{create:(e,s,o)=>{const i=o?{...t,...o}:t;return new Y(e,s,i)}}}async connect(){if(!this.isSynced)return new Promise(((t,e)=>{const s=setTimeout((()=>{e(new Error("Hocuspocus connection timeout"))}),1e4),o=()=>{clearTimeout(s),this.provider.off("synced",o),t()};if(this.provider.on("synced",o),this.provider.isSynced)return clearTimeout(s),this.provider.off("synced",o),void t();this.isConnected||this.usesSharedSocket||this.provider.connect()}))}disconnect(){this.provider&&(this.usesSharedSocket?this.provider.detach():this.provider.disconnect()),this.isConnected=!1,this.isSynced=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1,this.isSynced=!1}}export{J as BroadcastSyncProvider,Y as HocuspocusSyncProvider,Q as WebSocketSyncProvider}