kritzel-stencil 0.1.25 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/cjs/{default-line-tool.config-nMR5iYBB.js → default-line-tool.config-Dbu-DwOX.js} +87 -38
  2. package/dist/cjs/{index-i21-qqbc.js → index-NMqsANCI.js} +111 -67
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/kritzel-back-to-content_32.cjs.entry.js +41 -12
  5. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/stencil.cjs.js +2 -2
  8. package/dist/collection/classes/objects/selection-group.class.js +86 -36
  9. package/dist/collection/classes/structures/quadtree.structure.js +38 -9
  10. package/dist/collection/collection-manifest.json +1 -1
  11. package/dist/collection/constants/version.js +1 -1
  12. package/dist/components/index.js +1 -1
  13. package/dist/components/kritzel-back-to-content.js +1 -1
  14. package/dist/components/kritzel-brush-style.js +1 -1
  15. package/dist/components/kritzel-color-palette.js +1 -1
  16. package/dist/components/kritzel-color.js +1 -1
  17. package/dist/components/kritzel-context-menu.js +1 -1
  18. package/dist/components/kritzel-controls.js +1 -1
  19. package/dist/components/kritzel-cursor-trail.js +1 -1
  20. package/dist/components/kritzel-dialog.js +1 -1
  21. package/dist/components/kritzel-dropdown.js +1 -1
  22. package/dist/components/kritzel-editor.js +1 -1
  23. package/dist/components/kritzel-engine.js +1 -1
  24. package/dist/components/kritzel-export.js +1 -1
  25. package/dist/components/kritzel-font-family.js +1 -1
  26. package/dist/components/kritzel-font-size.js +1 -1
  27. package/dist/components/kritzel-font.js +1 -1
  28. package/dist/components/kritzel-icon.js +1 -1
  29. package/dist/components/kritzel-line-endings.js +1 -1
  30. package/dist/components/kritzel-master-detail.js +1 -1
  31. package/dist/components/kritzel-menu-item.js +1 -1
  32. package/dist/components/kritzel-menu.js +1 -1
  33. package/dist/components/kritzel-more-menu.js +1 -1
  34. package/dist/components/kritzel-numeric-input.js +1 -1
  35. package/dist/components/kritzel-opacity-slider.js +1 -1
  36. package/dist/components/kritzel-portal.js +1 -1
  37. package/dist/components/kritzel-settings.js +1 -1
  38. package/dist/components/kritzel-shape-fill.js +1 -1
  39. package/dist/components/kritzel-slide-toggle.js +1 -1
  40. package/dist/components/kritzel-split-button.js +1 -1
  41. package/dist/components/kritzel-stroke-size.js +1 -1
  42. package/dist/components/kritzel-tool-config.js +1 -1
  43. package/dist/components/kritzel-tooltip.js +1 -1
  44. package/dist/components/kritzel-utility-panel.js +1 -1
  45. package/dist/components/kritzel-workspace-manager.js +1 -1
  46. package/dist/components/{p-WnxGQWr6.js → p-6B0LH1RP.js} +1 -1
  47. package/dist/components/{p-CkN6-oE3.js → p-B37slzk_.js} +1 -1
  48. package/dist/components/{p-BGwkUUZk.js → p-BPSr4bMw.js} +1 -1
  49. package/dist/components/{p-JdxbP-1P.js → p-BUW_CzVu.js} +1 -1
  50. package/dist/components/{p-D_gY5jie.js → p-BWaNKYjM.js} +1 -1
  51. package/dist/components/{p-CBs9GnLk.js → p-BaLEWzaG.js} +1 -1
  52. package/dist/components/{p-8uzm1dKV.js → p-BcCjGflI.js} +1 -1
  53. package/dist/components/{p-DnB4Srvo.js → p-BjpOwF3v.js} +1 -1
  54. package/dist/components/p-BjwppWz9.js +1 -0
  55. package/dist/components/{p-GeVIjnFi.js → p-BlBskbmV.js} +1 -1
  56. package/dist/components/{p-CwP7yBQP.js → p-BpgX0LEG.js} +1 -1
  57. package/dist/components/{p-BkLVv1nj.js → p-Bq-Qb0-N.js} +1 -1
  58. package/dist/components/{p-RU06uu0S.js → p-BqjUcirx.js} +1 -1
  59. package/dist/components/{p-CJTKpwmi.js → p-C30XjZtX.js} +1 -1
  60. package/dist/components/{p-CDZUyTsg.js → p-CJAFwG4C.js} +1 -1
  61. package/dist/components/{p-rBxQNDS2.js → p-CKCulHas.js} +1 -1
  62. package/dist/components/{p-yWjTje8m.js → p-CS2-FWGh.js} +1 -1
  63. package/dist/components/{p-DoE6WkDw.js → p-CSxODmkF.js} +1 -1
  64. package/dist/components/{p-BNYfuHT_.js → p-Cb3hilN-.js} +1 -1
  65. package/dist/components/{p-BxK5ew4S.js → p-Cg1R-Lj1.js} +1 -1
  66. package/dist/components/{p-CbRaWk0G.js → p-Cg7hVn-a.js} +1 -1
  67. package/dist/components/{p-n0XDtwWP.js → p-CioyMx_2.js} +1 -1
  68. package/dist/components/{p-BBx_5XKc.js → p-D89vzg8F.js} +1 -1
  69. package/dist/components/{p-DKNtjoqf.js → p-DTd44r1v.js} +1 -1
  70. package/dist/components/{p-Cpb-fnoO.js → p-DUSygVl-.js} +1 -1
  71. package/dist/components/{p-DKDoQ9nc.js → p-Dt85tAlJ.js} +1 -1
  72. package/dist/components/{p-DmN0DKS3.js → p-DxWQQBfC.js} +2 -2
  73. package/dist/components/{p-CTQmvTXG.js → p-Dz5ub8ld.js} +1 -1
  74. package/dist/components/{p-6USF_L1F.js → p-K1VNFj7L.js} +1 -1
  75. package/dist/components/p-SVmGNrsg.js +1 -0
  76. package/dist/components/{p-B1qfRBi0.js → p-eE5FpwD4.js} +1 -1
  77. package/dist/components/{p-B-muKisW.js → p-kpem_jJ9.js} +1 -1
  78. package/dist/esm/{default-line-tool.config-OwcgiNEW.js → default-line-tool.config-C_yDm5gU.js} +87 -38
  79. package/dist/esm/{index-k35gVcuU.js → index-DeSOzavr.js} +111 -67
  80. package/dist/esm/index.js +2 -2
  81. package/dist/esm/kritzel-back-to-content_32.entry.js +41 -12
  82. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  83. package/dist/esm/loader.js +2 -2
  84. package/dist/esm/stencil.js +3 -3
  85. package/dist/stencil/index.esm.js +1 -1
  86. package/dist/stencil/p-C_yDm5gU.js +1 -0
  87. package/dist/stencil/p-DeSOzavr.js +2 -0
  88. package/dist/stencil/{p-00e3ec46.entry.js → p-c0fc7909.entry.js} +2 -2
  89. package/dist/stencil/{p-095f812f.entry.js → p-e2bb9026.entry.js} +1 -1
  90. package/dist/stencil/stencil.esm.js +1 -1
  91. package/dist/types/classes/objects/selection-group.class.d.ts +10 -1
  92. package/dist/types/classes/structures/quadtree.structure.d.ts +15 -0
  93. package/dist/types/components.d.ts +178 -57
  94. package/dist/types/constants/version.d.ts +1 -1
  95. package/dist/types/stencil-public-runtime.d.ts +20 -1
  96. package/package.json +2 -2
  97. package/dist/components/p-8uGOVKdw.js +0 -1
  98. package/dist/components/p-Cj-I2_Og.js +0 -1
  99. package/dist/stencil/p-OwcgiNEW.js +0 -1
  100. package/dist/stencil/p-k35gVcuU.js +0 -2
@@ -15087,8 +15087,7 @@ function requireCjs () {
15087
15087
  if (hasRequiredCjs) return cjs;
15088
15088
  hasRequiredCjs = 1;
15089
15089
  (function (exports) {
15090
- 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;
15091
-
15090
+ var pe=Object.defineProperty;var ge=e=>pe(e,"__esModule",{value:true});var de=(e,t)=>{ge(e);for(var s in t)pe(e,s,{get:t[s],enumerable:true});};de(exports,{default:()=>ve,getStroke:()=>ne,getStrokeOutlinePoints:()=>te,getStrokePoints:()=>re});function $(e,t,s,x=h=>h){return e*x(.5-t*(.5-s))}function ce(e){return [-e[0],-e[1]]}function l(e,t){return [e[0]+t[0],e[1]+t[1]]}function a(e,t){return [e[0]-t[0],e[1]-t[1]]}function b(e,t){return [e[0]*t,e[1]*t]}function xe(e,t){return [e[0]/t,e[1]/t]}function R(e){return [e[1],-e[0]]}function B(e,t){return e[0]*t[0]+e[1]*t[1]}function me(e,t){return e[0]===t[0]&&e[1]===t[1]}function Se(e){return Math.hypot(e[0],e[1])}function Pe(e){return e[0]*e[0]+e[1]*e[1]}function A(e,t){return Pe(a(e,t))}function G(e){return xe(e,Se(e))}function ae(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function L(e,t,s){let x=Math.sin(s),h=Math.cos(s),y=e[0]-t[0],n=e[1]-t[1],f=y*h-n*x,d=y*x+n*h;return [f+t[0],d+t[1]]}function K(e,t,s){return l(e,b(a(t,e),s))}function ee(e,t,s){return l(e,b(t,s))}var{min:C,PI:ke}=Math,le=.275,V=ke+1e-4;function te(e,t={}){let{size:s=16,smoothing:x=.5,thinning:h=.5,simulatePressure:y=true,easing:n=r=>r,start:f={},end:d={},last:D=false}=t,{cap:S=true,easing:j=r=>r*(2-r)}=f,{cap:q=true,easing:c=r=>--r*r*r+1}=d;if(e.length===0||s<=0)return [];let p=e[e.length-1].runningLength,g=f.taper===false?0:f.taper===true?Math.max(s,p):f.taper,T=d.taper===false?0:d.taper===true?Math.max(s,p):d.taper,oe=Math.pow(s*x,2),_=[],M=[],H=e.slice(0,10).reduce((r,i)=>{let o=i.pressure;if(y){let u=C(1,i.distance/s),W=C(1,1-u);o=C(1,r+(W-r)*(u*le));}return (r+o)/2},e[0].pressure),m=$(s,h,e[e.length-1].pressure,n),U,X=e[0].vector,z=e[0].point,F=z,O=z,E=F,J=false;for(let r=0;r<e.length;r++){let{pressure:i}=e[r],{point:o,vector:u,distance:W,runningLength:I}=e[r];if(r<e.length-1&&p-I<3)continue;if(h){if(y){let v=C(1,W/s),Z=C(1,1-v);i=C(1,H+(Z-H)*(v*le));}m=$(s,h,i,n);}else m=s/2;U===void 0&&(U=m);let fe=I<g?j(I/g):1,be=p-I<T?c((p-I)/T):1;m=Math.max(.01,m*Math.min(fe,be));let se=(r<e.length-1?e[r+1]:e[r]).vector,Y=r<e.length-1?B(u,se):1,he=B(u,X)<0&&!J,ue=Y!==null&&Y<0;if(he||ue){let v=b(R(X),m);for(let Z=1/13,w=0;w<=1;w+=Z)O=L(a(o,v),o,V*w),_.push(O),E=L(l(o,v),o,V*-w),M.push(E);z=O,F=E,ue&&(J=true);continue}if(J=false,r===e.length-1){let v=b(R(u),m);_.push(a(o,v)),M.push(l(o,v));continue}let ie=b(R(K(se,u,Y)),m);O=a(o,ie),(r<=1||A(z,O)>oe)&&(_.push(O),z=O),E=l(o,ie),(r<=1||A(F,E)>oe)&&(M.push(E),F=E),H=i,X=u;}let P=e[0].point.slice(0,2),k=e.length>1?e[e.length-1].point.slice(0,2):l(e[0].point,[1,1]),Q=[],N=[];if(e.length===1){if(!(g||T)||D){let r=ee(P,G(R(a(P,k))),-(U||m)),i=[];for(let o=1/13,u=o;u<=1;u+=o)i.push(L(r,P,V*2*u));return i}}else {if(!(g||T&&e.length===1))if(S)for(let i=1/13,o=i;o<=1;o+=i){let u=L(M[0],P,V*o);Q.push(u);}else {let i=a(_[0],M[0]),o=b(i,.5),u=b(i,.51);Q.push(a(P,o),a(P,u),l(P,u),l(P,o));}let r=R(ce(e[e.length-1].vector));if(T||g&&e.length===1)N.push(k);else if(q){let i=ee(k,r,m);for(let o=1/29,u=o;u<1;u+=o)N.push(L(i,k,V*3*u));}else N.push(l(k,b(r,m)),l(k,b(r,m*.99)),a(k,b(r,m*.99)),a(k,b(r,m)));}return _.concat(N,M.reverse(),Q)}function re(e,t={}){var q;let{streamline:s=.5,size:x=16,last:h=false}=t;if(e.length===0)return [];let y=.15+(1-s)*.85,n=Array.isArray(e[0])?e:e.map(({x:c,y:p,pressure:g=.5})=>[c,p,g]);if(n.length===2){let c=n[1];n=n.slice(0,-1);for(let p=1;p<5;p++)n.push(K(n[0],c,p/4));}n.length===1&&(n=[...n,[...l(n[0],[1,1]),...n[0].slice(2)]]);let f=[{point:[n[0][0],n[0][1]],pressure:n[0][2]>=0?n[0][2]:.25,vector:[1,1],distance:0,runningLength:0}],d=false,D=0,S=f[0],j=n.length-1;for(let c=1;c<n.length;c++){let p=h&&c===j?n[c].slice(0,2):K(S.point,n[c],y);if(me(S.point,p))continue;let g=ae(p,S.point);if(D+=g,c<j&&!d){if(D<x)continue;d=true;}S={point:p,pressure:n[c][2]>=0?n[c][2]:.5,vector:G(a(S.point,p)),distance:g,runningLength:D},f.push(S);}return f[0].vector=((q=f[1])==null?void 0:q.vector)||[0,0],f}function ne(e,t={}){return te(re(e,t),t)}var ve=ne;
15092
15091
  } (cjs));
15093
15092
  return cjs;
15094
15093
  }
@@ -16818,7 +16817,10 @@ class KritzelBrushTool extends KritzelBaseTool {
16818
16817
  class KritzelSelectionGroup extends KritzelBaseObject {
16819
16818
  __class__ = 'KritzelSelectionGroup';
16820
16819
  // Store only object IDs instead of full objects
16821
- objectIds = [];
16820
+ _objectIds = [];
16821
+ // Cached objects array - invalidated when objectIds changes
16822
+ _cachedObjects = null;
16823
+ _cachedObjectIdsHash = '';
16822
16824
  // Store snapshots of object state for transformations (rotation, resize)
16823
16825
  unchangedObjectSnapshots = new Map();
16824
16826
  snapshotRotation = 0;
@@ -16826,16 +16828,36 @@ class KritzelSelectionGroup extends KritzelBaseObject {
16826
16828
  maxX;
16827
16829
  minY;
16828
16830
  maxY;
16831
+ get objectIds() {
16832
+ return this._objectIds;
16833
+ }
16834
+ set objectIds(value) {
16835
+ this._objectIds = value;
16836
+ this._cachedObjects = null; // Invalidate cache
16837
+ }
16838
+ /**
16839
+ * Invalidate the cached objects array. Call this when objects might have changed
16840
+ * externally (e.g., after undo/redo operations).
16841
+ */
16842
+ invalidateObjectsCache() {
16843
+ this._cachedObjects = null;
16844
+ }
16829
16845
  // Getter to retrieve actual objects from the store by their IDs
16830
- // Optimized: Single filter pass with Set lookup - O(n+m) instead of O(n×m)
16846
+ // Optimized: Caches result and only recomputes when objectIds changes
16831
16847
  get objects() {
16832
- const idSet = new Set(this.objectIds);
16848
+ const currentHash = this._objectIds.join(',');
16849
+ if (this._cachedObjects !== null && this._cachedObjectIdsHash === currentHash) {
16850
+ return this._cachedObjects;
16851
+ }
16852
+ const idSet = new Set(this._objectIds);
16833
16853
  const foundObjects = this._core.store.state.objects.filter(obj => idSet.has(obj.id));
16834
16854
  // Preserve the original order from objectIds
16835
16855
  const objectMap = new Map(foundObjects.map(obj => [obj.id, obj]));
16836
- return this.objectIds
16856
+ this._cachedObjects = this._objectIds
16837
16857
  .map(id => objectMap.get(id))
16838
16858
  .filter((obj) => obj !== undefined);
16859
+ this._cachedObjectIdsHash = currentHash;
16860
+ return this._cachedObjects;
16839
16861
  }
16840
16862
  get length() {
16841
16863
  return this.objectIds.length;
@@ -16850,49 +16872,60 @@ class KritzelSelectionGroup extends KritzelBaseObject {
16850
16872
  return object;
16851
16873
  }
16852
16874
  addOrRemove(object) {
16853
- const index = this.objectIds.findIndex(id => id === object.id);
16875
+ const index = this._objectIds.findIndex(id => id === object.id);
16854
16876
  if (index === -1) {
16855
- this.objectIds.push(object.id);
16877
+ this._objectIds.push(object.id);
16856
16878
  }
16857
16879
  else {
16858
- this.objectIds.splice(index, 1);
16880
+ this._objectIds.splice(index, 1);
16859
16881
  }
16860
- this.captureUnchangedSnapshots();
16861
- this.refreshObjectDimensions();
16882
+ this._cachedObjects = null; // Invalidate cache
16883
+ const children = this.objects; // Get cached objects once
16884
+ this.captureUnchangedSnapshots(children);
16885
+ this.refreshObjectDimensions(children);
16862
16886
  }
16863
16887
  /**
16864
16888
  * Prepares the selection group and its children for a transform interaction (rotate/resize).
16865
16889
  * Ensures snapshot state is aligned with the current visual state.
16866
16890
  */
16867
16891
  beginTransform() {
16892
+ const children = this.objects; // Get cached objects once
16868
16893
  // Keep the selection group's bounding box current before snapshotting.
16869
- this.refreshObjectDimensions();
16870
- this.captureUnchangedSnapshots();
16894
+ this.refreshObjectDimensions(children);
16895
+ this.captureUnchangedSnapshots(children);
16871
16896
  // Groups need their own child snapshots aligned with the current transform.
16872
- this.objects.forEach(obj => {
16897
+ for (const obj of children) {
16873
16898
  if (obj instanceof KritzelGroup) {
16874
16899
  obj.finalize();
16875
16900
  }
16876
- });
16901
+ }
16877
16902
  }
16878
16903
  deselectAllChildren() {
16879
- this.objects.forEach(obj => (obj.isSelected = false));
16904
+ const children = this.objects;
16905
+ for (const obj of children) {
16906
+ obj.isSelected = false;
16907
+ }
16880
16908
  }
16881
16909
  updateWorkspaceId(workspaceId) {
16882
16910
  this.workspaceId = workspaceId;
16883
- this.objects.forEach(obj => (obj.workspaceId = workspaceId));
16911
+ const children = this.objects;
16912
+ for (const obj of children) {
16913
+ obj.workspaceId = workspaceId;
16914
+ }
16884
16915
  }
16885
16916
  updateZIndices(startZIndex) {
16886
- this.objects.forEach((obj, i) => {
16887
- obj.zIndex = startZIndex + i;
16888
- });
16917
+ const children = this.objects;
16918
+ for (let i = 0; i < children.length; i++) {
16919
+ children[i].zIndex = startZIndex + i;
16920
+ }
16889
16921
  }
16890
16922
  updatePosition(x, y) {
16891
- this.objects.forEach(obj => {
16923
+ const children = this.objects;
16924
+ for (const obj of children) {
16892
16925
  const deltaX = obj.translateX - this.translateX;
16893
16926
  const deltaY = obj.translateY - this.translateY;
16894
16927
  obj.updatePosition(x + deltaX, y + deltaY);
16895
- });
16928
+ }
16896
16929
  // Update snapshots
16897
16930
  this.unchangedObjectSnapshots.forEach(snapshot => {
16898
16931
  const deltaX = snapshot.translateX - this.translateX;
@@ -16927,8 +16960,11 @@ class KritzelSelectionGroup extends KritzelBaseObject {
16927
16960
  });
16928
16961
  }
16929
16962
  serialize() {
16930
- const { _core, _elementRef, element, totalWidth, totalHeight, unchangedObjectSnapshots, ...remainingProps } = this;
16963
+ const { _core, _elementRef, element, totalWidth, totalHeight, unchangedObjectSnapshots, _cachedObjects, _cachedObjectIdsHash, ...remainingProps } = this;
16931
16964
  const clonedProps = structuredClone(remainingProps);
16965
+ // Ensure objectIds is serialized with the correct key name (getter returns _objectIds)
16966
+ clonedProps.objectIds = this.objectIds;
16967
+ delete clonedProps._objectIds;
16932
16968
  if (element && typeof element === 'object' && 'nodeType' in element && element.nodeType === 1) {
16933
16969
  clonedProps.element = element.cloneNode(true);
16934
16970
  }
@@ -16939,6 +16975,10 @@ class KritzelSelectionGroup extends KritzelBaseObject {
16939
16975
  deserialize(object) {
16940
16976
  // First, deserialize all base properties using parent's deserialize
16941
16977
  super.deserialize(object);
16978
+ // Restore objectIds through setter
16979
+ if (object.objectIds) {
16980
+ this.objectIds = object.objectIds;
16981
+ }
16942
16982
  // Restore the Map from serialized object
16943
16983
  if (object.unchangedObjectSnapshots) {
16944
16984
  this.unchangedObjectSnapshots = new Map(Object.entries(object.unchangedObjectSnapshots));
@@ -16958,11 +16998,12 @@ class KritzelSelectionGroup extends KritzelBaseObject {
16958
16998
  this.translateY += deltaY;
16959
16999
  this._core.store.state.objects.transaction(() => {
16960
17000
  this._core.store.state.objects.update(this);
16961
- this.objects.forEach(obj => {
17001
+ const children = this.objects;
17002
+ for (const obj of children) {
16962
17003
  obj.move(startX, startY, endX, endY);
16963
17004
  // Update any lines that are anchored to this object
16964
17005
  this._core.anchorManager.updateAnchorsForObject(obj.id);
16965
- });
17006
+ }
16966
17007
  });
16967
17008
  // Update snapshots
16968
17009
  this.unchangedObjectSnapshots.forEach(snapshot => {
@@ -17047,31 +17088,33 @@ class KritzelSelectionGroup extends KritzelBaseObject {
17047
17088
  this._core.store.state.objects.transaction(() => {
17048
17089
  // Update the SelectionGroup itself to propagate rotation to other tabs
17049
17090
  this._core.store.state.objects.update(this);
17050
- children.forEach(child => {
17091
+ const childCount = children.length;
17092
+ for (const child of children) {
17051
17093
  const unchangedSnapshot = this.unchangedObjectSnapshots.get(child.id);
17052
17094
  if (!unchangedSnapshot)
17053
- return;
17095
+ continue;
17054
17096
  const offsetX = this.getOffsetXToCenterFromSnapshot(unchangedSnapshot);
17055
17097
  const offsetY = this.getOffsetYToCenterFromSnapshot(unchangedSnapshot);
17056
17098
  const rotatedX = cos * offsetX - sin * offsetY;
17057
17099
  const rotatedY = sin * offsetX + cos * offsetY;
17058
17100
  child.translateX = centerX + rotatedX - child.totalWidth / 2 / child.scale;
17059
17101
  child.translateY = centerY + rotatedY - child.totalHeight / 2 / child.scale;
17060
- child.rotate(this.objects.length === 1 ? value : unchangedSnapshot.rotation + angle);
17061
- });
17102
+ child.rotate(childCount === 1 ? value : unchangedSnapshot.rotation + angle);
17103
+ }
17062
17104
  });
17063
17105
  }
17064
17106
  copy() {
17065
17107
  const selectionGroup = KritzelSelectionGroup.create(this._core);
17066
- this.objects
17067
- .sort((a, b) => a.zIndex - b.zIndex)
17068
- .forEach(obj => {
17108
+ const children = this.objects;
17109
+ // Sort children by zIndex and copy them
17110
+ const sortedChildren = [...children].sort((a, b) => a.zIndex - b.zIndex);
17111
+ for (const obj of sortedChildren) {
17069
17112
  const copiedObject = obj.copy();
17070
17113
  selectionGroup.addOrRemove(copiedObject);
17071
- });
17114
+ }
17072
17115
  selectionGroup.captureUnchangedSnapshots();
17073
- if (this.objects.length === 1) {
17074
- selectionGroup.rotation = this.objects[0].rotation;
17116
+ if (children.length === 1) {
17117
+ selectionGroup.rotation = children[0].rotation;
17075
17118
  }
17076
17119
  return selectionGroup;
17077
17120
  }
@@ -17146,16 +17189,22 @@ class KritzelSelectionGroup extends KritzelBaseObject {
17146
17189
  return objCenterY - groupCenterY;
17147
17190
  }
17148
17191
  hitTest(x, y) {
17149
- const isSingleLine = this.objects.length === 1 && this.objects[0].__class__ === 'KritzelLine';
17192
+ const children = this.objects;
17193
+ const isSingleLine = children.length === 1 && children[0].__class__ === 'KritzelLine';
17150
17194
  if (isSingleLine) {
17151
- return this.objects[0].hitTest(x, y);
17195
+ return children[0].hitTest(x, y);
17152
17196
  }
17153
17197
  const polygon = this.rotatedPolygon;
17154
17198
  const polyPoints = [polygon.topLeft, polygon.topRight, polygon.bottomRight, polygon.bottomLeft];
17155
17199
  if (KritzelGeometryHelper.isPointInPolygon({ x, y }, polyPoints)) {
17156
17200
  return true;
17157
17201
  }
17158
- return this.objects.some(obj => obj.hitTest(x, y));
17202
+ for (const obj of children) {
17203
+ if (obj.hitTest(x, y)) {
17204
+ return true;
17205
+ }
17206
+ }
17207
+ return false;
17159
17208
  }
17160
17209
  }
17161
17210
 
@@ -22,7 +22,7 @@ const NAMESPACE = 'stencil';
22
22
  const BUILD = /* stencil */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, state: true, updatable: true};
23
23
 
24
24
  /*
25
- Stencil Client Platform v4.41.3 | MIT Licensed | https://stenciljs.com
25
+ Stencil Client Platform v4.43.0 | MIT Licensed | https://stenciljs.com
26
26
  */
27
27
 
28
28
 
@@ -568,6 +568,36 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
568
568
  plt.ael(elm, memberName, newValue, capture);
569
569
  }
570
570
  }
571
+ } else if (memberName[0] === "a" && memberName.startsWith("attr:")) {
572
+ const propName = memberName.slice(5);
573
+ let attrName;
574
+ {
575
+ const hostRef = getHostRef(elm);
576
+ if (hostRef && hostRef.$cmpMeta$ && hostRef.$cmpMeta$.$members$) {
577
+ const memberMeta = hostRef.$cmpMeta$.$members$[propName];
578
+ if (memberMeta && memberMeta[1]) {
579
+ attrName = memberMeta[1];
580
+ }
581
+ }
582
+ }
583
+ if (!attrName) {
584
+ attrName = propName.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
585
+ }
586
+ if (newValue == null || newValue === false) {
587
+ if (newValue !== false || elm.getAttribute(attrName) === "") {
588
+ elm.removeAttribute(attrName);
589
+ }
590
+ } else {
591
+ elm.setAttribute(attrName, newValue === true ? "" : newValue);
592
+ }
593
+ return;
594
+ } else if (memberName[0] === "p" && memberName.startsWith("prop:")) {
595
+ const propName = memberName.slice(5);
596
+ try {
597
+ elm[propName] = newValue;
598
+ } catch (e) {
599
+ }
600
+ return;
571
601
  } else {
572
602
  const isComplex = isComplexType(newValue);
573
603
  if ((isProp || isComplex && newValue !== null) && !isSvg) {
@@ -576,7 +606,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
576
606
  const n = newValue == null ? "" : newValue;
577
607
  if (memberName === "list") {
578
608
  isProp = false;
579
- } else if (oldValue == null || elm[memberName] != n) {
609
+ } else if (oldValue == null || elm[memberName] !== n) {
580
610
  if (typeof elm.__lookupSetter__(memberName) === "function") {
581
611
  elm[memberName] = n;
582
612
  } else {
@@ -1038,7 +1068,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
1038
1068
  if (childrenPromises.length === 0) {
1039
1069
  postUpdate();
1040
1070
  } else {
1041
- Promise.all(childrenPromises).then(postUpdate);
1071
+ Promise.all(childrenPromises).then(postUpdate).catch(postUpdate);
1042
1072
  hostRef.$flags$ |= 4 /* isWaitingForChildren */;
1043
1073
  childrenPromises.length = 0;
1044
1074
  }
@@ -1165,13 +1195,16 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1165
1195
  });
1166
1196
  }
1167
1197
  }
1168
- if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1198
+ if (flags & 2 /* hasRendered */) {
1169
1199
  if (instance.componentShouldUpdate) {
1170
- if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {
1200
+ const shouldUpdate = instance.componentShouldUpdate(newVal, oldVal, propName);
1201
+ if (shouldUpdate === false && !(flags & 16 /* isQueuedForUpdate */)) {
1171
1202
  return;
1172
1203
  }
1173
1204
  }
1174
- scheduleUpdate(hostRef, false);
1205
+ if (!(flags & 16 /* isQueuedForUpdate */)) {
1206
+ scheduleUpdate(hostRef, false);
1207
+ }
1175
1208
  }
1176
1209
  }
1177
1210
  };
@@ -1340,73 +1373,84 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1340
1373
  // src/runtime/initialize-component.ts
1341
1374
  var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1342
1375
  let Cstr;
1343
- if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1344
- hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1345
- const bundleId = cmpMeta.$lazyBundleId$;
1346
- if (bundleId) {
1347
- const CstrImport = loadModule(cmpMeta, hostRef);
1348
- if (CstrImport && "then" in CstrImport) {
1349
- const endLoad = uniqueTime();
1350
- Cstr = await CstrImport;
1351
- endLoad();
1352
- } else {
1353
- Cstr = CstrImport;
1354
- }
1355
- if (!Cstr) {
1356
- throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
1357
- }
1358
- if (!Cstr.isProxied) {
1376
+ try {
1377
+ if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1378
+ hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1379
+ const bundleId = cmpMeta.$lazyBundleId$;
1380
+ if (bundleId) {
1381
+ const CstrImport = loadModule(cmpMeta, hostRef);
1382
+ if (CstrImport && "then" in CstrImport) {
1383
+ const endLoad = uniqueTime();
1384
+ Cstr = await CstrImport;
1385
+ endLoad();
1386
+ } else {
1387
+ Cstr = CstrImport;
1388
+ }
1389
+ if (!Cstr) {
1390
+ throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
1391
+ }
1392
+ if (!Cstr.isProxied) {
1393
+ {
1394
+ cmpMeta.$watchers$ = Cstr.watchers;
1395
+ cmpMeta.$serializers$ = Cstr.serializers;
1396
+ cmpMeta.$deserializers$ = Cstr.deserializers;
1397
+ }
1398
+ proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
1399
+ Cstr.isProxied = true;
1400
+ }
1401
+ const endNewInstance = createTime("createInstance", cmpMeta.$tagName$);
1359
1402
  {
1360
- cmpMeta.$watchers$ = Cstr.watchers;
1361
- cmpMeta.$serializers$ = Cstr.serializers;
1362
- cmpMeta.$deserializers$ = Cstr.deserializers;
1403
+ hostRef.$flags$ |= 8 /* isConstructingInstance */;
1363
1404
  }
1364
- proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
1365
- Cstr.isProxied = true;
1366
- }
1367
- const endNewInstance = createTime("createInstance", cmpMeta.$tagName$);
1368
- {
1369
- hostRef.$flags$ |= 8 /* isConstructingInstance */;
1370
- }
1371
- try {
1372
- new Cstr(hostRef);
1373
- } catch (e) {
1374
- consoleError(e, elm);
1375
- }
1376
- {
1377
- hostRef.$flags$ &= -9 /* isConstructingInstance */;
1378
- }
1379
- {
1380
- hostRef.$flags$ |= 128 /* isWatchReady */;
1405
+ try {
1406
+ new Cstr(hostRef);
1407
+ } catch (e) {
1408
+ consoleError(e, elm);
1409
+ }
1410
+ {
1411
+ hostRef.$flags$ &= -9 /* isConstructingInstance */;
1412
+ }
1413
+ {
1414
+ hostRef.$flags$ |= 128 /* isWatchReady */;
1415
+ }
1416
+ endNewInstance();
1417
+ {
1418
+ fireConnectedCallback(hostRef.$lazyInstance$, elm);
1419
+ }
1420
+ } else {
1421
+ Cstr = elm.constructor;
1422
+ const cmpTag = elm.localName;
1423
+ customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);
1381
1424
  }
1382
- endNewInstance();
1383
- {
1384
- fireConnectedCallback(hostRef.$lazyInstance$, elm);
1425
+ if (Cstr && Cstr.style) {
1426
+ let style;
1427
+ if (typeof Cstr.style === "string") {
1428
+ style = Cstr.style;
1429
+ }
1430
+ const scopeId2 = getScopeId(cmpMeta);
1431
+ if (!styles.has(scopeId2) || BUILD.hotModuleReplacement) {
1432
+ const endRegisterStyles = createTime("registerStyles", cmpMeta.$tagName$);
1433
+ registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));
1434
+ endRegisterStyles();
1435
+ }
1385
1436
  }
1437
+ }
1438
+ const ancestorComponent = hostRef.$ancestorComponent$;
1439
+ const schedule = () => scheduleUpdate(hostRef, true);
1440
+ if (ancestorComponent && ancestorComponent["s-rc"]) {
1441
+ ancestorComponent["s-rc"].push(schedule);
1386
1442
  } else {
1387
- Cstr = elm.constructor;
1388
- const cmpTag = elm.localName;
1389
- customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);
1390
- }
1391
- if (Cstr && Cstr.style) {
1392
- let style;
1393
- if (typeof Cstr.style === "string") {
1394
- style = Cstr.style;
1395
- }
1396
- const scopeId2 = getScopeId(cmpMeta);
1397
- if (!styles.has(scopeId2) || BUILD.hotModuleReplacement) {
1398
- const endRegisterStyles = createTime("registerStyles", cmpMeta.$tagName$);
1399
- registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));
1400
- endRegisterStyles();
1401
- }
1443
+ schedule();
1444
+ }
1445
+ } catch (e) {
1446
+ consoleError(e, elm);
1447
+ if (hostRef.$onRenderResolve$) {
1448
+ hostRef.$onRenderResolve$();
1449
+ hostRef.$onRenderResolve$ = void 0;
1450
+ }
1451
+ if (hostRef.$onReadyResolve$) {
1452
+ hostRef.$onReadyResolve$(elm);
1402
1453
  }
1403
- }
1404
- const ancestorComponent = hostRef.$ancestorComponent$;
1405
- const schedule = () => scheduleUpdate(hostRef, true);
1406
- if (ancestorComponent && ancestorComponent["s-rc"]) {
1407
- ancestorComponent["s-rc"].push(schedule);
1408
- } else {
1409
- schedule();
1410
1454
  }
1411
1455
  };
1412
1456
  var fireConnectedCallback = (instance, elm) => {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var defaultLineTool_config = require('./default-line-tool.config-nMR5iYBB.js');
3
+ var defaultLineTool_config = require('./default-line-tool.config-Dbu-DwOX.js');
4
4
 
5
5
  /**
6
6
  * BroadcastChannel sync provider for cross-tab synchronization
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-i21-qqbc.js');
4
- var defaultLineTool_config = require('./default-line-tool.config-nMR5iYBB.js');
3
+ var index = require('./index-NMqsANCI.js');
4
+ var defaultLineTool_config = require('./default-line-tool.config-Dbu-DwOX.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
 
@@ -19692,8 +19692,16 @@ class KritzelQuadtree {
19692
19692
  }
19693
19693
  query(range) {
19694
19694
  const results = [];
19695
+ this._queryInto(range, results);
19696
+ return results;
19697
+ }
19698
+ /**
19699
+ * Internal method that collects query results into a pre-allocated array.
19700
+ * Avoids creating intermediate arrays from spread operators.
19701
+ */
19702
+ _queryInto(range, results) {
19695
19703
  if (!this.intersects(range, this.bounds)) {
19696
- return results;
19704
+ return;
19697
19705
  }
19698
19706
  for (const object of this.objects) {
19699
19707
  if (this.intersects(object.rotatedBoundingBox, range)) {
@@ -19702,28 +19710,49 @@ class KritzelQuadtree {
19702
19710
  }
19703
19711
  if (this.children !== null) {
19704
19712
  for (const child of this.children) {
19705
- results.push(...child.query(range));
19713
+ child._queryInto(range, results);
19706
19714
  }
19707
19715
  }
19708
- return results;
19709
19716
  }
19710
19717
  filter(predicate) {
19711
- const results = this.objects.filter(o => predicate(o));
19718
+ const results = [];
19719
+ this._filterInto(predicate, results);
19720
+ return results;
19721
+ }
19722
+ /**
19723
+ * Internal method that collects filter results into a pre-allocated array.
19724
+ * Avoids creating intermediate arrays from spread operators.
19725
+ */
19726
+ _filterInto(predicate, results) {
19727
+ for (const obj of this.objects) {
19728
+ if (predicate(obj)) {
19729
+ results.push(obj);
19730
+ }
19731
+ }
19712
19732
  if (this.children !== null) {
19713
19733
  for (const child of this.children) {
19714
- results.push(...child.filter(predicate));
19734
+ child._filterInto(predicate, results);
19715
19735
  }
19716
19736
  }
19717
- return results;
19718
19737
  }
19719
19738
  allObjects() {
19720
- const results = [...this.objects];
19739
+ const results = [];
19740
+ this._collectAllInto(results);
19741
+ return results;
19742
+ }
19743
+ /**
19744
+ * Internal method that collects all objects into a pre-allocated array.
19745
+ * Avoids creating intermediate arrays from spread operators.
19746
+ */
19747
+ _collectAllInto(results) {
19748
+ for (const obj of this.objects) {
19749
+ results.push(obj);
19750
+ }
19721
19751
  if (this.children !== null) {
19722
19752
  for (const child of this.children) {
19723
- results.push(...child.allObjects());
19753
+ child._collectAllInto(results);
19724
19754
  }
19725
19755
  }
19726
- return results;
19727
19756
  }
19728
19757
  subdivide() {
19729
19758
  const { x, y, z, width, height } = this.bounds;
@@ -23742,7 +23771,7 @@ const KritzelPortal = class {
23742
23771
  * This file is auto-generated by the version bump scripts.
23743
23772
  * Do not modify manually.
23744
23773
  */
23745
- const KRITZEL_VERSION = '0.1.25';
23774
+ const KRITZEL_VERSION = '0.1.26';
23746
23775
 
23747
23776
  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}`;
23748
23777
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-i21-qqbc.js');
3
+ var index = require('./index-NMqsANCI.js');
4
4
 
5
5
  const kritzelBrushStyleCss = () => `:host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.brush-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}`;
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-i21-qqbc.js');
3
+ var index = require('./index-NMqsANCI.js');
4
4
  var appGlobals = require('./app-globals-V2Kpy_OQ.js');
5
5
 
6
6
  const defineCustomElements = async (win, options) => {
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-i21-qqbc.js');
3
+ var index = require('./index-NMqsANCI.js');
4
4
  var appGlobals = require('./app-globals-V2Kpy_OQ.js');
5
5
 
6
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
7
7
  /*
8
- Stencil Client Patch Browser v4.41.3 | MIT Licensed | https://stenciljs.com
8
+ Stencil Client Patch Browser v4.43.0 | MIT Licensed | https://stenciljs.com
9
9
  */
10
10
 
11
11
  var patchBrowser = () => {