kritzel-stencil 0.1.10 → 0.1.12
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.
- package/dist/cjs/{default-line-tool.config-C0aHyMAU.js → default-line-tool.config-DvzIh9zU.js} +2 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-back-to-content_32.cjs.entry.js +53 -15
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +49 -11
- package/dist/collection/components/shared/kritzel-dialog/kritzel-dialog.css +4 -0
- package/dist/collection/components/ui/kritzel-more-menu/kritzel-more-menu.css +8 -0
- package/dist/collection/constants/version.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-dialog.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-export.js +1 -1
- package/dist/components/kritzel-more-menu.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/{p-CgB7__HC.js → p-BVGy2ETQ.js} +1 -1
- package/dist/components/{p-BT8qoqo4.js → p-BbC4EJrJ.js} +1 -1
- package/dist/components/{p-CQV1Azq8.js → p-BvoIoyaZ.js} +1 -1
- package/dist/components/{p-DCbOCSX1.js → p-Csm0Kf0_.js} +2 -2
- package/dist/components/{p-CVPA34Tp.js → p-CuifaWTr.js} +1 -1
- package/dist/components/{p-CGggCpmW.js → p-DB-e1jRv.js} +1 -1
- package/dist/components/{p-D8A3OvXv.js → p-DCFa1WDS.js} +1 -1
- package/dist/components/{p-21gD4R2M.js → p-DuK31Tjt.js} +1 -1
- package/dist/esm/{default-line-tool.config-BNltY2Ek.js → default-line-tool.config-cZLDi3SD.js} +2 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-back-to-content_32.entry.js +53 -15
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-b740c167.entry.js +9 -0
- package/dist/stencil/{p-BNltY2Ek.js → p-cZLDi3SD.js} +1 -1
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/constants/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/stencil/p-4d01c7a6.entry.js +0 -9
package/dist/cjs/{default-line-tool.config-C0aHyMAU.js → default-line-tool.config-DvzIh9zU.js}
RENAMED
|
@@ -14300,7 +14300,8 @@ function requireCjs () {
|
|
|
14300
14300
|
if (hasRequiredCjs) return cjs;
|
|
14301
14301
|
hasRequiredCjs = 1;
|
|
14302
14302
|
(function (exports) {
|
|
14303
|
-
|
|
14303
|
+
Object.defineProperties(exports,{__esModule:{value:true},[Symbol.toStringTag]:{value:`Module`}});const{PI:e}=Math,t=e+1e-4,n=.5,r=[1,1];function i(e,t,n,r=e=>e){return e*r(.5-t*(.5-n))}const{min:a}=Math;function o(e,t,n){let r=a(1,t/n);return a(1,e+(a(1,1-r)-e)*(r*.275))}function s(e){return [-e[0],-e[1]]}function c(e,t){return [e[0]+t[0],e[1]+t[1]]}function l(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function u(e,t){return [e[0]-t[0],e[1]-t[1]]}function d(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function f(e,t){return [e[0]*t,e[1]*t]}function p(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function m(e,t){return [e[0]/t,e[1]/t]}function h(e){return [e[1],-e[0]]}function g(e,t){let n=t[0];return e[0]=t[1],e[1]=-n,e}function ee(e,t){return e[0]*t[0]+e[1]*t[1]}function _(e,t){return e[0]===t[0]&&e[1]===t[1]}function v(e){return Math.hypot(e[0],e[1])}function y(e,t){let n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function b(e){return m(e,v(e))}function x(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function S(e,t,n){let r=Math.sin(n),i=Math.cos(n),a=e[0]-t[0],o=e[1]-t[1],s=a*i-o*r,c=a*r+o*i;return [s+t[0],c+t[1]]}function C(e,t,n,r){let i=Math.sin(r),a=Math.cos(r),o=t[0]-n[0],s=t[1]-n[1],c=o*a-s*i,l=o*i+s*a;return e[0]=c+n[0],e[1]=l+n[1],e}function w(e,t,n){return c(e,f(u(t,e),n))}function te(e,t,n,r){let i=n[0]-t[0],a=n[1]-t[1];return e[0]=t[0]+i*r,e[1]=t[1]+a*r,e}function T(e,t,n){return c(e,f(t,n))}const E=[0,0],D=[0,0],O=[0,0];function k(e,n){let r=T(e,b(h(u(e,c(e,[1,1])))),-n),i=[],a=1/13;for(let n=a;n<=1;n+=a)i.push(S(r,e,t*2*n));return i}function A(e,n,r){let i=[],a=1/r;for(let r=a;r<=1;r+=a)i.push(S(n,e,t*r));return i}function j(e,t,n){let r=u(t,n),i=f(r,.5),a=f(r,.51);return [u(e,i),u(e,a),c(e,a),c(e,i)]}function M(e,n,r,i){let a=[],o=T(e,n,r),s=1/i;for(let n=s;n<1;n+=s)a.push(S(o,e,t*3*n));return a}function ne(e,t,n){return [c(e,f(t,n)),c(e,f(t,n*.99)),u(e,f(t,n*.99)),u(e,f(t,n))]}function N(e,t,n){return e===false||e===void 0?0:e===true?Math.max(t,n):e}function re(e,t,n){return e.slice(0,10).reduce((e,r)=>{let i=r.pressure;return t&&(i=o(e,r.distance,n)),(e+i)/2},e[0].pressure)}function P(e,n={}){let{size:r=16,smoothing:a=.5,thinning:f=.5,simulatePressure:m=true,easing:_=e=>e,start:v={},end:b={},last:x=false}=n,{cap:S=true,easing:w=e=>e*(2-e)}=v,{cap:T=true,easing:P=e=>--e*e*e+1}=b;if(e.length===0||r<=0)return [];let F=e[e.length-1].runningLength,I=N(v.taper,r,F),L=N(b.taper,r,F),R=(r*a)**2,z=[],B=[],V=re(e,m,r),H=i(r,f,e[e.length-1].pressure,_),U,W=e[0].vector,G=e[0].point,K=G,q=G,J=K,Y=false;for(let n=0;n<e.length;n++){let{pressure:a}=e[n],{point:s,vector:h,distance:v,runningLength:b}=e[n],x=n===e.length-1;if(!x&&F-b<3)continue;f?(m&&(a=o(V,v,r)),H=i(r,f,a,_)):H=r/2,U===void 0&&(U=H);let S=b<I?w(b/I):1,T=F-b<L?P((F-b)/L):1;H=Math.max(.01,H*Math.min(S,T));let k=(x?e[n]:e[n+1]).vector,A=x?1:ee(h,k),j=ee(h,W)<0&&!Y,M=A!==null&&A<0;if(j||M){g(E,W),p(E,E,H);for(let e=0;e<=1;e+=.07692307692307693)d(D,s,E),C(D,D,s,t*e),q=[D[0],D[1]],z.push(q),l(O,s,E),C(O,O,s,t*-e),J=[O[0],O[1]],B.push(J);G=q,K=J,M&&(Y=true);continue}if(Y=false,x){g(E,h),p(E,E,H),z.push(u(s,E)),B.push(c(s,E));continue}te(E,k,h,A),g(E,E),p(E,E,H),d(D,s,E),q=[D[0],D[1]],(n<=1||y(G,q)>R)&&(z.push(q),G=q),l(O,s,E),J=[O[0],O[1]],(n<=1||y(K,J)>R)&&(B.push(J),K=J),V=a,W=h;}let X=[e[0].point[0],e[0].point[1]],Z=e.length>1?[e[e.length-1].point[0],e[e.length-1].point[1]]:c(e[0].point,[1,1]),Q=[],$=[];if(e.length===1){if(!(I||L)||x)return k(X,U||H)}else {I||L&&e.length===1||(S?Q.push(...A(X,B[0],13)):Q.push(...j(X,z[0],B[0])));let t=h(s(e[e.length-1].vector));L||I&&e.length===1?$.push(Z):T?$.push(...M(Z,t,H,29)):$.push(...ne(Z,t,H));}return z.concat($,B.reverse(),Q)}const F=[0,0];function I(e){return e!=null&&e>=0}function L(e,t={}){let{streamline:i=.5,size:a=16,last:o=false}=t;if(e.length===0)return [];let s=.15+(1-i)*.85,l=Array.isArray(e[0])?e:e.map(({x:e,y:t,pressure:r=n})=>[e,t,r]);if(l.length===2){let e=l[1];l=l.slice(0,-1);for(let t=1;t<5;t++)l.push(w(l[0],e,t/4));}l.length===1&&(l=[...l,[...c(l[0],r),...l[0].slice(2)]]);let u=[{point:[l[0][0],l[0][1]],pressure:I(l[0][2])?l[0][2]:.25,vector:[...r],distance:0,runningLength:0}],f=false,p=0,m=u[0],h=l.length-1;for(let e=1;e<l.length;e++){let t=o&&e===h?[l[e][0],l[e][1]]:w(m.point,l[e],s);if(_(m.point,t))continue;let r=x(t,m.point);if(p+=r,e<h&&!f){if(p<a)continue;f=true;}d(F,m.point,t),m={point:t,pressure:I(l[e][2])?l[e][2]:n,vector:b(F),distance:r,runningLength:p},u.push(m);}return u[0].vector=u[1]?.vector||[0,0],u}function R(e,t={}){return P(L(e,t),t)}var z=R;exports.default=z,exports.getStroke=R,exports.getStrokeOutlinePoints=P,exports.getStrokePoints=L;
|
|
14304
|
+
|
|
14304
14305
|
} (cjs));
|
|
14305
14306
|
return cjs;
|
|
14306
14307
|
}
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-i21-qqbc.js');
|
|
4
|
-
var defaultLineTool_config = require('./default-line-tool.config-
|
|
4
|
+
var defaultLineTool_config = require('./default-line-tool.config-DvzIh9zU.js');
|
|
5
5
|
|
|
6
6
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
7
7
|
|
|
@@ -979,7 +979,7 @@ class KritzelHTMLHelper {
|
|
|
979
979
|
}
|
|
980
980
|
}
|
|
981
981
|
|
|
982
|
-
const kritzelDialogCss = () => `:host{display:contents}.backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10002;display:flex;align-items:center;justify-content:center;background-color:var(--kritzel-dialog-backdrop-color, rgba(0, 0, 0, 0.5));opacity:1;transition:opacity 150ms ease-out}.backdrop.is-animating{opacity:0}.dialog-content{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-dialog-background-color, #ffffff);border-radius:var(--kritzel-dialog-border-radius, 12px);box-shadow:var(--kritzel-dialog-box-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));border:var(--kritzel-dialog-border, 1px solid #ebebeb);max-height:var(--kritzel-dialog-max-height, 90vh);max-width:var(--kritzel-dialog-max-width, 90vw);overflow:hidden;transform:scale(1);opacity:1;transition:transform 200ms ease-out, opacity 200ms ease-out;font-family:var(--kritzel-dialog-font-family, sans-serif)}.dialog-content.is-animating{transform:scale(0.95);opacity:0}.dialog-content.size-small{width:var(--kritzel-dialog-width-small, 320px);height:var(--kritzel-dialog-height-small, auto)}.dialog-content.size-medium{width:var(--kritzel-dialog-width-medium, 480px);height:var(--kritzel-dialog-height-medium, auto)}.dialog-content.size-large{width:var(--kritzel-dialog-width-large, 640px);height:var(--kritzel-dialog-height-large, auto)}.dialog-content.size-fullscreen{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}@media (max-width: 576px){.dialog-content.fullscreen-on-mobile{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kritzel-dialog-header-padding, 16px 20px);border-bottom:var(--kritzel-dialog-header-border, 1px solid #ebebeb);gap:12px}.dialog-title{margin:0;font-size:var(--kritzel-dialog-title-font-size, 18px);font-weight:var(--kritzel-dialog-title-font-weight, 600);color:var(--kritzel-dialog-title-color, #1a1a1a);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.close-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--kritzel-dialog-close-button-border-radius, 6px);background-color:var(--kritzel-dialog-close-button-background, transparent);color:var(--kritzel-dialog-close-button-color, #666666);cursor:var(--kritzel-pointer-cursor, pointer);transition:background-color 150ms ease, color 150ms ease;flex-shrink:0;-webkit-tap-highlight-color:transparent}.close-button:hover{background-color:var(--kritzel-dialog-close-button-hover-background, #f5f5f5);color:var(--kritzel-dialog-close-button-hover-color, #1a1a1a)}.close-button:focus{outline:none}.close-button:focus-visible{outline:2px solid var(--kritzel-dialog-focus-ring-color, #0066cc);outline-offset:2px}.close-button:active{background-color:var(--kritzel-dialog-close-button-active-background, #ebebeb)}.dialog-body{padding:var(--kritzel-dialog-body-padding, 20px);overflow-y:auto;flex:1;scrollbar-color:#ebebeb transparent;scrollbar-width:thin}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--kritzel-dialog-footer-gap, 8px);padding:var(--kritzel-dialog-footer-padding, 16px 20px);border-top:var(--kritzel-dialog-footer-border, 1px solid #ebebeb)}::slotted([slot='header']){flex:1}::slotted([slot='footer']){display:contents}`;
|
|
982
|
+
const kritzelDialogCss = () => `:host{display:contents}.backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10002;display:flex;align-items:center;justify-content:center;background-color:var(--kritzel-dialog-backdrop-color, rgba(0, 0, 0, 0.5));opacity:1;transition:opacity 150ms ease-out}.backdrop.is-animating{opacity:0}.dialog-content{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-dialog-background-color, #ffffff);border-radius:var(--kritzel-dialog-border-radius, 12px);box-shadow:var(--kritzel-dialog-box-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));border:var(--kritzel-dialog-border, 1px solid #ebebeb);max-height:var(--kritzel-dialog-max-height, 90vh);max-width:var(--kritzel-dialog-max-width, 90vw);overflow:hidden;transform:scale(1);opacity:1;transition:transform 200ms ease-out, opacity 200ms ease-out;font-family:var(--kritzel-dialog-font-family, sans-serif)}.dialog-content.is-animating{transform:scale(0.95);opacity:0}.dialog-content.size-small{width:var(--kritzel-dialog-width-small, 320px);height:var(--kritzel-dialog-height-small, auto)}.dialog-content.size-medium{width:var(--kritzel-dialog-width-medium, 480px);height:var(--kritzel-dialog-height-medium, auto)}.dialog-content.size-large{width:var(--kritzel-dialog-width-large, 640px);height:var(--kritzel-dialog-height-large, auto)}.dialog-content.size-fullscreen{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}@media (max-width: 576px){.backdrop:has(.fullscreen-on-mobile){background-color:transparent}.dialog-content.fullscreen-on-mobile{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kritzel-dialog-header-padding, 16px 20px);border-bottom:var(--kritzel-dialog-header-border, 1px solid #ebebeb);gap:12px}.dialog-title{margin:0;font-size:var(--kritzel-dialog-title-font-size, 18px);font-weight:var(--kritzel-dialog-title-font-weight, 600);color:var(--kritzel-dialog-title-color, #1a1a1a);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.close-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--kritzel-dialog-close-button-border-radius, 6px);background-color:var(--kritzel-dialog-close-button-background, transparent);color:var(--kritzel-dialog-close-button-color, #666666);cursor:var(--kritzel-pointer-cursor, pointer);transition:background-color 150ms ease, color 150ms ease;flex-shrink:0;-webkit-tap-highlight-color:transparent}.close-button:hover{background-color:var(--kritzel-dialog-close-button-hover-background, #f5f5f5);color:var(--kritzel-dialog-close-button-hover-color, #1a1a1a)}.close-button:focus{outline:none}.close-button:focus-visible{outline:2px solid var(--kritzel-dialog-focus-ring-color, #0066cc);outline-offset:2px}.close-button:active{background-color:var(--kritzel-dialog-close-button-active-background, #ebebeb)}.dialog-body{padding:var(--kritzel-dialog-body-padding, 20px);overflow-y:auto;flex:1;scrollbar-color:#ebebeb transparent;scrollbar-width:thin}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--kritzel-dialog-footer-gap, 8px);padding:var(--kritzel-dialog-footer-padding, 16px 20px);border-top:var(--kritzel-dialog-footer-border, 1px solid #ebebeb)}::slotted([slot='header']){flex:1}::slotted([slot='footer']){display:contents}`;
|
|
983
983
|
|
|
984
984
|
const KritzelDialog = class {
|
|
985
985
|
constructor(hostRef) {
|
|
@@ -22205,6 +22205,17 @@ const KritzelEngine = class {
|
|
|
22205
22205
|
async getScreenshot(format = 'png') {
|
|
22206
22206
|
if (!this.host)
|
|
22207
22207
|
return null;
|
|
22208
|
+
// Save critical state before screenshot to restore after
|
|
22209
|
+
const savedState = {
|
|
22210
|
+
objects: this.core.store.state.objects,
|
|
22211
|
+
activeWorkspace: this.core.store.state.activeWorkspace,
|
|
22212
|
+
workspaces: this.core.store.state.workspaces,
|
|
22213
|
+
activeTool: this.core.store.state.activeTool,
|
|
22214
|
+
isReady: this.core.store.state.isReady,
|
|
22215
|
+
translateX: this.core.store.state.translateX,
|
|
22216
|
+
translateY: this.core.store.state.translateY,
|
|
22217
|
+
scale: this.core.store.state.scale,
|
|
22218
|
+
};
|
|
22208
22219
|
const options = {
|
|
22209
22220
|
filter: (node) => {
|
|
22210
22221
|
// Exclude the context menu and debug panel from the screenshot
|
|
@@ -22217,12 +22228,28 @@ const KritzelEngine = class {
|
|
|
22217
22228
|
return true;
|
|
22218
22229
|
},
|
|
22219
22230
|
};
|
|
22220
|
-
|
|
22221
|
-
|
|
22231
|
+
let result;
|
|
22232
|
+
try {
|
|
22233
|
+
if (format === 'svg') {
|
|
22234
|
+
result = await toSvg(this.host, options);
|
|
22235
|
+
}
|
|
22236
|
+
else {
|
|
22237
|
+
result = await toPng(this.host, options);
|
|
22238
|
+
}
|
|
22222
22239
|
}
|
|
22223
|
-
|
|
22224
|
-
|
|
22240
|
+
finally {
|
|
22241
|
+
// Restore state after screenshot in case cloning caused any side effects
|
|
22242
|
+
this.core.store.state.objects = savedState.objects;
|
|
22243
|
+
this.core.store.state.activeWorkspace = savedState.activeWorkspace;
|
|
22244
|
+
this.core.store.state.workspaces = savedState.workspaces;
|
|
22245
|
+
this.core.store.state.activeTool = savedState.activeTool;
|
|
22246
|
+
this.core.store.state.isReady = savedState.isReady;
|
|
22247
|
+
this.core.store.state.translateX = savedState.translateX;
|
|
22248
|
+
this.core.store.state.translateY = savedState.translateY;
|
|
22249
|
+
this.core.store.state.scale = savedState.scale;
|
|
22250
|
+
this.core.rerender();
|
|
22225
22251
|
}
|
|
22252
|
+
return result;
|
|
22226
22253
|
}
|
|
22227
22254
|
async exportViewportAsPng() {
|
|
22228
22255
|
try {
|
|
@@ -22381,7 +22408,7 @@ const KritzelEngine = class {
|
|
|
22381
22408
|
if (this.core.store.totalObjectCount > 0) {
|
|
22382
22409
|
this.objectsInViewportChange.emit(visibleObjects);
|
|
22383
22410
|
}
|
|
22384
|
-
return (index.h(index.Host, { key: '
|
|
22411
|
+
return (index.h(index.Host, { key: '39f0ffff986b61133ad44f5eadab07f7d776cb01' }, this.core.store.state.debugInfo.showViewportInfo && (index.h("div", { key: '946bfcc8d6fb9986c1b7b7fc150eb7dfc45cbb59', class: "debug-panel" }, index.h("div", { key: 'ae6f054b4aefca557228d810125dec1b7695654c' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), index.h("div", { key: 'f47b71175c0dd1db6fb1a82bbdfd5532a1ce55b3' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), index.h("div", { key: 'aba67c4bd24fb9b03848614831d48e6d70ec104f' }, "TranslateX: ", this.core.store.state?.translateX), index.h("div", { key: 'f1c32b14966542f41a9118e3af76bd3f54ae0039' }, "TranslateY: ", this.core.store.state?.translateY), index.h("div", { key: '9d4457d49b8a2f5420fb115d41e9aeef2f72eb59' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), index.h("div", { key: '53b482102ec828758904dcc4c8d62e8e960f87f0' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), index.h("div", { key: '8f3a6156b882350b3ead9c5778df5c7c80ca8888' }, "PointerCount: ", this.core.store.state.pointers.size), index.h("div", { key: '6471128d6613f638848ea99e2337126828c6236a' }, "Scale: ", this.core.store.state?.scale), index.h("div", { key: 'f70133c73206ae0651a7777a87ecbfc967f97e0d' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), index.h("div", { key: '172b5725dbb9b37a1b63df04e908906d5b04445d' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), index.h("div", { key: '114e8afde10ea3e8eae32a2772914b56a0c718f4' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), index.h("div", { key: '9e8288cdf8d9f365317649fd36fd32f41d18a165' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), index.h("div", { key: '2498b02ef54fdb9752ca2c86ccb6a24ef272ee03' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), index.h("div", { key: '66b10615c0c15b2d1f93e22954bae32a171cda26' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), index.h("div", { key: '8a246ad747b8b289e89d7edd8df84b74d88363de' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), index.h("div", { key: '5d8086caabac9183f9be9076fa724d5d6b009b2a' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), index.h("div", { key: 'edf7cbb6439ec09b26e895b696e80981a127ec8f' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), index.h("div", { key: 'ad95478b84f7381fb32eb23606e5697e944649c2' }, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), index.h("div", { key: 'ec41d473e9194732c6846ea388c24b4e2edd6119' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), index.h("div", { key: 'dbe271f716901a41c857724abbf0837b63995e07' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), index.h("div", { key: 'e8d6bac1c6069923cfd3f5d6177b60d6d3ad6eaa' }, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), index.h("div", { key: 'a2b19dff95c8e35f7b40f9e378e8ca49e878d939' }, "PointerX: ", this.core.store.state?.pointerX), index.h("div", { key: 'f94f38ae42e2c98df3a82f09e18fa482f5c1a415' }, "PointerY: ", this.core.store.state?.pointerY), index.h("div", { key: '1bfc6689f25c7912074f147394ea1d9fce42d990' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), index.h("div", { key: 'a7761da6ae5caa3f0df089b223006959ffec65fd' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), index.h("div", { key: '485aa0df270cc27992abfac5f7639967aa6845a3', id: "origin", class: "origin", style: {
|
|
22385
22412
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
22386
22413
|
} }, visibleObjects?.map(object => {
|
|
22387
22414
|
return (index.h("div", { key: object.id, style: {
|
|
@@ -22409,7 +22436,9 @@ const KritzelEngine = class {
|
|
|
22409
22436
|
borderStyle: 'solid',
|
|
22410
22437
|
padding: object.padding + 'px',
|
|
22411
22438
|
overflow: 'visible',
|
|
22412
|
-
display: defaultLineTool_config.KritzelClassHelper.isInstanceOf(object, 'KritzelLine') || defaultLineTool_config.KritzelClassHelper.isInstanceOf(object, 'KritzelPath')
|
|
22439
|
+
display: defaultLineTool_config.KritzelClassHelper.isInstanceOf(object, 'KritzelLine') || defaultLineTool_config.KritzelClassHelper.isInstanceOf(object, 'KritzelPath')
|
|
22440
|
+
? 'none'
|
|
22441
|
+
: 'block',
|
|
22413
22442
|
} }, defaultLineTool_config.KritzelClassHelper.isInstanceOf(object, 'KritzelImage') && (index.h("img", { ref: el => object.mount(el), src: object.src, style: {
|
|
22414
22443
|
width: '100%',
|
|
22415
22444
|
height: '100%',
|
|
@@ -22545,10 +22574,18 @@ const KritzelEngine = class {
|
|
|
22545
22574
|
} }), index.h("circle", { class: "selection-line-handle-overlay start", cx: object.startX - object.x, cy: object.startY - object.y, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
22546
22575
|
fill: 'transparent',
|
|
22547
22576
|
paintOrder: 'fill',
|
|
22548
|
-
} }), index.h("circle", { class: "selection-line-handle center", cx: object.controlX !== undefined
|
|
22577
|
+
} }), index.h("circle", { class: "selection-line-handle center", cx: object.controlX !== undefined
|
|
22578
|
+
? (object.startX + 2 * object.controlX + object.endX) / 4 - object.x
|
|
22579
|
+
: (object.startX - object.x + object.endX - object.x) / 2, cy: object.controlY !== undefined
|
|
22580
|
+
? (object.startY + 2 * object.controlY + object.endY) / 4 - object.y
|
|
22581
|
+
: (object.startY - object.y + object.endY - object.y) / 2, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
22549
22582
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
22550
22583
|
paintOrder: 'fill',
|
|
22551
|
-
} }), index.h("circle", { class: "selection-line-handle-overlay center", cx: object.controlX !== undefined
|
|
22584
|
+
} }), index.h("circle", { class: "selection-line-handle-overlay center", cx: object.controlX !== undefined
|
|
22585
|
+
? (object.startX + 2 * object.controlX + object.endX) / 4 - object.x
|
|
22586
|
+
: (object.startX - object.x + object.endX - object.x) / 2, cy: object.controlY !== undefined
|
|
22587
|
+
? (object.startY + 2 * object.controlY + object.endY) / 4 - object.y
|
|
22588
|
+
: (object.startY - object.y + object.endY - object.y) / 2, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
22552
22589
|
fill: 'transparent',
|
|
22553
22590
|
paintOrder: 'fill',
|
|
22554
22591
|
} }), index.h("circle", { class: "selection-line-handle end", cx: object.endX - object.x, cy: object.endY - object.y, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
@@ -22620,7 +22657,8 @@ const KritzelEngine = class {
|
|
|
22620
22657
|
strokeWidth: data.lineStrokeWidth,
|
|
22621
22658
|
strokeDasharray: data.dashArray,
|
|
22622
22659
|
strokeLinecap: 'round',
|
|
22623
|
-
} })) : (data.edgeX !== undefined &&
|
|
22660
|
+
} })) : (data.edgeX !== undefined &&
|
|
22661
|
+
data.edgeY !== undefined && (index.h("line", { x1: data.edgeX, y1: data.edgeY, x2: data.centerX, y2: data.centerY, style: {
|
|
22624
22662
|
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))',
|
|
22625
22663
|
strokeWidth: data.lineStrokeWidth,
|
|
22626
22664
|
strokeDasharray: data.dashArray,
|
|
@@ -22630,7 +22668,7 @@ const KritzelEngine = class {
|
|
|
22630
22668
|
stroke: 'var(--kritzel-snap-indicator-stroke, #007bff)',
|
|
22631
22669
|
strokeWidth: data.indicatorStrokeWidth,
|
|
22632
22670
|
} }))));
|
|
22633
|
-
})()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: '
|
|
22671
|
+
})()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: 'a46409b1a9d2c7a97e2463ac689e4fa1b0802a70', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
|
|
22634
22672
|
position: 'fixed',
|
|
22635
22673
|
left: `${this.core.store.state.contextMenuX}px`,
|
|
22636
22674
|
top: `${this.core.store.state.contextMenuY}px`,
|
|
@@ -22641,7 +22679,7 @@ const KritzelEngine = class {
|
|
|
22641
22679
|
y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
|
|
22642
22680
|
}, this.core.store.selectionGroup?.objects);
|
|
22643
22681
|
this.hideContextMenu();
|
|
22644
|
-
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '
|
|
22682
|
+
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '479b86bb97be00f0859a62b2b16f419dff6d2bac', core: this.core })));
|
|
22645
22683
|
}
|
|
22646
22684
|
static get watchers() { return {
|
|
22647
22685
|
"workspace": [{
|
|
@@ -23198,7 +23236,7 @@ const KritzelMenuItem = class {
|
|
|
23198
23236
|
};
|
|
23199
23237
|
KritzelMenuItem.style = kritzelMenuItemCss();
|
|
23200
23238
|
|
|
23201
|
-
const kritzelMoreMenuCss = () => `:host{display:inline-flex}.more-menu-button{display:flex;align-items:center;justify-content:center;width:var(--kritzel-more-menu-button-width, 50px);height:var(--kritzel-more-menu-button-height, 50px);padding:0;border:var(--kritzel-more-menu-button-border, 1px solid #ebebeb);border-radius:var(--kritzel-more-menu-button-border-radius, 12px);background-color:var(--kritzel-more-menu-button-background-color, #ffffff);cursor:var(--kritzel-pointer-cursor, pointer);box-shadow:var(--kritzel-more-menu-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));transition:background-color 150ms ease;-webkit-tap-highlight-color:transparent}.more-menu-button:hover{background-color:var(--kritzel-more-menu-button-hover-background-color, #f5f5f5)}.more-menu-button:active{background-color:var(--kritzel-more-menu-button-active-background-color, #ebebeb)}`;
|
|
23239
|
+
const kritzelMoreMenuCss = () => `:host{display:inline-flex}.more-menu-button{display:flex;align-items:center;justify-content:center;width:var(--kritzel-more-menu-button-width, 50px);height:var(--kritzel-more-menu-button-height, 50px);padding:0;border:var(--kritzel-more-menu-button-border, 1px solid #ebebeb);border-radius:var(--kritzel-more-menu-button-border-radius, 12px);background-color:var(--kritzel-more-menu-button-background-color, #ffffff);cursor:var(--kritzel-pointer-cursor, pointer);box-shadow:var(--kritzel-more-menu-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));transition:background-color 150ms ease;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit}.more-menu-button:hover{background-color:var(--kritzel-more-menu-button-hover-background-color, #f5f5f5)}.more-menu-button:focus{background-color:var(--kritzel-more-menu-button-hover-background-color, #f5f5f5)}.more-menu-button:active{background-color:var(--kritzel-more-menu-button-active-background-color, #ebebeb)}`;
|
|
23202
23240
|
|
|
23203
23241
|
const KritzelMoreMenu = class {
|
|
23204
23242
|
constructor(hostRef) {
|
|
@@ -23611,7 +23649,7 @@ const KritzelPortal = class {
|
|
|
23611
23649
|
* This file is auto-generated by the version bump scripts.
|
|
23612
23650
|
* Do not modify manually.
|
|
23613
23651
|
*/
|
|
23614
|
-
const KRITZEL_VERSION = '0.1.
|
|
23652
|
+
const KRITZEL_VERSION = '0.1.12';
|
|
23615
23653
|
|
|
23616
23654
|
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-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:500;color:var(--kritzel-settings-label-color, #333333);margin:0}.settings-description{font-size:12px;color:var(--kritzel-settings-description-color, #888888);margin:0;line-height:1.4}`;
|
|
23617
23655
|
|
|
@@ -302,6 +302,17 @@ export class KritzelEngine {
|
|
|
302
302
|
async getScreenshot(format = 'png') {
|
|
303
303
|
if (!this.host)
|
|
304
304
|
return null;
|
|
305
|
+
// Save critical state before screenshot to restore after
|
|
306
|
+
const savedState = {
|
|
307
|
+
objects: this.core.store.state.objects,
|
|
308
|
+
activeWorkspace: this.core.store.state.activeWorkspace,
|
|
309
|
+
workspaces: this.core.store.state.workspaces,
|
|
310
|
+
activeTool: this.core.store.state.activeTool,
|
|
311
|
+
isReady: this.core.store.state.isReady,
|
|
312
|
+
translateX: this.core.store.state.translateX,
|
|
313
|
+
translateY: this.core.store.state.translateY,
|
|
314
|
+
scale: this.core.store.state.scale,
|
|
315
|
+
};
|
|
305
316
|
const options = {
|
|
306
317
|
filter: (node) => {
|
|
307
318
|
// Exclude the context menu and debug panel from the screenshot
|
|
@@ -314,12 +325,28 @@ export class KritzelEngine {
|
|
|
314
325
|
return true;
|
|
315
326
|
},
|
|
316
327
|
};
|
|
317
|
-
|
|
318
|
-
|
|
328
|
+
let result;
|
|
329
|
+
try {
|
|
330
|
+
if (format === 'svg') {
|
|
331
|
+
result = await toSvg(this.host, options);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
result = await toPng(this.host, options);
|
|
335
|
+
}
|
|
319
336
|
}
|
|
320
|
-
|
|
321
|
-
|
|
337
|
+
finally {
|
|
338
|
+
// Restore state after screenshot in case cloning caused any side effects
|
|
339
|
+
this.core.store.state.objects = savedState.objects;
|
|
340
|
+
this.core.store.state.activeWorkspace = savedState.activeWorkspace;
|
|
341
|
+
this.core.store.state.workspaces = savedState.workspaces;
|
|
342
|
+
this.core.store.state.activeTool = savedState.activeTool;
|
|
343
|
+
this.core.store.state.isReady = savedState.isReady;
|
|
344
|
+
this.core.store.state.translateX = savedState.translateX;
|
|
345
|
+
this.core.store.state.translateY = savedState.translateY;
|
|
346
|
+
this.core.store.state.scale = savedState.scale;
|
|
347
|
+
this.core.rerender();
|
|
322
348
|
}
|
|
349
|
+
return result;
|
|
323
350
|
}
|
|
324
351
|
async exportViewportAsPng() {
|
|
325
352
|
try {
|
|
@@ -469,7 +496,7 @@ export class KritzelEngine {
|
|
|
469
496
|
if (this.core.store.totalObjectCount > 0) {
|
|
470
497
|
this.objectsInViewportChange.emit(visibleObjects);
|
|
471
498
|
}
|
|
472
|
-
return (h(Host, { key: '
|
|
499
|
+
return (h(Host, { key: '39f0ffff986b61133ad44f5eadab07f7d776cb01' }, this.core.store.state.debugInfo.showViewportInfo && (h("div", { key: '946bfcc8d6fb9986c1b7b7fc150eb7dfc45cbb59', class: "debug-panel" }, h("div", { key: 'ae6f054b4aefca557228d810125dec1b7695654c' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), h("div", { key: 'f47b71175c0dd1db6fb1a82bbdfd5532a1ce55b3' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), h("div", { key: 'aba67c4bd24fb9b03848614831d48e6d70ec104f' }, "TranslateX: ", this.core.store.state?.translateX), h("div", { key: 'f1c32b14966542f41a9118e3af76bd3f54ae0039' }, "TranslateY: ", this.core.store.state?.translateY), h("div", { key: '9d4457d49b8a2f5420fb115d41e9aeef2f72eb59' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), h("div", { key: '53b482102ec828758904dcc4c8d62e8e960f87f0' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), h("div", { key: '8f3a6156b882350b3ead9c5778df5c7c80ca8888' }, "PointerCount: ", this.core.store.state.pointers.size), h("div", { key: '6471128d6613f638848ea99e2337126828c6236a' }, "Scale: ", this.core.store.state?.scale), h("div", { key: 'f70133c73206ae0651a7777a87ecbfc967f97e0d' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), h("div", { key: '172b5725dbb9b37a1b63df04e908906d5b04445d' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), h("div", { key: '114e8afde10ea3e8eae32a2772914b56a0c718f4' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), h("div", { key: '9e8288cdf8d9f365317649fd36fd32f41d18a165' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), h("div", { key: '2498b02ef54fdb9752ca2c86ccb6a24ef272ee03' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), h("div", { key: '66b10615c0c15b2d1f93e22954bae32a171cda26' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: '8a246ad747b8b289e89d7edd8df84b74d88363de' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: '5d8086caabac9183f9be9076fa724d5d6b009b2a' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: 'edf7cbb6439ec09b26e895b696e80981a127ec8f' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: 'ad95478b84f7381fb32eb23606e5697e944649c2' }, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), h("div", { key: 'ec41d473e9194732c6846ea388c24b4e2edd6119' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), h("div", { key: 'dbe271f716901a41c857724abbf0837b63995e07' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), h("div", { key: 'e8d6bac1c6069923cfd3f5d6177b60d6d3ad6eaa' }, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), h("div", { key: 'a2b19dff95c8e35f7b40f9e378e8ca49e878d939' }, "PointerX: ", this.core.store.state?.pointerX), h("div", { key: 'f94f38ae42e2c98df3a82f09e18fa482f5c1a415' }, "PointerY: ", this.core.store.state?.pointerY), h("div", { key: '1bfc6689f25c7912074f147394ea1d9fce42d990' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), h("div", { key: 'a7761da6ae5caa3f0df089b223006959ffec65fd' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), h("div", { key: '485aa0df270cc27992abfac5f7639967aa6845a3', id: "origin", class: "origin", style: {
|
|
473
500
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
474
501
|
} }, visibleObjects?.map(object => {
|
|
475
502
|
return (h("div", { key: object.id, style: {
|
|
@@ -497,7 +524,9 @@ export class KritzelEngine {
|
|
|
497
524
|
borderStyle: 'solid',
|
|
498
525
|
padding: object.padding + 'px',
|
|
499
526
|
overflow: 'visible',
|
|
500
|
-
display: KritzelClassHelper.isInstanceOf(object, 'KritzelLine') || KritzelClassHelper.isInstanceOf(object, 'KritzelPath')
|
|
527
|
+
display: KritzelClassHelper.isInstanceOf(object, 'KritzelLine') || KritzelClassHelper.isInstanceOf(object, 'KritzelPath')
|
|
528
|
+
? 'none'
|
|
529
|
+
: 'block',
|
|
501
530
|
} }, KritzelClassHelper.isInstanceOf(object, 'KritzelImage') && (h("img", { ref: el => object.mount(el), src: object.src, style: {
|
|
502
531
|
width: '100%',
|
|
503
532
|
height: '100%',
|
|
@@ -633,10 +662,18 @@ export class KritzelEngine {
|
|
|
633
662
|
} }), h("circle", { class: "selection-line-handle-overlay start", cx: object.startX - object.x, cy: object.startY - object.y, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
634
663
|
fill: 'transparent',
|
|
635
664
|
paintOrder: 'fill',
|
|
636
|
-
} }), h("circle", { class: "selection-line-handle center", cx: object.controlX !== undefined
|
|
665
|
+
} }), h("circle", { class: "selection-line-handle center", cx: object.controlX !== undefined
|
|
666
|
+
? (object.startX + 2 * object.controlX + object.endX) / 4 - object.x
|
|
667
|
+
: (object.startX - object.x + object.endX - object.x) / 2, cy: object.controlY !== undefined
|
|
668
|
+
? (object.startY + 2 * object.controlY + object.endY) / 4 - object.y
|
|
669
|
+
: (object.startY - object.y + object.endY - object.y) / 2, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
637
670
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
638
671
|
paintOrder: 'fill',
|
|
639
|
-
} }), h("circle", { class: "selection-line-handle-overlay center", cx: object.controlX !== undefined
|
|
672
|
+
} }), h("circle", { class: "selection-line-handle-overlay center", cx: object.controlX !== undefined
|
|
673
|
+
? (object.startX + 2 * object.controlX + object.endX) / 4 - object.x
|
|
674
|
+
: (object.startX - object.x + object.endX - object.x) / 2, cy: object.controlY !== undefined
|
|
675
|
+
? (object.startY + 2 * object.controlY + object.endY) / 4 - object.y
|
|
676
|
+
: (object.startY - object.y + object.endY - object.y) / 2, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
640
677
|
fill: 'transparent',
|
|
641
678
|
paintOrder: 'fill',
|
|
642
679
|
} }), h("circle", { class: "selection-line-handle end", cx: object.endX - object.x, cy: object.endY - object.y, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
@@ -708,7 +745,8 @@ export class KritzelEngine {
|
|
|
708
745
|
strokeWidth: data.lineStrokeWidth,
|
|
709
746
|
strokeDasharray: data.dashArray,
|
|
710
747
|
strokeLinecap: 'round',
|
|
711
|
-
} })) : (data.edgeX !== undefined &&
|
|
748
|
+
} })) : (data.edgeX !== undefined &&
|
|
749
|
+
data.edgeY !== undefined && (h("line", { x1: data.edgeX, y1: data.edgeY, x2: data.centerX, y2: data.centerY, style: {
|
|
712
750
|
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))',
|
|
713
751
|
strokeWidth: data.lineStrokeWidth,
|
|
714
752
|
strokeDasharray: data.dashArray,
|
|
@@ -718,7 +756,7 @@ export class KritzelEngine {
|
|
|
718
756
|
stroke: 'var(--kritzel-snap-indicator-stroke, #007bff)',
|
|
719
757
|
strokeWidth: data.indicatorStrokeWidth,
|
|
720
758
|
} }))));
|
|
721
|
-
})()), this.core.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: '
|
|
759
|
+
})()), this.core.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: 'a46409b1a9d2c7a97e2463ac689e4fa1b0802a70', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
|
|
722
760
|
position: 'fixed',
|
|
723
761
|
left: `${this.core.store.state.contextMenuX}px`,
|
|
724
762
|
top: `${this.core.store.state.contextMenuY}px`,
|
|
@@ -729,7 +767,7 @@ export class KritzelEngine {
|
|
|
729
767
|
y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
|
|
730
768
|
}, this.core.store.selectionGroup?.objects);
|
|
731
769
|
this.hideContextMenu();
|
|
732
|
-
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: '
|
|
770
|
+
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: '479b86bb97be00f0859a62b2b16f419dff6d2bac', core: this.core })));
|
|
733
771
|
}
|
|
734
772
|
static get is() { return "kritzel-engine"; }
|
|
735
773
|
static get encapsulation() { return "shadow"; }
|
|
@@ -16,12 +16,20 @@
|
|
|
16
16
|
box-shadow: var(--kritzel-more-menu-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));
|
|
17
17
|
transition: background-color 150ms ease;
|
|
18
18
|
-webkit-tap-highlight-color: transparent;
|
|
19
|
+
-webkit-appearance: none;
|
|
20
|
+
-moz-appearance: none;
|
|
21
|
+
appearance: none;
|
|
22
|
+
color: inherit;
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
.more-menu-button:hover {
|
|
22
26
|
background-color: var(--kritzel-more-menu-button-hover-background-color, #f5f5f5);
|
|
23
27
|
}
|
|
24
28
|
|
|
29
|
+
.more-menu-button:focus {
|
|
30
|
+
background-color: var(--kritzel-more-menu-button-hover-background-color, #f5f5f5);
|
|
31
|
+
}
|
|
32
|
+
|
|
25
33
|
.more-menu-button:active {
|
|
26
34
|
background-color: var(--kritzel-more-menu-button-active-background-color, #ebebeb);
|
|
27
35
|
}
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-Cj-I2_Og.js";export{e as KritzelBrushTool,d as KritzelGroup,b as KritzelImage,c as KritzelLine,f as KritzelLineTool,a as KritzelPath,h as KritzelSelectionTool,K as KritzelText,g as KritzelTextTool}from"./p-CVPA34Tp.js";import{w as t,a as i,t as o,r as n,b as l,e as u,c as m,d as p,f as z,g as C,s as k,h as S,i as x,v as y,j,o as w,k as T,l as v,m as P,O as M,n as B,p as W,q as U,u as A,x as H,y as O,z as L,A as N,B as _,C as $,H as R,D as X}from"./p-DCbOCSX1.js";export{I as IndexedDBSyncProvider,J as KritzelAnchorManager,G as KritzelAppStateMap,F as KritzelCursorHelper,K as KritzelEraserTool,E as KritzelImageTool}from"./p-DCbOCSX1.js";export{K as KritzelWorkspace}from"./p-n789Y3S-.js";export{D as DEFAULT_BRUSH_CONFIG,b as DEFAULT_LINE_TOOL_CONFIG,a as DEFAULT_TEXT_CONFIG,KritzelEditor,defineCustomElement as defineCustomElementKritzelEditor}from"./kritzel-editor.js";export{KritzelBackToContent,defineCustomElement as defineCustomElementKritzelBackToContent}from"./kritzel-back-to-content.js";export{KritzelBrushStyle,defineCustomElement as defineCustomElementKritzelBrushStyle}from"./kritzel-brush-style.js";export{KritzelColor,defineCustomElement as defineCustomElementKritzelColor}from"./kritzel-color.js";export{KritzelColorPalette,defineCustomElement as defineCustomElementKritzelColorPalette}from"./kritzel-color-palette.js";export{KritzelContextMenu,defineCustomElement as defineCustomElementKritzelContextMenu}from"./kritzel-context-menu.js";export{KritzelControls,defineCustomElement as defineCustomElementKritzelControls}from"./kritzel-controls.js";export{KritzelCursorTrail,defineCustomElement as defineCustomElementKritzelCursorTrail}from"./kritzel-cursor-trail.js";export{KritzelDialog,defineCustomElement as defineCustomElementKritzelDialog}from"./kritzel-dialog.js";export{KritzelDropdown,defineCustomElement as defineCustomElementKritzelDropdown}from"./kritzel-dropdown.js";export{KritzelEngine,defineCustomElement as defineCustomElementKritzelEngine}from"./kritzel-engine.js";export{KritzelExport,defineCustomElement as defineCustomElementKritzelExport}from"./kritzel-export.js";export{KritzelFont,defineCustomElement as defineCustomElementKritzelFont}from"./kritzel-font.js";export{KritzelFontFamily,defineCustomElement as defineCustomElementKritzelFontFamily}from"./kritzel-font-family.js";export{KritzelFontSize,defineCustomElement as defineCustomElementKritzelFontSize}from"./kritzel-font-size.js";export{KritzelIcon,defineCustomElement as defineCustomElementKritzelIcon}from"./kritzel-icon.js";export{KritzelLineEndings,defineCustomElement as defineCustomElementKritzelLineEndings}from"./kritzel-line-endings.js";export{KritzelMasterDetail,defineCustomElement as defineCustomElementKritzelMasterDetail}from"./kritzel-master-detail.js";export{KritzelMenu,defineCustomElement as defineCustomElementKritzelMenu}from"./kritzel-menu.js";export{KritzelMenuItem,defineCustomElement as defineCustomElementKritzelMenuItem}from"./kritzel-menu-item.js";export{KritzelMoreMenu,defineCustomElement as defineCustomElementKritzelMoreMenu}from"./kritzel-more-menu.js";export{KritzelNumericInput,defineCustomElement as defineCustomElementKritzelNumericInput}from"./kritzel-numeric-input.js";export{KritzelOpacitySlider,defineCustomElement as defineCustomElementKritzelOpacitySlider}from"./kritzel-opacity-slider.js";export{KritzelPortal,defineCustomElement as defineCustomElementKritzelPortal}from"./kritzel-portal.js";export{KritzelSettings,defineCustomElement as defineCustomElementKritzelSettings}from"./kritzel-settings.js";export{KritzelShapeFill,defineCustomElement as defineCustomElementKritzelShapeFill}from"./kritzel-shape-fill.js";export{KritzelSlideToggle,defineCustomElement as defineCustomElementKritzelSlideToggle}from"./kritzel-slide-toggle.js";export{KritzelSplitButton,defineCustomElement as defineCustomElementKritzelSplitButton}from"./kritzel-split-button.js";export{KritzelStrokeSize,defineCustomElement as defineCustomElementKritzelStrokeSize}from"./kritzel-stroke-size.js";export{KritzelToolConfig,defineCustomElement as defineCustomElementKritzelToolConfig}from"./kritzel-tool-config.js";export{KritzelTooltip,defineCustomElement as defineCustomElementKritzelTooltip}from"./kritzel-tooltip.js";export{KritzelUtilityPanel,defineCustomElement as defineCustomElementKritzelUtilityPanel}from"./kritzel-utility-panel.js";export{KritzelWorkspaceManager,defineCustomElement as defineCustomElementKritzelWorkspaceManager}from"./kritzel-workspace-manager.js";class Y{doc;channel;_synced=!1;constructor(e,t,s){this.doc=t,this.channel=new BroadcastChannel(e),this.channel.onmessage=e=>{this.handleMessage(e.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),console.info("BroadcastChannel Provider initialized: "+e)}handleDocUpdate=(e,s)=>{if(s!==this){const s=z();t(s,0),i(s,e),this.channel.postMessage(o(s))}};handleMessage(e){const s=C(new Uint8Array(e));switch(n(s)){case 0:const e=l(s);m(this.doc,e,this);break;case 1:this.broadcastSync();break;case 2:const n=l(s),r=u(this.doc,n);if(r.length>0){const e=z();t(e,0),i(e,r),this.channel.postMessage(o(e))}}}broadcastSync(){const e=z();t(e,2),i(e,p(this.doc)),this.channel.postMessage(o(e))}async connect(){if(!this._synced)return new Promise((e=>{const t=()=>{this._synced?e():setTimeout(t,50)};t()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}const q=new Map,V="undefined"==typeof BroadcastChannel?class{constructor(e){this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:x(t.newValue||"")}),w(this._onChange)}postMessage(e){y.setItem(this.room,j(T(e)))}close(){v(this._onChange)}}:BroadcastChannel,Q=e=>k(q,e,(()=>{const t=S(),s=new V(e);return s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),Z=(e,t,s=null)=>{const i=Q(e);i.bc.postMessage(t),i.subs.forEach((e=>e(t,s)))},ee=(e,s)=>{t(e,0);const o=p(s);i(e,o)},te=(e,s,o)=>{t(e,1),i(e,u(s,o))},se=(e,t,s,i)=>{try{m(t,l(e),s)}catch(e){null!=i&&i(e),console.error("Caught error while handling a Yjs update",e)}},ie=se;class oe extends M{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=W();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((s,i)=>{i!==this.clientID&&3e4<=e-s.lastUpdated&&this.states.has(i)&&t.push(i)})),t.length>0&&ne(this,t,"timeout")}),B(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,s=this.meta.get(t),i=void 0===s?0:s.clock+1,o=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:i,lastUpdated:W()});const n=[],r=[],l=[],a=[];null===e?a.push(t):null==o?null!=e&&n.push(t):(r.push(t),U(o,e)||l.push(t)),(n.length>0||l.length>0||a.length>0)&&this.emit("change",[{added:n,updated:l,removed:a},"local"]),this.emit("update",[{added:n,updated:r,removed:a},"local"])}setLocalStateField(e,t){const s=this.getLocalState();null!==s&&this.setLocalState({...s,[e]:t})}getStates(){return this.states}}const ne=(e,t,s)=>{const i=[];for(let s=0;s<t.length;s++){const o=t[s];if(e.states.has(o)){if(e.states.delete(o),o===e.clientID){const t=e.meta.get(o);e.meta.set(o,{clock:t.clock+1,lastUpdated:W()})}i.push(o)}}i.length>0&&(e.emit("change",[{added:[],updated:[],removed:i},s]),e.emit("update",[{added:[],updated:[],removed:i},s]))},re=(e,s,i=e.states)=>{const n=s.length,r=z();t(r,n);for(let o=0;o<n;o++){const n=s[o],l=i.get(n)||null,a=e.meta.get(n).clock;t(r,n),t(r,a),A(r,JSON.stringify(l))}return o(r)},le=[];le[0]=(e,s,i,o)=>{t(e,0);const r=((e,t,s,i,o)=>{const r=n(e);switch(r){case 0:((e,t,s)=>{te(t,s,l(e))})(e,t,s);break;case 1:se(e,s,i,o);break;case 2:ie(e,s,i,o);break;default:throw Error("Unknown message type")}return r})(s,e,i.doc,i);o&&1===r&&!i.synced&&(i.synced=!0)},le[3]=(e,s,o)=>{t(e,1),i(e,re(o.awareness,Array.from(o.awareness.getStates().keys())))},le[1]=(e,t,s)=>{((e,t,s)=>{const i=C(t),o=W(),r=[],l=[],a=[],c=[],d=n(i);for(let t=0;t<d;t++){const t=n(i);let s=n(i);const d=JSON.parse(P(i)),h=e.meta.get(t),u=e.states.get(t),m=void 0===h?0:h.clock;(m<s||m===s&&null===d&&e.states.has(t))&&(null===d?t===e.clientID&&null!=e.getLocalState()?s++:e.states.delete(t):e.states.set(t,d),e.meta.set(t,{clock:s,lastUpdated:o}),void 0===h&&null!==d?r.push(t):void 0!==h&&null===d?c.push(t):null!==d&&(U(d,u)||a.push(t),l.push(t)))}(r.length>0||a.length>0||c.length>0)&&e.emit("change",[{added:r,updated:a,removed:c},s]),(r.length>0||l.length>0||c.length>0)&&e.emit("update",[{added:r,updated:l,removed:c},s])})(s.awareness,l(t),s)},le[2]=(e,t,s)=>{((e,t,s)=>{0===n(e)&&s(0,P(e))})(t,0,((e,t)=>ae(s,t)))};const ae=(e,t)=>console.warn(`Permission denied to access ${e.url}.\n${t}`),ce=(e,t,s)=>{const i=C(t),o=z(),r=n(i),l=e.messageHandlers[r];return l?l(o,i,e,s,r):console.error("Unable to compute message"),o},de=(e,t,s)=>{t===e.ws&&(e.emit("connection-close",[s,e]),e.ws=null,t.close(),e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,ne(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(he,_(100*$(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e))},he=e=>{if(e.shouldConnect&&null===e.ws){const s=new e._WS(e.url,e.protocols);s.binaryType="arraybuffer",e.ws=s,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,s.onmessage=t=>{e.wsLastMessageReceived=W();const i=ce(e,new Uint8Array(t.data),!0);L(i)>1&&s.send(o(i))},s.onerror=t=>{e.emit("connection-error",[t,e])},s.onclose=t=>{de(e,s,t)},s.onopen=()=>{e.wsLastMessageReceived=W(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const n=z();if(t(n,0),ee(n,e.doc),s.send(o(n)),null!==e.awareness.getLocalState()){const n=z();t(n,1),i(n,re(e.awareness,[e.doc.clientID])),s.send(o(n))}},e.emit("status",[{status:"connecting"}])}},ue=(e,t)=>{const s=e.ws;e.wsconnected&&s&&s.readyState===s.OPEN&&s.send(t),e.bcconnected&&Z(e.bcChannel,t,e)};class me extends O{constructor(e,s,n,{connect:r=!0,awareness:l=new oe(n),params:a={},protocols:c=[],WebSocketPolyfill:d=WebSocket,resyncInterval:h=-1,maxBackoffTime:u=2500,disableBc:m=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);this.serverUrl=e,this.bcChannel=e+"/"+s,this.maxBackoffTime=u,this.params=a,this.protocols=c,this.roomname=s,this.doc=n,this._WS=d,this.awareness=l,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=m,this.wsUnsuccessfulReconnects=0,this.messageHandlers=le.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=r,this._resyncInterval=0,h>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const e=z();t(e,0),ee(e,n),this.ws.send(o(e))}}),h)),this._bcSubscriber=(e,t)=>{if(t!==this){const t=ce(this,new Uint8Array(e),!1);L(t)>1&&Z(this.bcChannel,o(t),this)}},this._updateHandler=(e,s)=>{if(s!==this){const s=z();t(s,0),((e,s)=>{t(e,2),i(e,s)})(s,e),ue(this,o(s))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:s,removed:n})=>{const r=e.concat(s).concat(n),a=z();t(a,1),i(a,re(l,r)),ue(this,o(a))},this._exitHandler=()=>{ne(this.awareness,[n.clientID],"app closed")},N&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),l.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<W()-this.wsLastMessageReceived&&de(this,this.ws,null)}),3e3),r&&this.connect()}get url(){const e=(()=>H(this.params,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))();return this.serverUrl+"/"+this.roomname+(0===e.length?"":"?"+e)}get synced(){return this._synced}set synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),N&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;this.bcconnected||(((e,t)=>{Q(this.bcChannel).subs.add(t)})(0,this._bcSubscriber),this.bcconnected=!0);const e=z();t(e,0),ee(e,this.doc),Z(this.bcChannel,o(e),this);const s=z();t(s,0),te(s,this.doc),Z(this.bcChannel,o(s),this);const n=z();t(n,3),Z(this.bcChannel,o(n),this);const r=z();t(r,1),i(r,re(this.awareness,[this.doc.clientID])),Z(this.bcChannel,o(r),this)}disconnectBc(){const e=z();t(e,1),i(e,re(this.awareness,[this.doc.clientID],new Map)),ue(this,o(e)),this.bcconnected&&(((e,t)=>{const s=Q(e);s.subs.delete(t)&&0===s.subs.size&&(s.bc.close(),q.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&de(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(he(this),this.connectBc())}}class fe{provider;isConnected=!1;constructor(e,t,s){const i=s?.url||"ws://localhost:1234",o=s?.roomName||e;this.provider=new me(i,o,t,{params:s?.params,protocols:s?.protocols,WebSocketPolyfill:s?.WebSocketPolyfill,awareness:s?.awareness,maxBackoffTime:s?.maxBackoffTime,disableBc:!0}),this.setupEventListeners(),console.info(`WebSocket Provider initialized: ${i}/${o}`)}static with(e){return{create:(t,s)=>new fe(t,s,e)}}setupEventListeners(){this.provider.on("status",(({status:e})=>{"connected"===e?(this.isConnected=!0,console.info("WebSocket connected")):"disconnected"===e&&(this.isConnected=!1,console.info("WebSocket disconnected"))})),this.provider.on("sync",(e=>{e&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("WebSocket connection timeout"))}),1e4),i=({status:t})=>{"connected"===t&&(clearTimeout(s),this.provider.off("status",i),this.isConnected=!0,e())};this.provider.on("status",i),this.provider.wsconnected&&(clearTimeout(s),this.provider.off("status",i),this.isConnected=!0,e())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class pe{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;static sharedWebSocketProvider=null;constructor(e,t,s){const i=s?.name||e,o=s?.url||"ws://localhost:1234",n=s?.websocketProvider||pe.sharedWebSocketProvider;if(n){this.usesSharedSocket=!0;const e={websocketProvider:n,name:i,document:t,token:s?.token||null,onConnect:()=>{this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+i),s?.onConnect&&s.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+i),s?.onDisconnect&&s.onDisconnect()},onSynced:()=>{this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+i),s?.onSynced&&s.onSynced()}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),this.provider=new R(e),this.provider.attach(),s?.quiet||console.info("Hocuspocus Provider initialized (multiplexed): "+i)}else{this.usesSharedSocket=!1;const e={url:o,name:i,document:t,token:s?.token||null,onConnect:()=>{this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+i),s?.onConnect&&s.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+i),s?.onDisconnect&&s.onDisconnect()},onSynced:()=>{this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+i),s?.onSynced&&s.onSynced()}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),s?.WebSocketPolyfill&&(e.WebSocketPolyfill=s.WebSocketPolyfill),this.provider=new R(e),s?.quiet||console.info(`Hocuspocus Provider initialized: ${o}/${i}`)}}static createSharedWebSocket(e){if(pe.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),pe.sharedWebSocketProvider;const t={url:e.url};return e.WebSocketPolyfill&&(t.WebSocketPolyfill=e.WebSocketPolyfill),e.onConnect&&(t.onConnect=e.onConnect),e.onDisconnect&&(t.onDisconnect=e.onDisconnect),e.onStatus&&(t.onStatus=e.onStatus),pe.sharedWebSocketProvider=new X(t),console.info("Shared Hocuspocus WebSocket created: "+e.url),pe.sharedWebSocketProvider}static destroySharedWebSocket(){pe.sharedWebSocketProvider&&(pe.sharedWebSocketProvider.destroy(),pe.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return pe.sharedWebSocketProvider}static with(e){return{create:(t,s)=>new pe(t,s,e)}}async connect(){if(!this.isSynced)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("Hocuspocus connection timeout"))}),1e4),i=()=>{clearTimeout(s),this.provider.off("synced",i),e()};if(this.provider.on("synced",i),this.provider.isSynced)return clearTimeout(s),this.provider.off("synced",i),void e();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{Y as BroadcastSyncProvider,pe as HocuspocusSyncProvider,fe as WebSocketSyncProvider}
|
|
1
|
+
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-Cj-I2_Og.js";export{e as KritzelBrushTool,d as KritzelGroup,b as KritzelImage,c as KritzelLine,f as KritzelLineTool,a as KritzelPath,h as KritzelSelectionTool,K as KritzelText,g as KritzelTextTool}from"./p-CuifaWTr.js";import{w as t,a as i,t as o,r as n,b as l,e as u,c as m,d as p,f as z,g as C,s as k,h as x,i as y,v as S,j,o as w,k as T,l as v,m as P,O as M,n as B,p as W,q as U,u as H,x as A,y as L,z as O,A as _,B as N,C as $,H as R,D as Y}from"./p-Csm0Kf0_.js";export{I as IndexedDBSyncProvider,J as KritzelAnchorManager,G as KritzelAppStateMap,F as KritzelCursorHelper,K as KritzelEraserTool,E as KritzelImageTool}from"./p-Csm0Kf0_.js";export{K as KritzelWorkspace}from"./p-n789Y3S-.js";export{D as DEFAULT_BRUSH_CONFIG,b as DEFAULT_LINE_TOOL_CONFIG,a as DEFAULT_TEXT_CONFIG,KritzelEditor,defineCustomElement as defineCustomElementKritzelEditor}from"./kritzel-editor.js";export{KritzelBackToContent,defineCustomElement as defineCustomElementKritzelBackToContent}from"./kritzel-back-to-content.js";export{KritzelBrushStyle,defineCustomElement as defineCustomElementKritzelBrushStyle}from"./kritzel-brush-style.js";export{KritzelColor,defineCustomElement as defineCustomElementKritzelColor}from"./kritzel-color.js";export{KritzelColorPalette,defineCustomElement as defineCustomElementKritzelColorPalette}from"./kritzel-color-palette.js";export{KritzelContextMenu,defineCustomElement as defineCustomElementKritzelContextMenu}from"./kritzel-context-menu.js";export{KritzelControls,defineCustomElement as defineCustomElementKritzelControls}from"./kritzel-controls.js";export{KritzelCursorTrail,defineCustomElement as defineCustomElementKritzelCursorTrail}from"./kritzel-cursor-trail.js";export{KritzelDialog,defineCustomElement as defineCustomElementKritzelDialog}from"./kritzel-dialog.js";export{KritzelDropdown,defineCustomElement as defineCustomElementKritzelDropdown}from"./kritzel-dropdown.js";export{KritzelEngine,defineCustomElement as defineCustomElementKritzelEngine}from"./kritzel-engine.js";export{KritzelExport,defineCustomElement as defineCustomElementKritzelExport}from"./kritzel-export.js";export{KritzelFont,defineCustomElement as defineCustomElementKritzelFont}from"./kritzel-font.js";export{KritzelFontFamily,defineCustomElement as defineCustomElementKritzelFontFamily}from"./kritzel-font-family.js";export{KritzelFontSize,defineCustomElement as defineCustomElementKritzelFontSize}from"./kritzel-font-size.js";export{KritzelIcon,defineCustomElement as defineCustomElementKritzelIcon}from"./kritzel-icon.js";export{KritzelLineEndings,defineCustomElement as defineCustomElementKritzelLineEndings}from"./kritzel-line-endings.js";export{KritzelMasterDetail,defineCustomElement as defineCustomElementKritzelMasterDetail}from"./kritzel-master-detail.js";export{KritzelMenu,defineCustomElement as defineCustomElementKritzelMenu}from"./kritzel-menu.js";export{KritzelMenuItem,defineCustomElement as defineCustomElementKritzelMenuItem}from"./kritzel-menu-item.js";export{KritzelMoreMenu,defineCustomElement as defineCustomElementKritzelMoreMenu}from"./kritzel-more-menu.js";export{KritzelNumericInput,defineCustomElement as defineCustomElementKritzelNumericInput}from"./kritzel-numeric-input.js";export{KritzelOpacitySlider,defineCustomElement as defineCustomElementKritzelOpacitySlider}from"./kritzel-opacity-slider.js";export{KritzelPortal,defineCustomElement as defineCustomElementKritzelPortal}from"./kritzel-portal.js";export{KritzelSettings,defineCustomElement as defineCustomElementKritzelSettings}from"./kritzel-settings.js";export{KritzelShapeFill,defineCustomElement as defineCustomElementKritzelShapeFill}from"./kritzel-shape-fill.js";export{KritzelSlideToggle,defineCustomElement as defineCustomElementKritzelSlideToggle}from"./kritzel-slide-toggle.js";export{KritzelSplitButton,defineCustomElement as defineCustomElementKritzelSplitButton}from"./kritzel-split-button.js";export{KritzelStrokeSize,defineCustomElement as defineCustomElementKritzelStrokeSize}from"./kritzel-stroke-size.js";export{KritzelToolConfig,defineCustomElement as defineCustomElementKritzelToolConfig}from"./kritzel-tool-config.js";export{KritzelTooltip,defineCustomElement as defineCustomElementKritzelTooltip}from"./kritzel-tooltip.js";export{KritzelUtilityPanel,defineCustomElement as defineCustomElementKritzelUtilityPanel}from"./kritzel-utility-panel.js";export{KritzelWorkspaceManager,defineCustomElement as defineCustomElementKritzelWorkspaceManager}from"./kritzel-workspace-manager.js";class q{doc;channel;_synced=!1;constructor(e,t,s){this.doc=t,this.channel=new BroadcastChannel(e),this.channel.onmessage=e=>{this.handleMessage(e.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),console.info("BroadcastChannel Provider initialized: "+e)}handleDocUpdate=(e,s)=>{if(s!==this){const s=z();t(s,0),i(s,e),this.channel.postMessage(o(s))}};handleMessage(e){const s=C(new Uint8Array(e));switch(n(s)){case 0:const e=l(s);m(this.doc,e,this);break;case 1:this.broadcastSync();break;case 2:const n=l(s),r=u(this.doc,n);if(r.length>0){const e=z();t(e,0),i(e,r),this.channel.postMessage(o(e))}}}broadcastSync(){const e=z();t(e,2),i(e,p(this.doc)),this.channel.postMessage(o(e))}async connect(){if(!this._synced)return new Promise((e=>{const t=()=>{this._synced?e():setTimeout(t,50)};t()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}const X=new Map,Q="undefined"==typeof BroadcastChannel?class{constructor(e){this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:y(t.newValue||"")}),w(this._onChange)}postMessage(e){S.setItem(this.room,j(T(e)))}close(){v(this._onChange)}}:BroadcastChannel,V=e=>k(X,e,(()=>{const t=x(),s=new Q(e);return s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),Z=(e,t,s=null)=>{const i=V(e);i.bc.postMessage(t),i.subs.forEach((e=>e(t,s)))},ee=(e,s)=>{t(e,0);const o=p(s);i(e,o)},te=(e,s,o)=>{t(e,1),i(e,u(s,o))},se=(e,t,s,i)=>{try{m(t,l(e),s)}catch(e){null!=i&&i(e),console.error("Caught error while handling a Yjs update",e)}},ie=se;class oe extends M{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=W();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((s,i)=>{i!==this.clientID&&3e4<=e-s.lastUpdated&&this.states.has(i)&&t.push(i)})),t.length>0&&ne(this,t,"timeout")}),B(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,s=this.meta.get(t),i=void 0===s?0:s.clock+1,o=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:i,lastUpdated:W()});const n=[],r=[],l=[],a=[];null===e?a.push(t):null==o?null!=e&&n.push(t):(r.push(t),U(o,e)||l.push(t)),(n.length>0||l.length>0||a.length>0)&&this.emit("change",[{added:n,updated:l,removed:a},"local"]),this.emit("update",[{added:n,updated:r,removed:a},"local"])}setLocalStateField(e,t){const s=this.getLocalState();null!==s&&this.setLocalState({...s,[e]:t})}getStates(){return this.states}}const ne=(e,t,s)=>{const i=[];for(let s=0;s<t.length;s++){const o=t[s];if(e.states.has(o)){if(e.states.delete(o),o===e.clientID){const t=e.meta.get(o);e.meta.set(o,{clock:t.clock+1,lastUpdated:W()})}i.push(o)}}i.length>0&&(e.emit("change",[{added:[],updated:[],removed:i},s]),e.emit("update",[{added:[],updated:[],removed:i},s]))},re=(e,s,i=e.states)=>{const n=s.length,r=z();t(r,n);for(let o=0;o<n;o++){const n=s[o],l=i.get(n)||null,a=e.meta.get(n).clock;t(r,n),t(r,a),H(r,JSON.stringify(l))}return o(r)},le=[];le[0]=(e,s,i,o)=>{t(e,0);const r=((e,t,s,i,o)=>{const r=n(e);switch(r){case 0:((e,t,s)=>{te(t,s,l(e))})(e,t,s);break;case 1:se(e,s,i,o);break;case 2:ie(e,s,i,o);break;default:throw Error("Unknown message type")}return r})(s,e,i.doc,i);o&&1===r&&!i.synced&&(i.synced=!0)},le[3]=(e,s,o)=>{t(e,1),i(e,re(o.awareness,Array.from(o.awareness.getStates().keys())))},le[1]=(e,t,s)=>{((e,t,s)=>{const i=C(t),o=W(),r=[],l=[],a=[],c=[],d=n(i);for(let t=0;t<d;t++){const t=n(i);let s=n(i);const d=JSON.parse(P(i)),h=e.meta.get(t),u=e.states.get(t),m=void 0===h?0:h.clock;(m<s||m===s&&null===d&&e.states.has(t))&&(null===d?t===e.clientID&&null!=e.getLocalState()?s++:e.states.delete(t):e.states.set(t,d),e.meta.set(t,{clock:s,lastUpdated:o}),void 0===h&&null!==d?r.push(t):void 0!==h&&null===d?c.push(t):null!==d&&(U(d,u)||a.push(t),l.push(t)))}(r.length>0||a.length>0||c.length>0)&&e.emit("change",[{added:r,updated:a,removed:c},s]),(r.length>0||l.length>0||c.length>0)&&e.emit("update",[{added:r,updated:l,removed:c},s])})(s.awareness,l(t),s)},le[2]=(e,t,s)=>{((e,t,s)=>{0===n(e)&&s(0,P(e))})(t,0,((e,t)=>ae(s,t)))};const ae=(e,t)=>console.warn(`Permission denied to access ${e.url}.\n${t}`),ce=(e,t,s)=>{const i=C(t),o=z(),r=n(i),l=e.messageHandlers[r];return l?l(o,i,e,s,r):console.error("Unable to compute message"),o},de=(e,t,s)=>{t===e.ws&&(e.emit("connection-close",[s,e]),e.ws=null,t.close(),e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,ne(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(he,N(100*$(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e))},he=e=>{if(e.shouldConnect&&null===e.ws){const s=new e._WS(e.url,e.protocols);s.binaryType="arraybuffer",e.ws=s,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,s.onmessage=t=>{e.wsLastMessageReceived=W();const i=ce(e,new Uint8Array(t.data),!0);O(i)>1&&s.send(o(i))},s.onerror=t=>{e.emit("connection-error",[t,e])},s.onclose=t=>{de(e,s,t)},s.onopen=()=>{e.wsLastMessageReceived=W(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const n=z();if(t(n,0),ee(n,e.doc),s.send(o(n)),null!==e.awareness.getLocalState()){const n=z();t(n,1),i(n,re(e.awareness,[e.doc.clientID])),s.send(o(n))}},e.emit("status",[{status:"connecting"}])}},ue=(e,t)=>{const s=e.ws;e.wsconnected&&s&&s.readyState===s.OPEN&&s.send(t),e.bcconnected&&Z(e.bcChannel,t,e)};class me extends L{constructor(e,s,n,{connect:r=!0,awareness:l=new oe(n),params:a={},protocols:c=[],WebSocketPolyfill:d=WebSocket,resyncInterval:h=-1,maxBackoffTime:u=2500,disableBc:m=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);this.serverUrl=e,this.bcChannel=e+"/"+s,this.maxBackoffTime=u,this.params=a,this.protocols=c,this.roomname=s,this.doc=n,this._WS=d,this.awareness=l,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=m,this.wsUnsuccessfulReconnects=0,this.messageHandlers=le.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=r,this._resyncInterval=0,h>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const e=z();t(e,0),ee(e,n),this.ws.send(o(e))}}),h)),this._bcSubscriber=(e,t)=>{if(t!==this){const t=ce(this,new Uint8Array(e),!1);O(t)>1&&Z(this.bcChannel,o(t),this)}},this._updateHandler=(e,s)=>{if(s!==this){const s=z();t(s,0),((e,s)=>{t(e,2),i(e,s)})(s,e),ue(this,o(s))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:s,removed:n})=>{const r=e.concat(s).concat(n),a=z();t(a,1),i(a,re(l,r)),ue(this,o(a))},this._exitHandler=()=>{ne(this.awareness,[n.clientID],"app closed")},_&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),l.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<W()-this.wsLastMessageReceived&&de(this,this.ws,null)}),3e3),r&&this.connect()}get url(){const e=(()=>A(this.params,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))();return this.serverUrl+"/"+this.roomname+(0===e.length?"":"?"+e)}get synced(){return this._synced}set synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),_&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;this.bcconnected||(((e,t)=>{V(this.bcChannel).subs.add(t)})(0,this._bcSubscriber),this.bcconnected=!0);const e=z();t(e,0),ee(e,this.doc),Z(this.bcChannel,o(e),this);const s=z();t(s,0),te(s,this.doc),Z(this.bcChannel,o(s),this);const n=z();t(n,3),Z(this.bcChannel,o(n),this);const r=z();t(r,1),i(r,re(this.awareness,[this.doc.clientID])),Z(this.bcChannel,o(r),this)}disconnectBc(){const e=z();t(e,1),i(e,re(this.awareness,[this.doc.clientID],new Map)),ue(this,o(e)),this.bcconnected&&(((e,t)=>{const s=V(e);s.subs.delete(t)&&0===s.subs.size&&(s.bc.close(),X.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&de(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(he(this),this.connectBc())}}class fe{provider;isConnected=!1;constructor(e,t,s){const i=s?.url||"ws://localhost:1234",o=s?.roomName||e;this.provider=new me(i,o,t,{params:s?.params,protocols:s?.protocols,WebSocketPolyfill:s?.WebSocketPolyfill,awareness:s?.awareness,maxBackoffTime:s?.maxBackoffTime,disableBc:!0}),this.setupEventListeners(),console.info(`WebSocket Provider initialized: ${i}/${o}`)}static with(e){return{create:(t,s)=>new fe(t,s,e)}}setupEventListeners(){this.provider.on("status",(({status:e})=>{"connected"===e?(this.isConnected=!0,console.info("WebSocket connected")):"disconnected"===e&&(this.isConnected=!1,console.info("WebSocket disconnected"))})),this.provider.on("sync",(e=>{e&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("WebSocket connection timeout"))}),1e4),i=({status:t})=>{"connected"===t&&(clearTimeout(s),this.provider.off("status",i),this.isConnected=!0,e())};this.provider.on("status",i),this.provider.wsconnected&&(clearTimeout(s),this.provider.off("status",i),this.isConnected=!0,e())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class pe{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;static sharedWebSocketProvider=null;constructor(e,t,s){const i=s?.name||e,o=s?.url||"ws://localhost:1234",n=s?.websocketProvider||pe.sharedWebSocketProvider;if(n){this.usesSharedSocket=!0;const e={websocketProvider:n,name:i,document:t,token:s?.token||null,onConnect:()=>{this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+i),s?.onConnect&&s.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+i),s?.onDisconnect&&s.onDisconnect()},onSynced:()=>{this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+i),s?.onSynced&&s.onSynced()}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),this.provider=new R(e),this.provider.attach(),s?.quiet||console.info("Hocuspocus Provider initialized (multiplexed): "+i)}else{this.usesSharedSocket=!1;const e={url:o,name:i,document:t,token:s?.token||null,onConnect:()=>{this.isConnected=!0,s?.quiet||console.info("Hocuspocus connected: "+i),s?.onConnect&&s.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,s?.quiet||console.info("Hocuspocus disconnected: "+i),s?.onDisconnect&&s.onDisconnect()},onSynced:()=>{this.isSynced=!0,s?.quiet||console.info("Hocuspocus synced: "+i),s?.onSynced&&s.onSynced()}};void 0!==s?.forceSyncInterval&&(e.forceSyncInterval=s.forceSyncInterval),s?.onAuthenticationFailed&&(e.onAuthenticationFailed=s.onAuthenticationFailed),s?.onStatus&&(e.onStatus=s.onStatus),s?.WebSocketPolyfill&&(e.WebSocketPolyfill=s.WebSocketPolyfill),this.provider=new R(e),s?.quiet||console.info(`Hocuspocus Provider initialized: ${o}/${i}`)}}static createSharedWebSocket(e){if(pe.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),pe.sharedWebSocketProvider;const t={url:e.url};return e.WebSocketPolyfill&&(t.WebSocketPolyfill=e.WebSocketPolyfill),e.onConnect&&(t.onConnect=e.onConnect),e.onDisconnect&&(t.onDisconnect=e.onDisconnect),e.onStatus&&(t.onStatus=e.onStatus),pe.sharedWebSocketProvider=new Y(t),console.info("Shared Hocuspocus WebSocket created: "+e.url),pe.sharedWebSocketProvider}static destroySharedWebSocket(){pe.sharedWebSocketProvider&&(pe.sharedWebSocketProvider.destroy(),pe.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return pe.sharedWebSocketProvider}static with(e){return{create:(t,s)=>new pe(t,s,e)}}async connect(){if(!this.isSynced)return new Promise(((e,t)=>{const s=setTimeout((()=>{t(Error("Hocuspocus connection timeout"))}),1e4),i=()=>{clearTimeout(s),this.provider.off("synced",i),e()};if(this.provider.on("synced",i),this.provider.isSynced)return clearTimeout(s),this.provider.off("synced",i),void e();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{q as BroadcastSyncProvider,pe as HocuspocusSyncProvider,fe as WebSocketSyncProvider}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as o,d as s}from"./p-
|
|
1
|
+
import{K as o,d as s}from"./p-BvoIoyaZ.js";const a=o,p=s;export{a as KritzelControls,p as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as o,d as s}from"./p-
|
|
1
|
+
import{K as o,d as s}from"./p-DCFa1WDS.js";const a=o,p=s;export{a as KritzelDialog,p as defineCustomElement}
|