kritzel-react 0.1.30 → 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.
Files changed (209) hide show
  1. package/dist/kritzel-react/lib/components/stencil-generated/components.js +122 -0
  2. package/dist/kritzel-react/lib/index.js +2 -0
  3. package/dist/kritzel-stencil/src/classes/core/core.class.js +797 -0
  4. package/dist/kritzel-stencil/src/classes/core/reviver.class.js +97 -0
  5. package/dist/kritzel-stencil/src/classes/core/store.class.js +153 -0
  6. package/dist/kritzel-stencil/src/classes/core/viewport.class.js +311 -0
  7. package/dist/kritzel-stencil/src/classes/core/workspace.class.js +34 -0
  8. package/dist/kritzel-stencil/src/classes/handlers/base.handler.js +6 -0
  9. package/dist/kritzel-stencil/src/classes/handlers/context-menu.handler.js +63 -0
  10. package/dist/kritzel-stencil/src/classes/handlers/hover.handler.js +18 -0
  11. package/dist/kritzel-stencil/src/classes/handlers/key.handler.js +76 -0
  12. package/dist/kritzel-stencil/src/classes/handlers/line-handle.handler.js +382 -0
  13. package/dist/kritzel-stencil/src/classes/handlers/move.handler.js +213 -0
  14. package/dist/kritzel-stencil/src/classes/handlers/resize.handler.js +205 -0
  15. package/dist/kritzel-stencil/src/classes/handlers/rotation.handler.js +117 -0
  16. package/dist/kritzel-stencil/src/classes/handlers/selection.handler.js +313 -0
  17. package/dist/kritzel-stencil/src/classes/managers/anchor.manager.js +1056 -0
  18. package/dist/kritzel-stencil/src/classes/managers/cursor.manager.js +117 -0
  19. package/dist/kritzel-stencil/src/classes/managers/theme.manager.js +103 -0
  20. package/dist/kritzel-stencil/src/classes/objects/base-object.class.js +249 -0
  21. package/dist/kritzel-stencil/src/classes/objects/custom-element.class.js +60 -0
  22. package/dist/kritzel-stencil/src/classes/objects/group.class.js +407 -0
  23. package/dist/kritzel-stencil/src/classes/objects/image.class.js +55 -0
  24. package/dist/kritzel-stencil/src/classes/objects/line.class.js +608 -0
  25. package/dist/kritzel-stencil/src/classes/objects/path.class.js +401 -0
  26. package/dist/kritzel-stencil/src/classes/objects/selection-box.class.js +21 -0
  27. package/dist/kritzel-stencil/src/classes/objects/selection-group.class.js +409 -0
  28. package/dist/kritzel-stencil/src/classes/objects/shape.class.js +412 -0
  29. package/dist/kritzel-stencil/src/classes/objects/text.class.js +292 -0
  30. package/dist/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.js +101 -0
  31. package/dist/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.js +241 -0
  32. package/dist/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.js +43 -0
  33. package/dist/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.js +98 -0
  34. package/dist/kritzel-stencil/src/classes/registries/icon-registry.class.js +66 -0
  35. package/dist/kritzel-stencil/src/classes/registries/tool.registry.js +21 -0
  36. package/dist/kritzel-stencil/src/classes/structures/app-state-map.structure.js +212 -0
  37. package/dist/kritzel-stencil/src/classes/structures/object-map.structure.js +414 -0
  38. package/dist/kritzel-stencil/src/classes/structures/quadtree.structure.js +151 -0
  39. package/dist/kritzel-stencil/src/classes/tools/base-tool.class.js +36 -0
  40. package/dist/kritzel-stencil/src/classes/tools/brush-tool.class.js +161 -0
  41. package/dist/kritzel-stencil/src/classes/tools/eraser-tool.class.js +85 -0
  42. package/dist/kritzel-stencil/src/classes/tools/image-tool.class.js +83 -0
  43. package/dist/kritzel-stencil/src/classes/tools/line-tool.class.js +187 -0
  44. package/dist/kritzel-stencil/src/classes/tools/selection-tool.class.js +429 -0
  45. package/dist/kritzel-stencil/src/classes/tools/shape-tool.class.js +196 -0
  46. package/dist/kritzel-stencil/src/classes/tools/text-tool.class.js +100 -0
  47. package/dist/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.js +1343 -0
  48. package/dist/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.js +46 -0
  49. package/dist/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.js +312 -0
  50. package/dist/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.js +60 -0
  51. package/dist/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.js +105 -0
  52. package/dist/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +53 -0
  53. package/dist/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.js +137 -0
  54. package/dist/kritzel-stencil/src/configs/default-brush-tool.config.js +9 -0
  55. package/dist/kritzel-stencil/src/configs/default-engine-config.js +63 -0
  56. package/dist/kritzel-stencil/src/configs/default-line-tool.config.js +9 -0
  57. package/dist/kritzel-stencil/src/configs/default-sync.config.js +9 -0
  58. package/dist/kritzel-stencil/src/configs/default-text-tool.config.js +7 -0
  59. package/dist/kritzel-stencil/src/constants/color-palette.constants.js +37 -0
  60. package/dist/kritzel-stencil/src/constants/engine.constants.js +2 -0
  61. package/dist/kritzel-stencil/src/enums/event-button.enum.js +6 -0
  62. package/dist/kritzel-stencil/src/enums/handle-type.enum.js +7 -0
  63. package/dist/kritzel-stencil/src/enums/shape-type.enum.js +6 -0
  64. package/dist/kritzel-stencil/src/helpers/class.helper.js +5 -0
  65. package/dist/kritzel-stencil/src/helpers/color.helper.js +106 -0
  66. package/dist/kritzel-stencil/src/helpers/cursor.helper.js +57 -0
  67. package/dist/kritzel-stencil/src/helpers/devices.helper.js +28 -0
  68. package/dist/kritzel-stencil/src/helpers/event.helper.js +58 -0
  69. package/dist/kritzel-stencil/src/helpers/geometry.helper.js +149 -0
  70. package/dist/kritzel-stencil/src/helpers/keyboard.helper.js +51 -0
  71. package/dist/kritzel-stencil/src/helpers/math.helper.js +5 -0
  72. package/dist/kritzel-stencil/src/helpers/object.helper.js +11 -0
  73. package/dist/kritzel-stencil/src/helpers/theme.helper.js +69 -0
  74. package/dist/kritzel-stencil/src/index.js +41 -0
  75. package/dist/kritzel-stencil/src/interfaces/anchor.interface.js +1 -0
  76. package/dist/kritzel-stencil/src/interfaces/arrow-head.interface.js +1 -0
  77. package/dist/kritzel-stencil/src/interfaces/bounding-box.interface.js +1 -0
  78. package/dist/kritzel-stencil/src/interfaces/clonable.interface.js +1 -0
  79. package/dist/kritzel-stencil/src/interfaces/context-menu-item.interface.js +1 -0
  80. package/dist/kritzel-stencil/src/interfaces/debug-info.interface.js +1 -0
  81. package/dist/kritzel-stencil/src/interfaces/dialog.interface.js +1 -0
  82. package/dist/kritzel-stencil/src/interfaces/displayable-shortcut.interface.js +1 -0
  83. package/dist/kritzel-stencil/src/interfaces/engine-state.interface.js +1 -0
  84. package/dist/kritzel-stencil/src/interfaces/line-options.interface.js +1 -0
  85. package/dist/kritzel-stencil/src/interfaces/master-detail.interface.js +1 -0
  86. package/dist/kritzel-stencil/src/interfaces/menu-item.interface.js +1 -0
  87. package/dist/kritzel-stencil/src/interfaces/object.interface.js +1 -0
  88. package/dist/kritzel-stencil/src/interfaces/path-options.interface.js +1 -0
  89. package/dist/kritzel-stencil/src/interfaces/point.interface.js +1 -0
  90. package/dist/kritzel-stencil/src/interfaces/polygon.interface.js +1 -0
  91. package/dist/kritzel-stencil/src/interfaces/serializable.interface.js +1 -0
  92. package/dist/kritzel-stencil/src/interfaces/settings.interface.js +1 -0
  93. package/dist/kritzel-stencil/src/interfaces/shortcut.interface.js +1 -0
  94. package/dist/kritzel-stencil/src/interfaces/sync-config.interface.js +1 -0
  95. package/dist/kritzel-stencil/src/interfaces/sync-provider.interface.js +1 -0
  96. package/dist/kritzel-stencil/src/interfaces/theme.interface.js +1 -0
  97. package/dist/kritzel-stencil/src/interfaces/tool-config.interface.js +1 -0
  98. package/dist/kritzel-stencil/src/interfaces/tool.interface.js +1 -0
  99. package/dist/kritzel-stencil/src/interfaces/toolbar-control.interface.js +1 -0
  100. package/dist/kritzel-stencil/src/interfaces/undo-state.interface.js +1 -0
  101. package/dist/kritzel-stencil/src/themes/dark-theme.js +198 -0
  102. package/dist/kritzel-stencil/src/themes/light-theme.js +199 -0
  103. package/dist/kritzel-stencil/src/types/shortcut.type.js +1 -0
  104. package/dist/kritzel-stencil/src/types/state.types.js +1 -0
  105. package/dist/types/kritzel-react/lib/components/stencil-generated/components.d.ts +74 -0
  106. package/dist/types/kritzel-react/lib/index.d.ts +2 -0
  107. package/dist/types/kritzel-stencil/src/classes/core/core.class.d.ts +101 -0
  108. package/dist/types/kritzel-stencil/src/classes/core/reviver.class.d.ts +6 -0
  109. package/dist/types/kritzel-stencil/src/classes/core/store.class.d.ts +53 -0
  110. package/dist/types/kritzel-stencil/src/classes/core/viewport.class.d.ts +48 -0
  111. package/dist/types/kritzel-stencil/src/classes/core/workspace.class.d.ts +24 -0
  112. package/dist/types/kritzel-stencil/src/classes/handlers/base.handler.d.ts +5 -0
  113. package/dist/types/kritzel-stencil/src/classes/handlers/context-menu.handler.d.ts +8 -0
  114. package/dist/types/kritzel-stencil/src/classes/handlers/hover.handler.d.ts +6 -0
  115. package/dist/types/kritzel-stencil/src/classes/handlers/key.handler.d.ts +11 -0
  116. package/dist/types/kritzel-stencil/src/classes/handlers/line-handle.handler.d.ts +34 -0
  117. package/dist/types/kritzel-stencil/src/classes/handlers/move.handler.d.ts +29 -0
  118. package/dist/types/kritzel-stencil/src/classes/handlers/resize.handler.d.ts +24 -0
  119. package/dist/types/kritzel-stencil/src/classes/handlers/rotation.handler.d.ts +12 -0
  120. package/dist/types/kritzel-stencil/src/classes/handlers/selection.handler.d.ts +27 -0
  121. package/dist/types/kritzel-stencil/src/classes/managers/anchor.manager.d.ts +180 -0
  122. package/dist/types/kritzel-stencil/src/classes/managers/cursor.manager.d.ts +43 -0
  123. package/dist/types/kritzel-stencil/src/classes/managers/theme.manager.d.ts +56 -0
  124. package/dist/types/kritzel-stencil/src/classes/objects/base-object.class.d.ts +76 -0
  125. package/dist/types/kritzel-stencil/src/classes/objects/custom-element.class.d.ts +26 -0
  126. package/dist/types/kritzel-stencil/src/classes/objects/group.class.d.ts +97 -0
  127. package/dist/types/kritzel-stencil/src/classes/objects/image.class.d.ts +17 -0
  128. package/dist/types/kritzel-stencil/src/classes/objects/line.class.d.ts +101 -0
  129. package/dist/types/kritzel-stencil/src/classes/objects/path.class.d.ts +62 -0
  130. package/dist/types/kritzel-stencil/src/classes/objects/selection-box.class.d.ts +6 -0
  131. package/dist/types/kritzel-stencil/src/classes/objects/selection-group.class.d.ts +67 -0
  132. package/dist/types/kritzel-stencil/src/classes/objects/shape.class.d.ts +124 -0
  133. package/dist/types/kritzel-stencil/src/classes/objects/text.class.d.ts +56 -0
  134. package/dist/types/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.d.ts +18 -0
  135. package/dist/types/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.d.ts +120 -0
  136. package/dist/types/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.d.ts +22 -0
  137. package/dist/types/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.d.ts +52 -0
  138. package/dist/types/kritzel-stencil/src/classes/registries/icon-registry.class.d.ts +9 -0
  139. package/dist/types/kritzel-stencil/src/classes/registries/tool.registry.d.ts +8 -0
  140. package/dist/types/kritzel-stencil/src/classes/structures/app-state-map.structure.d.ts +31 -0
  141. package/dist/types/kritzel-stencil/src/classes/structures/object-map.structure.d.ts +63 -0
  142. package/dist/types/kritzel-stencil/src/classes/structures/quadtree.structure.d.ts +36 -0
  143. package/dist/types/kritzel-stencil/src/classes/tools/base-tool.class.d.ts +20 -0
  144. package/dist/types/kritzel-stencil/src/classes/tools/brush-tool.class.d.ts +14 -0
  145. package/dist/types/kritzel-stencil/src/classes/tools/eraser-tool.class.d.ts +9 -0
  146. package/dist/types/kritzel-stencil/src/classes/tools/image-tool.class.d.ts +15 -0
  147. package/dist/types/kritzel-stencil/src/classes/tools/line-tool.class.d.ts +19 -0
  148. package/dist/types/kritzel-stencil/src/classes/tools/selection-tool.class.d.ts +54 -0
  149. package/dist/types/kritzel-stencil/src/classes/tools/shape-tool.class.d.ts +39 -0
  150. package/dist/types/kritzel-stencil/src/classes/tools/text-tool.class.d.ts +13 -0
  151. package/dist/types/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.d.ts +111 -0
  152. package/dist/types/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.d.ts +11 -0
  153. package/dist/types/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +46 -0
  154. package/dist/types/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.d.ts +13 -0
  155. package/dist/types/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +21 -0
  156. package/dist/types/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +10 -0
  157. package/dist/types/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +21 -0
  158. package/dist/types/kritzel-stencil/src/configs/default-brush-tool.config.d.ts +2 -0
  159. package/dist/types/kritzel-stencil/src/configs/default-engine-config.d.ts +2 -0
  160. package/dist/types/kritzel-stencil/src/configs/default-line-tool.config.d.ts +2 -0
  161. package/dist/types/kritzel-stencil/src/configs/default-sync.config.d.ts +5 -0
  162. package/dist/types/kritzel-stencil/src/configs/default-text-tool.config.d.ts +2 -0
  163. package/dist/types/kritzel-stencil/src/constants/color-palette.constants.d.ts +29 -0
  164. package/dist/types/kritzel-stencil/src/constants/engine.constants.d.ts +2 -0
  165. package/dist/types/kritzel-stencil/src/enums/event-button.enum.d.ts +5 -0
  166. package/dist/types/kritzel-stencil/src/enums/handle-type.enum.d.ts +6 -0
  167. package/dist/types/kritzel-stencil/src/enums/shape-type.enum.d.ts +5 -0
  168. package/dist/types/kritzel-stencil/src/helpers/class.helper.d.ts +3 -0
  169. package/dist/types/kritzel-stencil/src/helpers/color.helper.d.ts +33 -0
  170. package/dist/types/kritzel-stencil/src/helpers/cursor.helper.d.ts +22 -0
  171. package/dist/types/kritzel-stencil/src/helpers/devices.helper.d.ts +8 -0
  172. package/dist/types/kritzel-stencil/src/helpers/event.helper.d.ts +6 -0
  173. package/dist/types/kritzel-stencil/src/helpers/geometry.helper.d.ts +38 -0
  174. package/dist/types/kritzel-stencil/src/helpers/keyboard.helper.d.ts +6 -0
  175. package/dist/types/kritzel-stencil/src/helpers/math.helper.d.ts +3 -0
  176. package/dist/types/kritzel-stencil/src/helpers/object.helper.d.ts +4 -0
  177. package/dist/types/kritzel-stencil/src/helpers/theme.helper.d.ts +41 -0
  178. package/dist/types/kritzel-stencil/src/index.d.ts +42 -0
  179. package/dist/types/kritzel-stencil/src/interfaces/anchor.interface.d.ts +137 -0
  180. package/dist/types/kritzel-stencil/src/interfaces/arrow-head.interface.d.ts +27 -0
  181. package/dist/types/kritzel-stencil/src/interfaces/bounding-box.interface.d.ts +8 -0
  182. package/dist/types/kritzel-stencil/src/interfaces/clonable.interface.d.ts +3 -0
  183. package/dist/types/kritzel-stencil/src/interfaces/context-menu-item.interface.d.ts +17 -0
  184. package/dist/types/kritzel-stencil/src/interfaces/debug-info.interface.d.ts +4 -0
  185. package/dist/types/kritzel-stencil/src/interfaces/dialog.interface.d.ts +4 -0
  186. package/dist/types/kritzel-stencil/src/interfaces/displayable-shortcut.interface.d.ts +5 -0
  187. package/dist/types/kritzel-stencil/src/interfaces/engine-state.interface.d.ts +73 -0
  188. package/dist/types/kritzel-stencil/src/interfaces/line-options.interface.d.ts +23 -0
  189. package/dist/types/kritzel-stencil/src/interfaces/master-detail.interface.d.ts +14 -0
  190. package/dist/types/kritzel-stencil/src/interfaces/menu-item.interface.d.ts +24 -0
  191. package/dist/types/kritzel-stencil/src/interfaces/object.interface.d.ts +53 -0
  192. package/dist/types/kritzel-stencil/src/interfaces/path-options.interface.d.ts +11 -0
  193. package/dist/types/kritzel-stencil/src/interfaces/point.interface.d.ts +4 -0
  194. package/dist/types/kritzel-stencil/src/interfaces/polygon.interface.d.ts +7 -0
  195. package/dist/types/kritzel-stencil/src/interfaces/serializable.interface.d.ts +5 -0
  196. package/dist/types/kritzel-stencil/src/interfaces/settings.interface.d.ts +11 -0
  197. package/dist/types/kritzel-stencil/src/interfaces/shortcut.interface.d.ts +10 -0
  198. package/dist/types/kritzel-stencil/src/interfaces/sync-config.interface.d.ts +22 -0
  199. package/dist/types/kritzel-stencil/src/interfaces/sync-provider.interface.d.ts +29 -0
  200. package/dist/types/kritzel-stencil/src/interfaces/theme.interface.d.ts +330 -0
  201. package/dist/types/kritzel-stencil/src/interfaces/tool-config.interface.d.ts +26 -0
  202. package/dist/types/kritzel-stencil/src/interfaces/tool.interface.d.ts +7 -0
  203. package/dist/types/kritzel-stencil/src/interfaces/toolbar-control.interface.d.ts +58 -0
  204. package/dist/types/kritzel-stencil/src/interfaces/undo-state.interface.d.ts +6 -0
  205. package/dist/types/kritzel-stencil/src/themes/dark-theme.d.ts +5 -0
  206. package/dist/types/kritzel-stencil/src/themes/light-theme.d.ts +5 -0
  207. package/dist/types/kritzel-stencil/src/types/shortcut.type.d.ts +1 -0
  208. package/dist/types/kritzel-stencil/src/types/state.types.d.ts +3 -0
  209. package/package.json +2 -2
@@ -0,0 +1,46 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component, Host, Prop, Event } from '@stencil/core';
8
+ let KritzelBrushStyle = class KritzelBrushStyle {
9
+ constructor() {
10
+ this.type = 'pen';
11
+ this.brushOptions = [
12
+ { value: 'pen', label: 'Pen' },
13
+ { value: 'highlighter', label: 'Highlighter' },
14
+ ];
15
+ }
16
+ handleDropdownValueChange(event) {
17
+ this.typeChange.emit(event.detail);
18
+ }
19
+ render() {
20
+ const dropdownOptions = this.brushOptions.map(option => ({
21
+ value: option.value,
22
+ label: option.label,
23
+ }));
24
+ return (React.createElement(Host, null,
25
+ React.createElement("kritzel-dropdown", { options: dropdownOptions, value: this.type, onValueChanged: event => this.handleDropdownValueChange(event) },
26
+ React.createElement("button", { class: "brush-style-button", slot: "prefix" },
27
+ React.createElement("kritzel-icon", { name: this.type, size: 16 })))));
28
+ }
29
+ };
30
+ __decorate([
31
+ Prop()
32
+ ], KritzelBrushStyle.prototype, "type", void 0);
33
+ __decorate([
34
+ Prop()
35
+ ], KritzelBrushStyle.prototype, "brushOptions", void 0);
36
+ __decorate([
37
+ Event()
38
+ ], KritzelBrushStyle.prototype, "typeChange", void 0);
39
+ KritzelBrushStyle = __decorate([
40
+ Component({
41
+ tag: 'kritzel-brush-style',
42
+ styleUrl: 'kritzel-brush-style.css',
43
+ shadow: true,
44
+ })
45
+ ], KritzelBrushStyle);
46
+ export { KritzelBrushStyle };
@@ -0,0 +1,312 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component, Host, Prop, State, Event, Watch, Element, Listen } from '@stencil/core';
8
+ let KritzelDropdown = class KritzelDropdown {
9
+ constructor() {
10
+ this.options = [];
11
+ this.selectStyles = {};
12
+ this.hasSuffixContent = false;
13
+ this.hasPrefixContent = false;
14
+ this.isOpen = false;
15
+ this.focusedIndex = -1;
16
+ this.openDirection = 'down';
17
+ this.toggleMenu = () => {
18
+ if (this.isOpen) {
19
+ this.closeMenu();
20
+ }
21
+ else {
22
+ this.openMenu();
23
+ }
24
+ };
25
+ this.openMenu = () => {
26
+ this.calculateMenuDirection();
27
+ this.isOpen = true;
28
+ const currentIndex = this.options.findIndex(opt => opt.value === this.internalValue);
29
+ this.focusedIndex = currentIndex >= 0 ? currentIndex : 0;
30
+ // Focus the menu after it opens
31
+ requestAnimationFrame(() => {
32
+ var _a;
33
+ (_a = this.menuElement) === null || _a === void 0 ? void 0 : _a.focus();
34
+ });
35
+ };
36
+ this.calculateMenuDirection = () => {
37
+ if (!this.wrapperElement) {
38
+ this.openDirection = 'down';
39
+ return;
40
+ }
41
+ const wrapperRect = this.wrapperElement.getBoundingClientRect();
42
+ const viewportHeight = window.innerHeight;
43
+ const spaceBelow = viewportHeight - wrapperRect.bottom;
44
+ const spaceAbove = wrapperRect.top;
45
+ // Estimate menu height (max 240px or fewer based on options)
46
+ const estimatedOptionHeight = 36; // padding + content
47
+ const menuPadding = 8; // 4px top + 4px bottom
48
+ const estimatedMenuHeight = Math.min(240, this.options.length * estimatedOptionHeight + menuPadding);
49
+ // Prefer opening downward, but switch to upward if not enough space below
50
+ // and there's more space above
51
+ if (spaceBelow < estimatedMenuHeight && spaceAbove > spaceBelow) {
52
+ this.openDirection = 'up';
53
+ }
54
+ else {
55
+ this.openDirection = 'down';
56
+ }
57
+ };
58
+ this.closeMenu = () => {
59
+ this.isOpen = false;
60
+ this.focusedIndex = -1;
61
+ // Note: openDirection is intentionally NOT reset here to allow the close animation
62
+ // to play in the same direction the menu was opened
63
+ };
64
+ this.selectOption = (option) => {
65
+ var _a;
66
+ if (this.internalValue !== option.value) {
67
+ this.internalValue = option.value;
68
+ this.valueChanged.emit(this.internalValue);
69
+ }
70
+ this.closeMenu();
71
+ (_a = this.triggerElement) === null || _a === void 0 ? void 0 : _a.focus();
72
+ };
73
+ this.handleTriggerKeyDown = (event) => {
74
+ switch (event.key) {
75
+ case 'Enter':
76
+ case ' ':
77
+ case 'ArrowDown':
78
+ case 'ArrowUp':
79
+ event.preventDefault();
80
+ this.openMenu();
81
+ break;
82
+ }
83
+ };
84
+ this.handleMenuKeyDown = (event) => {
85
+ switch (event.key) {
86
+ case 'ArrowDown':
87
+ event.preventDefault();
88
+ this.focusedIndex = Math.min(this.focusedIndex + 1, this.options.length - 1);
89
+ this.scrollFocusedOptionIntoView();
90
+ break;
91
+ case 'ArrowUp':
92
+ event.preventDefault();
93
+ this.focusedIndex = Math.max(this.focusedIndex - 1, 0);
94
+ this.scrollFocusedOptionIntoView();
95
+ break;
96
+ case 'Enter':
97
+ case ' ':
98
+ event.preventDefault();
99
+ if (this.focusedIndex >= 0 && this.focusedIndex < this.options.length) {
100
+ this.selectOption(this.options[this.focusedIndex]);
101
+ }
102
+ break;
103
+ case 'Home':
104
+ event.preventDefault();
105
+ this.focusedIndex = 0;
106
+ this.scrollFocusedOptionIntoView();
107
+ break;
108
+ case 'End':
109
+ event.preventDefault();
110
+ this.focusedIndex = this.options.length - 1;
111
+ this.scrollFocusedOptionIntoView();
112
+ break;
113
+ case 'Tab':
114
+ this.closeMenu();
115
+ break;
116
+ }
117
+ };
118
+ this.scrollFocusedOptionIntoView = () => {
119
+ if (!this.menuElement || this.focusedIndex < 0) {
120
+ return;
121
+ }
122
+ // Use requestAnimationFrame to ensure the DOM has updated with the new focused class
123
+ requestAnimationFrame(() => {
124
+ var _a;
125
+ const focusedOption = (_a = this.menuElement) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-option.is-focused');
126
+ if (focusedOption) {
127
+ focusedOption.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
128
+ }
129
+ });
130
+ };
131
+ this.handleOptionMouseEnter = (index) => {
132
+ this.focusedIndex = index;
133
+ };
134
+ this.evaluateSuffixContent = () => {
135
+ if (this.suffixSlotElement) {
136
+ const newHasContent = this.suffixSlotElement.assignedNodes({ flatten: true }).length > 0;
137
+ if (this.hasSuffixContent !== newHasContent) {
138
+ this.hasSuffixContent = newHasContent;
139
+ }
140
+ }
141
+ else if (this.hasSuffixContent !== false) {
142
+ this.hasSuffixContent = false;
143
+ }
144
+ };
145
+ this.evaluatePrefixContent = () => {
146
+ if (this.prefixSlotElement) {
147
+ const newHasContent = this.prefixSlotElement.assignedNodes({ flatten: true }).length > 0;
148
+ if (this.hasPrefixContent !== newHasContent) {
149
+ this.hasPrefixContent = newHasContent;
150
+ }
151
+ }
152
+ else if (this.hasPrefixContent !== false) {
153
+ this.hasPrefixContent = false;
154
+ }
155
+ };
156
+ }
157
+ optionsChanged() {
158
+ this.updateInternalValue(this.internalValue, true);
159
+ }
160
+ externalValueChanged(newValue) {
161
+ if (newValue !== this.internalValue) {
162
+ this.updateInternalValue(newValue, false);
163
+ }
164
+ }
165
+ componentWillLoad() {
166
+ this.updateInternalValue(this.value, false);
167
+ this.evaluateSuffixContent();
168
+ this.evaluatePrefixContent();
169
+ }
170
+ disconnectedCallback() {
171
+ // Close menu when component is removed from DOM to prevent orphaned open dropdowns
172
+ if (this.isOpen) {
173
+ this.isOpen = false;
174
+ }
175
+ }
176
+ handleDocumentClick(event) {
177
+ if (this.isOpen && !this.el.contains(event.target)) {
178
+ this.closeMenu();
179
+ }
180
+ }
181
+ handleDocumentKeydown(event) {
182
+ var _a;
183
+ if (this.isOpen && event.key === 'Escape') {
184
+ event.stopPropagation();
185
+ event.preventDefault();
186
+ this.closeMenu();
187
+ (_a = this.triggerElement) === null || _a === void 0 ? void 0 : _a.focus();
188
+ }
189
+ }
190
+ updateInternalValue(proposedValue, emitChange) {
191
+ let finalValue = proposedValue;
192
+ if (this.options && this.options.length > 0) {
193
+ const isValidValue = this.options.some(opt => opt.value === finalValue);
194
+ if (!finalValue || !isValidValue) {
195
+ finalValue = this.options[0].value;
196
+ }
197
+ }
198
+ else {
199
+ finalValue = undefined;
200
+ }
201
+ if (this.internalValue !== finalValue) {
202
+ this.internalValue = finalValue;
203
+ if (emitChange || (proposedValue !== finalValue && proposedValue !== undefined)) {
204
+ this.valueChanged.emit(this.internalValue);
205
+ }
206
+ }
207
+ }
208
+ getSelectedLabel() {
209
+ var _a;
210
+ const selectedOption = this.options.find(opt => opt.value === this.internalValue);
211
+ return (_a = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _a !== void 0 ? _a : '';
212
+ }
213
+ getSelectedStyle() {
214
+ const selectedOption = this.options.find(opt => opt.value === this.internalValue);
215
+ return selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.style;
216
+ }
217
+ render() {
218
+ const triggerClasses = {
219
+ 'dropdown-trigger': true,
220
+ 'has-suffix-border': this.hasSuffixContent,
221
+ 'has-prefix-border': this.hasPrefixContent,
222
+ 'is-open': this.isOpen,
223
+ 'open-up': this.openDirection === 'up',
224
+ };
225
+ const menuClasses = {
226
+ 'dropdown-menu': true,
227
+ 'is-open': this.isOpen,
228
+ 'open-up': this.openDirection === 'up',
229
+ 'open-down': this.openDirection === 'down',
230
+ };
231
+ return (React.createElement(Host, null,
232
+ React.createElement("div", { class: "dropdown-wrapper", ref: el => (this.wrapperElement = el) },
233
+ React.createElement("slot", { name: "prefix", ref: el => (this.prefixSlotElement = el), onSlotchange: this.evaluatePrefixContent }),
234
+ React.createElement("div", { class: "dropdown-container", style: { width: this.width } },
235
+ React.createElement("button", { type: "button", class: triggerClasses, style: Object.assign(Object.assign({}, this.selectStyles), this.getSelectedStyle()), onClick: this.toggleMenu, onKeyDown: this.handleTriggerKeyDown, "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', ref: el => (this.triggerElement = el) },
236
+ React.createElement("span", { class: "dropdown-trigger-label" }, this.getSelectedLabel()),
237
+ React.createElement("span", { class: "dropdown-trigger-arrow", "aria-hidden": "true" },
238
+ React.createElement("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" },
239
+ React.createElement("polyline", { points: "6 9 12 15 18 9" }))))),
240
+ React.createElement("slot", { name: "suffix", ref: el => (this.suffixSlotElement = el), onSlotchange: this.evaluateSuffixContent }),
241
+ React.createElement("ul", { class: menuClasses, role: "listbox", tabindex: "-1", onKeyDown: this.handleMenuKeyDown, ref: el => (this.menuElement = el) }, this.options.map((option, index) => {
242
+ const isSelected = option.value === this.internalValue;
243
+ const isFocused = index === this.focusedIndex;
244
+ const optionClasses = {
245
+ 'dropdown-option': true,
246
+ 'is-selected': isSelected,
247
+ 'is-focused': isFocused,
248
+ };
249
+ return (React.createElement("li", { class: optionClasses, role: "option", "aria-selected": isSelected ? 'true' : 'false', style: option.style, onClick: () => this.selectOption(option), onMouseEnter: () => this.handleOptionMouseEnter(index) },
250
+ option.label,
251
+ isSelected && (React.createElement("span", { class: "dropdown-option-check", "aria-hidden": "true" },
252
+ React.createElement("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" },
253
+ React.createElement("polyline", { points: "20 6 9 17 4 12" }))))));
254
+ })))));
255
+ }
256
+ };
257
+ __decorate([
258
+ Element()
259
+ ], KritzelDropdown.prototype, "el", void 0);
260
+ __decorate([
261
+ Prop()
262
+ ], KritzelDropdown.prototype, "options", void 0);
263
+ __decorate([
264
+ Watch('options')
265
+ ], KritzelDropdown.prototype, "optionsChanged", null);
266
+ __decorate([
267
+ Prop()
268
+ ], KritzelDropdown.prototype, "value", void 0);
269
+ __decorate([
270
+ Watch('value')
271
+ ], KritzelDropdown.prototype, "externalValueChanged", null);
272
+ __decorate([
273
+ Prop()
274
+ ], KritzelDropdown.prototype, "width", void 0);
275
+ __decorate([
276
+ Prop()
277
+ ], KritzelDropdown.prototype, "selectStyles", void 0);
278
+ __decorate([
279
+ State()
280
+ ], KritzelDropdown.prototype, "internalValue", void 0);
281
+ __decorate([
282
+ State()
283
+ ], KritzelDropdown.prototype, "hasSuffixContent", void 0);
284
+ __decorate([
285
+ State()
286
+ ], KritzelDropdown.prototype, "hasPrefixContent", void 0);
287
+ __decorate([
288
+ State()
289
+ ], KritzelDropdown.prototype, "isOpen", void 0);
290
+ __decorate([
291
+ State()
292
+ ], KritzelDropdown.prototype, "focusedIndex", void 0);
293
+ __decorate([
294
+ State()
295
+ ], KritzelDropdown.prototype, "openDirection", void 0);
296
+ __decorate([
297
+ Event()
298
+ ], KritzelDropdown.prototype, "valueChanged", void 0);
299
+ __decorate([
300
+ Listen('click', { target: 'document' })
301
+ ], KritzelDropdown.prototype, "handleDocumentClick", null);
302
+ __decorate([
303
+ Listen('keydown', { target: 'document' })
304
+ ], KritzelDropdown.prototype, "handleDocumentKeydown", null);
305
+ KritzelDropdown = __decorate([
306
+ Component({
307
+ tag: 'kritzel-dropdown',
308
+ styleUrl: 'kritzel-dropdown.css',
309
+ shadow: true,
310
+ })
311
+ ], KritzelDropdown);
312
+ export { KritzelDropdown };
@@ -0,0 +1,60 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component, Host, Prop, Event } from '@stencil/core';
8
+ let KritzelFontFamily = class KritzelFontFamily {
9
+ constructor() {
10
+ this.fontOptions = [
11
+ { value: 'arial', label: 'Arial' },
12
+ { value: 'verdana', label: 'Verdana' },
13
+ { value: 'helvetica', label: 'Helvetica' },
14
+ { value: 'tahoma', label: 'Tahoma' },
15
+ { value: 'trebuchet ms', label: 'Trebuchet MS' },
16
+ { value: 'times new roman', label: 'Times New Roman' },
17
+ { value: 'georgia', label: 'Georgia' },
18
+ { value: 'garamond', label: 'Garamond' },
19
+ { value: 'courier new', label: 'Courier New' },
20
+ { value: 'brush script mt', label: 'Brush Script MT' },
21
+ ];
22
+ this.handleDropdownValueChange = (event) => {
23
+ this.fontFamilyChange.emit(event.detail);
24
+ };
25
+ }
26
+ componentWillLoad() {
27
+ if (this.fontOptions && this.fontOptions.length > 0) {
28
+ const isValidCurrentFont = this.fontOptions.some(opt => opt.value === this.selectedFontFamily);
29
+ if (!this.selectedFontFamily || !isValidCurrentFont) {
30
+ this.selectedFontFamily = this.fontOptions[0].value;
31
+ }
32
+ }
33
+ }
34
+ render() {
35
+ const dropdownOptions = this.fontOptions.map(option => ({
36
+ value: option.value,
37
+ label: option.label,
38
+ style: { fontFamily: option.value },
39
+ }));
40
+ return (React.createElement(Host, null,
41
+ React.createElement("kritzel-dropdown", { options: dropdownOptions, value: this.selectedFontFamily, onValueChanged: this.handleDropdownValueChange, selectStyles: { fontFamily: this.selectedFontFamily } })));
42
+ }
43
+ };
44
+ __decorate([
45
+ Prop()
46
+ ], KritzelFontFamily.prototype, "fontOptions", void 0);
47
+ __decorate([
48
+ Prop({ mutable: true })
49
+ ], KritzelFontFamily.prototype, "selectedFontFamily", void 0);
50
+ __decorate([
51
+ Event()
52
+ ], KritzelFontFamily.prototype, "fontFamilyChange", void 0);
53
+ KritzelFontFamily = __decorate([
54
+ Component({
55
+ tag: 'kritzel-font-family',
56
+ styleUrl: 'kritzel-font-family.css',
57
+ shadow: true,
58
+ })
59
+ ], KritzelFontFamily);
60
+ export { KritzelFontFamily };
@@ -0,0 +1,105 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component, Host, Prop, Event } from '@stencil/core';
8
+ let KritzelLineEndings = class KritzelLineEndings {
9
+ constructor() {
10
+ /** Available ending styles */
11
+ this.styles = ['none', 'triangle'];
12
+ }
13
+ getStartEnding() {
14
+ var _a, _b, _c;
15
+ if (!((_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.start) === null || _b === void 0 ? void 0 : _b.enabled))
16
+ return 'none';
17
+ return (_c = this.value.start.style) !== null && _c !== void 0 ? _c : 'triangle';
18
+ }
19
+ getEndEnding() {
20
+ var _a, _b, _c;
21
+ if (!((_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.end) === null || _b === void 0 ? void 0 : _b.enabled))
22
+ return 'none';
23
+ return (_c = this.value.end.style) !== null && _c !== void 0 ? _c : 'triangle';
24
+ }
25
+ handleStartChange(type) {
26
+ const newValue = Object.assign(Object.assign({}, this.value), { start: type === 'none'
27
+ ? { enabled: false }
28
+ : { enabled: true, style: type } });
29
+ this.value = newValue;
30
+ this.valueChange.emit(newValue);
31
+ }
32
+ handleEndChange(type) {
33
+ const newValue = Object.assign(Object.assign({}, this.value), { end: type === 'none'
34
+ ? { enabled: false }
35
+ : { enabled: true, style: type } });
36
+ this.value = newValue;
37
+ this.valueChange.emit(newValue);
38
+ }
39
+ getEndingPath(type) {
40
+ switch (type) {
41
+ case 'triangle':
42
+ return 'M 0 0 L 10 5 L 0 10 Z';
43
+ case 'open':
44
+ return 'M 0 0 L 10 5 L 0 10';
45
+ case 'diamond':
46
+ return 'M 0 5 L 5 0 L 10 5 L 5 10 Z';
47
+ case 'circle':
48
+ return 'M 10 5 A 5 5 0 1 1 0 5 A 5 5 0 1 1 10 5 Z';
49
+ default:
50
+ return '';
51
+ }
52
+ }
53
+ renderEndingIcon(type, isStart) {
54
+ const color = 'var(--kritzel-global-text-primary)';
55
+ if (type === 'none') {
56
+ return (React.createElement("svg", { viewBox: "0 0 24 12", class: "ending-icon" },
57
+ React.createElement("line", { x1: isStart ? 4 : 2, y1: "6", x2: isStart ? 22 : 20, y2: "6", stroke: color, "stroke-width": "2", "stroke-linecap": "round" })));
58
+ }
59
+ const path = this.getEndingPath(type);
60
+ const isOpenStyle = type === 'open';
61
+ return (React.createElement("svg", { viewBox: "0 0 24 12", class: "ending-icon" }, isStart ? (
62
+ // Start arrow points left
63
+ React.createElement("g", null,
64
+ React.createElement("line", { x1: "12", y1: "6", x2: "22", y2: "6", stroke: color, "stroke-width": "2", "stroke-linecap": "round" }),
65
+ React.createElement("g", { transform: "translate(2, 1) scale(1, 1)" },
66
+ React.createElement("path", { d: path, fill: isOpenStyle ? 'none' : color, stroke: color, "stroke-width": isOpenStyle ? 2 : 0, "stroke-linecap": "round", "stroke-linejoin": "round", transform: "scale(-1, 1) translate(-10, 0)" })))) : (
67
+ // End arrow points right
68
+ React.createElement("g", null,
69
+ React.createElement("line", { x1: "2", y1: "6", x2: "12", y2: "6", stroke: color, "stroke-width": "2", "stroke-linecap": "round" }),
70
+ React.createElement("g", { transform: "translate(12, 1)" },
71
+ React.createElement("path", { d: path, fill: isOpenStyle ? 'none' : color, stroke: color, "stroke-width": isOpenStyle ? 2 : 0, "stroke-linecap": "round", "stroke-linejoin": "round" }))))));
72
+ }
73
+ render() {
74
+ const startEnding = this.getStartEnding();
75
+ const endEnding = this.getEndEnding();
76
+ return (React.createElement(Host, null,
77
+ React.createElement("div", { class: "endings-section" },
78
+ React.createElement("div", { class: "endings-row" }, this.styles.map(type => (React.createElement("button", { class: {
79
+ 'ending-option': true,
80
+ 'selected': startEnding === type,
81
+ }, onClick: () => this.handleStartChange(type), title: type === 'none' ? 'No start arrow' : `${type} start arrow` }, this.renderEndingIcon(type, true)))))),
82
+ React.createElement("div", { class: "endings-section" },
83
+ React.createElement("div", { class: "endings-row" }, this.styles.map(type => (React.createElement("button", { class: {
84
+ 'ending-option': true,
85
+ 'selected': endEnding === type,
86
+ }, onClick: () => this.handleEndChange(type), title: type === 'none' ? 'No end arrow' : `${type} end arrow` }, this.renderEndingIcon(type, false))))))));
87
+ }
88
+ };
89
+ __decorate([
90
+ Prop()
91
+ ], KritzelLineEndings.prototype, "styles", void 0);
92
+ __decorate([
93
+ Prop({ mutable: true })
94
+ ], KritzelLineEndings.prototype, "value", void 0);
95
+ __decorate([
96
+ Event()
97
+ ], KritzelLineEndings.prototype, "valueChange", void 0);
98
+ KritzelLineEndings = __decorate([
99
+ Component({
100
+ tag: 'kritzel-line-endings',
101
+ styleUrl: 'kritzel-line-endings.css',
102
+ shadow: true,
103
+ })
104
+ ], KritzelLineEndings);
105
+ export { KritzelLineEndings };
@@ -0,0 +1,53 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component, Host, Prop, Event } from '@stencil/core';
8
+ let KritzelShapeFill = class KritzelShapeFill {
9
+ constructor() {
10
+ /** Current fill type */
11
+ this.value = 'transparent';
12
+ }
13
+ handleFillChange(type) {
14
+ this.value = type;
15
+ this.valueChange.emit(type);
16
+ }
17
+ renderFillIcon(type) {
18
+ const strokeColor = 'var(--kritzel-global-text-primary)';
19
+ if (type === 'transparent') {
20
+ return (React.createElement("svg", { viewBox: "0 0 24 24", class: "fill-icon" },
21
+ React.createElement("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2", fill: "none", stroke: strokeColor, "stroke-width": "2" })));
22
+ }
23
+ // Filled
24
+ return (React.createElement("svg", { viewBox: "0 0 24 24", class: "fill-icon" },
25
+ React.createElement("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2", fill: strokeColor, stroke: strokeColor, "stroke-width": "2" })));
26
+ }
27
+ render() {
28
+ return (React.createElement(Host, null,
29
+ React.createElement("div", { class: "fill-row" },
30
+ React.createElement("button", { class: {
31
+ 'fill-option': true,
32
+ 'selected': this.value === 'transparent',
33
+ }, onClick: () => this.handleFillChange('transparent'), title: "Transparent background" }, this.renderFillIcon('transparent')),
34
+ React.createElement("button", { class: {
35
+ 'fill-option': true,
36
+ 'selected': this.value === 'filled',
37
+ }, onClick: () => this.handleFillChange('filled'), title: "Filled background" }, this.renderFillIcon('filled')))));
38
+ }
39
+ };
40
+ __decorate([
41
+ Prop({ mutable: true })
42
+ ], KritzelShapeFill.prototype, "value", void 0);
43
+ __decorate([
44
+ Event()
45
+ ], KritzelShapeFill.prototype, "valueChange", void 0);
46
+ KritzelShapeFill = __decorate([
47
+ Component({
48
+ tag: 'kritzel-shape-fill',
49
+ styleUrl: 'kritzel-shape-fill.css',
50
+ shadow: true,
51
+ })
52
+ ], KritzelShapeFill);
53
+ export { KritzelShapeFill };