kritzel-stencil 0.1.0 → 0.1.2

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 (176) hide show
  1. package/dist/cjs/{default-line-tool.config-7eJND6Jb.js → default-line-tool.config-MA02HCrH.js} +703 -133
  2. package/dist/cjs/{index-BeKMS-Zt.js → index-Bj0n7fQQ.js} +84 -7
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  5. package/dist/cjs/{kritzel-color_22.cjs.entry.js → kritzel-color_24.cjs.entry.js} +1018 -897
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/stencil.cjs.js +3 -3
  8. package/dist/collection/classes/core/core.class.js +2 -0
  9. package/dist/collection/classes/core/viewport.class.js +43 -3
  10. package/dist/collection/classes/handlers/move.handler.js +6 -0
  11. package/dist/collection/classes/objects/line.class.js +63 -15
  12. package/dist/collection/classes/objects/path.class.js +1 -0
  13. package/dist/collection/classes/objects/shape.class.js +1 -0
  14. package/dist/collection/classes/objects/text.class.js +4 -3
  15. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
  16. package/dist/collection/classes/tools/brush-tool.class.js +5 -0
  17. package/dist/collection/classes/tools/line-tool.class.js +31 -1
  18. package/dist/collection/classes/tools/selection-tool.class.js +193 -0
  19. package/dist/collection/classes/tools/shape-tool.class.js +2 -0
  20. package/dist/collection/classes/tools/text-tool.class.js +3 -0
  21. package/dist/collection/collection-manifest.json +5 -3
  22. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +3 -2
  23. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +37 -19
  24. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +108 -36
  25. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  26. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +1 -1
  27. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +24 -2
  28. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  29. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +1 -1
  30. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +1 -1
  31. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  32. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -0
  33. package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +187 -0
  34. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +15 -8
  35. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +16 -9
  36. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -0
  37. package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +163 -0
  38. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  39. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -0
  40. package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +93 -0
  41. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +13 -7
  42. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +11 -2
  43. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +2 -2
  44. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +1 -1
  45. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +6 -4
  46. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +6 -3
  47. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +66 -0
  48. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +153 -50
  49. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -0
  50. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +321 -0
  51. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +3 -2
  52. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +6 -3
  53. package/dist/collection/configs/default-brush-tool.config.js +2 -52
  54. package/dist/collection/configs/default-line-tool.config.js +2 -26
  55. package/dist/collection/configs/default-shape-tool.config.js +2 -15
  56. package/dist/collection/configs/default-text-tool.config.js +2 -26
  57. package/dist/collection/constants/color-palette.constants.js +30 -0
  58. package/dist/collection/helpers/color.helper.js +31 -0
  59. package/dist/collection/helpers/tool-config.helper.js +65 -0
  60. package/dist/collection/interfaces/tool-config.interface.js +1 -0
  61. package/dist/components/index.d.ts +8 -4
  62. package/dist/components/index.js +1 -1
  63. package/dist/components/kritzel-brush-style.js +1 -1
  64. package/dist/components/kritzel-color-palette.js +1 -1
  65. package/dist/components/kritzel-color.js +1 -1
  66. package/dist/components/kritzel-context-menu.js +1 -1
  67. package/dist/components/kritzel-controls.js +1 -1
  68. package/dist/components/kritzel-cursor-trail.js +1 -1
  69. package/dist/components/kritzel-dropdown.js +1 -1
  70. package/dist/components/kritzel-editor.js +1 -1
  71. package/dist/components/kritzel-engine.js +1 -1
  72. package/dist/components/kritzel-font-family.js +1 -1
  73. package/dist/components/kritzel-font-size.js +1 -1
  74. package/dist/components/kritzel-font.js +1 -1
  75. package/dist/components/kritzel-icon.js +1 -1
  76. package/dist/components/kritzel-line-endings.d.ts +11 -0
  77. package/dist/components/kritzel-line-endings.js +1 -0
  78. package/dist/components/kritzel-menu-item.js +1 -1
  79. package/dist/components/kritzel-menu.js +1 -1
  80. package/dist/components/kritzel-opacity-slider.d.ts +11 -0
  81. package/dist/components/kritzel-opacity-slider.js +1 -0
  82. package/dist/components/kritzel-portal.js +1 -1
  83. package/dist/components/kritzel-shape-fill.d.ts +11 -0
  84. package/dist/components/kritzel-shape-fill.js +1 -0
  85. package/dist/components/kritzel-split-button.js +1 -1
  86. package/dist/components/kritzel-stroke-size.js +1 -1
  87. package/dist/components/kritzel-tool-config.d.ts +11 -0
  88. package/dist/components/kritzel-tool-config.js +1 -0
  89. package/dist/components/kritzel-tooltip.js +1 -1
  90. package/dist/components/kritzel-utility-panel.js +1 -1
  91. package/dist/components/kritzel-workspace-manager.js +1 -1
  92. package/dist/components/p-83YX0-FS.js +1 -0
  93. package/dist/components/p-8iEiCuEN.js +1 -0
  94. package/dist/components/p-9XZbc_qK.js +1 -0
  95. package/dist/components/p-B3P64-gH.js +9 -0
  96. package/dist/components/p-B8QjTqOY.js +1 -0
  97. package/dist/components/p-BF6MdW17.js +1 -0
  98. package/dist/components/p-BVIY50lR.js +1 -0
  99. package/dist/components/p-BbqT9o1F.js +1 -0
  100. package/dist/components/{p-CXzfYQ_u.js → p-BnidlyU0.js} +1 -1
  101. package/dist/components/{p-Bj_Og27M.js → p-BxS4Pdpz.js} +1 -1
  102. package/dist/components/{p-g0N9j_uT.js → p-CCj8nmQH.js} +1 -1
  103. package/dist/components/{p-1z-ds26_.js → p-CLOnpu42.js} +1 -1
  104. package/dist/components/{p-D1tfzpy8.js → p-CSGeDE4f.js} +1 -1
  105. package/dist/components/p-CbuHMNa9.js +1 -0
  106. package/dist/components/p-ClMFs3KI.js +1 -0
  107. package/dist/components/{p-IAqZFssU.js → p-Cnpk2hfo.js} +1 -1
  108. package/dist/components/{p-Cy77SpWt.js → p-Ctv4NAxk.js} +1 -1
  109. package/dist/components/p-CyHZWbkS.js +1 -0
  110. package/dist/components/{p-C4krHoUl.js → p-D8GeJNUv.js} +1 -1
  111. package/dist/components/{p-DB5s1NY4.js → p-DKgqzi2Y.js} +1 -1
  112. package/dist/components/p-DOF5fWDU.js +1 -0
  113. package/dist/components/{p-4FEa4ADy.js → p-DV_h5Jo2.js} +1 -1
  114. package/dist/components/{p-DTezr6w9.js → p-DgCGSL2Q.js} +1 -1
  115. package/dist/components/{p-D5ZsALCP.js → p-wRXL928z.js} +1 -1
  116. package/dist/esm/{default-line-tool.config-CD5sTKH-.js → default-line-tool.config-DLpNl6R9.js} +702 -125
  117. package/dist/esm/{index-BqhmuUH2.js → index-OLdaFN6W.js} +84 -7
  118. package/dist/esm/index.js +2 -2
  119. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  120. package/dist/esm/{kritzel-color_22.entry.js → kritzel-color_24.entry.js} +1009 -890
  121. package/dist/esm/loader.js +3 -3
  122. package/dist/esm/stencil.js +4 -4
  123. package/dist/stencil/index.esm.js +1 -1
  124. package/dist/stencil/{p-09295079.entry.js → p-802bc7cf.entry.js} +1 -1
  125. package/dist/stencil/p-DLpNl6R9.js +1 -0
  126. package/dist/stencil/p-OLdaFN6W.js +2 -0
  127. package/dist/stencil/p-caf30edb.entry.js +9 -0
  128. package/dist/stencil/stencil.esm.js +1 -1
  129. package/dist/types/classes/core/viewport.class.d.ts +6 -0
  130. package/dist/types/classes/managers/anchor.manager.d.ts +1 -1
  131. package/dist/types/classes/objects/line.class.d.ts +2 -0
  132. package/dist/types/classes/objects/shape.class.d.ts +1 -0
  133. package/dist/types/classes/tools/brush-tool.class.d.ts +1 -0
  134. package/dist/types/classes/tools/line-tool.class.d.ts +2 -1
  135. package/dist/types/classes/tools/selection-tool.class.d.ts +22 -0
  136. package/dist/types/classes/tools/shape-tool.class.d.ts +1 -0
  137. package/dist/types/classes/tools/text-tool.class.d.ts +1 -0
  138. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
  139. package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
  140. package/dist/types/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +23 -0
  141. package/dist/types/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.d.ts +17 -0
  142. package/dist/types/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +10 -0
  143. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +15 -0
  144. package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +25 -0
  145. package/dist/types/components.d.ts +235 -82
  146. package/dist/types/constants/color-palette.constants.d.ts +5 -0
  147. package/dist/types/helpers/color.helper.d.ts +9 -0
  148. package/dist/types/helpers/tool-config.helper.d.ts +4 -0
  149. package/dist/types/interfaces/line-options.interface.d.ts +1 -0
  150. package/dist/types/interfaces/path-options.interface.d.ts +1 -0
  151. package/dist/types/interfaces/tool-config.interface.d.ts +26 -0
  152. package/dist/types/stencil-public-runtime.d.ts +29 -0
  153. package/package.json +5 -3
  154. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +0 -19
  155. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -134
  156. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.css +0 -19
  157. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +0 -114
  158. package/dist/components/kritzel-control-brush-config.d.ts +0 -11
  159. package/dist/components/kritzel-control-brush-config.js +0 -1
  160. package/dist/components/kritzel-control-text-config.d.ts +0 -11
  161. package/dist/components/kritzel-control-text-config.js +0 -1
  162. package/dist/components/p-B7Fdo5QJ.js +0 -1
  163. package/dist/components/p-BXaWhpO2.js +0 -1
  164. package/dist/components/p-BtuXeItZ.js +0 -1
  165. package/dist/components/p-C-d2IH4v.js +0 -1
  166. package/dist/components/p-C3UriJh7.js +0 -1
  167. package/dist/components/p-CF5L2Gdl.js +0 -1
  168. package/dist/components/p-CeKT_dTd.js +0 -1
  169. package/dist/components/p-Cp15toXH.js +0 -1
  170. package/dist/components/p-D3LRBk2t.js +0 -9
  171. package/dist/components/p-Du1vxHy8.js +0 -1
  172. package/dist/stencil/p-381c0e9c.entry.js +0 -9
  173. package/dist/stencil/p-BqhmuUH2.js +0 -2
  174. package/dist/stencil/p-CD5sTKH-.js +0 -1
  175. package/dist/types/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.d.ts +0 -15
  176. package/dist/types/components/ui/kritzel-control-text-config/kritzel-control-text-config.d.ts +0 -12
@@ -673,6 +673,35 @@ export declare function h(sel: any, text: string): VNode;
673
673
  export declare function h(sel: any, children: Array<VNode | undefined | null>): VNode;
674
674
  export declare function h(sel: any, data: VNodeData | null, text: string): VNode;
675
675
  export declare function h(sel: any, data: VNodeData | null, children: Array<VNode | undefined | null>): VNode;
676
+ /**
677
+ * Automatic JSX runtime functions for TypeScript's react-jsx mode.
678
+ * These functions are called automatically by TypeScript when using "jsx": "react-jsx".
679
+ * @param type type of node
680
+ * @param props properties of node
681
+ * @param key optional key for the node
682
+ * @returns a jsx vnode
683
+ */
684
+ export declare function jsx(type: any, props: any, key?: string): VNode;
685
+ /**
686
+ * Automatic JSX runtime functions for TypeScript's react-jsxmode with multiple children.
687
+ * @param type type of node
688
+ * @param props properties of node
689
+ * @param key optional key for the node
690
+ * @returns a jsx vnode
691
+ */
692
+ export declare function jsxs(type: any, props: any, key?: string): VNode;
693
+ /**
694
+ * Automatic JSX runtime functions for TypeScript's react-jsxdev mode.
695
+ * These functions are called automatically by TypeScript when using "jsx": "react-jsxdev".
696
+ * @param type type of node
697
+ * @param props properties of node
698
+ * @param key optional key for the node
699
+ * @param isStaticChildren indicates if the children are static
700
+ * @param source source information
701
+ * @param self reference to the component instance
702
+ * @returns a jsx vnode
703
+ */
704
+ export declare function jsxDEV(type: any, props: any, key?: string | number, isStaticChildren?: boolean, source?: any, self?: any): VNode;
676
705
  export declare function h(sel: any, data: VNodeData | null, children: VNode): VNode;
677
706
  /**
678
707
  * A virtual DOM node
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kritzel-stencil",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Stencil Component Starter",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -42,7 +42,8 @@
42
42
  "build": "stencil build",
43
43
  "start": "stencil build --dev --watch --serve",
44
44
  "test": "stencil test --spec",
45
- "test.watch": "stencil test --spec --watchAll",
45
+ "e2e": "stencil test --e2e --screenshot",
46
+ "e2e:update-screenshots": "stencil test --e2e --screenshot --update-screenshot",
46
47
  "generate": "stencil generate",
47
48
  "clean": "rimraf dist .stencil loader node_modules",
48
49
  "bump": "npm version patch",
@@ -67,7 +68,7 @@
67
68
  },
68
69
  "devDependencies": {
69
70
  "@stencil/angular-output-target": "^1.1.1",
70
- "@stencil/core": "^4.36.3",
71
+ "@stencil/core": "^4.41.0",
71
72
  "@stencil/react-output-target": "^1.2.0",
72
73
  "@stencil/vue-output-target": "0.11.8",
73
74
  "@types/jest": "^29.5.14",
@@ -75,6 +76,7 @@
75
76
  "fake-indexeddb": "^6.2.2",
76
77
  "jest": "^29.7.0",
77
78
  "jest-cli": "^29.7.0",
79
+ "jest-jasmine2": "^30.2.0",
78
80
  "puppeteer": "^24.6.1",
79
81
  "ts-jest": "^29.4.4"
80
82
  }
@@ -1,19 +0,0 @@
1
- :host {
2
- display: flex;
3
- flex-direction: column;
4
- width: 100%;
5
- }
6
-
7
- .expand-toggle {
8
- background: none;
9
- border: none;
10
- cursor: var(--kritzel-pointer-cursor, pointer);
11
- font-size: 14px;
12
- line-height: 1;
13
- padding: 8px;
14
- color: var(--kritzel-color-palette-expand-toggle-color, #666666);
15
- }
16
-
17
- .expand-toggle:hover {
18
- color: var(--kritzel-color-palette-expand-toggle-hover-color, #333333);
19
- }
@@ -1,134 +0,0 @@
1
- import { Host, h } from "@stencil/core";
2
- export class KritzelControlBrushConfig {
3
- tool;
4
- handleToolChange(newTool) {
5
- this.palette = newTool.palettes[newTool.type];
6
- }
7
- isExpanded = false;
8
- toolChange;
9
- palette = [];
10
- componentWillLoad() {
11
- this.palette = this.tool.palettes[this.tool.type];
12
- }
13
- handleToggleExpand() {
14
- this.isExpanded = !this.isExpanded;
15
- }
16
- handleTypeChange(event) {
17
- this.palette = this.tool.palettes[event.detail];
18
- this.tool.type = event.detail;
19
- this.tool.color = this.palette[0];
20
- this.toolChange.emit(this.tool);
21
- }
22
- handleColorChange(event) {
23
- this.tool.color = event.detail;
24
- this.toolChange.emit(this.tool);
25
- }
26
- handleSizeChange(event) {
27
- this.tool.size = event.detail;
28
- this.toolChange.emit(this.tool);
29
- }
30
- render() {
31
- return (h(Host, { key: 'ce2ac77db22f52239a45b62f690d54009f2c6954' }, h("div", { key: '5f6c50853e876c3612bb5c270bccc468c2c9a726', style: {
32
- display: 'flex',
33
- flexDirection: 'row',
34
- alignItems: this.isExpanded ? 'flex-start' : 'center',
35
- justifyContent: 'flex-start',
36
- width: '100%',
37
- gap: '8px',
38
- } }, h("kritzel-color-palette", { key: 'bfa24bb8683027c37f200ad65e4e6787d7224c56', colors: this.palette, selectedColor: this.tool.color, isExpanded: this.isExpanded, isOpaque: true, onColorChange: color => this.handleColorChange(color) }), h("button", { key: '8e2c55c6d16ca3911c5f068c354bdce5a4f7e844', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand', style: this.palette.length > 6 ? { visibillity: 'visible' } : { visibility: 'hidden' } }, h("kritzel-icon", { key: '33610ada109fe5d1d9cb2da4c70a60d672e3d6cb', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), h("kritzel-stroke-size", { key: '9b095dd9436e46dd88a3485ceb2dafa5d06d1bc4', selectedSize: this.tool.size, onSizeChange: event => this.handleSizeChange(event) })));
39
- }
40
- static get is() { return "kritzel-control-brush-config"; }
41
- static get encapsulation() { return "shadow"; }
42
- static get originalStyleUrls() {
43
- return {
44
- "$": ["kritzel-control-brush-config.css"]
45
- };
46
- }
47
- static get styleUrls() {
48
- return {
49
- "$": ["kritzel-control-brush-config.css"]
50
- };
51
- }
52
- static get properties() {
53
- return {
54
- "tool": {
55
- "type": "unknown",
56
- "mutable": true,
57
- "complexType": {
58
- "original": "KritzelBrushTool",
59
- "resolved": "KritzelBrushTool",
60
- "references": {
61
- "KritzelBrushTool": {
62
- "location": "import",
63
- "path": "../../../classes/tools/brush-tool.class",
64
- "id": "src/classes/tools/brush-tool.class.ts::KritzelBrushTool"
65
- }
66
- }
67
- },
68
- "required": false,
69
- "optional": false,
70
- "docs": {
71
- "tags": [],
72
- "text": ""
73
- },
74
- "getter": false,
75
- "setter": false
76
- },
77
- "isExpanded": {
78
- "type": "boolean",
79
- "mutable": true,
80
- "complexType": {
81
- "original": "boolean",
82
- "resolved": "boolean",
83
- "references": {}
84
- },
85
- "required": false,
86
- "optional": false,
87
- "docs": {
88
- "tags": [],
89
- "text": ""
90
- },
91
- "getter": false,
92
- "setter": false,
93
- "reflect": false,
94
- "attribute": "is-expanded",
95
- "defaultValue": "false"
96
- }
97
- };
98
- }
99
- static get states() {
100
- return {
101
- "palette": {}
102
- };
103
- }
104
- static get events() {
105
- return [{
106
- "method": "toolChange",
107
- "name": "toolChange",
108
- "bubbles": true,
109
- "cancelable": true,
110
- "composed": true,
111
- "docs": {
112
- "tags": [],
113
- "text": ""
114
- },
115
- "complexType": {
116
- "original": "KritzelBrushTool",
117
- "resolved": "KritzelBrushTool",
118
- "references": {
119
- "KritzelBrushTool": {
120
- "location": "import",
121
- "path": "../../../classes/tools/brush-tool.class",
122
- "id": "src/classes/tools/brush-tool.class.ts::KritzelBrushTool"
123
- }
124
- }
125
- }
126
- }];
127
- }
128
- static get watchers() {
129
- return [{
130
- "propName": "tool",
131
- "methodName": "handleToolChange"
132
- }];
133
- }
134
- }
@@ -1,19 +0,0 @@
1
- :host {
2
- display: block;
3
- flex-direction: column;
4
- width: 100%;
5
- }
6
-
7
- .expand-toggle {
8
- background: none;
9
- border: none;
10
- cursor: var(--kritzel-pointer-cursor, pointer);
11
- font-size: 14px;
12
- line-height: 1;
13
- padding: 8px;
14
- color: var(--kritzel-color-palette-expand-toggle-color, #666666);
15
- }
16
-
17
- .expand-toggle:hover {
18
- color: var(--kritzel-color-palette-expand-toggle-hover-color, #333333);
19
- }
@@ -1,114 +0,0 @@
1
- import { Host, h } from "@stencil/core";
2
- export class KritzelControlTextConfig {
3
- tool;
4
- isExpanded = false;
5
- toolChange;
6
- handleToggleExpand() {
7
- this.isExpanded = !this.isExpanded;
8
- }
9
- handleFamilyChange(event) {
10
- this.tool.fontFamily = event.detail;
11
- this.toolChange.emit(this.tool);
12
- }
13
- handleColorChange(event) {
14
- this.tool.fontColor = event.detail;
15
- this.toolChange.emit(this.tool);
16
- }
17
- handleSizeChange(event) {
18
- this.tool.fontSize = event.detail;
19
- this.toolChange.emit(this.tool);
20
- }
21
- render() {
22
- return (h(Host, { key: '4a0027969b183fef77c374eb114d9d30104e5ad7' }, h("div", { key: '9f49eb3a95080447b938fdfeb256fafbe5ff9ddc', style: {
23
- display: 'flex',
24
- flexDirection: 'row',
25
- alignItems: 'center',
26
- justifyContent: 'flex-start',
27
- width: '100%',
28
- gap: '8px',
29
- } }, h("kritzel-font-family", { key: '4e75cda048f8b8c04e6cb5568e7cdcde91e28112', selectedFontFamily: this.tool.fontFamily, onFontFamilyChange: event => this.handleFamilyChange(event) }), h("button", { key: '05c6ce98bd700e9e9d2e676cbcf191b943a2980e', class: "expand-toggle", onClick: () => this.handleToggleExpand(), title: this.isExpanded ? 'Collapse' : 'Expand', tabindex: "0" }, h("kritzel-icon", { key: 'ce30d48dd5ce5eefeee7702dff81ca8f96e0872d', name: this.isExpanded ? 'chevron-up' : 'chevron-down' }))), h("kritzel-color-palette", { key: 'a3d313bf01dafc15c8cf39a129d8c0c35741a3ca', colors: this.tool.palette, selectedColor: this.tool.fontColor, isExpanded: this.isExpanded, onColorChange: event => this.handleColorChange(event) }), h("kritzel-font-size", { key: '954db891b80fb244083de24dc87255b1239ff913', selectedSize: this.tool.fontSize, fontFamily: this.tool.fontFamily, onSizeChange: event => this.handleSizeChange(event) })));
30
- }
31
- static get is() { return "kritzel-control-text-config"; }
32
- static get encapsulation() { return "shadow"; }
33
- static get originalStyleUrls() {
34
- return {
35
- "$": ["kritzel-control-text-config.css"]
36
- };
37
- }
38
- static get styleUrls() {
39
- return {
40
- "$": ["kritzel-control-text-config.css"]
41
- };
42
- }
43
- static get properties() {
44
- return {
45
- "tool": {
46
- "type": "unknown",
47
- "mutable": true,
48
- "complexType": {
49
- "original": "KritzelTextTool",
50
- "resolved": "KritzelTextTool",
51
- "references": {
52
- "KritzelTextTool": {
53
- "location": "import",
54
- "path": "../../../classes/tools/text-tool.class",
55
- "id": "src/classes/tools/text-tool.class.ts::KritzelTextTool"
56
- }
57
- }
58
- },
59
- "required": false,
60
- "optional": false,
61
- "docs": {
62
- "tags": [],
63
- "text": ""
64
- },
65
- "getter": false,
66
- "setter": false
67
- },
68
- "isExpanded": {
69
- "type": "boolean",
70
- "mutable": true,
71
- "complexType": {
72
- "original": "boolean",
73
- "resolved": "boolean",
74
- "references": {}
75
- },
76
- "required": false,
77
- "optional": false,
78
- "docs": {
79
- "tags": [],
80
- "text": ""
81
- },
82
- "getter": false,
83
- "setter": false,
84
- "reflect": false,
85
- "attribute": "is-expanded",
86
- "defaultValue": "false"
87
- }
88
- };
89
- }
90
- static get events() {
91
- return [{
92
- "method": "toolChange",
93
- "name": "toolChange",
94
- "bubbles": true,
95
- "cancelable": true,
96
- "composed": true,
97
- "docs": {
98
- "tags": [],
99
- "text": ""
100
- },
101
- "complexType": {
102
- "original": "KritzelTextTool",
103
- "resolved": "KritzelTextTool",
104
- "references": {
105
- "KritzelTextTool": {
106
- "location": "import",
107
- "path": "../../../classes/tools/text-tool.class",
108
- "id": "src/classes/tools/text-tool.class.ts::KritzelTextTool"
109
- }
110
- }
111
- }
112
- }];
113
- }
114
- }
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface KritzelControlBrushConfig extends Components.KritzelControlBrushConfig, HTMLElement {}
4
- export const KritzelControlBrushConfig: {
5
- prototype: KritzelControlBrushConfig;
6
- new (): KritzelControlBrushConfig;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1 +0,0 @@
1
- import{K as o,d as s}from"./p-CeKT_dTd.js";const d=o,p=s;export{d as KritzelControlBrushConfig,p as defineCustomElement}
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface KritzelControlTextConfig extends Components.KritzelControlTextConfig, HTMLElement {}
4
- export const KritzelControlTextConfig: {
5
- prototype: KritzelControlTextConfig;
6
- new (): KritzelControlTextConfig;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1 +0,0 @@
1
- import{K as o,d as r}from"./p-C3UriJh7.js";const s=o,p=r;export{s as KritzelControlTextConfig,p as defineCustomElement}
@@ -1 +0,0 @@
1
- import{p as t,H as o,c as e,h as r,d as i,t as l}from"./p-Bj_Og27M.js";import{b as n,c as s}from"./p-Cp15toXH.js";import{K as c}from"./p-l10It7Nm.js";import{d as a}from"./p-CXzfYQ_u.js";import{d}from"./p-Du1vxHy8.js";import{d as p}from"./p-CeKT_dTd.js";import{d as k}from"./p-C3UriJh7.js";import{d as u}from"./p-g0N9j_uT.js";import{d as h}from"./p-C4krHoUl.js";import{d as z}from"./p-C-d2IH4v.js";import{d as b}from"./p-BXaWhpO2.js";import{d as f}from"./p-DTezr6w9.js";import{d as g}from"./p-CF5L2Gdl.js";import{d as m}from"./p-BtuXeItZ.js";import{d as v}from"./p-DB5s1NY4.js";const x=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.isControlsReady=e(this,"isControlsReady")}get host(){return this}controls=[];activeControl=null;isUtilityPanelVisible=!0;undoState=null;isControlsReady;firstConfig=null;isTooltipVisible=!1;isTouchDevice=c.isTouchDevice();selectedSubOptions=new Map;openSubMenuControl=null;handleDocumentClick(t){this.kritzelEngine&&!t.target.closest(".kritzel-tooltip")&&(this.isTooltipVisible=!1)}handleKeyDown(t){"Escape"===t.key&&(t.preventDefault(),this.closeTooltip(),this.openSubMenuControl=null,this.kritzelEngine?.enable())}async handleActiveToolChange(t){this.activeControl=this.controls.find((o=>o.tool===t.detail))||null}async closeTooltip(){this.isTooltipVisible=!1}kritzelEngine=null;tooltipRef=null;get activeToolAsTextTool(){return this.activeControl?.tool}get activeToolAsBrushTool(){return this.activeControl?.tool}async componentWillLoad(){await this.initializeEngine(),await this.initializeTools(),this.isControlsReady.emit()}async initializeEngine(){if(await customElements.whenDefined("kritzel-engine"),this.kritzelEngine=this.host.parentElement.querySelector("kritzel-engine"),!this.kritzelEngine)throw new Error("kritzel-engine not found in parent element.")}async initializeTools(){for(const t of this.controls)"tool"===t.type&&t.tool&&(t.tool=await this.kritzelEngine.registerTool(t.name,t.tool,t.config)),"tool"===t.type&&t.isDefault&&t.tool&&(await this.kritzelEngine.changeActiveTool(t.tool),this.activeControl=t),"config"===t.type&&(null===this.firstConfig?this.firstConfig=t:console.warn("Only one config control is allowed. The first one will be used."))}async handleControlClick(t){this.activeControl=t,"tool"===this.activeControl.type&&await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}handleConfigClick(t){t.stopPropagation(),this.isTooltipVisible=!this.isTooltipVisible,this.isTooltipVisible?this.kritzelEngine?.disable():this.kritzelEngine?.enable(),setTimeout((()=>{this.tooltipRef?.focusContent()}),100)}async handleToolChange(t){this.activeControl={...this.activeControl,tool:t.detail},await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}handleTooltipClosed(){this.isTooltipVisible=!1,this.kritzelEngine?.enable()}getSelectedSubOption(t){if(t.subOptions?.length)return this.selectedSubOptions.get(t.name)||t.subOptions[0]}toggleSubMenu(t,o){t.stopPropagation(),this.openSubMenuControl=this.openSubMenuControl?.name===o.name?null:o}async selectSubOption(t,o){const e=new Map(this.selectedSubOptions);e.set(t.name,o),this.selectedSubOptions=e,t.tool&&"function"!=typeof t.tool&&(t.tool[o.toolProperty]=o.value),this.openSubMenuControl=null,await this.handleControlClick(t)}render(){const t=this.activeControl?.tool instanceof n||this.activeControl?.tool instanceof s;return r(i,{key:"ed5816cbeb8fe8b91e14b23bf61df4753fb0da0f",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&r("kritzel-utility-panel",{key:"7218fff9c89f525baf655eea46aec1698a28babd",style:{position:"absolute",bottom:"56px",left:"12px"},undoState:this.undoState,onUndo:()=>this.kritzelEngine?.undo(),onRedo:()=>this.kritzelEngine?.redo(),onDelete:()=>this.kritzelEngine?.delete()}),r("div",{key:"1dc0fa7b02a953474aae9c7822c651d5006e89e5",class:"kritzel-controls"},this.controls.map((o=>{if("tool"===o.type){if(o.subOptions?.length){const t=this.getSelectedSubOption(o),e=this.activeControl?.name===o.name,i=this.openSubMenuControl?.name===o.name;return r("div",{class:{"kritzel-control-split":!0,selected:e},key:o.name,ref:t=>{t&&(o._anchorRef=t)}},r("button",{class:"kritzel-control-main",onClick:()=>this.handleControlClick(o),title:t?.label},r("kritzel-icon",{name:t?.icon||o.icon})),r("button",{class:{"kritzel-control-dropdown":!0,visible:e},onClick:t=>this.toggleSubMenu(t,o),"aria-label":"Select shape type","aria-expanded":i?"true":"false",tabIndex:e?0:-1},r("kritzel-icon",{name:"chevron-down",size:12})),r("kritzel-tooltip",{isVisible:i,anchorElement:o._anchorRef,onTooltipClosed:()=>{this.openSubMenuControl=null}},r("div",{class:"kritzel-submenu-content"},o.subOptions.map((e=>r("button",{class:{"kritzel-submenu-item":!0,active:e.id===t?.id},key:e.id,onClick:()=>this.selectSubOption(o,e)},r("kritzel-icon",{name:e.icon,size:20}),r("span",null,e.label)))))))}return r("button",{class:{"kritzel-control":!0,selected:this.activeControl?.name===o?.name},key:o.name,onClick:()=>this.handleControlClick?.(o)},r("kritzel-icon",{name:o.icon}))}if("config"===o.type&&o.name===this.firstConfig?.name&&this.activeControl)return r("div",{class:{"kritzel-config-container":!0,visible:t},key:o.name},r("kritzel-tooltip",{ref:t=>this.tooltipRef=t,isVisible:this.isTooltipVisible,anchorElement:this.host.shadowRoot?.querySelector(".kritzel-config-container"),onTooltipClosed:()=>this.handleTooltipClosed()},r("div",{style:{width:"294px",height:"100%"}},"brush"===this.activeControl.name&&r("kritzel-control-brush-config",{tool:this.activeToolAsBrushTool,onToolChange:t=>this.handleToolChange?.(t)}),"text"===this.activeControl.name&&r("kritzel-control-text-config",{tool:this.activeToolAsTextTool,onToolChange:t=>this.handleToolChange?.(t)}))),r("div",{tabIndex:t?0:-1,class:"kritzel-config",onClick:t=>this.handleConfigClick?.(t),onKeyDown:t=>{"Enter"===t.key&&this.handleConfigClick?.(t)},style:{cursor:"pointer"}},this.activeControl.tool instanceof n&&r("div",{class:"color-container"},r("kritzel-color",{value:this.activeToolAsBrushTool?.color,size:this.activeToolAsBrushTool?.size,style:{borderRadius:"50%",border:"none"}})),this.activeControl.tool instanceof s&&r("div",{class:"font-container"},r("kritzel-font",{fontFamily:this.activeToolAsTextTool?.fontFamily,size:this.activeToolAsTextTool?.fontSize,color:this.activeToolAsTextTool?.fontColor}))))}))))}static get assetsDirs(){return["../assets"]}static get style(){return":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}"}},[513,"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"]]]);function y(){"undefined"!=typeof customElements&&["kritzel-controls","kritzel-color","kritzel-color-palette","kritzel-control-brush-config","kritzel-control-text-config","kritzel-dropdown","kritzel-font","kritzel-font-family","kritzel-font-size","kritzel-icon","kritzel-stroke-size","kritzel-tooltip","kritzel-utility-panel"].forEach((t=>{switch(t){case"kritzel-controls":customElements.get(l(t))||customElements.define(l(t),x);break;case"kritzel-color":customElements.get(l(t))||a();break;case"kritzel-color-palette":customElements.get(l(t))||d();break;case"kritzel-control-brush-config":customElements.get(l(t))||p();break;case"kritzel-control-text-config":customElements.get(l(t))||k();break;case"kritzel-dropdown":customElements.get(l(t))||u();break;case"kritzel-font":customElements.get(l(t))||h();break;case"kritzel-font-family":customElements.get(l(t))||z();break;case"kritzel-font-size":customElements.get(l(t))||b();break;case"kritzel-icon":customElements.get(l(t))||f();break;case"kritzel-stroke-size":customElements.get(l(t))||g();break;case"kritzel-tooltip":customElements.get(l(t))||m();break;case"kritzel-utility-panel":customElements.get(l(t))||v()}}))}export{x as K,y as d}
@@ -1 +0,0 @@
1
- import{p as e,H as t,c as s,h as i,d as r,t as o}from"./p-Bj_Og27M.js";import{d as n}from"./p-C4krHoUl.js";const l=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.sizeChange=s(this,"sizeChange")}sizes=[8,10,12,16,20,24];selectedSize=null;fontFamily="Arial";sizeChange;handleSizeClick(e){this.selectedSize=e,this.sizeChange.emit(e)}handleKeyDown(e,t){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.handleSizeClick(t))}render(){return i(r,{key:"b0ee1ab0eb5e1871f7726d4393aea59f63264ec5"},this.sizes.map((e=>i("div",{tabIndex:0,class:{"size-container":!0,selected:this.selectedSize===e},onClick:()=>this.handleSizeClick(e),onKeyDown:t=>this.handleKeyDown(t,e)},i("kritzel-font",{fontFamily:this.fontFamily,size:e})))))}static get style(){return":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:4px;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;border-radius:50%}.size-container:hover{background-color:var(--kritzel-font-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-font-size-selected-background-color, #e0e0e0)}"}},[513,"kritzel-font-size",{sizes:[16],selectedSize:[1026,"selected-size"],fontFamily:[1,"font-family"]}]);function a(){"undefined"!=typeof customElements&&["kritzel-font-size","kritzel-font"].forEach((e=>{switch(e){case"kritzel-font-size":customElements.get(o(e))||customElements.define(o(e),l);break;case"kritzel-font":customElements.get(o(e))||n()}}))}export{l as K,a as d}
@@ -1 +0,0 @@
1
- import{p as t,H as o,c as i,h as s,d as e,t as n}from"./p-Bj_Og27M.js";import{K as l}from"./p-C6qB08BS.js";const r=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.tooltipClosed=i(this,"tooltipClosed")}get host(){return this}isVisible=!1;anchorElement;offsetY=24;tooltipClosed;positionX=0;positionY=0;handleOutsideClick(t){this.isVisible&&(this.host.contains(t.target)||this.tooltipClosed.emit())}handleWindowResize(){this.calculateAdjustedPosition()}async focusContent(){const t=l.getFocusableElements(this.host);t.length>0&&t[0].focus()}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot"),o=t?.assignedElements()||[];o.length>0&&o[0].focus()}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect(),o=this.host.shadowRoot?.querySelector(".tooltip-content"),i=o?.getBoundingClientRect(),s=i?.width||0,e=12,n=window.innerWidth-s-e;this.positionX=Math.max(e,Math.min(t.left+t.width/2-s/2,n)),this.positionY=window.innerHeight-t.top+this.offsetY}}render(){return s(e,{key:"c257f254b8ba6b95f251eac3136f5be282d23e30",style:{position:"fixed",zIndex:"9999",transition:"opacity 0.3s ease-in-out, transform 0.3s ease-in-out",visibility:this.isVisible?"visible":"hidden",left:`${this.positionX}px`,bottom:`${this.positionY}px`}},s("div",{key:"14f31dc995236a2309e2371ecef278a0e6374139",class:"tooltip-content",onClick:t=>t.stopPropagation()},s("slot",{key:"6dace4d6ed82878333f8771cf4670d53cea36873"})))}static get style(){return":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}"}},[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"]]]);function a(){"undefined"!=typeof customElements&&["kritzel-tooltip"].forEach((t=>{"kritzel-tooltip"===t&&(customElements.get(n(t))||customElements.define(n(t),r))}))}export{r as K,a as d}
@@ -1 +0,0 @@
1
- import{p as t,H as e,c as o,h as l,d as a,t as n}from"./p-Bj_Og27M.js";import{d as r}from"./p-g0N9j_uT.js";const s=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.fontFamilyChange=o(this,"fontFamilyChange")}fontOptions=[{value:"arial",label:"Arial"},{value:"verdana",label:"Verdana"},{value:"helvetica",label:"Helvetica"},{value:"tahoma",label:"Tahoma"},{value:"trebuchet ms",label:"Trebuchet MS"},{value:"times new roman",label:"Times New Roman"},{value:"georgia",label:"Georgia"},{value:"garamond",label:"Garamond"},{value:"courier new",label:"Courier New"},{value:"brush script mt",label:"Brush Script MT"}];selectedFontFamily;fontFamilyChange;componentWillLoad(){if(this.fontOptions&&this.fontOptions.length>0){const t=this.fontOptions.some((t=>t.value===this.selectedFontFamily));this.selectedFontFamily&&t||(this.selectedFontFamily=this.fontOptions[0].value)}}handleDropdownValueChange=t=>{this.fontFamilyChange.emit(t.detail)};render(){const t=this.fontOptions.map((t=>({value:t.value,label:t.label,style:{fontFamily:t.value}})));return l(a,{key:"74f27d2d9f73ee8589448a24bed64e885ef6d2d8"},l("kritzel-dropdown",{key:"58abc26a54b124f253841faaa4ca4227a23baac2",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}}))}static get style(){return":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}.font-style-button.italic-text{font-style:italic}"}},[513,"kritzel-font-family",{fontOptions:[16],selectedFontFamily:[1025,"selected-font-family"]}]);function i(){"undefined"!=typeof customElements&&["kritzel-font-family","kritzel-dropdown"].forEach((t=>{switch(t){case"kritzel-font-family":customElements.get(n(t))||customElements.define(n(t),s);break;case"kritzel-dropdown":customElements.get(n(t))||r()}}))}export{s as K,i as d}
@@ -1 +0,0 @@
1
- import{p as e,H as t,c as o,h as s,d as i,t as l}from"./p-Bj_Og27M.js";import{d as r}from"./p-CXzfYQ_u.js";import{d as a}from"./p-Du1vxHy8.js";import{d as n}from"./p-g0N9j_uT.js";import{d as c}from"./p-C4krHoUl.js";import{d}from"./p-C-d2IH4v.js";import{d as f}from"./p-BXaWhpO2.js";import{d as h}from"./p-DTezr6w9.js";const p=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.toolChange=o(this,"toolChange")}tool;isExpanded=!1;toolChange;handleToggleExpand(){this.isExpanded=!this.isExpanded}handleFamilyChange(e){this.tool.fontFamily=e.detail,this.toolChange.emit(this.tool)}handleColorChange(e){this.tool.fontColor=e.detail,this.toolChange.emit(this.tool)}handleSizeChange(e){this.tool.fontSize=e.detail,this.toolChange.emit(this.tool)}render(){return s(i,{key:"4a0027969b183fef77c374eb114d9d30104e5ad7"},s("div",{key:"9f49eb3a95080447b938fdfeb256fafbe5ff9ddc",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},s("kritzel-font-family",{key:"4e75cda048f8b8c04e6cb5568e7cdcde91e28112",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:e=>this.handleFamilyChange(e)}),s("button",{key:"05c6ce98bd700e9e9d2e676cbcf191b943a2980e",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",tabindex:"0"},s("kritzel-icon",{key:"ce30d48dd5ce5eefeee7702dff81ca8f96e0872d",name:this.isExpanded?"chevron-up":"chevron-down"}))),s("kritzel-color-palette",{key:"a3d313bf01dafc15c8cf39a129d8c0c35741a3ca",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:e=>this.handleColorChange(e)}),s("kritzel-font-size",{key:"954db891b80fb244083de24dc87255b1239ff913",selectedSize:this.tool.fontSize,fontFamily:this.tool.fontFamily,onSizeChange:e=>this.handleSizeChange(e)}))}static get style(){return":host{display:block;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:var(--kritzel-pointer-cursor, pointer);font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}"}},[513,"kritzel-control-text-config",{tool:[1040],isExpanded:[1028,"is-expanded"]}]);function m(){"undefined"!=typeof customElements&&["kritzel-control-text-config","kritzel-color","kritzel-color-palette","kritzel-dropdown","kritzel-font","kritzel-font-family","kritzel-font-size","kritzel-icon"].forEach((e=>{switch(e){case"kritzel-control-text-config":customElements.get(l(e))||customElements.define(l(e),p);break;case"kritzel-color":customElements.get(l(e))||r();break;case"kritzel-color-palette":customElements.get(l(e))||a();break;case"kritzel-dropdown":customElements.get(l(e))||n();break;case"kritzel-font":customElements.get(l(e))||c();break;case"kritzel-font-family":customElements.get(l(e))||d();break;case"kritzel-font-size":customElements.get(l(e))||f();break;case"kritzel-icon":customElements.get(l(e))||h()}}))}export{p as K,m as d}
@@ -1 +0,0 @@
1
- import{p as e,H as s,c as r,h as t,d as i,t as o}from"./p-Bj_Og27M.js";import{d as c}from"./p-CXzfYQ_u.js";const l=e(class extends s{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.sizeChange=r(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(e){this.selectedSize=e,this.sizeChange.emit(e)}render(){return t(i,{key:"d204d14384367ca8847ad30cab9801788c8d8fac"},this.sizes.map((e=>t("div",{tabIndex:0,class:{"size-container":!0,selected:this.selectedSize===e},onClick:()=>this.handleSizeClick(e)},t("kritzel-color",{value:"#000000",size:e})))))}static get style(){return":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-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}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}"}},[513,"kritzel-stroke-size",{sizes:[16],selectedSize:[1026,"selected-size"]}]);function n(){"undefined"!=typeof customElements&&["kritzel-stroke-size","kritzel-color"].forEach((e=>{switch(e){case"kritzel-stroke-size":customElements.get(o(e))||customElements.define(o(e),l);break;case"kritzel-color":customElements.get(o(e))||c()}}))}export{l as K,n as d}
@@ -1 +0,0 @@
1
- import{p as e,H as t,c as o,h as s,d as i,t as l}from"./p-Bj_Og27M.js";import{d as r}from"./p-CXzfYQ_u.js";import{d as a}from"./p-Du1vxHy8.js";import{d as n}from"./p-DTezr6w9.js";import{d as c}from"./p-CF5L2Gdl.js";const d=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.toolChange=o(this,"toolChange")}tool;handleToolChange(e){this.palette=e.palettes[e.type]}isExpanded=!1;toolChange;palette=[];componentWillLoad(){this.palette=this.tool.palettes[this.tool.type]}handleToggleExpand(){this.isExpanded=!this.isExpanded}handleTypeChange(e){this.palette=this.tool.palettes[e.detail],this.tool.type=e.detail,this.tool.color=this.palette[0],this.toolChange.emit(this.tool)}handleColorChange(e){this.tool.color=e.detail,this.toolChange.emit(this.tool)}handleSizeChange(e){this.tool.size=e.detail,this.toolChange.emit(this.tool)}render(){return s(i,{key:"ce2ac77db22f52239a45b62f690d54009f2c6954"},s("div",{key:"5f6c50853e876c3612bb5c270bccc468c2c9a726",style:{display:"flex",flexDirection:"row",alignItems:this.isExpanded?"flex-start":"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},s("kritzel-color-palette",{key:"bfa24bb8683027c37f200ad65e4e6787d7224c56",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:!0,onColorChange:e=>this.handleColorChange(e)}),s("button",{key:"8e2c55c6d16ca3911c5f068c354bdce5a4f7e844",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},s("kritzel-icon",{key:"33610ada109fe5d1d9cb2da4c70a60d672e3d6cb",name:this.isExpanded?"chevron-up":"chevron-down"}))),s("kritzel-stroke-size",{key:"9b095dd9436e46dd88a3485ceb2dafa5d06d1bc4",selectedSize:this.tool.size,onSizeChange:e=>this.handleSizeChange(e)}))}static get watchers(){return{tool:[{handleToolChange:0}]}}static get style(){return":host{display:flex;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:var(--kritzel-pointer-cursor, pointer);font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}"}},[513,"kritzel-control-brush-config",{tool:[1040],isExpanded:[1028,"is-expanded"],palette:[32]},void 0,{tool:[{handleToolChange:0}]}]);function h(){"undefined"!=typeof customElements&&["kritzel-control-brush-config","kritzel-color","kritzel-color-palette","kritzel-icon","kritzel-stroke-size"].forEach((e=>{switch(e){case"kritzel-control-brush-config":customElements.get(l(e))||customElements.define(l(e),d);break;case"kritzel-color":customElements.get(l(e))||r();break;case"kritzel-color-palette":customElements.get(l(e))||a();break;case"kritzel-icon":customElements.get(l(e))||n();break;case"kritzel-stroke-size":customElements.get(l(e))||c()}}))}export{d as K,h as d}