kritzel-stencil 0.1.31 → 0.1.32
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-qD8Chdg7.js → default-line-tool.config-5Q3g35Fz.js} +43 -82
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-back-to-content_32.cjs.entry.js +108 -33
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/core/core.class.js +20 -0
- package/dist/collection/classes/handlers/key.handler.js +41 -25
- package/dist/collection/classes/registries/tool.registry.js +3 -0
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +8 -2
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +33 -3
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.css +52 -2
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +65 -1
- package/dist/collection/constants/version.js +1 -1
- package/dist/collection/helpers/devices.helper.js +3 -0
- package/dist/collection/helpers/keyboard.helper.js +12 -69
- package/dist/collection/index.js +1 -0
- package/dist/collection/themes/dark-theme.js +6 -0
- package/dist/collection/themes/light-theme.js +6 -0
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-more-menu.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-Cu2JOs99.js → p-B0xiZtYN.js} +1 -1
- package/dist/components/p-BL-MZveo.js +1 -0
- package/dist/components/{p-B-tzBj-f.js → p-CVbVK0c2.js} +1 -1
- package/dist/components/{p-BiibSoAl.js → p-CqV81ALP.js} +1 -1
- package/dist/components/p-CyDHIiFq.js +9 -0
- package/dist/components/{p-D84uGsE3.js → p-D1CGvdSM.js} +1 -1
- package/dist/components/p-DTT5sDiV.js +1 -0
- package/dist/components/{p-TQCB-ocH.js → p-DWz9fx6U.js} +1 -1
- package/dist/components/{p-D3ynGLzV.js → p-Dc_Lv9Kh.js} +1 -1
- package/dist/components/p-DelH9pto.js +1 -0
- package/dist/components/{p-D6cey6Hr.js → p-DxMtzFGW.js} +1 -1
- package/dist/components/{p-CuWxY3KC.js → p-OMAsJAR1.js} +1 -1
- package/dist/components/{p-l10It7Nm.js → p-jGOpkGDl.js} +1 -1
- package/dist/components/{p-Cg6bE3bx.js → p-quO2aXHn.js} +1 -1
- package/dist/esm/{default-line-tool.config-CjlaN1S5.js → default-line-tool.config-D3S8voEp.js} +43 -82
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-back-to-content_32.entry.js +108 -33
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-D3S8voEp.js +1 -0
- package/dist/stencil/p-d95eefff.entry.js +9 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/core.class.d.ts +1 -0
- package/dist/types/classes/handlers/key.handler.d.ts +3 -1
- package/dist/types/classes/registries/tool.registry.d.ts +1 -0
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +3 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
- package/dist/types/components/ui/kritzel-settings/kritzel-settings.d.ts +6 -0
- package/dist/types/components.d.ts +13 -0
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/helpers/devices.helper.d.ts +1 -0
- package/dist/types/helpers/keyboard.helper.d.ts +0 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interfaces/shortcut.interface.d.ts +2 -0
- package/dist/types/interfaces/theme.interface.d.ts +6 -0
- package/package.json +1 -1
- package/dist/components/p-C5-i16ck.js +0 -1
- package/dist/components/p-CihUAfk9.js +0 -9
- package/dist/components/p-CnoVf56N.js +0 -1
- package/dist/components/p-opmUuRlE.js +0 -1
- package/dist/stencil/p-9bce6f4f.entry.js +0 -9
- package/dist/stencil/p-CjlaN1S5.js +0 -1
package/dist/cjs/{default-line-tool.config-qD8Chdg7.js → default-line-tool.config-5Q3g35Fz.js}
RENAMED
|
@@ -16,6 +16,9 @@ class KritzelToolRegistry {
|
|
|
16
16
|
}
|
|
17
17
|
return toolInstance;
|
|
18
18
|
}
|
|
19
|
+
static getToolByIndex(index) {
|
|
20
|
+
return Object.values(this.registry)[index] ?? null;
|
|
21
|
+
}
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
class ObjectHelper {
|
|
@@ -450,6 +453,9 @@ class KritzelDevicesHelper {
|
|
|
450
453
|
return 'Other';
|
|
451
454
|
}
|
|
452
455
|
}
|
|
456
|
+
static isMobile() {
|
|
457
|
+
return this.isIOS() || this.isAndroid();
|
|
458
|
+
}
|
|
453
459
|
static isFirefox() {
|
|
454
460
|
return /firefox/i.test(navigator.userAgent);
|
|
455
461
|
}
|
|
@@ -484,82 +490,25 @@ class KritzelKeyboardHelper {
|
|
|
484
490
|
meta.setAttribute('content', newContent);
|
|
485
491
|
}
|
|
486
492
|
}
|
|
487
|
-
static isTextInputFocused() {
|
|
488
|
-
const activeElement = document.activeElement;
|
|
489
|
-
if (!activeElement)
|
|
490
|
-
return false;
|
|
491
|
-
// Check for standard text input elements
|
|
492
|
-
if (activeElement instanceof HTMLInputElement) {
|
|
493
|
-
const textTypes = ['text', 'password', 'email', 'number', 'search', 'tel', 'url'];
|
|
494
|
-
return textTypes.includes(activeElement.type);
|
|
495
|
-
}
|
|
496
|
-
if (activeElement instanceof HTMLTextAreaElement) {
|
|
497
|
-
return true;
|
|
498
|
-
}
|
|
499
|
-
// Check for contenteditable elements
|
|
500
|
-
if (activeElement instanceof HTMLElement && activeElement.isContentEditable) {
|
|
501
|
-
return true;
|
|
502
|
-
}
|
|
503
|
-
return false;
|
|
504
|
-
}
|
|
505
493
|
static onKeyboardVisibleChanged(callback) {
|
|
506
|
-
const os = KritzelDevicesHelper.detectOS();
|
|
507
|
-
if (os !== 'iOS' && os !== 'Android') {
|
|
508
|
-
return () => { };
|
|
509
|
-
}
|
|
510
|
-
// Use VirtualKeyboard API if available (modern browsers)
|
|
511
|
-
if ('virtualKeyboard' in navigator) {
|
|
512
|
-
const vk = navigator.virtualKeyboard;
|
|
513
|
-
const onGeometryChange = () => {
|
|
514
|
-
const isOpen = vk.boundingRect.height > 0;
|
|
515
|
-
callback(isOpen);
|
|
516
|
-
};
|
|
517
|
-
vk.addEventListener('geometrychange', onGeometryChange);
|
|
518
|
-
return () => vk.removeEventListener('geometrychange', onGeometryChange);
|
|
519
|
-
}
|
|
520
|
-
// Fallback: combine focus detection with viewport changes
|
|
521
494
|
if ('visualViewport' in window) {
|
|
522
495
|
const VIEWPORT_VS_CLIENT_HEIGHT_RATIO = 0.75;
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
const
|
|
526
|
-
const
|
|
527
|
-
const isOpen =
|
|
496
|
+
const onResize = (event) => {
|
|
497
|
+
const target = event.target;
|
|
498
|
+
const isMobileDevice = KritzelDevicesHelper.isMobile();
|
|
499
|
+
const isViewportReduced = (target.height * target.scale) / window.screen.height < VIEWPORT_VS_CLIENT_HEIGHT_RATIO;
|
|
500
|
+
const isOpen = isMobileDevice && isViewportReduced;
|
|
528
501
|
callback(isOpen);
|
|
529
502
|
};
|
|
530
|
-
const onResize = () => {
|
|
531
|
-
checkKeyboardState();
|
|
532
|
-
};
|
|
533
|
-
const onFocusIn = () => {
|
|
534
|
-
// Update initial height when focus changes to capture pre-keyboard state
|
|
535
|
-
if (!this.isTextInputFocused()) {
|
|
536
|
-
initialHeight = window.visualViewport.height;
|
|
537
|
-
}
|
|
538
|
-
// Small delay to allow viewport to adjust
|
|
539
|
-
setTimeout(checkKeyboardState, 100);
|
|
540
|
-
};
|
|
541
|
-
const onFocusOut = () => {
|
|
542
|
-
// Keyboard closes when focus leaves text inputs
|
|
543
|
-
setTimeout(() => {
|
|
544
|
-
if (!this.isTextInputFocused()) {
|
|
545
|
-
callback(false);
|
|
546
|
-
// Reset initial height after keyboard closes
|
|
547
|
-
setTimeout(() => {
|
|
548
|
-
initialHeight = window.visualViewport.height;
|
|
549
|
-
}, 300);
|
|
550
|
-
}
|
|
551
|
-
}, 100);
|
|
552
|
-
};
|
|
553
503
|
window.visualViewport.addEventListener('resize', onResize);
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
};
|
|
504
|
+
return () => window.visualViewport.removeEventListener('resize', onResize);
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
// Fallback for older browsers does not provide a reliable event-based mechanism.
|
|
508
|
+
console.warn('Listening for keyboard visibility changes is not reliably supported in this browser.');
|
|
509
|
+
// Return a no-op cleanup function.
|
|
510
|
+
return () => { };
|
|
561
511
|
}
|
|
562
|
-
return () => { };
|
|
563
512
|
}
|
|
564
513
|
}
|
|
565
514
|
|
|
@@ -11966,7 +11915,17 @@ class DOMObserver {
|
|
|
11966
11915
|
}
|
|
11967
11916
|
}
|
|
11968
11917
|
}
|
|
11969
|
-
if (
|
|
11918
|
+
if (added.some(n => n.nodeName == "BR") && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
|
|
11919
|
+
// Browsers sometimes insert a bogus break node if you
|
|
11920
|
+
// backspace out the last bit of text before an inline-flex node (#1552)
|
|
11921
|
+
for (let node of added)
|
|
11922
|
+
if (node.nodeName == "BR" && node.parentNode) {
|
|
11923
|
+
let after = node.nextSibling;
|
|
11924
|
+
if (after && after.nodeType == 1 && after.contentEditable == "false")
|
|
11925
|
+
node.parentNode.removeChild(node);
|
|
11926
|
+
}
|
|
11927
|
+
}
|
|
11928
|
+
else if (gecko && added.length) {
|
|
11970
11929
|
let brs = added.filter(n => n.nodeName == "BR");
|
|
11971
11930
|
if (brs.length == 2) {
|
|
11972
11931
|
let [a, b] = brs;
|
|
@@ -11984,17 +11943,6 @@ class DOMObserver {
|
|
|
11984
11943
|
}
|
|
11985
11944
|
}
|
|
11986
11945
|
}
|
|
11987
|
-
else if ((chrome || safari) && added.some(n => n.nodeName == "BR") &&
|
|
11988
|
-
(view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
|
|
11989
|
-
// Chrome/Safari sometimes insert a bogus break node if you
|
|
11990
|
-
// backspace out the last bit of text before an inline-flex node (#1552)
|
|
11991
|
-
for (let node of added)
|
|
11992
|
-
if (node.nodeName == "BR" && node.parentNode) {
|
|
11993
|
-
let after = node.nextSibling;
|
|
11994
|
-
if (after && after.nodeType == 1 && after.contentEditable == "false")
|
|
11995
|
-
node.parentNode.removeChild(node);
|
|
11996
|
-
}
|
|
11997
|
-
}
|
|
11998
11946
|
let readSel = null;
|
|
11999
11947
|
// If it looks like the browser has reset the selection to the
|
|
12000
11948
|
// start of the document after focus, restore the selection from
|
|
@@ -14318,6 +14266,12 @@ const lightTheme = {
|
|
|
14318
14266
|
contentTextColor: '#333333',
|
|
14319
14267
|
descriptionColor: '#666666',
|
|
14320
14268
|
labelColor: '#333333',
|
|
14269
|
+
shortcutsCategoryColor: '#666666',
|
|
14270
|
+
shortcutItemBg: '#f8f8f8',
|
|
14271
|
+
shortcutLabelColor: '#333333',
|
|
14272
|
+
shortcutKeyBg: '#ffffff',
|
|
14273
|
+
shortcutKeyBorder: '#e0e0e0',
|
|
14274
|
+
shortcutKeyColor: '#555555',
|
|
14321
14275
|
},
|
|
14322
14276
|
shapeFill: {
|
|
14323
14277
|
hoverBackgroundColor: '#ebebeb',
|
|
@@ -14517,6 +14471,12 @@ const darkTheme = {
|
|
|
14517
14471
|
contentTextColor: '#e0e0e0',
|
|
14518
14472
|
descriptionColor: '#999999',
|
|
14519
14473
|
labelColor: '#e0e0e0',
|
|
14474
|
+
shortcutsCategoryColor: '#999999',
|
|
14475
|
+
shortcutItemBg: '#3a3a3a',
|
|
14476
|
+
shortcutLabelColor: '#e0e0e0',
|
|
14477
|
+
shortcutKeyBg: '#2a2a2a',
|
|
14478
|
+
shortcutKeyBorder: '#4a4a4a',
|
|
14479
|
+
shortcutKeyColor: '#e0e0e0',
|
|
14520
14480
|
},
|
|
14521
14481
|
shapeFill: {
|
|
14522
14482
|
hoverBackgroundColor: '#3a3a3a',
|
|
@@ -15108,7 +15068,8 @@ function requireCjs () {
|
|
|
15108
15068
|
if (hasRequiredCjs) return cjs;
|
|
15109
15069
|
hasRequiredCjs = 1;
|
|
15110
15070
|
(function (exports) {
|
|
15111
|
-
|
|
15071
|
+
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;
|
|
15072
|
+
|
|
15112
15073
|
} (cjs));
|
|
15113
15074
|
return cjs;
|
|
15114
15075
|
}
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-NMqsANCI.js');
|
|
4
|
-
var defaultLineTool_config = require('./default-line-tool.config-
|
|
4
|
+
var defaultLineTool_config = require('./default-line-tool.config-5Q3g35Fz.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
|
|
|
@@ -1525,6 +1525,7 @@ const KritzelEditor = class {
|
|
|
1525
1525
|
undoState = null;
|
|
1526
1526
|
isBackToContentButtonVisible = false;
|
|
1527
1527
|
currentTheme = 'light';
|
|
1528
|
+
shortcuts = [];
|
|
1528
1529
|
onIsEngineReady(newValue) {
|
|
1529
1530
|
if (newValue && this.isControlsReady) {
|
|
1530
1531
|
this.checkIsReady();
|
|
@@ -1647,6 +1648,10 @@ const KritzelEditor = class {
|
|
|
1647
1648
|
this.isEngineReady = true;
|
|
1648
1649
|
this.activeWorkspace = event.detail.activeWorkspace;
|
|
1649
1650
|
this.workspaces = event.detail.workspaces;
|
|
1651
|
+
this.loadShortcuts();
|
|
1652
|
+
}
|
|
1653
|
+
async loadShortcuts() {
|
|
1654
|
+
this.shortcuts = await this.engineRef.getDisplayableShortcuts();
|
|
1650
1655
|
}
|
|
1651
1656
|
handleWorkspacesChange(event) {
|
|
1652
1657
|
this.workspaces = event.detail;
|
|
@@ -1720,7 +1725,7 @@ const KritzelEditor = class {
|
|
|
1720
1725
|
}
|
|
1721
1726
|
}
|
|
1722
1727
|
render() {
|
|
1723
|
-
return (index.h(index.Host, { key: '
|
|
1728
|
+
return (index.h(index.Host, { key: 'f87b56926c144769625e50e857c7fc5ff79edd9a' }, index.h("div", { key: '6dce1a87c9b9850d9b2162c4db53a7b4c6f3d6c5', class: "top-left-buttons" }, index.h("kritzel-workspace-manager", { key: 'b4b9efac6bc94865dea4849306d194912da5c870', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), index.h("kritzel-back-to-content", { key: 'bf6722296c592882b8c725bd2e76bafff9bf6c64', visible: this.isBackToContentButtonVisible, onBackToContent: () => this.backToContent() })), index.h("kritzel-engine", { key: '46f7b88e9d1326d1cc55a496a2f708d5fb0eafcf', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, syncConfig: this.syncConfig, scaleMax: this.scaleMax, lockDrawingScale: this.lockDrawingScale, scaleMin: this.scaleMin, theme: this.currentTheme, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onObjectsChange: event => this.handleObjectsChange(event), onUndoStateChange: event => this.handleUndoStateChange(event), onObjectsInViewportChange: event => this.handleObjectsInViewportChange(event) }), index.h("kritzel-controls", { key: '997c15692422e2377a2f3d5d1bf1da9bac755e6f', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => (this.controlsRef = el), controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState, theme: this.currentTheme, onIsControlsReady: () => (this.isControlsReady = true) }), index.h("div", { key: '6b5a4f3b33f69e139ff079df41a663ea3b0fdadb', class: "top-right-buttons" }, index.h("kritzel-settings", { key: '3587ddc9210fc18761d0c7e077ece576986b3353', ref: el => (this.settingsRef = el), shortcuts: this.shortcuts, onSettingsChange: event => this.handleSettingsChange(event) }), index.h("kritzel-export", { key: '7687565227cdaef31c5ea59fb1a7f52ea315367e', ref: el => (this.exportRef = el), onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg() }), index.h("kritzel-more-menu", { key: 'e205b6d0cf8a584f4aa74acee17847d1aebe9c43', onItemSelect: event => this.handleMoreMenuItemSelect(event) }))));
|
|
1724
1729
|
}
|
|
1725
1730
|
static get watchers() { return {
|
|
1726
1731
|
"isEngineReady": [{
|
|
@@ -19304,48 +19309,55 @@ class KritzelViewport {
|
|
|
19304
19309
|
class KritzelKeyHandler extends defaultLineTool_config.KritzelBaseHandler {
|
|
19305
19310
|
shortcuts = [
|
|
19306
19311
|
// General
|
|
19307
|
-
{ key: 'Escape', condition: c => !!c.store.selectionGroup, action: c => c.clearSelection() },
|
|
19308
|
-
{ key: 'Delete', condition: c => !!c.store.selectionGroup, action: c => c.delete() },
|
|
19312
|
+
{ key: 'Escape', label: 'Clear Selection', category: 'General', condition: c => !!c.store.selectionGroup, action: c => c.clearSelection() },
|
|
19313
|
+
{ key: 'Delete', label: 'Delete Selected', category: 'General', condition: c => !!c.store.selectionGroup, action: c => c.delete() },
|
|
19314
|
+
{ key: 'a', ctrl: true, label: 'Select All in Viewport', category: 'General', action: c => c.selectAllObjectsInViewport() },
|
|
19315
|
+
{ key: 'A', ctrl: true, shift: true, label: 'Select All Objects', category: 'General', action: c => c.selectAllObjects() },
|
|
19309
19316
|
// Undo/Redo
|
|
19310
|
-
{ key: 'z', ctrl: true, action: c => c.undo() },
|
|
19311
|
-
{ key: 'y', ctrl: true, action: c => c.redo() },
|
|
19312
|
-
// Tool selection
|
|
19313
|
-
{ key: '
|
|
19314
|
-
{ key: '
|
|
19315
|
-
{ key: '
|
|
19316
|
-
{ key: '
|
|
19317
|
-
{ key: '
|
|
19317
|
+
{ key: 'z', ctrl: true, label: 'Undo', category: 'Undo/Redo', action: c => c.undo() },
|
|
19318
|
+
{ key: 'y', ctrl: true, label: 'Redo', category: 'Undo/Redo', action: c => c.redo() },
|
|
19319
|
+
// Tool selection (Ctrl+1-9)
|
|
19320
|
+
{ key: '1', ctrl: true, label: 'Tool 1', category: 'Tool Selection', action: () => this.switchToolByIndex(0) },
|
|
19321
|
+
{ key: '2', ctrl: true, label: 'Tool 2', category: 'Tool Selection', action: () => this.switchToolByIndex(1) },
|
|
19322
|
+
{ key: '3', ctrl: true, label: 'Tool 3', category: 'Tool Selection', action: () => this.switchToolByIndex(2) },
|
|
19323
|
+
{ key: '4', ctrl: true, label: 'Tool 4', category: 'Tool Selection', action: () => this.switchToolByIndex(3) },
|
|
19324
|
+
{ key: '5', ctrl: true, label: 'Tool 5', category: 'Tool Selection', action: () => this.switchToolByIndex(4) },
|
|
19325
|
+
{ key: '6', ctrl: true, label: 'Tool 6', category: 'Tool Selection', action: () => this.switchToolByIndex(5) },
|
|
19326
|
+
{ key: '7', ctrl: true, label: 'Tool 7', category: 'Tool Selection', action: () => this.switchToolByIndex(6) },
|
|
19327
|
+
{ key: '8', ctrl: true, label: 'Tool 8', category: 'Tool Selection', action: () => this.switchToolByIndex(7) },
|
|
19328
|
+
{ key: '9', ctrl: true, label: 'Tool 9', category: 'Tool Selection', action: () => this.switchToolByIndex(8) },
|
|
19318
19329
|
// Clipboard
|
|
19319
19330
|
{
|
|
19320
19331
|
key: 'c',
|
|
19321
19332
|
ctrl: true,
|
|
19333
|
+
label: 'Copy',
|
|
19334
|
+
category: 'Clipboard',
|
|
19322
19335
|
condition: c => !!c.store.selectionGroup,
|
|
19323
19336
|
action: c => {
|
|
19324
19337
|
c.copy();
|
|
19325
19338
|
c.rerender();
|
|
19326
19339
|
},
|
|
19327
19340
|
},
|
|
19328
|
-
{ key: 'v', ctrl: true, condition: c => !!c.store.state.copiedObjects && !c.store.activeText, action: c => c.paste() },
|
|
19329
|
-
// Text editing
|
|
19330
|
-
// { key: 'a', ctrl: true, condition: c => !!c.store.activeText, action: c => c.store.activeText.selectAll() },
|
|
19331
|
-
// { key: 'v', ctrl: true, condition: c => !!c.store.activeText, action: c => c.store.activeText.insertFromClipboard() },
|
|
19341
|
+
{ key: 'v', ctrl: true, label: 'Paste', category: 'Clipboard', condition: c => !!c.store.state.copiedObjects && !c.store.activeText, action: c => c.paste() },
|
|
19332
19342
|
// Object layering
|
|
19333
|
-
{ key: '+', ctrl: true, condition: c => !!c.store.selectionGroup, action: c => c.bringForward() },
|
|
19334
|
-
{ key: '-', ctrl: true, condition: c => !!c.store.selectionGroup, action: c => c.sendBackward() },
|
|
19335
|
-
{ key: '*', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.bringToFront() },
|
|
19336
|
-
{ key: '_', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.sendToBack() },
|
|
19343
|
+
{ key: '+', ctrl: true, label: 'Bring Forward', category: 'Object Layering', condition: c => !!c.store.selectionGroup, action: c => c.bringForward() },
|
|
19344
|
+
{ key: '-', ctrl: true, label: 'Send Backward', category: 'Object Layering', condition: c => !!c.store.selectionGroup, action: c => c.sendBackward() },
|
|
19345
|
+
{ key: '*', shift: true, label: 'Bring to Front', category: 'Object Layering', condition: c => !!c.store.selectionGroup, action: c => c.bringToFront() },
|
|
19346
|
+
{ key: '_', shift: true, label: 'Send to Back', category: 'Object Layering', condition: c => !!c.store.selectionGroup, action: c => c.sendToBack() },
|
|
19337
19347
|
// Grouping
|
|
19338
|
-
{ key: 'g', ctrl: true, condition: c => !!c.store.selectionGroup && c.store.selectionGroup.objects.length >= 2, action: c => c.group() },
|
|
19339
|
-
{ key: 'G', ctrl: true, shift: true, condition: c => !!c.store.selectionGroup, action: c => c.ungroup() },
|
|
19348
|
+
{ key: 'g', ctrl: true, label: 'Group', category: 'Grouping', condition: c => !!c.store.selectionGroup && c.store.selectionGroup.objects.length >= 2, action: c => c.group() },
|
|
19349
|
+
{ key: 'G', ctrl: true, shift: true, label: 'Ungroup', category: 'Grouping', condition: c => !!c.store.selectionGroup, action: c => c.ungroup() },
|
|
19340
19350
|
];
|
|
19341
19351
|
constructor(core) {
|
|
19342
19352
|
super(core);
|
|
19343
19353
|
}
|
|
19344
|
-
|
|
19345
|
-
const toolInstance = defaultLineTool_config.KritzelToolRegistry.
|
|
19346
|
-
|
|
19347
|
-
|
|
19348
|
-
|
|
19354
|
+
switchToolByIndex(index) {
|
|
19355
|
+
const toolInstance = defaultLineTool_config.KritzelToolRegistry.getToolByIndex(index);
|
|
19356
|
+
if (toolInstance) {
|
|
19357
|
+
this._core.store.setState('activeTool', toolInstance);
|
|
19358
|
+
this._core.deselectAllObjects();
|
|
19359
|
+
toolInstance.onActivate();
|
|
19360
|
+
}
|
|
19349
19361
|
}
|
|
19350
19362
|
handleKeyDown(event) {
|
|
19351
19363
|
this._core.store.state.isCtrlKeyPressed = event.ctrlKey;
|
|
@@ -19358,6 +19370,15 @@ class KritzelKeyHandler extends defaultLineTool_config.KritzelBaseHandler {
|
|
|
19358
19370
|
handleKeyUp(event) {
|
|
19359
19371
|
this._core.store.state.isCtrlKeyPressed = event.ctrlKey;
|
|
19360
19372
|
}
|
|
19373
|
+
getDisplayableShortcuts() {
|
|
19374
|
+
return this.shortcuts.map(({ key, ctrl, shift, label, category }) => ({
|
|
19375
|
+
key,
|
|
19376
|
+
ctrl,
|
|
19377
|
+
shift,
|
|
19378
|
+
label,
|
|
19379
|
+
category,
|
|
19380
|
+
}));
|
|
19381
|
+
}
|
|
19361
19382
|
}
|
|
19362
19383
|
|
|
19363
19384
|
class KritzelContextMenuHandler extends defaultLineTool_config.KritzelBaseHandler {
|
|
@@ -21000,6 +21021,26 @@ class KritzelCore {
|
|
|
21000
21021
|
this.addSelectionGroup(selectionGroup);
|
|
21001
21022
|
this.rerender();
|
|
21002
21023
|
}
|
|
21024
|
+
selectAllObjects() {
|
|
21025
|
+
const allObjects = this._store.state.objects
|
|
21026
|
+
.allObjects()
|
|
21027
|
+
.filter(o => !(o instanceof defaultLineTool_config.KritzelSelectionGroup) && !(o instanceof defaultLineTool_config.KritzelSelectionBox) && !(o instanceof KritzelContextMenu));
|
|
21028
|
+
if (allObjects.length > 0) {
|
|
21029
|
+
const selectionGroup = defaultLineTool_config.KritzelSelectionGroup.create(this);
|
|
21030
|
+
allObjects.forEach(obj => {
|
|
21031
|
+
obj.isSelected = false;
|
|
21032
|
+
selectionGroup.addOrRemove(obj);
|
|
21033
|
+
});
|
|
21034
|
+
selectionGroup.isSelected = true;
|
|
21035
|
+
this._store.state.isSelecting = false;
|
|
21036
|
+
if (allObjects.length === 1) {
|
|
21037
|
+
selectionGroup.rotation = selectionGroup.objects[0].rotation;
|
|
21038
|
+
}
|
|
21039
|
+
this.addSelectionGroup(selectionGroup);
|
|
21040
|
+
this._store.setState('activeTool', defaultLineTool_config.KritzelToolRegistry.getTool('selection'));
|
|
21041
|
+
this.rerender();
|
|
21042
|
+
}
|
|
21043
|
+
}
|
|
21003
21044
|
selectAllObjectsInViewport() {
|
|
21004
21045
|
const viewportBounds = {
|
|
21005
21046
|
x: -this._store.state.translateX / this._store.state.scale,
|
|
@@ -22330,6 +22371,9 @@ const KritzelEngine = class {
|
|
|
22330
22371
|
const selectionGroup = this.core.store.selectionGroup;
|
|
22331
22372
|
return selectionGroup ? selectionGroup.objects : [];
|
|
22332
22373
|
}
|
|
22374
|
+
async getDisplayableShortcuts() {
|
|
22375
|
+
return this.keyHandler.getDisplayableShortcuts();
|
|
22376
|
+
}
|
|
22333
22377
|
async selectObjects(objects) {
|
|
22334
22378
|
this.core.store.state.activeTool?.onDeactivate();
|
|
22335
22379
|
this.core.store.setState('activeTool', defaultLineTool_config.KritzelToolRegistry.getTool('selection'));
|
|
@@ -22569,7 +22613,7 @@ const KritzelEngine = class {
|
|
|
22569
22613
|
this.objectsInViewportChange.emit(visibleObjects);
|
|
22570
22614
|
this.core.store.state.hasViewportChanged = false;
|
|
22571
22615
|
}
|
|
22572
|
-
return (index.h(index.Host, { key: '
|
|
22616
|
+
return (index.h(index.Host, { key: '8905994a0a6ba727338b5d998e86a8602c15c716' }, this.core.store.state.debugInfo.showViewportInfo && (index.h("div", { key: '09b3edf6557bba042bd6e27a702569eaa7d06b1d', class: "debug-panel" }, index.h("div", { key: '4bee1244cee2af276f0a58cc12e7edac7719dffd' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), index.h("div", { key: '839ae7b5b9d0aa85a516f72db4722a5026173346' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), index.h("div", { key: 'd0a17b9de7f37e149de165e6d324fd16455ac492' }, "TranslateX: ", this.core.store.state?.translateX), index.h("div", { key: 'dc4dba3065b2292b1497350bea91a5aa4e85ecbe' }, "TranslateY: ", this.core.store.state?.translateY), index.h("div", { key: '6b2f168471e9e6010530838a163409a55d589ee5' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), index.h("div", { key: '9a13f87843ccc982bae1216aa6792e2d106eb40b' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), index.h("div", { key: 'afde9f208d1ca410c0263230b5fb46ff9d60b5eb' }, "PointerCount: ", this.core.store.state.pointers.size), index.h("div", { key: '205f6323256ae98c9d9b76815b7007c4215e6085' }, "Scale: ", this.core.store.state?.scale), index.h("div", { key: 'f5a6ba3bc2ffa1cde68503a9025ca26f36c69298' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), index.h("div", { key: 'ae68e0da86b428a67e1d02b96f63b8df50eb6006' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), index.h("div", { key: 'f774c277b5c2ee7eca92148a5eef3f721f308583' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), index.h("div", { key: '347ca7230c94e6416a3ad63dc13bedd6784ac5de' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), index.h("div", { key: 'df4c531c565e870c066ab39f83424ed7e5daaca8' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), index.h("div", { key: '0e03236b68659e9fe76b43dd7dac1875103c5096' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), index.h("div", { key: '98fd0e0e14d296f823542dd0e663b4ebd4457320' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), index.h("div", { key: '42e011126f11b243521c0d5182322db153d7cfc7' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), index.h("div", { key: '83282eeb30f2b4634703b5395570e623c33d70f1' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), index.h("div", { key: '70eadff325f0339bd07ed1abc3d914267edd6627' }, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), index.h("div", { key: '9d1fbd6f79329fe529e235bf631306853e8a4073' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), index.h("div", { key: '0671f42bae6a696b4d0f2a217ea52cc9d0e7bd53' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), index.h("div", { key: '3faf342b274483bf06f43b428a8d529a9fbbc137' }, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), index.h("div", { key: '836e427407bc807488e1a4491ef726d1fe4d471e' }, "PointerX: ", this.core.store.state?.pointerX), index.h("div", { key: '81d2d4c1653e9e646ddd3dde296aab7592a4fbc7' }, "PointerY: ", this.core.store.state?.pointerY), index.h("div", { key: 'e71d2a2e7789c1497c628bc32d3f9e41c11fd3d3' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), index.h("div", { key: 'e93bbc53c7588d248b8c228b5dd016e9110cc469' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), index.h("div", { key: 'a6f71ff4e08557579888f2cec96eea10516760a5', id: "origin", class: "origin", style: {
|
|
22573
22617
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
22574
22618
|
} }, visibleObjects?.map(object => {
|
|
22575
22619
|
return (index.h("div", { key: object.id, id: object.id, class: "object", style: {
|
|
@@ -22897,7 +22941,7 @@ const KritzelEngine = class {
|
|
|
22897
22941
|
stroke: 'var(--kritzel-snap-indicator-stroke, #007bff)',
|
|
22898
22942
|
strokeWidth: data.indicatorStrokeWidth,
|
|
22899
22943
|
} }))));
|
|
22900
|
-
})()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: '
|
|
22944
|
+
})()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: 'a4c1709b4089f8bb5826b21b536917bb21f168da', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
|
|
22901
22945
|
position: 'fixed',
|
|
22902
22946
|
left: `${this.core.store.state.contextMenuX}px`,
|
|
22903
22947
|
top: `${this.core.store.state.contextMenuY}px`,
|
|
@@ -22908,7 +22952,7 @@ const KritzelEngine = class {
|
|
|
22908
22952
|
y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
|
|
22909
22953
|
}, this.core.store.selectionGroup?.objects);
|
|
22910
22954
|
this.hideContextMenu();
|
|
22911
|
-
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '
|
|
22955
|
+
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '2e025697da7b96c809ad232825df7939f227e512', core: this.core })));
|
|
22912
22956
|
}
|
|
22913
22957
|
static get watchers() { return {
|
|
22914
22958
|
"workspace": [{
|
|
@@ -23923,9 +23967,9 @@ const KritzelPortal = class {
|
|
|
23923
23967
|
* This file is auto-generated by the version bump scripts.
|
|
23924
23968
|
* Do not modify manually.
|
|
23925
23969
|
*/
|
|
23926
|
-
const KRITZEL_VERSION = '0.1.
|
|
23970
|
+
const KRITZEL_VERSION = '0.1.32';
|
|
23927
23971
|
|
|
23928
|
-
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:
|
|
23972
|
+
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:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.settings-description{font-size:12px;color:var(--kritzel-settings-description-color, #888888);margin:0;line-height:1.4}.shortcuts-list{display:flex;flex-direction:column;gap:24px}.shortcuts-category{display:flex;flex-direction:column;gap:8px}.shortcuts-category-title{font-size:14px;font-weight:600;color:var(--kritzel-settings-label-color, #333333);margin:0 0 4px 0}.shortcuts-group{display:flex;flex-direction:column;gap:4px}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-item-bg, rgba(0, 0, 0, 0.02))}.shortcut-label{font-size:14px;color:var(--kritzel-settings-content-text-color, #666666)}.shortcut-key{font-family:monospace;font-size:12px;padding:2px 8px;border-radius:4px;background:var(--kritzel-settings-shortcut-key-bg, #f0f0f0);color:var(--kritzel-settings-shortcut-key-color, #333333);border:1px solid var(--kritzel-settings-shortcut-key-border, #ddd)}`;
|
|
23929
23973
|
|
|
23930
23974
|
const SETTINGS_STORAGE_KEY = 'kritzel-settings';
|
|
23931
23975
|
const DEFAULT_SCALE_MIN = 0.0001;
|
|
@@ -23933,6 +23977,7 @@ const DEFAULT_SCALE_MAX = 1000;
|
|
|
23933
23977
|
const DEFAULT_LOCK_DRAWING_SCALE = true;
|
|
23934
23978
|
const SETTINGS_CATEGORIES = [
|
|
23935
23979
|
{ id: 'general', label: 'General', icon: 'settings' },
|
|
23980
|
+
{ id: 'shortcuts', label: 'Keyboard Shortcuts', icon: 'command' },
|
|
23936
23981
|
{ id: 'about', label: 'About', icon: 'info' },
|
|
23937
23982
|
];
|
|
23938
23983
|
const KritzelSettings = class {
|
|
@@ -23941,6 +23986,8 @@ const KritzelSettings = class {
|
|
|
23941
23986
|
this.settingsChange = index.createEvent(this, "settingsChange");
|
|
23942
23987
|
}
|
|
23943
23988
|
get host() { return index.getElement(this); }
|
|
23989
|
+
/** Keyboard shortcuts to display in the settings dialog */
|
|
23990
|
+
shortcuts = [];
|
|
23944
23991
|
isDialogOpen = false;
|
|
23945
23992
|
selectedCategoryId = SETTINGS_CATEGORIES[0].id;
|
|
23946
23993
|
scaleMin = DEFAULT_SCALE_MIN;
|
|
@@ -24010,10 +24057,38 @@ const KritzelSettings = class {
|
|
|
24010
24057
|
handleCategorySelect = (event) => {
|
|
24011
24058
|
this.selectedCategoryId = event.detail.item.id;
|
|
24012
24059
|
};
|
|
24060
|
+
formatKeyCombo(shortcut) {
|
|
24061
|
+
const parts = [];
|
|
24062
|
+
if (shortcut.ctrl)
|
|
24063
|
+
parts.push('Ctrl');
|
|
24064
|
+
if (shortcut.shift)
|
|
24065
|
+
parts.push('Shift');
|
|
24066
|
+
parts.push(this.formatKey(shortcut.key));
|
|
24067
|
+
return parts.join('+');
|
|
24068
|
+
}
|
|
24069
|
+
formatKey(key) {
|
|
24070
|
+
const keyMap = {
|
|
24071
|
+
'Escape': 'Esc',
|
|
24072
|
+
'Delete': 'Del',
|
|
24073
|
+
' ': 'Space',
|
|
24074
|
+
};
|
|
24075
|
+
return keyMap[key] ?? key.toUpperCase();
|
|
24076
|
+
}
|
|
24077
|
+
groupShortcutsByCategory() {
|
|
24078
|
+
const grouped = new Map();
|
|
24079
|
+
for (const shortcut of this.shortcuts) {
|
|
24080
|
+
const existing = grouped.get(shortcut.category) || [];
|
|
24081
|
+
existing.push(shortcut);
|
|
24082
|
+
grouped.set(shortcut.category, existing);
|
|
24083
|
+
}
|
|
24084
|
+
return grouped;
|
|
24085
|
+
}
|
|
24013
24086
|
renderCategoryContent() {
|
|
24014
24087
|
switch (this.selectedCategoryId) {
|
|
24015
24088
|
case 'general':
|
|
24016
24089
|
return (index.h("div", { class: "settings-content" }, index.h("h3", null, "General Settings"), index.h("div", { class: "settings-group" }, index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, "Dark Mode"), index.h("p", { class: "settings-description" }, "Toggle between light and dark color themes for the editor interface."), index.h("kritzel-slide-toggle", { checked: this.currentTheme === 'dark', label: "Dark Mode", onCheckedChange: this.handleThemeChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, "Lock Drawing Scale"), index.h("p", { class: "settings-description" }, "When enabled, drawn objects maintain a fixed visual size regardless of the current zoom level."), index.h("kritzel-slide-toggle", { checked: this.lockDrawingScale, label: "Lock Drawing Scale", onCheckedChange: this.handleLockDrawingScaleChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, "Minimum Zoom Level"), index.h("p", { class: "settings-description" }, "Sets the minimum zoom level. Lower values allow zooming out further to see more of the canvas."), index.h("kritzel-numeric-input", { value: this.scaleMin, min: 0.0001, max: 1, step: 0.0001, onValueChange: this.handleScaleMinChange })), index.h("div", { class: "settings-item" }, index.h("label", { class: "settings-label" }, "Maximum Zoom Level"), index.h("p", { class: "settings-description" }, "Sets the maximum zoom level. Higher values allow zooming in closer for detailed work."), index.h("kritzel-numeric-input", { value: this.scaleMax, min: 1, max: 1000, step: 1, onValueChange: this.handleScaleMaxChange })))));
|
|
24090
|
+
case 'shortcuts':
|
|
24091
|
+
return (index.h("div", { class: "settings-content" }, index.h("h3", null, "Keyboard Shortcuts"), index.h("div", { class: "shortcuts-list" }, Array.from(this.groupShortcutsByCategory()).map(([category, shortcuts]) => (index.h("div", { class: "shortcuts-category", key: category }, index.h("h4", { class: "shortcuts-category-title" }, category), index.h("div", { class: "shortcuts-group" }, shortcuts.map(shortcut => (index.h("div", { class: "shortcut-item", key: shortcut.key + shortcut.label }, index.h("span", { class: "shortcut-label" }, shortcut.label), index.h("kbd", { class: "shortcut-key" }, this.formatKeyCombo(shortcut))))))))))));
|
|
24017
24092
|
case 'about':
|
|
24018
24093
|
return (index.h("div", { class: "settings-content" }, index.h("h3", null, "About"), index.h("p", null, "Kritzel - A drawing application"), index.h("p", { class: "version-info" }, "Version ", KRITZEL_VERSION)));
|
|
24019
24094
|
default:
|
|
@@ -24021,7 +24096,7 @@ const KritzelSettings = class {
|
|
|
24021
24096
|
}
|
|
24022
24097
|
}
|
|
24023
24098
|
render() {
|
|
24024
|
-
return (index.h(index.Host, { key: '
|
|
24099
|
+
return (index.h(index.Host, { key: '1c6e3f26b35cdbbd9586c60ae784257c3368de92' }, index.h("kritzel-dialog", { key: '92e06c02af5152e7f1e64179e31a41fca651381c', isOpen: this.isDialogOpen, dialogTitle: "Settings", size: "large", onDialogClose: this.closeDialog }, index.h("kritzel-master-detail", { key: '069ec7c1b31e7f10b8d34502b811f0602f9f1600', items: SETTINGS_CATEGORIES, selectedItemId: this.selectedCategoryId, onItemSelect: this.handleCategorySelect }, this.renderCategoryContent()))));
|
|
24025
24100
|
}
|
|
24026
24101
|
};
|
|
24027
24102
|
KritzelSettings.style = kritzelSettingsCss();
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -6,7 +6,7 @@ var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
|
6
6
|
const defineCustomElements = async (win, options) => {
|
|
7
7
|
if (typeof window === 'undefined') return undefined;
|
|
8
8
|
await appGlobals.globalScripts();
|
|
9
|
-
return index.bootstrapLazy([["kritzel-back-to-content_32.cjs",[[512,"kritzel-editor",{"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"lockDrawingScale":[1028,"lock-drawing-scale"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"isBackToContentButtonVisible":[32],"currentTheme":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"backToContent":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":[{"onIsEngineReady":0}],"isControlsReady":[{"onIsControlsReady":0}],"workspaces":[{"onWorkspacesChange":0}],"currentTheme":[{"onCurrentThemeChange":0}]}],[513,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"theme":[1],"firstConfig":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"canScrollLeft":[32],"canScrollRight":[32],"needsScrolling":[32],"displayValues":[32],"closeTooltip":[64]},[[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"],[4,"objectsSelectionChange","handleSelectionChange"]],{"theme":[{"onThemeChange":0}]}],[513,"kritzel-settings",{"isDialogOpen":[32],"selectedCategoryId":[32],"scaleMin":[32],"scaleMax":[32],"lockDrawingScale":[32],"currentTheme":[32],"open":[64]}],[513,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[513,"kritzel-more-menu",{"items":[16],"icon":[1],"iconSize":[2,"icon-size"],"offsetY":[2,"offset-y"],"menuAnchor":[32]}],[513,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"lockDrawingScale":[4,"lock-drawing-scale"],"theme":[1],"forceUpdate":[32],"triggerSelectionChange":[64],"registerTool":[64],"changeActiveTool":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"backToContent":[64],"getCopiedObjects":[64],"getScreenshot":[64],"exportViewportAsPng":[64],"exportViewportAsSvg":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[1,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[1,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":[{"onWorkspaceChange":0}],"scaleMax":[{"validateScaleMax":0}],"scaleMin":[{"validateScaleMin":0}],"cursorTarget":[{"onCursorTargetChange":0}],"lockDrawingScale":[{"onLockDrawingScaleChange":0}],"theme":[{"onThemeChange":0}]}],[513,"kritzel-export",{"isDialogOpen":[32],"previewUrl":[32],"isLoading":[32],"open":[64]}],[513,"kritzel-back-to-content",{"visible":[4],"text":[1]}],[513,"kritzel-tool-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"theme":[1],"config":[32],"palette":[32],"currentOpacity":[32],"updateTrigger":[32]},[[4,"objectsSelectionChange","handleSelectionChange"]],{"tool":[{"handleToolChange":0}],"theme":[{"onThemeChange":0}]}],[513,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[513,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":[{"onItemsChanged":0}]}],[769,"kritzel-master-detail",{"items":[16],"selectedItemId":[1,"selected-item-id"],"focusedIndex":[32],"showMobileDetail":[32]},null,{"selectedItemId":[{"watchSelectedItemId":0}]}],[513,"kritzel-utility-panel",{"undoState":[16]}],[513,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[513,"kritzel-numeric-input",{"value":[1026],"min":[2],"max":[2],"step":[2],"label":[1],"inputValue":[32]},null,{"value":[{"onValueChange":0}]}],[513,"kritzel-slide-toggle",{"checked":[1028],"disabled":[4],"label":[1]}],[769,"kritzel-tooltip",{"isVisible":[1028,"is-visible"],"anchorElement":[16],"triggerElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"open":[64],"close":[64],"toggle":[64],"focusContent":[64]},[[4,"click","handleOutsideClick"],[7,"pointerdown","handleOutsidePointerDown"],[4,"kritzelTooltipCloseAll","handleCloseAll"],[9,"resize","handleWindowResize"]],{"triggerElement":[{"handleTriggerElementChange":0}],"isVisible":[{"handleVisibilityChange":0}]}],[513,"kritzel-color-palette",{"colors":[16],"selectedColor":[1040],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"],"opacity":[2],"theme":[1]}],[513,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[513,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[513,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-dialog",{"isOpen":[516,"is-open"],"dialogTitle":[1,"dialog-title"],"closable":[4],"closeOnBackdrop":[4,"close-on-backdrop"],"closeOnEscape":[4,"close-on-escape"],"autoFocus":[4,"auto-focus"],"trapFocus":[4,"trap-focus"],"size":[1],"fullscreenOnMobile":[4,"fullscreen-on-mobile"],"isAnimating":[32],"open":[64],"close":[64],"focusFirstElement":[64]},[[8,"keydown","handleKeyDown"]],{"isOpen":[{"handleIsOpenChange":0}]}],[513,"kritzel-line-endings",{"styles":[16],"value":[1040]}],[513,"kritzel-opacity-slider",{"value":[1026],"min":[2],"max":[2],"step":[2],"previewColor":[1,"preview-color"]}],[513,"kritzel-shape-fill",{"value":[1025]}],[513,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[513,"kritzel-color",{"value":[1],"theme":[1],"size":[2]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[16],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32],"isOpen":[32],"focusedIndex":[32],"openDirection":[32]},[[4,"click","handleDocumentClick"],[4,"keydown","handleDocumentKeydown"]],{"options":[{"optionsChanged":0}],"value":[{"externalValueChanged":0}]}],[513,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[513,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":[{"onItemChange":0}]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":[{"anchorChanged":0}]}],[513,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[513,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
|
|
9
|
+
return index.bootstrapLazy([["kritzel-back-to-content_32.cjs",[[512,"kritzel-editor",{"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"lockDrawingScale":[1028,"lock-drawing-scale"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"isBackToContentButtonVisible":[32],"currentTheme":[32],"shortcuts":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"backToContent":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":[{"onIsEngineReady":0}],"isControlsReady":[{"onIsControlsReady":0}],"workspaces":[{"onWorkspacesChange":0}],"currentTheme":[{"onCurrentThemeChange":0}]}],[513,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"theme":[1],"firstConfig":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"canScrollLeft":[32],"canScrollRight":[32],"needsScrolling":[32],"displayValues":[32],"closeTooltip":[64]},[[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"],[4,"objectsSelectionChange","handleSelectionChange"]],{"theme":[{"onThemeChange":0}]}],[513,"kritzel-settings",{"shortcuts":[16],"isDialogOpen":[32],"selectedCategoryId":[32],"scaleMin":[32],"scaleMax":[32],"lockDrawingScale":[32],"currentTheme":[32],"open":[64]}],[513,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[513,"kritzel-more-menu",{"items":[16],"icon":[1],"iconSize":[2,"icon-size"],"offsetY":[2,"offset-y"],"menuAnchor":[32]}],[513,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"lockDrawingScale":[4,"lock-drawing-scale"],"theme":[1],"forceUpdate":[32],"triggerSelectionChange":[64],"registerTool":[64],"changeActiveTool":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"getDisplayableShortcuts":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"backToContent":[64],"getCopiedObjects":[64],"getScreenshot":[64],"exportViewportAsPng":[64],"exportViewportAsSvg":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[1,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[1,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":[{"onWorkspaceChange":0}],"scaleMax":[{"validateScaleMax":0}],"scaleMin":[{"validateScaleMin":0}],"cursorTarget":[{"onCursorTargetChange":0}],"lockDrawingScale":[{"onLockDrawingScaleChange":0}],"theme":[{"onThemeChange":0}]}],[513,"kritzel-export",{"isDialogOpen":[32],"previewUrl":[32],"isLoading":[32],"open":[64]}],[513,"kritzel-back-to-content",{"visible":[4],"text":[1]}],[513,"kritzel-tool-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"theme":[1],"config":[32],"palette":[32],"currentOpacity":[32],"updateTrigger":[32]},[[4,"objectsSelectionChange","handleSelectionChange"]],{"tool":[{"handleToolChange":0}],"theme":[{"onThemeChange":0}]}],[513,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[513,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":[{"onItemsChanged":0}]}],[769,"kritzel-master-detail",{"items":[16],"selectedItemId":[1,"selected-item-id"],"focusedIndex":[32],"showMobileDetail":[32]},null,{"selectedItemId":[{"watchSelectedItemId":0}]}],[513,"kritzel-utility-panel",{"undoState":[16]}],[513,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[513,"kritzel-numeric-input",{"value":[1026],"min":[2],"max":[2],"step":[2],"label":[1],"inputValue":[32]},null,{"value":[{"onValueChange":0}]}],[513,"kritzel-slide-toggle",{"checked":[1028],"disabled":[4],"label":[1]}],[769,"kritzel-tooltip",{"isVisible":[1028,"is-visible"],"anchorElement":[16],"triggerElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"open":[64],"close":[64],"toggle":[64],"focusContent":[64]},[[4,"click","handleOutsideClick"],[7,"pointerdown","handleOutsidePointerDown"],[4,"kritzelTooltipCloseAll","handleCloseAll"],[9,"resize","handleWindowResize"]],{"triggerElement":[{"handleTriggerElementChange":0}],"isVisible":[{"handleVisibilityChange":0}]}],[513,"kritzel-color-palette",{"colors":[16],"selectedColor":[1040],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"],"opacity":[2],"theme":[1]}],[513,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[513,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[513,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-dialog",{"isOpen":[516,"is-open"],"dialogTitle":[1,"dialog-title"],"closable":[4],"closeOnBackdrop":[4,"close-on-backdrop"],"closeOnEscape":[4,"close-on-escape"],"autoFocus":[4,"auto-focus"],"trapFocus":[4,"trap-focus"],"size":[1],"fullscreenOnMobile":[4,"fullscreen-on-mobile"],"isAnimating":[32],"open":[64],"close":[64],"focusFirstElement":[64]},[[8,"keydown","handleKeyDown"]],{"isOpen":[{"handleIsOpenChange":0}]}],[513,"kritzel-line-endings",{"styles":[16],"value":[1040]}],[513,"kritzel-opacity-slider",{"value":[1026],"min":[2],"max":[2],"step":[2],"previewColor":[1,"preview-color"]}],[513,"kritzel-shape-fill",{"value":[1025]}],[513,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[513,"kritzel-color",{"value":[1],"theme":[1],"size":[2]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[16],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32],"isOpen":[32],"focusedIndex":[32],"openDirection":[32]},[[4,"click","handleDocumentClick"],[4,"keydown","handleDocumentKeydown"]],{"options":[{"optionsChanged":0}],"value":[{"externalValueChanged":0}]}],[513,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[513,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":[{"onItemChange":0}]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":[{"anchorChanged":0}]}],[513,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[513,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|