kempo-ui 0.3.8 → 0.3.10

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 (248) hide show
  1. package/dist/components/CodeEditor.js +96 -0
  2. package/dist/components/HtmlEditor.js +155 -30
  3. package/dist/components/codeEditorControls/CodeEditorControl.js +17 -0
  4. package/dist/components/codeEditorControls/ControlGroup.js +12 -0
  5. package/dist/components/codeEditorControls/ControlSpacer.js +6 -0
  6. package/dist/components/codeEditorControls/CopyCode.js +9 -0
  7. package/dist/components/codeEditorControls/EditorTheme.js +26 -0
  8. package/dist/components/codeEditorControls/FindReplace.js +7 -0
  9. package/dist/components/codeEditorControls/FoldAll.js +7 -0
  10. package/dist/components/codeEditorControls/FontSize.js +13 -0
  11. package/dist/components/codeEditorControls/FormatCode.js +9 -0
  12. package/dist/components/codeEditorControls/Fullscreen.js +12 -0
  13. package/dist/components/codeEditorControls/LanguageSelect.js +15 -0
  14. package/dist/components/codeEditorControls/Minimap.js +8 -0
  15. package/dist/components/codeEditorControls/Redo.js +7 -0
  16. package/dist/components/codeEditorControls/Undo.js +7 -0
  17. package/dist/components/codeEditorControls/WordWrap.js +8 -0
  18. package/dist/components/htmlEditorControls/AlignCenter.js +4 -4
  19. package/dist/components/htmlEditorControls/AlignJustify.js +4 -4
  20. package/dist/components/htmlEditorControls/AlignLeft.js +4 -4
  21. package/dist/components/htmlEditorControls/AlignRight.js +4 -4
  22. package/dist/components/htmlEditorControls/Bold.js +4 -4
  23. package/dist/components/htmlEditorControls/BulletList.js +4 -4
  24. package/dist/components/htmlEditorControls/ClearFormatting.js +4 -4
  25. package/dist/components/htmlEditorControls/CodeBlock.js +2 -2
  26. package/dist/components/htmlEditorControls/ControlGroup.js +2 -4
  27. package/dist/components/htmlEditorControls/CreateLink.js +3 -3
  28. package/dist/components/htmlEditorControls/FormatBlock.js +4 -4
  29. package/dist/components/htmlEditorControls/FormatCode.js +1 -0
  30. package/dist/components/htmlEditorControls/HtmlEditorControl.js +2 -2
  31. package/dist/components/htmlEditorControls/InlineCode.js +2 -2
  32. package/dist/components/htmlEditorControls/InsertTable.js +3 -3
  33. package/dist/components/htmlEditorControls/Italic.js +4 -4
  34. package/dist/components/htmlEditorControls/Mode.js +3 -3
  35. package/dist/components/htmlEditorControls/NumberList.js +4 -4
  36. package/dist/components/htmlEditorControls/Strikethrough.js +4 -4
  37. package/dist/components/htmlEditorControls/TextBackgroundColor.js +1 -1
  38. package/dist/components/htmlEditorControls/TextColor.js +1 -1
  39. package/dist/components/htmlEditorControls/Underline.js +4 -4
  40. package/docs/components/accordion.html +2 -0
  41. package/docs/components/aside.html +2 -0
  42. package/docs/components/card.html +2 -0
  43. package/docs/components/code-editor.html +491 -0
  44. package/docs/components/color-picker.html +2 -0
  45. package/docs/components/content-slider.html +2 -0
  46. package/docs/components/context.html +2 -0
  47. package/docs/components/dialog.html +2 -0
  48. package/docs/components/dropdown.html +2 -0
  49. package/docs/components/filter-list.html +2 -0
  50. package/docs/components/focus-capture.html +2 -0
  51. package/docs/components/html-editor.html +525 -212
  52. package/docs/components/hybrid-component.html +2 -0
  53. package/docs/components/icon.html +2 -0
  54. package/docs/components/import.html +2 -0
  55. package/docs/components/light-component.html +2 -0
  56. package/docs/components/nav-spacer.html +2 -0
  57. package/docs/components/nav.html +2 -0
  58. package/docs/components/photo-viewer.html +2 -0
  59. package/docs/components/resize.html +2 -0
  60. package/docs/components/shadow-component.html +2 -0
  61. package/docs/components/show-more.html +2 -0
  62. package/docs/components/sortable.html +2 -0
  63. package/docs/components/spinner.html +2 -0
  64. package/docs/components/split.html +2 -0
  65. package/docs/components/table.html +2 -0
  66. package/docs/components/tableControls.html +2 -0
  67. package/docs/components/tableCustomFields.html +2 -0
  68. package/docs/components/tableFetchRecords.html +2 -0
  69. package/docs/components/tableFieldSortHide.html +2 -0
  70. package/docs/components/tablePagination.html +2 -0
  71. package/docs/components/tablePlaceholder.html +2 -0
  72. package/docs/components/tableRecordEditing.html +2 -0
  73. package/docs/components/tableRecordFiltering.html +2 -0
  74. package/docs/components/tableRecordHiding.html +2 -0
  75. package/docs/components/tableRecordSearching.html +2 -0
  76. package/docs/components/tableRecordSelection.html +2 -0
  77. package/docs/components/tableRowControls.html +2 -0
  78. package/docs/components/tableServerSync.html +2 -0
  79. package/docs/components/tableSorting.html +2 -0
  80. package/docs/components/tabs.html +2 -0
  81. package/docs/components/tags.html +2 -0
  82. package/docs/components/theme-select.html +2 -0
  83. package/docs/components/theme-switcher.html +2 -0
  84. package/docs/components/timestamp.html +2 -0
  85. package/docs/components/toast.html +2 -0
  86. package/docs/components/toggle.html +2 -0
  87. package/docs/components/tree.html +2 -0
  88. package/docs/icons/auto_fix_high.svg +1 -0
  89. package/docs/icons/content_copy.svg +1 -0
  90. package/docs/icons/contrast.svg +1 -0
  91. package/docs/icons/frame_source.svg +1 -0
  92. package/docs/icons/fullscreen.svg +1 -0
  93. package/docs/icons/fullscreen_exit.svg +1 -0
  94. package/docs/icons/map.svg +1 -0
  95. package/docs/icons/redo.svg +1 -0
  96. package/docs/icons/text_decrease.svg +1 -0
  97. package/docs/icons/text_increase.svg +1 -0
  98. package/docs/icons/undo.svg +1 -0
  99. package/docs/icons/unfold_less.svg +1 -0
  100. package/docs/icons/unfold_more.svg +1 -0
  101. package/docs/icons/wrap_text.svg +1 -0
  102. package/docs/index.html +8 -0
  103. package/docs/src/components/CodeEditor.js +96 -0
  104. package/docs/src/components/HtmlEditor.js +155 -30
  105. package/docs/src/components/codeEditorControls/CodeEditorControl.js +17 -0
  106. package/docs/src/components/codeEditorControls/ControlGroup.js +12 -0
  107. package/docs/src/components/codeEditorControls/ControlSpacer.js +6 -0
  108. package/docs/src/components/codeEditorControls/CopyCode.js +9 -0
  109. package/docs/src/components/codeEditorControls/EditorTheme.js +26 -0
  110. package/docs/src/components/codeEditorControls/FindReplace.js +7 -0
  111. package/docs/src/components/codeEditorControls/FoldAll.js +7 -0
  112. package/docs/src/components/codeEditorControls/FontSize.js +13 -0
  113. package/docs/src/components/codeEditorControls/FormatCode.js +9 -0
  114. package/docs/src/components/codeEditorControls/Fullscreen.js +12 -0
  115. package/docs/src/components/codeEditorControls/LanguageSelect.js +15 -0
  116. package/docs/src/components/codeEditorControls/Minimap.js +8 -0
  117. package/docs/src/components/codeEditorControls/Redo.js +7 -0
  118. package/docs/src/components/codeEditorControls/Undo.js +7 -0
  119. package/docs/src/components/codeEditorControls/WordWrap.js +8 -0
  120. package/docs/src/components/htmlEditorControls/AlignCenter.js +4 -4
  121. package/docs/src/components/htmlEditorControls/AlignJustify.js +4 -4
  122. package/docs/src/components/htmlEditorControls/AlignLeft.js +4 -4
  123. package/docs/src/components/htmlEditorControls/AlignRight.js +4 -4
  124. package/docs/src/components/htmlEditorControls/Bold.js +4 -4
  125. package/docs/src/components/htmlEditorControls/BulletList.js +4 -4
  126. package/docs/src/components/htmlEditorControls/ClearFormatting.js +4 -4
  127. package/docs/src/components/htmlEditorControls/CodeBlock.js +2 -2
  128. package/docs/src/components/htmlEditorControls/ControlGroup.js +2 -4
  129. package/docs/src/components/htmlEditorControls/CreateLink.js +3 -3
  130. package/docs/src/components/htmlEditorControls/FormatBlock.js +4 -4
  131. package/docs/src/components/htmlEditorControls/FormatCode.js +1 -0
  132. package/docs/src/components/htmlEditorControls/HtmlEditorControl.js +2 -2
  133. package/docs/src/components/htmlEditorControls/InlineCode.js +2 -2
  134. package/docs/src/components/htmlEditorControls/InsertTable.js +3 -3
  135. package/docs/src/components/htmlEditorControls/Italic.js +4 -4
  136. package/docs/src/components/htmlEditorControls/Mode.js +3 -3
  137. package/docs/src/components/htmlEditorControls/NumberList.js +4 -4
  138. package/docs/src/components/htmlEditorControls/Strikethrough.js +4 -4
  139. package/docs/src/components/htmlEditorControls/TextBackgroundColor.js +1 -1
  140. package/docs/src/components/htmlEditorControls/TextColor.js +1 -1
  141. package/docs/src/components/htmlEditorControls/Underline.js +4 -4
  142. package/docs/utils/context.html +2 -0
  143. package/docs/utils/cookie.html +2 -0
  144. package/docs/utils/debounce.html +2 -0
  145. package/docs/utils/drag.html +2 -0
  146. package/docs/utils/elevation.html +2 -0
  147. package/docs/utils/formatTimestamp.html +2 -0
  148. package/docs/utils/object.html +2 -0
  149. package/docs/utils/propConverters.html +2 -0
  150. package/docs/utils/string.html +2 -0
  151. package/docs/utils/theme.html +2 -0
  152. package/docs/utils/toTitleCase.html +2 -0
  153. package/docs/utils/type.html +2 -0
  154. package/docs/utils/wait.html +2 -0
  155. package/docs-src/components/code-editor.page.html +235 -0
  156. package/docs-src/components/html-editor.page.html +528 -214
  157. package/docs-src/index.page.html +6 -0
  158. package/docs-src/nav.fragment.html +2 -0
  159. package/icons/auto_fix_high.svg +1 -0
  160. package/icons/content_copy.svg +1 -0
  161. package/icons/contrast.svg +1 -0
  162. package/icons/frame_source.svg +1 -0
  163. package/icons/fullscreen.svg +1 -0
  164. package/icons/fullscreen_exit.svg +1 -0
  165. package/icons/map.svg +1 -0
  166. package/icons/redo.svg +1 -0
  167. package/icons/text_decrease.svg +1 -0
  168. package/icons/text_increase.svg +1 -0
  169. package/icons/undo.svg +1 -0
  170. package/icons/unfold_less.svg +1 -0
  171. package/icons/unfold_more.svg +1 -0
  172. package/icons/wrap_text.svg +1 -0
  173. package/llm.txt +2 -1
  174. package/package.json +3 -3
  175. package/src/components/CodeEditor.js +495 -0
  176. package/src/components/HtmlEditor.js +527 -152
  177. package/src/components/codeEditorControls/CodeEditorControl.js +134 -0
  178. package/src/components/codeEditorControls/ControlGroup.js +70 -0
  179. package/src/components/codeEditorControls/ControlSpacer.js +23 -0
  180. package/src/components/codeEditorControls/CopyCode.js +37 -0
  181. package/src/components/codeEditorControls/EditorTheme.js +81 -0
  182. package/src/components/codeEditorControls/FindReplace.js +35 -0
  183. package/src/components/codeEditorControls/FoldAll.js +49 -0
  184. package/src/components/codeEditorControls/FontSize.js +45 -0
  185. package/src/components/codeEditorControls/FormatCode.js +37 -0
  186. package/src/components/codeEditorControls/Fullscreen.js +72 -0
  187. package/src/components/codeEditorControls/LanguageSelect.js +74 -0
  188. package/src/components/codeEditorControls/Minimap.js +60 -0
  189. package/src/components/codeEditorControls/Redo.js +35 -0
  190. package/src/components/codeEditorControls/Undo.js +35 -0
  191. package/src/components/codeEditorControls/WordWrap.js +60 -0
  192. package/src/components/htmlEditorControls/AlignCenter.js +2 -4
  193. package/src/components/htmlEditorControls/AlignJustify.js +2 -4
  194. package/src/components/htmlEditorControls/AlignLeft.js +2 -4
  195. package/src/components/htmlEditorControls/AlignRight.js +2 -4
  196. package/src/components/htmlEditorControls/Bold.js +2 -4
  197. package/src/components/htmlEditorControls/BulletList.js +2 -4
  198. package/src/components/htmlEditorControls/ClearFormatting.js +2 -4
  199. package/src/components/htmlEditorControls/CodeBlock.js +3 -19
  200. package/src/components/htmlEditorControls/ControlGroup.js +16 -41
  201. package/src/components/htmlEditorControls/CreateLink.js +3 -5
  202. package/src/components/htmlEditorControls/FormatBlock.js +2 -4
  203. package/src/components/htmlEditorControls/FormatCode.js +7 -0
  204. package/src/components/htmlEditorControls/HtmlEditorControl.js +43 -5
  205. package/src/components/htmlEditorControls/InlineCode.js +3 -5
  206. package/src/components/htmlEditorControls/InsertTable.js +9 -53
  207. package/src/components/htmlEditorControls/Italic.js +2 -4
  208. package/src/components/htmlEditorControls/Mode.js +2 -0
  209. package/src/components/htmlEditorControls/NumberList.js +2 -4
  210. package/src/components/htmlEditorControls/Strikethrough.js +2 -4
  211. package/src/components/htmlEditorControls/TextBackgroundColor.js +0 -6
  212. package/src/components/htmlEditorControls/TextColor.js +0 -6
  213. package/src/components/htmlEditorControls/Underline.js +2 -4
  214. package/tests/components/CodeEditor.browser-test.js +297 -0
  215. package/tests/components/HtmlEditor.browser-test.js +207 -0
  216. package/tests/components/codeEditorControls/CopyCode.browser-test.js +57 -0
  217. package/tests/components/codeEditorControls/EditorTheme.browser-test.js +70 -0
  218. package/tests/components/codeEditorControls/FindReplace.browser-test.js +57 -0
  219. package/tests/components/codeEditorControls/FoldAll.browser-test.js +92 -0
  220. package/tests/components/codeEditorControls/FontSize.browser-test.js +74 -0
  221. package/tests/components/codeEditorControls/Fullscreen.browser-test.js +152 -0
  222. package/tests/components/codeEditorControls/LanguageSelect.browser-test.js +82 -0
  223. package/tests/components/codeEditorControls/Minimap.browser-test.js +84 -0
  224. package/tests/components/codeEditorControls/ModeVisibility.browser-test.js +82 -0
  225. package/tests/components/codeEditorControls/UndoRedo.browser-test.js +85 -0
  226. package/tests/components/codeEditorControls/WordWrap.browser-test.js +95 -0
  227. package/tests/components/htmlEditorControls/Align.browser-test.js +203 -0
  228. package/tests/components/htmlEditorControls/Bold.browser-test.js +127 -0
  229. package/tests/components/htmlEditorControls/BulletList.browser-test.js +127 -0
  230. package/tests/components/htmlEditorControls/CharacterCount.browser-test.js +106 -0
  231. package/tests/components/htmlEditorControls/ClearFormatting.browser-test.js +127 -0
  232. package/tests/components/htmlEditorControls/CodeBlock.browser-test.js +143 -0
  233. package/tests/components/htmlEditorControls/ControlGroup.browser-test.js +116 -0
  234. package/tests/components/htmlEditorControls/ControlSpacer.browser-test.js +69 -0
  235. package/tests/components/htmlEditorControls/CreateLink.browser-test.js +129 -0
  236. package/tests/components/htmlEditorControls/DropdownControl.browser-test.js +138 -0
  237. package/tests/components/htmlEditorControls/FormatBlock.browser-test.js +163 -0
  238. package/tests/components/htmlEditorControls/FormatCode.browser-test.js +155 -0
  239. package/tests/components/htmlEditorControls/InlineCode.browser-test.js +127 -0
  240. package/tests/components/htmlEditorControls/InsertTable.browser-test.js +129 -0
  241. package/tests/components/htmlEditorControls/Italic.browser-test.js +127 -0
  242. package/tests/components/htmlEditorControls/Mode.browser-test.js +138 -0
  243. package/tests/components/htmlEditorControls/NumberList.browser-test.js +127 -0
  244. package/tests/components/htmlEditorControls/Strikethrough.browser-test.js +127 -0
  245. package/tests/components/htmlEditorControls/TextBackgroundColor.browser-test.js +136 -0
  246. package/tests/components/htmlEditorControls/TextColor.browser-test.js +136 -0
  247. package/tests/components/htmlEditorControls/Underline.browser-test.js +127 -0
  248. package/tests/components/htmlEditorControls/WordCount.browser-test.js +106 -0
@@ -0,0 +1,235 @@
1
+ <page pageName="CodeEditor" title="CodeEditor - Components - Kempo Docs - A Web Components Solution">
2
+ <content>
3
+ <k-accordion persistent-id="toc" class="b r mb">
4
+ <k-accordion-header for-panel="toc-panel">Table of Contents</k-accordion-header>
5
+ <k-accordion-panel name="toc-panel">
6
+ <div class="m pl">
7
+ <h6>Examples</h6>
8
+ <a href="#basicExample">Basic Example</a><br />
9
+ <a href="#controlsExample">Built-in Controls</a><br />
10
+ <a href="#customControls">Custom Controls</a><br />
11
+ <a href="#height">Setting Height</a><br />
12
+ <a href="#jsApi">JavaScript API</a><br />
13
+
14
+ <h6 class="mt"><a href="#jsRef" class="no-link">JavaScript Reference</a></h6>
15
+ <a href="#constructor">Constructor</a><br />
16
+ <a href="#properties">Properties</a><br />
17
+ <a href="#globalConfig">Global Configuration</a><br />
18
+ <a href="#methods">Methods</a><br />
19
+ <a href="#events">Events</a><br />
20
+ <a href="#slots">Toolbar Slots</a><br />
21
+ </div>
22
+ </k-accordion-panel>
23
+ </k-accordion>
24
+
25
+ <p>A Monaco-powered code editor component with language support, theme integration, optional toolbar controls, and form association.</p>
26
+
27
+ <h3 id="basicExample"><a href="#basicExample" class="no-link">Basic Example</a></h3>
28
+ <p>A simple code editor with JavaScript syntax highlighting:</p>
29
+ <div class="row -mx">
30
+ <div class="col m-span-12 px">
31
+ <k-card label="HTML">
32
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-code-editor</span> <span class="hljs-attr">language</span>=<span class="hljs-string">&#x27;javascript&#x27;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-code-editor</span>&gt;</span></code></pre>
33
+ </k-card>
34
+ </div>
35
+ <div class="col m-span-12 px">
36
+ <k-card label="Output">
37
+ <k-code-editor id="basicEditor" language="javascript" class="b r" value="function greet(name) {
38
+ return 'Hello, ' + name + '!';
39
+ }
40
+
41
+ console.log(greet('World'));"></k-code-editor>
42
+ </k-card>
43
+ </div>
44
+ </div>
45
+
46
+ <h3 id="controlsExample"><a href="#controlsExample" class="no-link">Built-in Controls</a></h3>
47
+ <p>Use the <code>controls</code> attribute to show built-in toolbar controls:</p>
48
+ <div class="row -mx">
49
+ <div class="col m-span-12 px">
50
+ <k-card label="HTML">
51
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-code-editor</span> <span class="hljs-attr">language</span>=<span class="hljs-string">&#x27;javascript&#x27;</span> <span class="hljs-attr">controls</span>=<span class="hljs-string">&#x27;full&#x27;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-code-editor</span>&gt;</span></code></pre>
52
+ </k-card>
53
+ </div>
54
+ <div class="col m-span-12 px">
55
+ <k-card label="Output">
56
+ <k-code-editor id="controlsEditor" language="javascript" controls="full" class="b r" value="const arr = [3, 1, 4, 1, 5, 9];
57
+ const sorted = arr.sort((a, b) => a - b);
58
+ console.log(sorted);"></k-code-editor>
59
+ </k-card>
60
+ </div>
61
+ </div>
62
+
63
+ <h3 id="customControls"><a href="#customControls" class="no-link">Custom Controls</a></h3>
64
+ <p>Slot controls into the toolbar for a custom layout:</p>
65
+ <div class="row -mx">
66
+ <div class="col m-span-12 px">
67
+ <k-card label="HTML">
68
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-code-editor</span> <span class="hljs-attr">language</span>=<span class="hljs-string">&#x27;html&#x27;</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-name">k-cec-format-code</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">&#x27;toolbar-top-left&#x27;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-cec-format-code</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-name">k-cec-copy-code</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">&#x27;toolbar-top-left&#x27;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-cec-copy-code</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-name">k-cec-editor-theme</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">&#x27;toolbar-top-right&#x27;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-cec-editor-theme</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-name">k-cec-fullscreen</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">&#x27;toolbar-top-right&#x27;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-cec-fullscreen</span>&gt;</span><br><span class="hljs-tag">&lt;/<span class="hljs-name">k-code-editor</span>&gt;</span></code></pre>
69
+ </k-card>
70
+ </div>
71
+ <div class="col m-span-12 px">
72
+ <k-card label="Output">
73
+ <k-code-editor id="customEditor" language="html" class="b r" value="<div class='container'>
74
+ <h1>Hello World</h1>
75
+ <p>This is a paragraph.</p>
76
+ </div>">
77
+ <k-cec-format-code slot="toolbar-top-left"></k-cec-format-code>
78
+ <k-cec-copy-code slot="toolbar-top-left"></k-cec-copy-code>
79
+ <k-cec-editor-theme slot="toolbar-top-right"></k-cec-editor-theme>
80
+ <k-cec-fullscreen slot="toolbar-top-right"></k-cec-fullscreen>
81
+ </k-code-editor>
82
+ </k-card>
83
+ </div>
84
+ </div>
85
+
86
+ <h3 id="height"><a href="#height" class="no-link">Setting Height</a></h3>
87
+ <p>The default height is <code>400px</code>. Override it with an inline style or CSS class on the element:</p>
88
+ <div class="row -mx">
89
+ <div class="col m-span-12 px">
90
+ <k-card label="HTML">
91
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-code-editor</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&#x27;height: 500px&#x27;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-code-editor</span>&gt;</span></code></pre>
92
+ </k-card>
93
+ </div>
94
+ <div class="col m-span-12 px">
95
+ <k-card label="Output">
96
+ <k-code-editor class="b r" language="javascript" style="height: 500px" value="// Height set to 500px via style attribute
97
+ const x = 42;
98
+ console.log(x);"></k-code-editor>
99
+ </k-card>
100
+ </div>
101
+ </div>
102
+
103
+ <h3 id="jsApi"><a href="#jsApi" class="no-link">JavaScript API</a></h3>
104
+ <p>Interact with the editor programmatically:</p>
105
+ <div class="row -mx">
106
+ <div class="col m-span-12 px">
107
+ <k-card label="JavaScript">
108
+ <pre><code class="hljs javascript"><span class="hljs-keyword">const</span> editor = <span class="hljs-variable language_">document</span>.<span class="hljs-title function_">querySelector</span>(<span class="hljs-string">&#x27;k-code-editor&#x27;</span>);<br><span class="hljs-comment">// Get/set value</span><br>editor.<span class="hljs-title function_">setValue</span>(<span class="hljs-string">&#x27;console.log(&quot;hello&quot;)&#x27;</span>);<br><span class="hljs-keyword">const</span> code = editor.<span class="hljs-title function_">getValue</span>();<br><span class="hljs-comment">// Change language</span><br>editor.<span class="hljs-title function_">setLanguage</span>(<span class="hljs-string">&#x27;html&#x27;</span>);<br><span class="hljs-comment">// Format code</span><br>editor.<span class="hljs-title function_">formatCode</span>();<br><span class="hljs-comment">// Undo / Redo</span><br>editor.<span class="hljs-title function_">undo</span>();<br>editor.<span class="hljs-title function_">redo</span>();<br><span class="hljs-comment">// Copy to clipboard</span><br>editor.<span class="hljs-title function_">copyToClipboard</span>();<br><span class="hljs-comment">// Find &amp; Replace</span><br>editor.<span class="hljs-title function_">openFind</span>();<br><span class="hljs-comment">// Word wrap / Minimap</span><br>editor.<span class="hljs-title function_">setWordWrap</span>(<span class="hljs-literal">true</span>);<br>editor.<span class="hljs-title function_">setMinimap</span>(<span class="hljs-literal">true</span>);<br><span class="hljs-comment">// Font size</span><br>editor.<span class="hljs-title function_">increaseFontSize</span>();<br>editor.<span class="hljs-title function_">decreaseFontSize</span>();<br><span class="hljs-comment">// Fold / Unfold</span><br>editor.<span class="hljs-title function_">foldAll</span>();<br>editor.<span class="hljs-title function_">unfoldAll</span>();<br><span class="hljs-comment">// Change editor theme</span><br>editor.<span class="hljs-title function_">setEditorTheme</span>(<span class="hljs-string">&#x27;dark&#x27;</span>);</code></pre>
109
+ </k-card>
110
+ </div>
111
+ </div>
112
+
113
+ <h2 id="jsRef"><a href="#jsRef" class="no-link">JavaScript Reference</a></h2>
114
+
115
+ <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
116
+ <p>The <code>CodeEditor</code> component is created via its custom element tag <code>&lt;k-code-editor&gt;</code>.</p>
117
+
118
+ <h3 id="properties"><a href="#properties" class="no-link">Properties / Attributes</a></h3>
119
+ <table class="b r">
120
+ <thead>
121
+ <tr><th>Property</th><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr>
122
+ </thead>
123
+ <tbody>
124
+ <tr><td><code>name</code></td><td><code>name</code></td><td>String</td><td><code>''</code></td><td>Form field name</td></tr>
125
+ <tr><td><code>value</code></td><td><code>value</code></td><td>String</td><td><code>''</code></td><td>Editor content</td></tr>
126
+ <tr><td><code>language</code></td><td><code>language</code></td><td>String</td><td><code>'javascript'</code></td><td>Monaco language mode (e.g. <code>javascript</code>, <code>html</code>, <code>css</code>, <code>json</code>, <code>typescript</code>)</td></tr>
127
+ <tr><td><code>controls</code></td><td><code>controls</code></td><td>String</td><td><code>''</code></td><td>Set to <code>'full'</code> for built-in toolbar; <code>'none'</code> or empty for no built-in controls</td></tr>
128
+ <tr><td><code>monacoSrc</code></td><td><code>monaco-src</code></td><td>String</td><td><code>''</code></td><td>Custom Monaco CDN base URL</td></tr>
129
+ <tr><td><code>editorTheme</code></td><td><code>editor-theme</code></td><td>String</td><td><code>'auto'</code></td><td>Theme override: <code>'auto'</code> (matches site theme), <code>'light'</code>, or <code>'dark'</code></td></tr>
130
+ </tbody>
131
+ </table>
132
+
133
+ <h3 id="globalConfig"><a href="#globalConfig" class="no-link">Global Configuration</a></h3>
134
+ <p>Configure the Monaco CDN URL globally before importing the component:</p>
135
+ <pre><code class="hljs javascript"><span class="hljs-variable language_">window</span>.kempo = {<br> <span class="hljs-attr">monacoUrl</span>: <span class="hljs-string">&#x27;https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min&#x27;</span><br>};</code></pre>
136
+
137
+ <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
138
+ <table class="b r">
139
+ <thead>
140
+ <tr><th>Method</th><th>Returns</th><th>Description</th></tr>
141
+ </thead>
142
+ <tbody>
143
+ <tr><td><code>getValue()</code></td><td><code>String</code></td><td>Returns the current editor content</td></tr>
144
+ <tr><td><code>setValue(str)</code></td><td><code>this</code></td><td>Sets the editor content</td></tr>
145
+ <tr><td><code>clear()</code></td><td><code>this</code></td><td>Clears the editor content</td></tr>
146
+ <tr><td><code>formatCode()</code></td><td><code>this</code></td><td>Formats/beautifies the code using Monaco's built-in formatter</td></tr>
147
+ <tr><td><code>selectAll()</code></td><td><code>this</code></td><td>Selects all content</td></tr>
148
+ <tr><td><code>getSelectedText()</code></td><td><code>String</code></td><td>Returns the currently selected text</td></tr>
149
+ <tr><td><code>focus()</code></td><td><code>this</code></td><td>Focuses the editor</td></tr>
150
+ <tr><td><code>setLanguage(lang)</code></td><td><code>this</code></td><td>Changes the syntax language</td></tr>
151
+ <tr><td><code>setEditorTheme(theme)</code></td><td><code>this</code></td><td>Sets theme override: <code>'auto'</code>, <code>'light'</code>, or <code>'dark'</code></td></tr>
152
+ <tr><td><code>copyToClipboard()</code></td><td><code>this</code></td><td>Copies the editor content to the clipboard</td></tr>
153
+ <tr><td><code>undo()</code></td><td><code>this</code></td><td>Undoes the last edit</td></tr>
154
+ <tr><td><code>redo()</code></td><td><code>this</code></td><td>Redoes the last undone edit</td></tr>
155
+ <tr><td><code>setWordWrap(enabled)</code></td><td><code>this</code></td><td>Enables or disables word wrapping</td></tr>
156
+ <tr><td><code>setMinimap(enabled)</code></td><td><code>this</code></td><td>Shows or hides the minimap</td></tr>
157
+ <tr><td><code>openFind()</code></td><td><code>this</code></td><td>Opens Monaco's built-in Find &amp; Replace dialog</td></tr>
158
+ <tr><td><code>increaseFontSize()</code></td><td><code>this</code></td><td>Increases font size by 2px (max 40)</td></tr>
159
+ <tr><td><code>decreaseFontSize()</code></td><td><code>this</code></td><td>Decreases font size by 2px (min 8)</td></tr>
160
+ <tr><td><code>foldAll()</code></td><td><code>this</code></td><td>Folds all code regions</td></tr>
161
+ <tr><td><code>unfoldAll()</code></td><td><code>this</code></td><td>Unfolds all code regions</td></tr>
162
+ </tbody>
163
+ </table>
164
+
165
+ <h3 id="events"><a href="#events" class="no-link">Events</a></h3>
166
+ <table class="b r">
167
+ <thead>
168
+ <tr><th>Event</th><th>detail</th><th>Description</th></tr>
169
+ </thead>
170
+ <tbody>
171
+ <tr><td><code>ready</code></td><td><code>{ value }</code></td><td>Fired when Monaco is initialized and ready</td></tr>
172
+ <tr><td><code>change</code></td><td><code>{ value }</code></td><td>Fired when the content changes</td></tr>
173
+ <tr><td><code>input</code></td><td><code>{ value }</code></td><td>Fired on each keystroke/edit</td></tr>
174
+ </tbody>
175
+ </table>
176
+
177
+ <h3 id="slots"><a href="#slots" class="no-link">Toolbar Slots</a></h3>
178
+ <table class="b r">
179
+ <thead>
180
+ <tr><th>Slot</th><th>Description</th></tr>
181
+ </thead>
182
+ <tbody>
183
+ <tr><td><code>toolbar-top-left</code></td><td>Left section of the top toolbar</td></tr>
184
+ <tr><td><code>toolbar-top-center</code></td><td>Center section of the top toolbar</td></tr>
185
+ <tr><td><code>toolbar-top-right</code></td><td>Right section of the top toolbar</td></tr>
186
+ <tr><td><code>toolbar-top</code></td><td>Full-width top toolbar</td></tr>
187
+ <tr><td><code>toolbar-bottom-left</code></td><td>Left section of the bottom toolbar</td></tr>
188
+ <tr><td><code>toolbar-bottom-center</code></td><td>Center section of the bottom toolbar</td></tr>
189
+ <tr><td><code>toolbar-bottom-right</code></td><td>Right section of the bottom toolbar</td></tr>
190
+ <tr><td><code>toolbar-bottom</code></td><td>Full-width bottom toolbar</td></tr>
191
+ </tbody>
192
+ </table>
193
+
194
+ <h3>Available Controls</h3>
195
+ <table class="b r">
196
+ <thead>
197
+ <tr><th>Element</th><th>Description</th></tr>
198
+ </thead>
199
+ <tbody>
200
+ <tr><td><code>&lt;k-cec-format-code&gt;</code></td><td>Formats the code using Monaco's built-in formatter</td></tr>
201
+ <tr><td><code>&lt;k-cec-copy-code&gt;</code></td><td>Copies the editor content to the clipboard</td></tr>
202
+ <tr><td><code>&lt;k-cec-undo&gt;</code></td><td>Undoes the last edit</td></tr>
203
+ <tr><td><code>&lt;k-cec-redo&gt;</code></td><td>Redoes the last undone edit</td></tr>
204
+ <tr><td><code>&lt;k-cec-word-wrap&gt;</code></td><td>Toggles word wrapping on/off</td></tr>
205
+ <tr><td><code>&lt;k-cec-minimap&gt;</code></td><td>Toggles the minimap on/off</td></tr>
206
+ <tr><td><code>&lt;k-cec-find-replace&gt;</code></td><td>Opens Monaco's Find &amp; Replace dialog</td></tr>
207
+ <tr><td><code>&lt;k-cec-font-size&gt;</code></td><td>Increase/decrease font size buttons</td></tr>
208
+ <tr><td><code>&lt;k-cec-fold-all&gt;</code></td><td>Toggles fold/unfold all code regions</td></tr>
209
+ <tr><td><code>&lt;k-cec-fullscreen&gt;</code></td><td>Toggles the editor in and out of fullscreen — visible in all modes</td></tr>
210
+ <tr><td><code>&lt;k-cec-language&gt;</code></td><td>Select dropdown to change the syntax language</td></tr>
211
+ <tr><td><code>&lt;k-cec-editor-theme&gt;</code></td><td>Select dropdown to switch between auto, light, and dark editor themes</td></tr>
212
+ <tr><td><code>&lt;k-cec-group&gt;</code></td><td>Groups controls visually with shared borders</td></tr>
213
+ <tr><td><code>&lt;k-cec-spacer&gt;</code></td><td>Flexible spacer to push controls apart</td></tr>
214
+ </tbody>
215
+ </table>
216
+
217
+ <script type="module" src="{{pathToRoot}}src/components/CodeEditor.js"></script>
218
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/FormatCode.js"></script>
219
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/CopyCode.js"></script>
220
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/EditorTheme.js"></script>
221
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/Undo.js"></script>
222
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/Redo.js"></script>
223
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/WordWrap.js"></script>
224
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/Minimap.js"></script>
225
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/FindReplace.js"></script>
226
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/FontSize.js"></script>
227
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/FoldAll.js"></script>
228
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/LanguageSelect.js"></script>
229
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/Fullscreen.js"></script>
230
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/ControlGroup.js"></script>
231
+ <script type="module" src="{{pathToRoot}}src/components/codeEditorControls/ControlSpacer.js"></script>
232
+ <script type="module" src="{{pathToRoot}}src/components/Accordion.js"></script>
233
+ <script type="module" src="{{pathToRoot}}src/components/Card.js"></script>
234
+ </content>
235
+ </page>