kritzel-react 0.1.32 → 0.1.34

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 (210) hide show
  1. package/dist/types/components/stencil-generated/components.d.ts +1 -1
  2. package/package.json +2 -2
  3. package/dist/kritzel-react/lib/components/stencil-generated/components.js +0 -122
  4. package/dist/kritzel-react/lib/index.js +0 -2
  5. package/dist/kritzel-stencil/src/classes/core/core.class.js +0 -797
  6. package/dist/kritzel-stencil/src/classes/core/reviver.class.js +0 -97
  7. package/dist/kritzel-stencil/src/classes/core/store.class.js +0 -153
  8. package/dist/kritzel-stencil/src/classes/core/viewport.class.js +0 -311
  9. package/dist/kritzel-stencil/src/classes/core/workspace.class.js +0 -34
  10. package/dist/kritzel-stencil/src/classes/handlers/base.handler.js +0 -6
  11. package/dist/kritzel-stencil/src/classes/handlers/context-menu.handler.js +0 -63
  12. package/dist/kritzel-stencil/src/classes/handlers/hover.handler.js +0 -18
  13. package/dist/kritzel-stencil/src/classes/handlers/key.handler.js +0 -76
  14. package/dist/kritzel-stencil/src/classes/handlers/line-handle.handler.js +0 -382
  15. package/dist/kritzel-stencil/src/classes/handlers/move.handler.js +0 -213
  16. package/dist/kritzel-stencil/src/classes/handlers/resize.handler.js +0 -205
  17. package/dist/kritzel-stencil/src/classes/handlers/rotation.handler.js +0 -117
  18. package/dist/kritzel-stencil/src/classes/handlers/selection.handler.js +0 -313
  19. package/dist/kritzel-stencil/src/classes/managers/anchor.manager.js +0 -1056
  20. package/dist/kritzel-stencil/src/classes/managers/cursor.manager.js +0 -117
  21. package/dist/kritzel-stencil/src/classes/managers/theme.manager.js +0 -103
  22. package/dist/kritzel-stencil/src/classes/objects/base-object.class.js +0 -249
  23. package/dist/kritzel-stencil/src/classes/objects/custom-element.class.js +0 -60
  24. package/dist/kritzel-stencil/src/classes/objects/group.class.js +0 -407
  25. package/dist/kritzel-stencil/src/classes/objects/image.class.js +0 -55
  26. package/dist/kritzel-stencil/src/classes/objects/line.class.js +0 -608
  27. package/dist/kritzel-stencil/src/classes/objects/path.class.js +0 -401
  28. package/dist/kritzel-stencil/src/classes/objects/selection-box.class.js +0 -21
  29. package/dist/kritzel-stencil/src/classes/objects/selection-group.class.js +0 -409
  30. package/dist/kritzel-stencil/src/classes/objects/shape.class.js +0 -412
  31. package/dist/kritzel-stencil/src/classes/objects/text.class.js +0 -292
  32. package/dist/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.js +0 -101
  33. package/dist/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.js +0 -241
  34. package/dist/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.js +0 -43
  35. package/dist/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.js +0 -98
  36. package/dist/kritzel-stencil/src/classes/registries/icon-registry.class.js +0 -66
  37. package/dist/kritzel-stencil/src/classes/registries/tool.registry.js +0 -21
  38. package/dist/kritzel-stencil/src/classes/structures/app-state-map.structure.js +0 -212
  39. package/dist/kritzel-stencil/src/classes/structures/object-map.structure.js +0 -414
  40. package/dist/kritzel-stencil/src/classes/structures/quadtree.structure.js +0 -151
  41. package/dist/kritzel-stencil/src/classes/tools/base-tool.class.js +0 -36
  42. package/dist/kritzel-stencil/src/classes/tools/brush-tool.class.js +0 -161
  43. package/dist/kritzel-stencil/src/classes/tools/eraser-tool.class.js +0 -85
  44. package/dist/kritzel-stencil/src/classes/tools/image-tool.class.js +0 -83
  45. package/dist/kritzel-stencil/src/classes/tools/line-tool.class.js +0 -187
  46. package/dist/kritzel-stencil/src/classes/tools/selection-tool.class.js +0 -429
  47. package/dist/kritzel-stencil/src/classes/tools/shape-tool.class.js +0 -196
  48. package/dist/kritzel-stencil/src/classes/tools/text-tool.class.js +0 -100
  49. package/dist/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.js +0 -1343
  50. package/dist/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -46
  51. package/dist/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.js +0 -312
  52. package/dist/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.js +0 -60
  53. package/dist/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.js +0 -105
  54. package/dist/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +0 -53
  55. package/dist/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -137
  56. package/dist/kritzel-stencil/src/configs/default-brush-tool.config.js +0 -9
  57. package/dist/kritzel-stencil/src/configs/default-engine-config.js +0 -63
  58. package/dist/kritzel-stencil/src/configs/default-line-tool.config.js +0 -9
  59. package/dist/kritzel-stencil/src/configs/default-sync.config.js +0 -9
  60. package/dist/kritzel-stencil/src/configs/default-text-tool.config.js +0 -7
  61. package/dist/kritzel-stencil/src/constants/color-palette.constants.js +0 -37
  62. package/dist/kritzel-stencil/src/constants/engine.constants.js +0 -2
  63. package/dist/kritzel-stencil/src/enums/event-button.enum.js +0 -6
  64. package/dist/kritzel-stencil/src/enums/handle-type.enum.js +0 -7
  65. package/dist/kritzel-stencil/src/enums/shape-type.enum.js +0 -6
  66. package/dist/kritzel-stencil/src/helpers/class.helper.js +0 -5
  67. package/dist/kritzel-stencil/src/helpers/color.helper.js +0 -106
  68. package/dist/kritzel-stencil/src/helpers/cursor.helper.js +0 -57
  69. package/dist/kritzel-stencil/src/helpers/devices.helper.js +0 -28
  70. package/dist/kritzel-stencil/src/helpers/event.helper.js +0 -58
  71. package/dist/kritzel-stencil/src/helpers/geometry.helper.js +0 -149
  72. package/dist/kritzel-stencil/src/helpers/keyboard.helper.js +0 -51
  73. package/dist/kritzel-stencil/src/helpers/math.helper.js +0 -5
  74. package/dist/kritzel-stencil/src/helpers/object.helper.js +0 -11
  75. package/dist/kritzel-stencil/src/helpers/theme.helper.js +0 -69
  76. package/dist/kritzel-stencil/src/index.js +0 -41
  77. package/dist/kritzel-stencil/src/interfaces/anchor.interface.js +0 -1
  78. package/dist/kritzel-stencil/src/interfaces/arrow-head.interface.js +0 -1
  79. package/dist/kritzel-stencil/src/interfaces/bounding-box.interface.js +0 -1
  80. package/dist/kritzel-stencil/src/interfaces/clonable.interface.js +0 -1
  81. package/dist/kritzel-stencil/src/interfaces/context-menu-item.interface.js +0 -1
  82. package/dist/kritzel-stencil/src/interfaces/debug-info.interface.js +0 -1
  83. package/dist/kritzel-stencil/src/interfaces/dialog.interface.js +0 -1
  84. package/dist/kritzel-stencil/src/interfaces/displayable-shortcut.interface.js +0 -1
  85. package/dist/kritzel-stencil/src/interfaces/engine-state.interface.js +0 -1
  86. package/dist/kritzel-stencil/src/interfaces/line-options.interface.js +0 -1
  87. package/dist/kritzel-stencil/src/interfaces/master-detail.interface.js +0 -1
  88. package/dist/kritzel-stencil/src/interfaces/menu-item.interface.js +0 -1
  89. package/dist/kritzel-stencil/src/interfaces/object.interface.js +0 -1
  90. package/dist/kritzel-stencil/src/interfaces/path-options.interface.js +0 -1
  91. package/dist/kritzel-stencil/src/interfaces/point.interface.js +0 -1
  92. package/dist/kritzel-stencil/src/interfaces/polygon.interface.js +0 -1
  93. package/dist/kritzel-stencil/src/interfaces/serializable.interface.js +0 -1
  94. package/dist/kritzel-stencil/src/interfaces/settings.interface.js +0 -1
  95. package/dist/kritzel-stencil/src/interfaces/shortcut.interface.js +0 -1
  96. package/dist/kritzel-stencil/src/interfaces/sync-config.interface.js +0 -1
  97. package/dist/kritzel-stencil/src/interfaces/sync-provider.interface.js +0 -1
  98. package/dist/kritzel-stencil/src/interfaces/theme.interface.js +0 -1
  99. package/dist/kritzel-stencil/src/interfaces/tool-config.interface.js +0 -1
  100. package/dist/kritzel-stencil/src/interfaces/tool.interface.js +0 -1
  101. package/dist/kritzel-stencil/src/interfaces/toolbar-control.interface.js +0 -1
  102. package/dist/kritzel-stencil/src/interfaces/undo-state.interface.js +0 -1
  103. package/dist/kritzel-stencil/src/themes/dark-theme.js +0 -198
  104. package/dist/kritzel-stencil/src/themes/light-theme.js +0 -199
  105. package/dist/kritzel-stencil/src/types/shortcut.type.js +0 -1
  106. package/dist/kritzel-stencil/src/types/state.types.js +0 -1
  107. package/dist/types/kritzel-react/lib/components/stencil-generated/components.d.ts +0 -74
  108. package/dist/types/kritzel-react/lib/index.d.ts +0 -2
  109. package/dist/types/kritzel-stencil/src/classes/core/core.class.d.ts +0 -101
  110. package/dist/types/kritzel-stencil/src/classes/core/reviver.class.d.ts +0 -6
  111. package/dist/types/kritzel-stencil/src/classes/core/store.class.d.ts +0 -53
  112. package/dist/types/kritzel-stencil/src/classes/core/viewport.class.d.ts +0 -48
  113. package/dist/types/kritzel-stencil/src/classes/core/workspace.class.d.ts +0 -24
  114. package/dist/types/kritzel-stencil/src/classes/handlers/base.handler.d.ts +0 -5
  115. package/dist/types/kritzel-stencil/src/classes/handlers/context-menu.handler.d.ts +0 -8
  116. package/dist/types/kritzel-stencil/src/classes/handlers/hover.handler.d.ts +0 -6
  117. package/dist/types/kritzel-stencil/src/classes/handlers/key.handler.d.ts +0 -11
  118. package/dist/types/kritzel-stencil/src/classes/handlers/line-handle.handler.d.ts +0 -34
  119. package/dist/types/kritzel-stencil/src/classes/handlers/move.handler.d.ts +0 -29
  120. package/dist/types/kritzel-stencil/src/classes/handlers/resize.handler.d.ts +0 -24
  121. package/dist/types/kritzel-stencil/src/classes/handlers/rotation.handler.d.ts +0 -12
  122. package/dist/types/kritzel-stencil/src/classes/handlers/selection.handler.d.ts +0 -27
  123. package/dist/types/kritzel-stencil/src/classes/managers/anchor.manager.d.ts +0 -180
  124. package/dist/types/kritzel-stencil/src/classes/managers/cursor.manager.d.ts +0 -43
  125. package/dist/types/kritzel-stencil/src/classes/managers/theme.manager.d.ts +0 -56
  126. package/dist/types/kritzel-stencil/src/classes/objects/base-object.class.d.ts +0 -76
  127. package/dist/types/kritzel-stencil/src/classes/objects/custom-element.class.d.ts +0 -26
  128. package/dist/types/kritzel-stencil/src/classes/objects/group.class.d.ts +0 -97
  129. package/dist/types/kritzel-stencil/src/classes/objects/image.class.d.ts +0 -17
  130. package/dist/types/kritzel-stencil/src/classes/objects/line.class.d.ts +0 -101
  131. package/dist/types/kritzel-stencil/src/classes/objects/path.class.d.ts +0 -62
  132. package/dist/types/kritzel-stencil/src/classes/objects/selection-box.class.d.ts +0 -6
  133. package/dist/types/kritzel-stencil/src/classes/objects/selection-group.class.d.ts +0 -67
  134. package/dist/types/kritzel-stencil/src/classes/objects/shape.class.d.ts +0 -124
  135. package/dist/types/kritzel-stencil/src/classes/objects/text.class.d.ts +0 -56
  136. package/dist/types/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.d.ts +0 -18
  137. package/dist/types/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.d.ts +0 -120
  138. package/dist/types/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.d.ts +0 -22
  139. package/dist/types/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.d.ts +0 -52
  140. package/dist/types/kritzel-stencil/src/classes/registries/icon-registry.class.d.ts +0 -9
  141. package/dist/types/kritzel-stencil/src/classes/registries/tool.registry.d.ts +0 -8
  142. package/dist/types/kritzel-stencil/src/classes/structures/app-state-map.structure.d.ts +0 -31
  143. package/dist/types/kritzel-stencil/src/classes/structures/object-map.structure.d.ts +0 -63
  144. package/dist/types/kritzel-stencil/src/classes/structures/quadtree.structure.d.ts +0 -36
  145. package/dist/types/kritzel-stencil/src/classes/tools/base-tool.class.d.ts +0 -20
  146. package/dist/types/kritzel-stencil/src/classes/tools/brush-tool.class.d.ts +0 -14
  147. package/dist/types/kritzel-stencil/src/classes/tools/eraser-tool.class.d.ts +0 -9
  148. package/dist/types/kritzel-stencil/src/classes/tools/image-tool.class.d.ts +0 -15
  149. package/dist/types/kritzel-stencil/src/classes/tools/line-tool.class.d.ts +0 -19
  150. package/dist/types/kritzel-stencil/src/classes/tools/selection-tool.class.d.ts +0 -54
  151. package/dist/types/kritzel-stencil/src/classes/tools/shape-tool.class.d.ts +0 -39
  152. package/dist/types/kritzel-stencil/src/classes/tools/text-tool.class.d.ts +0 -13
  153. package/dist/types/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.d.ts +0 -111
  154. package/dist/types/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.d.ts +0 -11
  155. package/dist/types/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +0 -46
  156. package/dist/types/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.d.ts +0 -13
  157. package/dist/types/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +0 -21
  158. package/dist/types/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +0 -10
  159. package/dist/types/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +0 -21
  160. package/dist/types/kritzel-stencil/src/configs/default-brush-tool.config.d.ts +0 -2
  161. package/dist/types/kritzel-stencil/src/configs/default-engine-config.d.ts +0 -2
  162. package/dist/types/kritzel-stencil/src/configs/default-line-tool.config.d.ts +0 -2
  163. package/dist/types/kritzel-stencil/src/configs/default-sync.config.d.ts +0 -5
  164. package/dist/types/kritzel-stencil/src/configs/default-text-tool.config.d.ts +0 -2
  165. package/dist/types/kritzel-stencil/src/constants/color-palette.constants.d.ts +0 -29
  166. package/dist/types/kritzel-stencil/src/constants/engine.constants.d.ts +0 -2
  167. package/dist/types/kritzel-stencil/src/enums/event-button.enum.d.ts +0 -5
  168. package/dist/types/kritzel-stencil/src/enums/handle-type.enum.d.ts +0 -6
  169. package/dist/types/kritzel-stencil/src/enums/shape-type.enum.d.ts +0 -5
  170. package/dist/types/kritzel-stencil/src/helpers/class.helper.d.ts +0 -3
  171. package/dist/types/kritzel-stencil/src/helpers/color.helper.d.ts +0 -33
  172. package/dist/types/kritzel-stencil/src/helpers/cursor.helper.d.ts +0 -22
  173. package/dist/types/kritzel-stencil/src/helpers/devices.helper.d.ts +0 -8
  174. package/dist/types/kritzel-stencil/src/helpers/event.helper.d.ts +0 -6
  175. package/dist/types/kritzel-stencil/src/helpers/geometry.helper.d.ts +0 -38
  176. package/dist/types/kritzel-stencil/src/helpers/keyboard.helper.d.ts +0 -6
  177. package/dist/types/kritzel-stencil/src/helpers/math.helper.d.ts +0 -3
  178. package/dist/types/kritzel-stencil/src/helpers/object.helper.d.ts +0 -4
  179. package/dist/types/kritzel-stencil/src/helpers/theme.helper.d.ts +0 -41
  180. package/dist/types/kritzel-stencil/src/index.d.ts +0 -42
  181. package/dist/types/kritzel-stencil/src/interfaces/anchor.interface.d.ts +0 -137
  182. package/dist/types/kritzel-stencil/src/interfaces/arrow-head.interface.d.ts +0 -27
  183. package/dist/types/kritzel-stencil/src/interfaces/bounding-box.interface.d.ts +0 -8
  184. package/dist/types/kritzel-stencil/src/interfaces/clonable.interface.d.ts +0 -3
  185. package/dist/types/kritzel-stencil/src/interfaces/context-menu-item.interface.d.ts +0 -17
  186. package/dist/types/kritzel-stencil/src/interfaces/debug-info.interface.d.ts +0 -4
  187. package/dist/types/kritzel-stencil/src/interfaces/dialog.interface.d.ts +0 -4
  188. package/dist/types/kritzel-stencil/src/interfaces/displayable-shortcut.interface.d.ts +0 -5
  189. package/dist/types/kritzel-stencil/src/interfaces/engine-state.interface.d.ts +0 -73
  190. package/dist/types/kritzel-stencil/src/interfaces/line-options.interface.d.ts +0 -23
  191. package/dist/types/kritzel-stencil/src/interfaces/master-detail.interface.d.ts +0 -14
  192. package/dist/types/kritzel-stencil/src/interfaces/menu-item.interface.d.ts +0 -24
  193. package/dist/types/kritzel-stencil/src/interfaces/object.interface.d.ts +0 -53
  194. package/dist/types/kritzel-stencil/src/interfaces/path-options.interface.d.ts +0 -11
  195. package/dist/types/kritzel-stencil/src/interfaces/point.interface.d.ts +0 -4
  196. package/dist/types/kritzel-stencil/src/interfaces/polygon.interface.d.ts +0 -7
  197. package/dist/types/kritzel-stencil/src/interfaces/serializable.interface.d.ts +0 -5
  198. package/dist/types/kritzel-stencil/src/interfaces/settings.interface.d.ts +0 -11
  199. package/dist/types/kritzel-stencil/src/interfaces/shortcut.interface.d.ts +0 -10
  200. package/dist/types/kritzel-stencil/src/interfaces/sync-config.interface.d.ts +0 -22
  201. package/dist/types/kritzel-stencil/src/interfaces/sync-provider.interface.d.ts +0 -29
  202. package/dist/types/kritzel-stencil/src/interfaces/theme.interface.d.ts +0 -330
  203. package/dist/types/kritzel-stencil/src/interfaces/tool-config.interface.d.ts +0 -26
  204. package/dist/types/kritzel-stencil/src/interfaces/tool.interface.d.ts +0 -7
  205. package/dist/types/kritzel-stencil/src/interfaces/toolbar-control.interface.d.ts +0 -58
  206. package/dist/types/kritzel-stencil/src/interfaces/undo-state.interface.d.ts +0 -6
  207. package/dist/types/kritzel-stencil/src/themes/dark-theme.d.ts +0 -5
  208. package/dist/types/kritzel-stencil/src/themes/light-theme.d.ts +0 -5
  209. package/dist/types/kritzel-stencil/src/types/shortcut.type.d.ts +0 -1
  210. package/dist/types/kritzel-stencil/src/types/state.types.d.ts +0 -3
@@ -1,46 +0,0 @@
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 };
@@ -1,312 +0,0 @@
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 };
@@ -1,60 +0,0 @@
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 };
@@ -1,105 +0,0 @@
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 };
@@ -1,53 +0,0 @@
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 };