kritzel-stencil 0.0.171 → 0.0.172

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 (107) hide show
  1. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  2. package/dist/cjs/kritzel-color_22.cjs.entry.js +193 -45
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/stencil.cjs.js +1 -1
  5. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  6. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +1 -1
  7. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +3 -3
  8. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +1 -1
  9. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  10. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  11. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +163 -21
  12. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +192 -22
  13. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -1
  14. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  15. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -1
  16. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -1
  17. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  18. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
  19. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
  20. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  21. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
  22. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  23. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -2
  24. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -1
  25. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
  26. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
  27. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +1 -2
  28. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +3 -3
  29. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  30. package/dist/components/index.js +2 -2
  31. package/dist/components/kritzel-brush-style.js +2 -2
  32. package/dist/components/kritzel-color-palette.js +1 -1
  33. package/dist/components/kritzel-color.js +1 -1
  34. package/dist/components/kritzel-context-menu.js +1 -1
  35. package/dist/components/kritzel-control-brush-config.js +1 -1
  36. package/dist/components/kritzel-control-text-config.js +1 -1
  37. package/dist/components/kritzel-controls.js +1 -1
  38. package/dist/components/kritzel-cursor-trail.js +1 -1
  39. package/dist/components/kritzel-dropdown.js +1 -1
  40. package/dist/components/kritzel-editor.js +20 -20
  41. package/dist/components/kritzel-engine.js +1 -1
  42. package/dist/components/kritzel-font-family.js +1 -1
  43. package/dist/components/kritzel-font-size.js +1 -1
  44. package/dist/components/kritzel-font.js +1 -1
  45. package/dist/components/kritzel-menu-item.js +1 -1
  46. package/dist/components/kritzel-menu.js +1 -1
  47. package/dist/components/kritzel-portal.js +1 -1
  48. package/dist/components/kritzel-split-button.js +1 -1
  49. package/dist/components/kritzel-stroke-size.js +1 -1
  50. package/dist/components/kritzel-tooltip.js +1 -1
  51. package/dist/components/kritzel-utility-panel.js +1 -1
  52. package/dist/components/kritzel-workspace-manager.js +1 -1
  53. package/dist/components/{p-CO8bwl_3.js → p-B80ry-r4.js} +7 -7
  54. package/dist/components/{p-CO8bwl_3.js.map → p-B80ry-r4.js.map} +1 -1
  55. package/dist/components/{p-CFH6XRL5.js → p-BC5-_yPs.js} +4 -4
  56. package/dist/components/p-BC5-_yPs.js.map +1 -0
  57. package/dist/components/{p-nIBAWFcK.js → p-Bo-NQ68K.js} +3 -3
  58. package/dist/components/{p-nIBAWFcK.js.map → p-Bo-NQ68K.js.map} +1 -1
  59. package/dist/components/{p-y25EBKEA.js → p-C720oASC.js} +5 -5
  60. package/dist/components/{p-y25EBKEA.js.map → p-C720oASC.js.map} +1 -1
  61. package/dist/components/{p-BhLtP5Cg.js → p-C92UCXyc.js} +17 -17
  62. package/dist/components/p-C92UCXyc.js.map +1 -0
  63. package/dist/components/{p-B_3OZeom.js → p-CAxHKvww.js} +3 -3
  64. package/dist/components/{p-B_3OZeom.js.map → p-CAxHKvww.js.map} +1 -1
  65. package/dist/components/{p-C6-tSCMR.js → p-CD9cCvhR.js} +6 -6
  66. package/dist/components/{p-C6-tSCMR.js.map → p-CD9cCvhR.js.map} +1 -1
  67. package/dist/components/{p-LAsVgL2e.js → p-CIlIrPRp.js} +4 -4
  68. package/dist/components/{p-LAsVgL2e.js.map → p-CIlIrPRp.js.map} +1 -1
  69. package/dist/components/p-Cdw55iW6.js +281 -0
  70. package/dist/components/p-Cdw55iW6.js.map +1 -0
  71. package/dist/components/{p-Ck4lGnmt.js → p-DI7JQMsC.js} +3 -3
  72. package/dist/components/{p-Ck4lGnmt.js.map → p-DI7JQMsC.js.map} +1 -1
  73. package/dist/components/{p-DGnDUmrk.js → p-DmYjCy-z.js} +3 -3
  74. package/dist/components/{p-DGnDUmrk.js.map → p-DmYjCy-z.js.map} +1 -1
  75. package/dist/components/{p-nZdy-Ii5.js → p-DoD6F7Y4.js} +5 -5
  76. package/dist/components/{p-nZdy-Ii5.js.map → p-DoD6F7Y4.js.map} +1 -1
  77. package/dist/components/{p-CRGwaUcp.js → p-DyVWaSSc.js} +4 -4
  78. package/dist/components/{p-CRGwaUcp.js.map → p-DyVWaSSc.js.map} +1 -1
  79. package/dist/components/{p-DO4auCYf.js → p-WLXyD_eY.js} +4 -4
  80. package/dist/components/{p-DO4auCYf.js.map → p-WLXyD_eY.js.map} +1 -1
  81. package/dist/components/{p-Brd9SxWS.js → p-c7AGmG3p.js} +4 -4
  82. package/dist/components/{p-Brd9SxWS.js.map → p-c7AGmG3p.js.map} +1 -1
  83. package/dist/components/{p-aeYt0bPO.js → p-fm-bG_zL.js} +3 -3
  84. package/dist/components/{p-aeYt0bPO.js.map → p-fm-bG_zL.js.map} +1 -1
  85. package/dist/components/{p-D0UgEnEL.js → p-fqLbEfE0.js} +7 -7
  86. package/dist/components/{p-D0UgEnEL.js.map → p-fqLbEfE0.js.map} +1 -1
  87. package/dist/components/{p-B6r22FSC.js → p-qWf2T62p.js} +4 -4
  88. package/dist/components/{p-B6r22FSC.js.map → p-qWf2T62p.js.map} +1 -1
  89. package/dist/components/{p-C29Efgmc.js → p-vLN8eXFe.js} +10 -10
  90. package/dist/components/{p-C29Efgmc.js.map → p-vLN8eXFe.js.map} +1 -1
  91. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  92. package/dist/esm/kritzel-color_22.entry.js +193 -45
  93. package/dist/esm/loader.js +1 -1
  94. package/dist/esm/stencil.js +1 -1
  95. package/dist/stencil/{p-385bab97.entry.js → p-0a9b6696.entry.js} +2 -2
  96. package/dist/stencil/{p-d3f7214e.entry.js → p-0fdce6ce.entry.js} +3 -3
  97. package/dist/stencil/p-0fdce6ce.entry.js.map +1 -0
  98. package/dist/stencil/stencil.esm.js +1 -1
  99. package/dist/types/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +22 -3
  100. package/dist/types/components.d.ts +2 -2
  101. package/package.json +1 -1
  102. package/dist/components/p-BdwB-S9G.js +0 -130
  103. package/dist/components/p-BdwB-S9G.js.map +0 -1
  104. package/dist/components/p-BhLtP5Cg.js.map +0 -1
  105. package/dist/components/p-CFH6XRL5.js.map +0 -1
  106. package/dist/stencil/p-d3f7214e.entry.js.map +0 -1
  107. /package/dist/stencil/{p-385bab97.entry.js.map → p-0a9b6696.entry.js.map} +0 -0
@@ -23,7 +23,7 @@ const KritzelBrushStyle = class {
23
23
  value: option.value,
24
24
  label: option.label,
25
25
  }));
26
- return (index.h(index.Host, { key: '0eb1359bd2bc9d007edf804e62f4b47b1c91c507' }, index.h("kritzel-dropdown", { key: '47fea48007590b350d1005ce8440f95e4b0cdd9f', options: dropdownOptions, value: this.type, onValueChanged: event => this.handleDropdownValueChange(event) }, index.h("button", { key: '76ef20892c37258211caa5511845a2b2551afd80', class: "brush-style-button", slot: "prefix" }, index.h("kritzel-icon", { key: '396b36343f0c91274131f3f148c57c22ed988fec', name: this.type, size: 16 })))));
26
+ return (index.h(index.Host, { key: '51a7f84685032fd8fc967b22bee7c0711e811a54' }, index.h("kritzel-dropdown", { key: 'e49d7062c695458d345738d88a0adfc96b575e61', options: dropdownOptions, value: this.type, onValueChanged: event => this.handleDropdownValueChange(event) }, index.h("button", { key: 'ebbbf1a55b89e91012ca44c5cf30acfb77332b50', class: "brush-style-button", slot: "prefix" }, index.h("kritzel-icon", { key: 'dae002c9ab5e3486c726202426eb076a8f33b109', name: this.type, size: 16 })))));
27
27
  }
28
28
  };
29
29
  KritzelBrushStyle.style = kritzelBrushStyleCss;
@@ -39,13 +39,13 @@ const KritzelColor = class {
39
39
  }
40
40
  render() {
41
41
  const isColorVeryLight = this.isLightColor(this.value);
42
- return (index.h(index.Host, { key: 'bd867d9ff750588e41fb364b2192a6c2c5832e59' }, index.h("div", { key: '858e97d057d7ba19869cbacc4e9f31ae6c64defa', class: "checkerboard-bg", style: {
42
+ return (index.h(index.Host, { key: 'edf5d94f476d72d0be74886b362fd37db789c517' }, index.h("div", { key: 'd8af2373616b9bc6f4ddea0822d737f073563bf9', class: "checkerboard-bg", style: {
43
43
  width: `${this.size}px`,
44
44
  height: `${this.size}px`,
45
45
  borderRadius: '50%',
46
46
  display: 'inline-block',
47
47
  position: 'relative',
48
- } }, index.h("div", { key: '0c983b133716e048f29d7e51979068fbde178abd', class: {
48
+ } }, index.h("div", { key: '6b587f7926884e7c38fe36eaef41b0c8cd213c6d', class: {
49
49
  'color-circle': true,
50
50
  'white': isColorVeryLight,
51
51
  }, style: {
@@ -88,7 +88,7 @@ const KritzelColorPalette = class {
88
88
  render() {
89
89
  const displayedColors = this.isExpanded ? this.colors : this.colors.slice(0, 6);
90
90
  const expandedHeight = this.isExpanded ? this.calculateHeight() : '32px';
91
- return (index.h(index.Host, { key: 'a237c0ebccd7fbfb6b42ce7fd5689d7282571bef' }, index.h("div", { key: 'dbccf2817079f6cf958fa37d097654c326d6a4ab', class: {
91
+ return (index.h(index.Host, { key: '594c8520ca8307b5cd8accabc3d05f7d2bc2ee6e' }, index.h("div", { key: '8a3a5c81c9635f81092bae8659a59334cdca4369', class: {
92
92
  'color-grid': true,
93
93
  'expanded': this.isExpanded,
94
94
  }, style: {
@@ -190,7 +190,7 @@ const KritzelContextMenu = class {
190
190
  return defaultValue;
191
191
  }
192
192
  render() {
193
- return (index.h(index.Host, { key: '96a3530caa4567d30410f49311389818bbd45f64' }, index.h("div", { key: '79e4229815a152720ae21069233ff344f297349b', class: "menu-container" }, this.processedItems.map(({ item, isDisabled }, index$1) => (index.h("button", { key: `${item.label}-${index$1}`, class: { 'menu-item': true, 'disabled': isDisabled }, onClick: () => this.handleItemClick(item, isDisabled), disabled: isDisabled }, item.icon && index.h("kritzel-icon", { name: item.icon, size: 16 }), index.h("span", { class: "label" }, item.label)))))));
193
+ return (index.h(index.Host, { key: 'f57688eb3c0921c0a2d85cab7bbe9273ecf4fdab' }, index.h("div", { key: '8082568dd09f4ad5ef07885308d752e8c924f02e', class: "menu-container" }, this.processedItems.map(({ item, isDisabled }, index$1) => (index.h("button", { key: `${item.label}-${index$1}`, class: { 'menu-item': true, 'disabled': isDisabled }, onClick: () => this.handleItemClick(item, isDisabled), disabled: isDisabled }, item.icon && index.h("kritzel-icon", { name: item.icon, size: 16 }), index.h("span", { class: "label" }, item.label)))))));
194
194
  }
195
195
  static get watchers() { return {
196
196
  "items": ["onItemsChanged"]
@@ -233,14 +233,14 @@ const KritzelControlBrushConfig = class {
233
233
  this.toolChange.emit(this.tool);
234
234
  }
235
235
  render() {
236
- return (index.h(index.Host, { key: '8fe8c0564f491121c0c44c6ff4083034f92dbb67' }, index.h("div", { key: '3e8a69b827785976768bfc1e809126bee7c48c62', style: {
236
+ return (index.h(index.Host, { key: 'ce2ac77db22f52239a45b62f690d54009f2c6954' }, index.h("div", { key: '5f6c50853e876c3612bb5c270bccc468c2c9a726', style: {
237
237
  display: 'flex',
238
238
  flexDirection: 'row',
239
239
  alignItems: this.isExpanded ? 'flex-start' : 'center',
240
240
  justifyContent: 'flex-start',
241
241
  width: '100%',
242
242
  gap: '8px',
243
- } }, index.h("kritzel-color-palette", { key: 'c9056f81cf47d81fef0a0f5743000dcd6633258a', colors: this.palette, selectedColor: this.tool.color, isExpanded: this.isExpanded, isOpaque: true, onColorChange: color => this.handleColorChange(color) }), index.h("button", { key: '2f307264b80a732d976edeb025d509bc1164606b', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand', style: this.palette.length > 6 ? { visibillity: 'visible' } : { visibility: 'hidden' } }, index.h("kritzel-icon", { key: '08133ba0a23353b2bb3f87c685a7a0798b8dd16c', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-stroke-size", { key: '3de25cc80029ffdfdc173c4c79e937a7dc329743', selectedSize: this.tool.size, onSizeChange: event => this.handleSizeChange(event) })));
243
+ } }, index.h("kritzel-color-palette", { key: 'bfa24bb8683027c37f200ad65e4e6787d7224c56', colors: this.palette, selectedColor: this.tool.color, isExpanded: this.isExpanded, isOpaque: true, onColorChange: color => this.handleColorChange(color) }), index.h("button", { key: '8e2c55c6d16ca3911c5f068c354bdce5a4f7e844', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand', style: this.palette.length > 6 ? { visibillity: 'visible' } : { visibility: 'hidden' } }, index.h("kritzel-icon", { key: '33610ada109fe5d1d9cb2da4c70a60d672e3d6cb', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-stroke-size", { key: '9b095dd9436e46dd88a3485ceb2dafa5d06d1bc4', selectedSize: this.tool.size, onSizeChange: event => this.handleSizeChange(event) })));
244
244
  }
245
245
  static get watchers() { return {
246
246
  "tool": ["handleToolChange"]
@@ -274,19 +274,19 @@ const KritzelControlTextConfig = class {
274
274
  this.toolChange.emit(this.tool);
275
275
  }
276
276
  render() {
277
- return (index.h(index.Host, { key: '3695b187943af25566885d63257ae3de9f405ea5' }, index.h("div", { key: '7bb146ae3c188478ba17f18f70fd170ce3536308', style: {
277
+ return (index.h(index.Host, { key: '4a0027969b183fef77c374eb114d9d30104e5ad7' }, index.h("div", { key: '9f49eb3a95080447b938fdfeb256fafbe5ff9ddc', style: {
278
278
  display: 'flex',
279
279
  flexDirection: 'row',
280
280
  alignItems: 'center',
281
281
  justifyContent: 'flex-start',
282
282
  width: '100%',
283
283
  gap: '8px',
284
- } }, index.h("kritzel-font-family", { key: '87f4c5ac2e2a4cfea216b1b828faad231438b9ec', selectedFontFamily: this.tool.fontFamily, onFontFamilyChange: event => this.handleFamilyChange(event) }), index.h("button", { key: '2e73aaf7da659b9e069c247cc762f68394212293', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand' }, index.h("kritzel-icon", { key: '785b664697ba266432c535ea26e0665f8d8d657f', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-color-palette", { key: 'ed2517a39d254b77f45154914b3ce6a934f66c33', colors: this.tool.palette, selectedColor: this.tool.fontColor, isExpanded: this.isExpanded, onColorChange: event => this.handleColorChange(event) }), index.h("kritzel-font-size", { key: '9b25c9607fa69c991e769852e3e3e378e48387bd', selectedSize: this.tool.fontSize, fontFamily: this.tool.fontFamily, onSizeChange: event => this.handleSizeChange(event) })));
284
+ } }, index.h("kritzel-font-family", { key: '4e75cda048f8b8c04e6cb5568e7cdcde91e28112', selectedFontFamily: this.tool.fontFamily, onFontFamilyChange: event => this.handleFamilyChange(event) }), index.h("button", { key: '2db1d1166c0544489e1d854653c3c0ce8b881711', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand' }, index.h("kritzel-icon", { key: '2b0ca1efc11023a96d8379eb042716edd6bd3f56', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), index.h("kritzel-color-palette", { key: 'e5ced7a1ea76d19a65a6b377972455a929c5b2cb', colors: this.tool.palette, selectedColor: this.tool.fontColor, isExpanded: this.isExpanded, onColorChange: event => this.handleColorChange(event) }), index.h("kritzel-font-size", { key: '938cde81947c3bf6d78d6d237a3c665182c6ffef', selectedSize: this.tool.fontSize, fontFamily: this.tool.fontFamily, onSizeChange: event => this.handleSizeChange(event) })));
285
285
  }
286
286
  };
287
287
  KritzelControlTextConfig.style = kritzelControlTextConfigCss;
288
288
 
289
- const kritzelControlsCss = ":host{display:flex;flex-direction:column;user-select:none}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;font-weight:bold}.kritzel-control:focus,.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control.selected,.kritzel-control.selected:hover,.kritzel-control.selected:active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control.selected:focus{background-color:var(--kritzel-controls-control-selected-background-color, #007bffe3) !important}.kritzel-control-split{position:relative;display:flex;align-items:center;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:var(--kritzel-controls-control-color, #000000)}.kritzel-control-split .kritzel-control-main{display:flex;justify-content:center;align-items:center;padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:inherit}.kritzel-control-split.selected .kritzel-control-main{border-radius:var(--kritzel-controls-control-border-radius, 12px) 0 0 var(--kritzel-controls-control-border-radius, 12px)}.kritzel-control-split .kritzel-control-dropdown{display:flex;justify-content:center;align-items:center;align-self:stretch;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:0 var(--kritzel-controls-control-border-radius, 12px) var(--kritzel-controls-control-border-radius, 12px) 0;color:inherit;width:0;padding:0;opacity:0;overflow:hidden;pointer-events:none;transition:width 0.15s ease-out, padding 0.15s ease-out, opacity 0.15s ease-out}.kritzel-control-split .kritzel-control-dropdown.visible{width:auto;padding:0 6px;opacity:1;pointer-events:auto}.kritzel-control-split .kritzel-control-main:focus,.kritzel-control-split .kritzel-control-main:hover,.kritzel-control-split .kritzel-control-dropdown:focus,.kritzel-control-split .kritzel-control-dropdown:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control-split .kritzel-control-main:active,.kritzel-control-split .kritzel-control-dropdown:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control-split.selected{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control-split.selected .kritzel-control-main:hover,.kritzel-control-split.selected .kritzel-control-dropdown:hover{background-color:rgba(255, 255, 255, 0.15)}.kritzel-submenu-content{display:flex;flex-direction:column;min-width:140px}.kritzel-submenu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:8px;color:var(--kritzel-controls-control-color, #000000);font-size:14px;text-align:left;white-space:nowrap;-webkit-tap-highlight-color:transparent}.kritzel-submenu-item:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-submenu-item.active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF);color:var(--kritzel-controls-control-selected-color, #ffffff)}.kritzel-submenu-item.active:hover{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF)}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent;width:0;opacity:0;overflow:hidden;pointer-events:none;margin-left:calc(-1 * var(--kritzel-controls-gap, 8px));transition:width 0.2s ease-out, opacity 0.2s ease-out, margin-left 0.2s ease-out}.kritzel-config-container.visible{width:40px;opacity:1;pointer-events:auto;margin-left:0}.kritzel-config{display:flex;justify-content:center;align-items:center;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:50%}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.font-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{z-index:10001}";
289
+ const kritzelControlsCss = ":host{display:flex;flex-direction:column;user-select:none}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;font-weight:bold}.kritzel-control:focus,.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control.selected,.kritzel-control.selected:hover,.kritzel-control.selected:active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control.selected:focus{background-color:var(--kritzel-controls-control-selected-background-color, #007bffe3) !important}.kritzel-control-split{position:relative;display:flex;align-items:center;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:var(--kritzel-controls-control-color, #000000)}.kritzel-control-split .kritzel-control-main{display:flex;justify-content:center;align-items:center;padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:inherit}.kritzel-control-split.selected .kritzel-control-main{border-radius:var(--kritzel-controls-control-border-radius, 12px) 0 0 var(--kritzel-controls-control-border-radius, 12px)}.kritzel-control-split .kritzel-control-dropdown{display:flex;justify-content:center;align-items:center;align-self:stretch;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:0 var(--kritzel-controls-control-border-radius, 12px) var(--kritzel-controls-control-border-radius, 12px) 0;color:inherit;width:0;padding:0;opacity:0;overflow:hidden;pointer-events:none;transition:width 0.15s ease-out, padding 0.15s ease-out, opacity 0.15s ease-out}.kritzel-control-split .kritzel-control-dropdown.visible{width:auto;padding:0 6px;opacity:1;pointer-events:auto}.kritzel-control-split .kritzel-control-main:focus,.kritzel-control-split .kritzel-control-main:hover,.kritzel-control-split .kritzel-control-dropdown:focus,.kritzel-control-split .kritzel-control-dropdown:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control-split .kritzel-control-main:active,.kritzel-control-split .kritzel-control-dropdown:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control-split.selected{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control-split.selected .kritzel-control-main:hover,.kritzel-control-split.selected .kritzel-control-dropdown:hover{background-color:rgba(255, 255, 255, 0.15)}.kritzel-submenu-content{display:flex;flex-direction:column;gap:var(--kritzel-submenu-gap, 4px);min-width:140px}.kritzel-submenu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:8px;color:var(--kritzel-controls-control-color, #000000);font-size:14px;text-align:left;white-space:nowrap;-webkit-tap-highlight-color:transparent}.kritzel-submenu-item:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-submenu-item.active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF);color:var(--kritzel-controls-control-selected-color, #ffffff)}.kritzel-submenu-item.active:hover{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF)}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent;width:0;opacity:0;overflow:hidden;pointer-events:none;margin-left:calc(-1 * var(--kritzel-controls-gap, 8px));transition:width 0.2s ease-out, opacity 0.2s ease-out, margin-left 0.2s ease-out}.kritzel-config-container.visible{width:40px;opacity:1;pointer-events:auto;margin-left:0}.kritzel-config{display:flex;justify-content:center;align-items:center;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:50%}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.font-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{z-index:10001}";
290
290
 
291
291
  const KritzelControls = class {
292
292
  constructor(hostRef) {
@@ -432,13 +432,13 @@ const KritzelControls = class {
432
432
  render() {
433
433
  const hasConfigUI = this.activeControl?.tool instanceof defaultLineTool_config.KritzelBrushTool ||
434
434
  this.activeControl?.tool instanceof defaultLineTool_config.KritzelTextTool;
435
- return (index.h(index.Host, { key: '92696a0ac908d498211edcbe9b2b90c81aa28a4f', class: {
435
+ return (index.h(index.Host, { key: 'ed5816cbeb8fe8b91e14b23bf61df4753fb0da0f', class: {
436
436
  mobile: this.isTouchDevice,
437
- } }, this.isUtilityPanelVisible && (index.h("kritzel-utility-panel", { key: 'a75649503fa82aa173fd19c0558b4b54503ff4d6', style: {
437
+ } }, this.isUtilityPanelVisible && (index.h("kritzel-utility-panel", { key: '7218fff9c89f525baf655eea46aec1698a28babd', style: {
438
438
  position: 'absolute',
439
439
  bottom: '56px',
440
440
  left: '12px',
441
- }, undoState: this.undoState, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), index.h("div", { key: 'e45118f06606306309114470546c34a8b5afd8f7', class: "kritzel-controls" }, this.controls.map(control => {
441
+ }, undoState: this.undoState, onUndo: () => this.kritzelEngine?.undo(), onRedo: () => this.kritzelEngine?.redo(), onDelete: () => this.kritzelEngine?.delete() })), index.h("div", { key: '1dc0fa7b02a953474aae9c7822c651d5006e89e5', class: "kritzel-controls" }, this.controls.map(control => {
442
442
  if (control.type === 'tool') {
443
443
  // Check if this control has sub-options (split-button)
444
444
  if (control.subOptions?.length) {
@@ -554,7 +554,7 @@ const KritzelCursorTrail = class {
554
554
  }
555
555
  }
556
556
  render() {
557
- return (index.h(index.Host, { key: '2bbe2e331555476316c4460ff64fae7a955eee3d' }, this.cursorTrailPoints.length > 1 && (index.h("svg", { key: '78a354686ff624afba1a3c31df02dbefaf295d4b', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
557
+ return (index.h(index.Host, { key: '556238ffd7eeda2d400039333a37853ebfcca1b6' }, this.cursorTrailPoints.length > 1 && (index.h("svg", { key: 'a3f451cc9f142f018d0025eb7a68c1bdff5fc0d9', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
558
558
  position: 'absolute',
559
559
  left: '0',
560
560
  top: '0',
@@ -577,13 +577,14 @@ const KritzelCursorTrail = class {
577
577
  };
578
578
  KritzelCursorTrail.style = kritzelCursorTrailCss;
579
579
 
580
- const kritzelDropdownCss = ":host{display:inline-flex;vertical-align:middle;width:100%;}.dropdown-wrapper{display:flex;align-items:center;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);overflow:hidden;height:32px;width:100%}.custom-select{padding:0 8px;padding-right:30px;height:100%;width:100%;box-sizing:border-box;border-radius:0;border:none;background-color:#fff;cursor:var(--kritzel-pointer-cursor, pointer);outline:none;font-size:inherit;color:var(--kritzel-controls-text-color, #333333);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23333333\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"6 9 12 15 18 9\"/></svg>');background-size:16px 16px;background-repeat:no-repeat;background-position:right 8px center}.custom-select.has-suffix-border{border-right:1px solid #333333}.custom-select.has-prefix-border{border-left:1px solid #333333}::slotted(*){height:100%;box-sizing:border-box}";
580
+ const kritzelDropdownCss = ":host{display:inline-flex;vertical-align:middle;width:100%;position:relative}.dropdown-wrapper{display:flex;align-items:center;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);overflow:visible;height:32px;width:100%;position:relative}.dropdown-container{flex:1;height:100%;min-width:0}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;height:100%;width:100%;box-sizing:border-box;border-radius:var(--kritzel-controls-control-border-radius, 12px);border:none;background-color:#fff;cursor:var(--kritzel-pointer-cursor, pointer);outline:none;font-size:inherit;font-family:inherit;color:var(--kritzel-controls-text-color, #333333);-webkit-tap-highlight-color:transparent;text-align:left}.dropdown-trigger:focus-visible{outline:2px solid var(--kritzel-controls-focus-color, #0066cc);outline-offset:-2px}.dropdown-trigger.has-suffix-border{border-right:1px solid #333333;border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-trigger.has-prefix-border{border-left:1px solid #333333;border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dropdown-trigger-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform 0.2s ease}.dropdown-trigger-arrow svg{width:100%;height:100%}.dropdown-trigger.is-open .dropdown-trigger-arrow{transform:rotate(180deg)}.dropdown-trigger.is-open.open-up .dropdown-trigger-arrow{transform:rotate(0deg)}.dropdown-menu{position:absolute;left:0;right:0;margin:0;padding:4px 0;list-style:none;background-color:#fff;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);z-index:1000;max-height:240px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;outline:none}.dropdown-menu.open-down{top:calc(100% + 4px);bottom:auto;transform:translateY(-8px)}.dropdown-menu.open-up{bottom:calc(100% + 4px);top:auto;transform:translateY(8px)}.dropdown-menu.is-open{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu.open-up{box-shadow:0 -4px 12px rgba(0, 0, 0, 0.15)}.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;cursor:var(--kritzel-pointer-cursor, pointer);color:var(--kritzel-controls-text-color, #333333);transition:background-color 0.1s ease;-webkit-tap-highlight-color:transparent}.dropdown-option.is-focused{background-color:var(--kritzel-controls-hover-bg, #f0f0f0)}.dropdown-option.is-selected{font-weight:600}.dropdown-option-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--kritzel-controls-accent-color, #0066cc)}.dropdown-option-check svg{width:100%;height:100%}.dropdown-menu::-webkit-scrollbar{width:6px}.dropdown-menu::-webkit-scrollbar-track{background:transparent}.dropdown-menu::-webkit-scrollbar-thumb{background-color:rgba(0, 0, 0, 0.2);border-radius:3px}.dropdown-menu::-webkit-scrollbar-thumb:hover{background-color:rgba(0, 0, 0, 0.3)}::slotted(*){height:100%;box-sizing:border-box}";
581
581
 
582
582
  const KritzelDropdown = class {
583
583
  constructor(hostRef) {
584
584
  index.registerInstance(this, hostRef);
585
585
  this.valueChanged = index.createEvent(this, "valueChanged");
586
586
  }
587
+ get el() { return index.getElement(this); }
587
588
  options = [];
588
589
  optionsChanged() {
589
590
  this.updateInternalValue(this.internalValue, true);
@@ -599,14 +600,33 @@ const KritzelDropdown = class {
599
600
  internalValue;
600
601
  hasSuffixContent = false;
601
602
  hasPrefixContent = false;
603
+ isOpen = false;
604
+ focusedIndex = -1;
605
+ openDirection = 'down';
602
606
  valueChanged;
603
607
  suffixSlotElement;
604
608
  prefixSlotElement;
609
+ triggerElement;
610
+ menuElement;
611
+ wrapperElement;
605
612
  componentWillLoad() {
606
613
  this.updateInternalValue(this.value, false);
607
614
  this.evaluateSuffixContent();
608
615
  this.evaluatePrefixContent();
609
616
  }
617
+ handleDocumentClick(event) {
618
+ if (this.isOpen && !this.el.contains(event.target)) {
619
+ this.closeMenu();
620
+ }
621
+ }
622
+ handleDocumentKeydown(event) {
623
+ if (this.isOpen && event.key === 'Escape') {
624
+ event.stopPropagation();
625
+ event.preventDefault();
626
+ this.closeMenu();
627
+ this.triggerElement?.focus();
628
+ }
629
+ }
610
630
  updateInternalValue(proposedValue, emitChange) {
611
631
  let finalValue = proposedValue;
612
632
  if (this.options && this.options.length > 0) {
@@ -625,12 +645,119 @@ const KritzelDropdown = class {
625
645
  }
626
646
  }
627
647
  }
628
- handleSelectChange = (event) => {
629
- const newValue = event.target.value;
630
- if (this.internalValue !== newValue) {
631
- this.internalValue = newValue;
648
+ toggleMenu = () => {
649
+ if (this.isOpen) {
650
+ this.closeMenu();
651
+ }
652
+ else {
653
+ this.openMenu();
654
+ }
655
+ };
656
+ openMenu = () => {
657
+ this.calculateMenuDirection();
658
+ this.isOpen = true;
659
+ const currentIndex = this.options.findIndex(opt => opt.value === this.internalValue);
660
+ this.focusedIndex = currentIndex >= 0 ? currentIndex : 0;
661
+ // Focus the menu after it opens
662
+ requestAnimationFrame(() => {
663
+ this.menuElement?.focus();
664
+ });
665
+ };
666
+ calculateMenuDirection = () => {
667
+ if (!this.wrapperElement) {
668
+ this.openDirection = 'down';
669
+ return;
670
+ }
671
+ const wrapperRect = this.wrapperElement.getBoundingClientRect();
672
+ const viewportHeight = window.innerHeight;
673
+ const spaceBelow = viewportHeight - wrapperRect.bottom;
674
+ const spaceAbove = wrapperRect.top;
675
+ // Estimate menu height (max 240px or fewer based on options)
676
+ const estimatedOptionHeight = 36; // padding + content
677
+ const menuPadding = 8; // 4px top + 4px bottom
678
+ const estimatedMenuHeight = Math.min(240, this.options.length * estimatedOptionHeight + menuPadding);
679
+ // Prefer opening downward, but switch to upward if not enough space below
680
+ // and there's more space above
681
+ if (spaceBelow < estimatedMenuHeight && spaceAbove > spaceBelow) {
682
+ this.openDirection = 'up';
683
+ }
684
+ else {
685
+ this.openDirection = 'down';
686
+ }
687
+ };
688
+ closeMenu = () => {
689
+ this.isOpen = false;
690
+ this.focusedIndex = -1;
691
+ // Note: openDirection is intentionally NOT reset here to allow the close animation
692
+ // to play in the same direction the menu was opened
693
+ };
694
+ selectOption = (option) => {
695
+ if (this.internalValue !== option.value) {
696
+ this.internalValue = option.value;
632
697
  this.valueChanged.emit(this.internalValue);
633
698
  }
699
+ this.closeMenu();
700
+ this.triggerElement?.focus();
701
+ };
702
+ handleTriggerKeyDown = (event) => {
703
+ switch (event.key) {
704
+ case 'Enter':
705
+ case ' ':
706
+ case 'ArrowDown':
707
+ case 'ArrowUp':
708
+ event.preventDefault();
709
+ this.openMenu();
710
+ break;
711
+ }
712
+ };
713
+ handleMenuKeyDown = (event) => {
714
+ switch (event.key) {
715
+ case 'ArrowDown':
716
+ event.preventDefault();
717
+ this.focusedIndex = Math.min(this.focusedIndex + 1, this.options.length - 1);
718
+ this.scrollFocusedOptionIntoView();
719
+ break;
720
+ case 'ArrowUp':
721
+ event.preventDefault();
722
+ this.focusedIndex = Math.max(this.focusedIndex - 1, 0);
723
+ this.scrollFocusedOptionIntoView();
724
+ break;
725
+ case 'Enter':
726
+ case ' ':
727
+ event.preventDefault();
728
+ if (this.focusedIndex >= 0 && this.focusedIndex < this.options.length) {
729
+ this.selectOption(this.options[this.focusedIndex]);
730
+ }
731
+ break;
732
+ case 'Home':
733
+ event.preventDefault();
734
+ this.focusedIndex = 0;
735
+ this.scrollFocusedOptionIntoView();
736
+ break;
737
+ case 'End':
738
+ event.preventDefault();
739
+ this.focusedIndex = this.options.length - 1;
740
+ this.scrollFocusedOptionIntoView();
741
+ break;
742
+ case 'Tab':
743
+ this.closeMenu();
744
+ break;
745
+ }
746
+ };
747
+ scrollFocusedOptionIntoView = () => {
748
+ if (!this.menuElement || this.focusedIndex < 0) {
749
+ return;
750
+ }
751
+ // Use requestAnimationFrame to ensure the DOM has updated with the new focused class
752
+ requestAnimationFrame(() => {
753
+ const focusedOption = this.menuElement?.querySelector('.dropdown-option.is-focused');
754
+ if (focusedOption) {
755
+ focusedOption.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
756
+ }
757
+ });
758
+ };
759
+ handleOptionMouseEnter = (index) => {
760
+ this.focusedIndex = index;
634
761
  };
635
762
  evaluateSuffixContent = () => {
636
763
  if (this.suffixSlotElement) {
@@ -639,10 +766,8 @@ const KritzelDropdown = class {
639
766
  this.hasSuffixContent = newHasContent;
640
767
  }
641
768
  }
642
- else {
643
- if (this.hasSuffixContent !== false) {
644
- this.hasSuffixContent = false;
645
- }
769
+ else if (this.hasSuffixContent !== false) {
770
+ this.hasSuffixContent = false;
646
771
  }
647
772
  };
648
773
  evaluatePrefixContent = () => {
@@ -652,19 +777,42 @@ const KritzelDropdown = class {
652
777
  this.hasPrefixContent = newHasContent;
653
778
  }
654
779
  }
655
- else {
656
- if (this.hasPrefixContent !== false) {
657
- this.hasPrefixContent = false;
658
- }
780
+ else if (this.hasPrefixContent !== false) {
781
+ this.hasPrefixContent = false;
659
782
  }
660
783
  };
784
+ getSelectedLabel() {
785
+ const selectedOption = this.options.find(opt => opt.value === this.internalValue);
786
+ return selectedOption?.label ?? '';
787
+ }
788
+ getSelectedStyle() {
789
+ const selectedOption = this.options.find(opt => opt.value === this.internalValue);
790
+ return selectedOption?.style;
791
+ }
661
792
  render() {
662
- const selectClasses = {
663
- 'custom-select': true,
793
+ const triggerClasses = {
794
+ 'dropdown-trigger': true,
664
795
  'has-suffix-border': this.hasSuffixContent,
665
796
  'has-prefix-border': this.hasPrefixContent,
797
+ 'is-open': this.isOpen,
798
+ 'open-up': this.openDirection === 'up',
666
799
  };
667
- return (index.h(index.Host, { key: 'f24911715685ced571843ba7be6631248c8519b7' }, index.h("div", { key: '520fdb74afdef8bd5228f76074e51981f44b910d', class: "dropdown-wrapper" }, index.h("slot", { key: 'cf6628437946b57ad0b27c066639e0b64b5a28f8', name: "prefix", ref: el => (this.prefixSlotElement = el), onSlotchange: this.evaluatePrefixContent }), index.h("select", { key: '3203ccd5b9c8b84e8f41bddfcb07786e879f0035', class: selectClasses, style: { ...this.selectStyles, width: this.width }, onInput: this.handleSelectChange }, this.options.map(option => (index.h("option", { value: option.value, style: option.style, selected: option.value === this.internalValue }, option.label)))), index.h("slot", { key: 'd0abb52e082db81860c09d2c48b7c065adb406f3', name: "suffix", ref: el => (this.suffixSlotElement = el), onSlotchange: this.evaluateSuffixContent }))));
800
+ const menuClasses = {
801
+ 'dropdown-menu': true,
802
+ 'is-open': this.isOpen,
803
+ 'open-up': this.openDirection === 'up',
804
+ 'open-down': this.openDirection === 'down',
805
+ };
806
+ return (index.h(index.Host, { key: '29d076eb2ef76527c0930ab82ace0d05c896ab6c' }, index.h("div", { key: '1afac5cc0b7f408849670b8cb62fe0bd0f3b27f1', class: "dropdown-wrapper", ref: el => (this.wrapperElement = el) }, index.h("slot", { key: '3cfcf787c3b3eedbd6bf30c7506a0a4912429672', name: "prefix", ref: el => (this.prefixSlotElement = el), onSlotchange: this.evaluatePrefixContent }), index.h("div", { key: 'b88120ed3e44871220e6ba61e8bef457651a2086', class: "dropdown-container", style: { width: this.width } }, index.h("button", { key: '79082189066f3d0b4f5797420ec222847792fe52', type: "button", class: triggerClasses, style: { ...this.selectStyles, ...this.getSelectedStyle() }, onClick: this.toggleMenu, onKeyDown: this.handleTriggerKeyDown, "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', ref: el => (this.triggerElement = el) }, index.h("span", { key: 'a490bb6689ec1820144fe82f6833bee82e6ead0e', class: "dropdown-trigger-label" }, this.getSelectedLabel()), index.h("span", { key: '8bd7768f6fdd3c507bbca54d7d135adabe04901f', class: "dropdown-trigger-arrow", "aria-hidden": "true" }, index.h("svg", { key: 'e1b854d2c93e3067181108f8d782e1393ddb615c', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("polyline", { key: '3622cbf8964f4e50aa55be5209240dfd252f1d84', points: "6 9 12 15 18 9" }))))), index.h("slot", { key: 'b91317736904cbeee0f87058b822bd77c6b163ca', name: "suffix", ref: el => (this.suffixSlotElement = el), onSlotchange: this.evaluateSuffixContent }), index.h("ul", { key: '0ca8690345974e9b7ad184f4c7ab7cf5367b183c', class: menuClasses, role: "listbox", tabindex: "-1", onKeyDown: this.handleMenuKeyDown, ref: el => (this.menuElement = el) }, this.options.map((option, index$1) => {
807
+ const isSelected = option.value === this.internalValue;
808
+ const isFocused = index$1 === this.focusedIndex;
809
+ const optionClasses = {
810
+ 'dropdown-option': true,
811
+ 'is-selected': isSelected,
812
+ 'is-focused': isFocused,
813
+ };
814
+ return (index.h("li", { class: optionClasses, role: "option", "aria-selected": isSelected ? 'true' : 'false', style: option.style, onClick: () => this.selectOption(option), onMouseEnter: () => this.handleOptionMouseEnter(index$1) }, option.label, isSelected && (index.h("span", { class: "dropdown-option-check", "aria-hidden": "true" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("polyline", { points: "20 6 9 17 4 12" }))))));
815
+ })))));
668
816
  }
669
817
  static get watchers() { return {
670
818
  "options": ["optionsChanged"],
@@ -1522,7 +1670,7 @@ const KritzelEditor = class {
1522
1670
  }
1523
1671
  }
1524
1672
  render() {
1525
- return (index.h(index.Host, { key: '497c7c69759c966dd2132007d80c5c772258a6c9' }, index.h("kritzel-workspace-manager", { key: '169e10c9b338283e1be32868aa0e354e7a149749', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), index.h("kritzel-engine", { key: 'c8cf58aa8bfc9a5d4a2e4a4499c60938b0d55758', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, syncConfig: this.syncConfig, scaleMax: this.scaleMax, scaleMin: this.scaleMin, 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) }), index.h("kritzel-controls", { key: '68f2bce210dab937080618a2a4f069bf8103449f', 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, onIsControlsReady: () => (this.isControlsReady = true) })));
1673
+ return (index.h(index.Host, { key: 'dd67bea86f807f0ccd5905183e73713a015d6bee' }, index.h("kritzel-workspace-manager", { key: '557edc7e3a131d338be6df91698ba6923e7bc50e', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), index.h("kritzel-engine", { key: '98969d0f2bb5a9a365885fb4765e0c04c1394caa', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, syncConfig: this.syncConfig, scaleMax: this.scaleMax, scaleMin: this.scaleMin, 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) }), index.h("kritzel-controls", { key: '6092f393562af07643622c07d432f6100497aaf0', 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, onIsControlsReady: () => (this.isControlsReady = true) })));
1526
1674
  }
1527
1675
  static get watchers() { return {
1528
1676
  "isEngineReady": ["onIsEngineReady"],
@@ -20978,7 +21126,7 @@ const KritzelEngine = class {
20978
21126
  };
20979
21127
  const visibleObjects = this.core.store.state.objects.query(viewportBounds).sort((a, b) => a.zIndex - b.zIndex);
20980
21128
  this.core.cursorManager.applyCursor();
20981
- return (index.h(index.Host, { key: 'd0f13eb1d34a6edcba439a501edbaab1875112f1' }, this.core.store.state.debugInfo.showViewportInfo && (index.h("div", { key: 'f722474cfd43ab13e306cea908871af77015d015', class: "debug-panel" }, index.h("div", { key: 'efd483bc92223d78f6a0f661a1911820de83682a' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), index.h("div", { key: '37c213c1e3d57cb79ccb99ff65404fa3e03f07e0' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), index.h("div", { key: '68bcdc9e10d89a6a4284dbdc11d679f6c8bed6df' }, "TranslateX: ", this.core.store.state?.translateX), index.h("div", { key: 'c653966e412a801d536bfdcf8ab79176376693a5' }, "TranslateY: ", this.core.store.state?.translateY), index.h("div", { key: 'db83b7d58514296daa1465926867d099df6988f9' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), index.h("div", { key: '1f15e3edec3165920207ba8f1b2886aa72049d08' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), index.h("div", { key: 'c4e468e3c602f1fd62d4b13de1ec39dd1302768f' }, "PointerCount: ", this.core.store.state.pointers.size), index.h("div", { key: '8eae67aac27495a611ba125e029473119665bb7e' }, "Scale: ", this.core.store.state?.scale), index.h("div", { key: '8b22934652db52d915cb21f48f8340ceb2fe1327' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), index.h("div", { key: 'd4d1872b8e1c33f0925a2f3cfcf4bc652cc5637e' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), index.h("div", { key: '76fc159e2f38324248db21cab17fe76dd7add144' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), index.h("div", { key: 'aa5a5a7c5faac899492f9c87cb9bf5cf960329cb' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), index.h("div", { key: '21d4d43e7fc91a187055906c9f38529407f4ec6f' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), index.h("div", { key: 'b43ba7bafd3ac52f5622e7d980456e7cbf5ff0fb' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), index.h("div", { key: 'ecf9749bf4eece2970a62230d323fc205ce62fed' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), index.h("div", { key: '6f9c7b7fa357f86c05aa76c02428ab0584856f3d' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), index.h("div", { key: '7b61ed971fd7b4a029204861b19677421c049a33' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), index.h("div", { key: '875ed8cdf18b46c362b6b0c331a8f9fcba6bc1e2' }, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), index.h("div", { key: 'f56f27eff2c7e715528a32b4fe874da5220bc1ef' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), index.h("div", { key: '7831c3571031b029766b0fa16fe2b0e29e8c19b5' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), index.h("div", { key: 'd4167e465da2f690b9d1f6d3cb8778f4a618843f' }, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), index.h("div", { key: '00dfeba01da344a0e3c40f2f92ca539ef59d5da5' }, "PointerX: ", this.core.store.state?.pointerX), index.h("div", { key: '30948e66636501df9863caa67da468d45517a44f' }, "PointerY: ", this.core.store.state?.pointerY), index.h("div", { key: '9ee2c0bb69e9a150b7ab7c0ca9881897b5ec2a72' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), index.h("div", { key: '9d470ca319b0c32de7565c46b28c6483d4b9c1cb' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), index.h("div", { key: '4eaaf1e928e62c872b354523e55f33f01c25c5e7', id: "origin", class: "origin", style: {
21129
+ return (index.h(index.Host, { key: 'cf63f71e5ab763750f0857595a6b2d56e99b29fd' }, this.core.store.state.debugInfo.showViewportInfo && (index.h("div", { key: 'cf6d5221edb666692bbed086d1fa5bb57f591442', class: "debug-panel" }, index.h("div", { key: 'd1e94a59352063d08412c13bee8632b468229431' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), index.h("div", { key: '0eeff49b2c3bd703ef3b0fa574a323822ecef8a3' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), index.h("div", { key: '884aaab5f8c10a21541139cbc1c824a80233c7bb' }, "TranslateX: ", this.core.store.state?.translateX), index.h("div", { key: '6633c2b83830bc5091825b9c51af2aa82fbc935e' }, "TranslateY: ", this.core.store.state?.translateY), index.h("div", { key: '905bf21fed43acbada2e5d18dd9eb33979d368a4' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), index.h("div", { key: 'd2abcda891791cee5386fe065de9b781c2db2e0a' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), index.h("div", { key: '9f64a19ac4510a2eae4d605dfdbb9a855b001b19' }, "PointerCount: ", this.core.store.state.pointers.size), index.h("div", { key: '25634969756ec8505e2b169c4f8f77fa5260932a' }, "Scale: ", this.core.store.state?.scale), index.h("div", { key: '2aea36a0521a5e59154836da290e7c615e4dc36d' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), index.h("div", { key: '599bafe7e87b23df191849ad23f56eea0009272f' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), index.h("div", { key: 'd5e466d0b64b0f64a808dc8f08dba21530579a49' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), index.h("div", { key: '6143b384caa285cd850111b3d6d3fe95f3a468db' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), index.h("div", { key: '5695722e2e07e024fe1b5db1be22c890fa16b7d9' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), index.h("div", { key: '93c2d1a6669b397637d6918055fc14c96493cc65' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), index.h("div", { key: '2245f5894f7460d9d31ee33125260334920c6847' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), index.h("div", { key: '57fd33a984b7975198d87285658ec4de2824aa34' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), index.h("div", { key: '257cc4badaa694f04c839ca68ee79d1b695a006b' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), index.h("div", { key: 'c00f461af4e4b1523e7e5feccfb0abfc6d45f5b7' }, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), index.h("div", { key: '3f1bd888dfa360153b930fc5e498ccb348879d81' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), index.h("div", { key: '4b33ce03143d6f96e359bc0a21697a3788fa6d3e' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), index.h("div", { key: 'd603a0a226357378889c87d1bda5dd194388a81c' }, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), index.h("div", { key: 'e0cb4c098e14c44c7c4d96a35f75a609a5d83144' }, "PointerX: ", this.core.store.state?.pointerX), index.h("div", { key: 'd663eff93d7884aa36da56a46e06cb65f0b14c54' }, "PointerY: ", this.core.store.state?.pointerY), index.h("div", { key: 'fe44809fc10454d605bad012300e8a46a8f180c9' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), index.h("div", { key: 'd69d570660f6ec9d37d842f24f61e534d4f349e1' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), index.h("div", { key: 'aa6674f91511007c52f7faba849dd82f206e20ed', id: "origin", class: "origin", style: {
20982
21130
  transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
20983
21131
  } }, visibleObjects?.map(object => {
20984
21132
  return (index.h("div", { key: object.id, style: {
@@ -21227,7 +21375,7 @@ const KritzelEngine = class {
21227
21375
  stroke: 'var(--kritzel-snap-indicator-stroke, #3b82f6)',
21228
21376
  strokeWidth: data.indicatorStrokeWidth,
21229
21377
  } }))));
21230
- })()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: 'f726cabc77f66c24618dc0b54cca8bd681608dde', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
21378
+ })()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: '95f98d34b26eca7124f973002c2689e9a90f6748', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
21231
21379
  position: 'fixed',
21232
21380
  left: `${this.core.store.state.contextMenuX}px`,
21233
21381
  top: `${this.core.store.state.contextMenuY}px`,
@@ -21238,7 +21386,7 @@ const KritzelEngine = class {
21238
21386
  y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
21239
21387
  }, this.core.store.selectionGroup?.objects);
21240
21388
  this.hideContextMenu();
21241
- }, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: 'bf42f27e52c03f9d00a5459883ac45ed39bb1dcd', core: this.core })));
21389
+ }, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '412f67f0a484b7f5e37a4e9fa25d9124c389f62b', core: this.core })));
21242
21390
  }
21243
21391
  static get watchers() { return {
21244
21392
  "workspace": ["onWorkspaceChange"],
@@ -21259,7 +21407,7 @@ const KritzelFont = class {
21259
21407
  size = 24;
21260
21408
  color = '#000000';
21261
21409
  render() {
21262
- return (index.h(index.Host, { key: '23b744f73bf860a53c554ade7d3e9d3eb281caac' }, index.h("div", { key: '7bfc9dadff6ccfbdf3990830423f92eff8580a54', class: "font-preview", style: {
21410
+ return (index.h(index.Host, { key: '62d0314df8f62ef2cf21c17f548261b34611750f' }, index.h("div", { key: '269347c138aab38cb1f018e58db78cab8e087f13', class: "font-preview", style: {
21263
21411
  fontFamily: this.fontFamily,
21264
21412
  fontSize: `${this.size}px`,
21265
21413
  color: this.color
@@ -21306,7 +21454,7 @@ const KritzelFontFamily = class {
21306
21454
  label: option.label,
21307
21455
  style: { fontFamily: option.value },
21308
21456
  }));
21309
- return (index.h(index.Host, { key: '5c31315857fa29e0d7c3dac2b7911a244467a052' }, index.h("kritzel-dropdown", { key: '05abce1f973cd49ef8c7ddc198545ec63d6ac249', options: dropdownOptions, value: this.selectedFontFamily, onValueChanged: this.handleDropdownValueChange, selectStyles: { fontFamily: this.selectedFontFamily } }, index.h("button", { key: 'd5c99c0277eeb40f7a0ce29ffb013768125d7fd2', class: "font-style-button", slot: "suffix" }, "B"), index.h("button", { key: 'db9348b72cd65b047994dba6c898bf6517d0358b', class: "font-style-button italic-text", slot: "suffix" }, "I"))));
21457
+ return (index.h(index.Host, { key: '74f27d2d9f73ee8589448a24bed64e885ef6d2d8' }, index.h("kritzel-dropdown", { key: '58abc26a54b124f253841faaa4ca4227a23baac2', options: dropdownOptions, value: this.selectedFontFamily, onValueChanged: this.handleDropdownValueChange, selectStyles: { fontFamily: this.selectedFontFamily } })));
21310
21458
  }
21311
21459
  };
21312
21460
  KritzelFontFamily.style = kritzelFontFamilyCss;
@@ -21327,7 +21475,7 @@ const KritzelFontSize = class {
21327
21475
  this.sizeChange.emit(size);
21328
21476
  }
21329
21477
  render() {
21330
- return (index.h(index.Host, { key: 'd20034d67eb857065dca11d96074fdf4234c0ef4' }, this.sizes.map(size => (index.h("div", { class: {
21478
+ return (index.h(index.Host, { key: 'd48d35191f7e9bd0b98f537a7dc298bcfd362c0b' }, this.sizes.map(size => (index.h("div", { class: {
21331
21479
  'size-container': true,
21332
21480
  'selected': this.selectedSize === size,
21333
21481
  }, onClick: () => this.handleSizeClick(size) }, index.h("kritzel-font", { fontFamily: this.fontFamily, size: size }))))));
@@ -21422,7 +21570,7 @@ const KritzelMenu = class {
21422
21570
  this.itemCloseChildMenu.emit(event.detail);
21423
21571
  };
21424
21572
  render() {
21425
- return (index.h(index.Host, { key: 'c4b9a602cefcbd0a100f5f1c4a273220d59ead17', tabIndex: 0, onClick: e => e.stopPropagation() }, this.openChildMenuItem && index.h("div", { key: '530ce19ac1aada15260ac5ed2c95c20b202bb94a', class: "has-open-child-overlay", onClick: this.onOverlayClick }), this.items.map(item => (index.h("kritzel-menu-item", { key: item.id, item: item, parent: this.parent, style: { pointerEvents: this.editingMenuItem && !item.isEditing ? 'none' : 'auto' }, onItemSelect: this.handleItemSelect, onItemSave: this.handleSave, onItemCancel: this.handleCancel, onItemToggleChildMenu: this.handleToggleChildMenu, onItemCloseChildMenu: this.handleCloseChildMenu })))));
21573
+ return (index.h(index.Host, { key: '3901d38f620a544be329e1a20b17b188a81295dc', tabIndex: 0, onClick: e => e.stopPropagation() }, this.openChildMenuItem && index.h("div", { key: '8804023760f43fa34c3ac3f1829439f6136112b9', class: "has-open-child-overlay", onClick: this.onOverlayClick }), this.items.map(item => (index.h("kritzel-menu-item", { key: item.id, item: item, parent: this.parent, style: { pointerEvents: this.editingMenuItem && !item.isEditing ? 'none' : 'auto' }, onItemSelect: this.handleItemSelect, onItemSave: this.handleSave, onItemCancel: this.handleCancel, onItemToggleChildMenu: this.handleToggleChildMenu, onItemCloseChildMenu: this.handleCloseChildMenu })))));
21426
21574
  }
21427
21575
  };
21428
21576
  KritzelMenu.style = kritzelMenuCss;
@@ -21523,12 +21671,12 @@ const KritzelMenuItem = class {
21523
21671
  ];
21524
21672
  }
21525
21673
  render() {
21526
- return (index.h(index.Host, { key: '7e1c4957d32429f235cb0f5a71fe3e0d2ca52934', tabIndex: this.item.isDisabled ? -1 : 0, class: {
21674
+ return (index.h(index.Host, { key: '3a8119288e14c4de188663910a58e0ba67b47614', tabIndex: this.item.isDisabled ? -1 : 0, class: {
21527
21675
  'selected': this.item.isSelected,
21528
21676
  'editing': this.item.isEditing,
21529
21677
  'disabled': this.item.isDisabled,
21530
21678
  'child-open': this.item.isChildMenuOpen,
21531
- }, onClick: this.handleItemSelect }, index.h("div", { key: '2e478e0ee73b11aaca57b56c25fdbeaa449a543e', class: "menu-item-overlay" }), this.item.isEditing ? this.renderEditMode() : this.renderViewMode()));
21679
+ }, onClick: this.handleItemSelect }, index.h("div", { key: 'b5dadbff0a915fb032f4a22207683667363eba1d', class: "menu-item-overlay" }), this.item.isEditing ? this.renderEditMode() : this.renderViewMode()));
21532
21680
  }
21533
21681
  static get watchers() { return {
21534
21682
  "item": ["onItemChange"]
@@ -21792,7 +21940,7 @@ const KritzelPortal = class {
21792
21940
  this.portal.style.left = `${left}px`;
21793
21941
  }
21794
21942
  render() {
21795
- return (index.h(index.Host, { key: 'aa7399f8a2e744eaa89e881bc9e710bd8a0c6c53', style: { display: this.anchor ? 'block' : 'none' } }, index.h("slot", { key: 'df4d8446cf770dfd98476d19c6b18511e2531574' })));
21943
+ return (index.h(index.Host, { key: '9706a815c6f49853983a0fdb68b097d62e65e90b', style: { display: this.anchor ? 'block' : 'none' } }, index.h("slot", { key: '1bd76deeb440cd25e3895dc8824f5200461e4ae0' })));
21796
21944
  }
21797
21945
  static get watchers() { return {
21798
21946
  "anchor": ["anchorChanged"]
@@ -21892,7 +22040,7 @@ const KritzelSplitButton = class {
21892
22040
  this.menuScrollTop = event.target.scrollTop;
21893
22041
  };
21894
22042
  render() {
21895
- return (index.h(index.Host, { key: '3603874994e8a9d666448460d7e403252d38f799', class: { mobile: this.isTouchDevice } }, index.h("button", { key: 'a6a2f8cd22118f7be668f3fd1fc52e38c44b22b3', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled }, this.buttonIcon && index.h("kritzel-icon", { key: 'e61abf53a2890b6587746eb2aef5a813e81ff1b9', name: this.buttonIcon })), index.h("div", { key: '17f78d85b2fbd0fe6e7925e10c2531c51bcfdf41', class: "split-divider" }), index.h("button", { key: 'ac507c76479d66e3483ee898e144a6bea4e8cf6a', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled }, index.h("kritzel-icon", { key: '8274be53e327d537c2987bc9a3761bc768bdd41f', name: this.dropdownIcon })), index.h("kritzel-portal", { key: '71136ef798f3c77cff30426a0fcd4ff91bf312b8', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, index.h("kritzel-menu", { key: 'd1363d2029d7b4aafbd6cba9a4ca6cdf617064e9', ref: el => (this.menuRef = el), items: this.items, onItemSelect: this.handleItemSelect, onItemSave: this.handleItemSave, onItemCancel: this.handleItemCancel, onItemToggleChildMenu: this.handleItemToggleChildMenu, onItemCloseChildMenu: this.handleItemCloseChildMenu, onClose: this.closeMenu, onScroll: this.handleScroll }))));
22043
+ return (index.h(index.Host, { key: 'a5587085e47c4e33148f9d0817731bfa3aa804b6', class: { mobile: this.isTouchDevice } }, index.h("button", { key: 'd3815785bb0919e2385bc7b9b0812466ed2b45a3', class: "split-main-button", tabIndex: 0, onClick: this.handleButtonClick, disabled: this.mainButtonDisabled }, this.buttonIcon && index.h("kritzel-icon", { key: 'b3225e1966bd21e8d37590cb39c0922e46afdaa9', name: this.buttonIcon })), index.h("div", { key: '526a88ef833cae7d2c7749f2a4bd96bcd2210a56', class: "split-divider" }), index.h("button", { key: '2c3ee46806bc64edc1f89a97c5e76ec493822065', ref: el => (this.splitMenuButtonRef = el), class: "split-menu-button", tabIndex: 0, onClick: this.toggleMenu, disabled: this.menuButtonDisabled }, index.h("kritzel-icon", { key: 'c6204d8b14d8cefe9d6eff33af95b2a7ea9a6b7c', name: this.dropdownIcon })), index.h("kritzel-portal", { key: '07a5e9793484f79d9b4b1f9ae09503f762cb2580', anchor: this.anchorElement, offsetY: 4, onClose: this.closeMenu }, index.h("kritzel-menu", { key: '0cf7601fd43b846a69152f0fc6ab950ac108ebff', ref: el => (this.menuRef = el), items: this.items, onItemSelect: this.handleItemSelect, onItemSave: this.handleItemSave, onItemCancel: this.handleItemCancel, onItemToggleChildMenu: this.handleItemToggleChildMenu, onItemCloseChildMenu: this.handleItemCloseChildMenu, onClose: this.closeMenu, onScroll: this.handleScroll }))));
21896
22044
  }
21897
22045
  };
21898
22046
  KritzelSplitButton.style = kritzelSplitButtonCss;
@@ -21912,7 +22060,7 @@ const KritzelStrokeSize = class {
21912
22060
  this.sizeChange.emit(size);
21913
22061
  }
21914
22062
  render() {
21915
- return (index.h(index.Host, { key: '7c9041e061a946f20210cff2330cb736c2703ac7' }, this.sizes.map(size => (index.h("div", { tabIndex: 0, class: {
22063
+ return (index.h(index.Host, { key: 'd204d14384367ca8847ad30cab9801788c8d8fac' }, this.sizes.map(size => (index.h("div", { tabIndex: 0, class: {
21916
22064
  'size-container': true,
21917
22065
  'selected': this.selectedSize === size,
21918
22066
  }, onClick: () => this.handleSizeClick(size) }, index.h("kritzel-color", { value: '#000000', size: size }))))));
@@ -21988,14 +22136,14 @@ const KritzelTooltip = class {
21988
22136
  }
21989
22137
  }
21990
22138
  render() {
21991
- return (index.h(index.Host, { key: 'b6e220084f7ce3eead25bf60cef965322f59f3e0', style: {
22139
+ return (index.h(index.Host, { key: 'c257f254b8ba6b95f251eac3136f5be282d23e30', style: {
21992
22140
  position: 'fixed',
21993
22141
  zIndex: '9999',
21994
22142
  transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
21995
22143
  visibility: this.isVisible ? 'visible' : 'hidden',
21996
22144
  left: `${this.positionX}px`,
21997
22145
  bottom: `${this.positionY}px`,
21998
- } }, index.h("div", { key: '0ab91fedc3301b0c42fa773607ce6aa335b73c2e', class: "tooltip-content", onClick: event => event.stopPropagation() }, index.h("slot", { key: 'bde0c798a393d006737c1d2c54660b6bbdace9e5' }))));
22146
+ } }, index.h("div", { key: '14f31dc995236a2309e2371ecef278a0e6374139', class: "tooltip-content", onClick: event => event.stopPropagation() }, index.h("slot", { key: '6dace4d6ed82878333f8771cf4670d53cea36873' }))));
21999
22147
  }
22000
22148
  };
22001
22149
  KritzelTooltip.style = kritzelTooltipCss;
@@ -22026,7 +22174,7 @@ const KritzelUtilityPanel = class {
22026
22174
  this.redo.emit();
22027
22175
  }
22028
22176
  render() {
22029
- return (index.h(index.Host, { key: '05ec19a2b644f00680139513c97650e6e7c612f2' }, index.h("button", { key: 'a62b621b7a1abe33fbf3fc0aa1f8e1d6c7ed8be3', class: "utility-button", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event) }, index.h("kritzel-icon", { key: 'ca8d0f9c9e5cebaf20ffc239602c4b4ce37b7e6b', name: "undo" })), index.h("button", { key: '7f1ba8b6ae3b8edf0ac0127fee30f3c070d47b44', class: "utility-button", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event) }, index.h("kritzel-icon", { key: '4680f7f9523fe6c17924662e025f5e6dfc3e9d78', name: "redo" })), index.h("div", { key: '77148d676ed708e4029b32e25a3daac628302478', class: "utility-separator" }), index.h("button", { key: 'b740674dc96d41c0b7b4d2cfb365d45c0f453a27', class: "utility-button" }, index.h("kritzel-icon", { key: '73d2ed9b6b400106521b0f53915e93516f9d3aad', name: "delete", onClick: () => this.delete.emit() }))));
22177
+ return (index.h(index.Host, { key: '998008f3c138f18d0e3f5183c3280e646e6c8e73' }, index.h("button", { key: '2ea58a2df20e038e00c0090c44714efbc1221314', class: "utility-button", disabled: !this.undoState?.canUndo, onClick: event => this.handleUndo(event) }, index.h("kritzel-icon", { key: '1843d211731f83f2f828b17f0bc0cf83a76705e1', name: "undo" })), index.h("button", { key: '71064186570d8e849a634a4c68e96f3fba1ebdab', class: "utility-button", disabled: !this.undoState?.canRedo, onClick: event => this.handleRedo(event) }, index.h("kritzel-icon", { key: '12694a6dcddc1f893752d3edcc1deafe700cff5c', name: "redo" })), index.h("div", { key: '5bbfb5e535d9e0a861d227df57bd5cc7ab8c22fb', class: "utility-separator" }), index.h("button", { key: 'fda95410a66afa98c0abf6eb82e323f926ef596a', class: "utility-button" }, index.h("kritzel-icon", { key: '0d1d77f6d65481825c2edbdb38de821a2de7b043', name: "delete", onClick: () => this.delete.emit() }))));
22030
22178
  }
22031
22179
  };
22032
22180
  KritzelUtilityPanel.style = kritzelUtilityPanelCss;
@@ -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-color_22.cjs",[[768,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"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],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"],"workspaces":["onWorkspacesChange"]}],[769,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[769,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[769,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"forceUpdate":[32],"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],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":["onWorkspaceChange"],"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"],"cursorTarget":["onCursorTargetChange"]}],[769,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[769,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[769,"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]}],[769,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":["onItemsChanged"]}],[769,"kritzel-utility-panel",{"undoState":[16]}],[769,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[769,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[769,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[769,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[769,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[769,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[769,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":["onItemChange"]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[8,"select-styles"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32]},null,{"options":["optionsChanged"],"value":["externalValueChanged"]}],[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"]}],[769,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[769,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
9
+ return index.bootstrapLazy([["kritzel-color_22.cjs",[[768,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"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],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"],"workspaces":["onWorkspacesChange"]}],[769,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[769,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[769,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"forceUpdate":[32],"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],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":["onWorkspaceChange"],"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"],"cursorTarget":["onCursorTargetChange"]}],[769,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[769,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[769,"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]}],[769,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":["onItemsChanged"]}],[769,"kritzel-utility-panel",{"undoState":[16]}],[769,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[769,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[769,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[769,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[769,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[769,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[769,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":["onItemChange"]}],[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"],"value":["externalValueChanged"]}],[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"]}],[769,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[769,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
10
10
  };
11
11
 
12
12
  exports.setNonce = index.setNonce;