kempo-ui 0.4.19 → 0.4.21

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 (578) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/components/Chat.js +10 -10
  3. package/dist/components/CodeEditor.js +23 -24
  4. package/dist/components/ControlGroup.js +17 -0
  5. package/dist/components/HtmlEditor.js +105 -106
  6. package/dist/components/MarkdownEditor.js +49 -49
  7. package/dist/components/Pagination.js +11 -11
  8. package/dist/components/Table.js +1 -1
  9. package/dist/components/controls/AlignCenter.js +1 -0
  10. package/dist/components/controls/AlignJustify.js +1 -0
  11. package/dist/components/controls/AlignLeft.js +1 -0
  12. package/dist/components/controls/AlignRight.js +1 -0
  13. package/dist/components/controls/Bold.js +1 -0
  14. package/dist/components/controls/BulletList.js +1 -0
  15. package/dist/components/controls/ButtonControl.js +33 -0
  16. package/dist/components/controls/CharacterCount.js +4 -0
  17. package/dist/components/controls/ClearFormatting.js +1 -0
  18. package/dist/components/controls/CodeBlock.js +1 -0
  19. package/dist/components/controls/Control.js +12 -0
  20. package/dist/components/controls/CopyCode.js +1 -0
  21. package/dist/components/controls/CreateLink.js +1 -0
  22. package/dist/components/controls/EditorTheme.js +30 -0
  23. package/dist/components/controls/FindReplace.js +1 -0
  24. package/dist/components/controls/FoldAll.js +1 -0
  25. package/dist/components/controls/FontSize.js +8 -0
  26. package/dist/components/controls/FontSizeDecrease.js +1 -0
  27. package/dist/components/controls/FontSizeIncrease.js +1 -0
  28. package/dist/components/controls/FormatBlock.js +8 -0
  29. package/dist/components/controls/FormatCode.js +1 -0
  30. package/dist/components/controls/Fullscreen.js +1 -0
  31. package/dist/components/controls/InlineCode.js +1 -0
  32. package/dist/components/controls/InsertTable.js +1 -0
  33. package/dist/components/controls/Italic.js +1 -0
  34. package/dist/components/controls/Language.js +21 -0
  35. package/dist/components/controls/MdImage.js +23 -0
  36. package/dist/components/controls/MdLink.js +1 -0
  37. package/dist/components/controls/MdSpeechToText.js +10 -0
  38. package/dist/components/controls/MdTable.js +19 -0
  39. package/dist/components/controls/Menu.js +51 -0
  40. package/dist/components/controls/Minimap.js +1 -0
  41. package/dist/components/controls/Mode.js +1 -0
  42. package/dist/components/controls/NumberList.js +1 -0
  43. package/dist/components/controls/PgCount.js +1 -0
  44. package/dist/components/controls/PgFirst.js +1 -0
  45. package/dist/components/controls/PgGotoPage.js +15 -0
  46. package/dist/components/controls/PgItemsPerPage.js +12 -0
  47. package/dist/components/controls/PgLast.js +1 -0
  48. package/dist/components/controls/PgNext.js +1 -0
  49. package/dist/components/controls/PgPageInfo.js +3 -0
  50. package/dist/components/controls/PgPrev.js +1 -0
  51. package/dist/components/controls/Quote.js +1 -0
  52. package/dist/components/controls/Redo.js +1 -0
  53. package/dist/components/{htmlEditorControls/ControlSpacer.js → controls/Spacer.js} +5 -5
  54. package/dist/components/controls/Strikethrough.js +1 -0
  55. package/dist/components/controls/TcDeleteRecord.js +1 -0
  56. package/dist/components/controls/TcDeleteSelected.js +1 -0
  57. package/dist/components/controls/TcEdit.js +12 -0
  58. package/dist/components/controls/TcExportCsv.js +3 -0
  59. package/dist/components/controls/TcExportJson.js +3 -0
  60. package/dist/components/controls/TcFieldSortHide.js +21 -0
  61. package/dist/components/controls/TcFilters.js +34 -0
  62. package/dist/components/controls/TcFirstPage.js +1 -0
  63. package/dist/components/controls/TcHiddenCount.js +1 -0
  64. package/dist/components/controls/TcHide.js +1 -0
  65. package/dist/components/controls/TcLastPage.js +1 -0
  66. package/dist/components/controls/TcNextPage.js +1 -0
  67. package/dist/components/controls/TcPageSelect.js +9 -0
  68. package/dist/components/controls/TcPageSize.js +5 -0
  69. package/dist/components/controls/TcPrevPage.js +1 -0
  70. package/dist/components/controls/TcSearch.js +1 -0
  71. package/dist/components/controls/TcShowAll.js +1 -0
  72. package/dist/components/controls/TextBackgroundColor.js +26 -0
  73. package/dist/components/controls/TextColor.js +26 -0
  74. package/dist/components/controls/Underline.js +1 -0
  75. package/dist/components/controls/Undo.js +1 -0
  76. package/dist/components/controls/WordCount.js +4 -0
  77. package/dist/components/controls/WordWrap.js +1 -0
  78. package/docs/components/code-editor.html +69 -48
  79. package/docs/components/html-editor.html +70 -69
  80. package/docs/components/markdown-editor.html +59 -78
  81. package/docs/components/pagination.html +51 -51
  82. package/docs/components/tableControls.html +5 -5
  83. package/docs/components/tableCustomFields.html +3 -3
  84. package/docs/components/tableFetchRecords.html +13 -13
  85. package/docs/components/tableFieldSortHide.html +4 -4
  86. package/docs/components/tablePagination.html +13 -13
  87. package/docs/components/tablePlaceholder.html +3 -3
  88. package/docs/components/tableRecordEditing.html +4 -4
  89. package/docs/components/tableRecordFiltering.html +5 -5
  90. package/docs/components/tableRecordHiding.html +7 -7
  91. package/docs/components/tableRecordSearching.html +3 -3
  92. package/docs/components/tableRowControls.html +6 -6
  93. package/docs/components/tableServerSync.html +7 -7
  94. package/docs/src/components/Chat.js +10 -10
  95. package/docs/src/components/CodeEditor.js +23 -24
  96. package/docs/src/components/ControlGroup.js +17 -0
  97. package/docs/src/components/HtmlEditor.js +105 -106
  98. package/docs/src/components/MarkdownEditor.js +49 -49
  99. package/docs/src/components/Pagination.js +11 -11
  100. package/docs/src/components/Table.js +1 -1
  101. package/docs/src/components/controls/AlignCenter.js +1 -0
  102. package/docs/src/components/controls/AlignJustify.js +1 -0
  103. package/docs/src/components/controls/AlignLeft.js +1 -0
  104. package/docs/src/components/controls/AlignRight.js +1 -0
  105. package/docs/src/components/controls/Bold.js +1 -0
  106. package/docs/src/components/controls/BulletList.js +1 -0
  107. package/docs/src/components/controls/ButtonControl.js +33 -0
  108. package/docs/src/components/controls/CharacterCount.js +4 -0
  109. package/docs/src/components/controls/ClearFormatting.js +1 -0
  110. package/docs/src/components/controls/CodeBlock.js +1 -0
  111. package/docs/src/components/controls/Control.js +12 -0
  112. package/docs/src/components/controls/CopyCode.js +1 -0
  113. package/docs/src/components/controls/CreateLink.js +1 -0
  114. package/docs/src/components/controls/EditorTheme.js +30 -0
  115. package/docs/src/components/controls/FindReplace.js +1 -0
  116. package/docs/src/components/controls/FoldAll.js +1 -0
  117. package/docs/src/components/controls/FontSize.js +8 -0
  118. package/docs/src/components/controls/FontSizeDecrease.js +1 -0
  119. package/docs/src/components/controls/FontSizeIncrease.js +1 -0
  120. package/docs/src/components/controls/FormatBlock.js +8 -0
  121. package/docs/src/components/controls/FormatCode.js +1 -0
  122. package/docs/src/components/controls/Fullscreen.js +1 -0
  123. package/docs/src/components/controls/InlineCode.js +1 -0
  124. package/docs/src/components/controls/InsertTable.js +1 -0
  125. package/docs/src/components/controls/Italic.js +1 -0
  126. package/docs/src/components/controls/Language.js +21 -0
  127. package/docs/src/components/controls/MdImage.js +23 -0
  128. package/docs/src/components/controls/MdLink.js +1 -0
  129. package/docs/src/components/controls/MdSpeechToText.js +10 -0
  130. package/docs/src/components/controls/MdTable.js +19 -0
  131. package/docs/src/components/controls/Menu.js +51 -0
  132. package/docs/src/components/controls/Minimap.js +1 -0
  133. package/docs/src/components/controls/Mode.js +1 -0
  134. package/docs/src/components/controls/NumberList.js +1 -0
  135. package/docs/src/components/controls/PgCount.js +1 -0
  136. package/docs/src/components/controls/PgFirst.js +1 -0
  137. package/docs/src/components/controls/PgGotoPage.js +15 -0
  138. package/docs/src/components/controls/PgItemsPerPage.js +12 -0
  139. package/docs/src/components/controls/PgLast.js +1 -0
  140. package/docs/src/components/controls/PgNext.js +1 -0
  141. package/docs/src/components/controls/PgPageInfo.js +3 -0
  142. package/docs/src/components/controls/PgPrev.js +1 -0
  143. package/docs/src/components/controls/Quote.js +1 -0
  144. package/docs/src/components/controls/Redo.js +1 -0
  145. package/docs/src/components/{codeEditorControls/ControlSpacer.js → controls/Spacer.js} +5 -5
  146. package/docs/src/components/controls/Strikethrough.js +1 -0
  147. package/docs/src/components/controls/TcDeleteRecord.js +1 -0
  148. package/docs/src/components/controls/TcDeleteSelected.js +1 -0
  149. package/docs/src/components/controls/TcEdit.js +12 -0
  150. package/docs/src/components/controls/TcExportCsv.js +3 -0
  151. package/docs/src/components/controls/TcExportJson.js +3 -0
  152. package/docs/src/components/controls/TcFieldSortHide.js +21 -0
  153. package/docs/src/components/controls/TcFilters.js +34 -0
  154. package/docs/src/components/controls/TcFirstPage.js +1 -0
  155. package/docs/src/components/controls/TcHiddenCount.js +1 -0
  156. package/docs/src/components/controls/TcHide.js +1 -0
  157. package/docs/src/components/controls/TcLastPage.js +1 -0
  158. package/docs/src/components/controls/TcNextPage.js +1 -0
  159. package/docs/src/components/controls/TcPageSelect.js +9 -0
  160. package/docs/src/components/controls/TcPageSize.js +5 -0
  161. package/docs/src/components/controls/TcPrevPage.js +1 -0
  162. package/docs/src/components/controls/TcSearch.js +1 -0
  163. package/docs/src/components/controls/TcShowAll.js +1 -0
  164. package/docs/src/components/controls/TextBackgroundColor.js +26 -0
  165. package/docs/src/components/controls/TextColor.js +26 -0
  166. package/docs/src/components/controls/Underline.js +1 -0
  167. package/docs/src/components/controls/Undo.js +1 -0
  168. package/docs/src/components/controls/WordCount.js +4 -0
  169. package/docs/src/components/controls/WordWrap.js +1 -0
  170. package/docs-src/components/code-editor.page.html +69 -48
  171. package/docs-src/components/html-editor.page.html +70 -69
  172. package/docs-src/components/markdown-editor.page.html +59 -78
  173. package/docs-src/components/pagination.page.html +51 -51
  174. package/docs-src/components/tableControls.page.html +5 -5
  175. package/docs-src/components/tableCustomFields.page.html +3 -3
  176. package/docs-src/components/tableFetchRecords.page.html +13 -13
  177. package/docs-src/components/tableFieldSortHide.page.html +4 -4
  178. package/docs-src/components/tablePagination.page.html +13 -13
  179. package/docs-src/components/tablePlaceholder.page.html +3 -3
  180. package/docs-src/components/tableRecordEditing.page.html +4 -4
  181. package/docs-src/components/tableRecordFiltering.page.html +5 -5
  182. package/docs-src/components/tableRecordHiding.page.html +7 -7
  183. package/docs-src/components/tableRecordSearching.page.html +3 -3
  184. package/docs-src/components/tableRowControls.page.html +6 -6
  185. package/docs-src/components/tableServerSync.page.html +7 -7
  186. package/llms.txt +37 -3
  187. package/package.json +1 -1
  188. package/src/components/Chat.js +14 -14
  189. package/src/components/CodeEditor.js +26 -32
  190. package/src/components/{codeEditorControls/ControlGroup.js → ControlGroup.js} +10 -6
  191. package/src/components/HtmlEditor.js +107 -125
  192. package/src/components/MarkdownEditor.js +117 -59
  193. package/src/components/Pagination.js +18 -23
  194. package/src/components/Table.js +5 -0
  195. package/src/components/controls/AlignCenter.js +19 -0
  196. package/src/components/controls/AlignJustify.js +19 -0
  197. package/src/components/controls/AlignLeft.js +19 -0
  198. package/src/components/controls/AlignRight.js +19 -0
  199. package/src/components/controls/Bold.js +19 -0
  200. package/src/components/controls/BulletList.js +19 -0
  201. package/src/components/controls/ButtonControl.js +114 -0
  202. package/src/components/controls/CharacterCount.js +48 -0
  203. package/src/components/controls/ClearFormatting.js +19 -0
  204. package/src/components/controls/CodeBlock.js +27 -0
  205. package/src/components/controls/Control.js +176 -0
  206. package/src/components/controls/CopyCode.js +19 -0
  207. package/src/components/controls/CreateLink.js +63 -0
  208. package/src/components/controls/EditorTheme.js +71 -0
  209. package/src/components/controls/FindReplace.js +19 -0
  210. package/src/components/controls/FoldAll.js +35 -0
  211. package/src/components/controls/FontSize.js +31 -0
  212. package/src/components/controls/FontSizeDecrease.js +19 -0
  213. package/src/components/controls/FontSizeIncrease.js +19 -0
  214. package/src/components/controls/FormatBlock.js +64 -0
  215. package/src/components/controls/FormatCode.js +19 -0
  216. package/src/components/controls/Fullscreen.js +42 -0
  217. package/src/components/controls/InlineCode.js +19 -0
  218. package/src/components/controls/InsertTable.js +67 -0
  219. package/src/components/controls/Italic.js +19 -0
  220. package/src/components/controls/Language.js +69 -0
  221. package/src/components/controls/MdImage.js +72 -0
  222. package/src/components/controls/MdLink.js +60 -0
  223. package/src/components/controls/MdSpeechToText.js +46 -0
  224. package/src/components/controls/MdTable.js +79 -0
  225. package/src/components/controls/Menu.js +98 -0
  226. package/src/components/controls/Minimap.js +36 -0
  227. package/src/components/controls/Mode.js +30 -0
  228. package/src/components/controls/NumberList.js +19 -0
  229. package/src/components/controls/PgCount.js +12 -0
  230. package/src/components/controls/PgFirst.js +28 -0
  231. package/src/components/controls/PgGotoPage.js +48 -0
  232. package/src/components/controls/PgItemsPerPage.js +36 -0
  233. package/src/components/controls/PgLast.js +28 -0
  234. package/src/components/controls/PgNext.js +25 -0
  235. package/src/components/controls/PgPageInfo.js +22 -0
  236. package/src/components/controls/PgPrev.js +25 -0
  237. package/src/components/controls/Quote.js +19 -0
  238. package/src/components/controls/Redo.js +18 -0
  239. package/src/components/controls/Spacer.js +15 -0
  240. package/src/components/controls/Strikethrough.js +19 -0
  241. package/src/components/controls/TcDeleteRecord.js +30 -0
  242. package/src/components/controls/TcDeleteSelected.js +16 -0
  243. package/src/components/controls/TcEdit.js +73 -0
  244. package/src/components/controls/TcExportCsv.js +60 -0
  245. package/src/components/controls/TcExportJson.js +46 -0
  246. package/src/components/controls/TcFieldSortHide.js +56 -0
  247. package/src/components/controls/TcFilters.js +86 -0
  248. package/src/components/controls/TcFirstPage.js +24 -0
  249. package/src/components/controls/TcHiddenCount.js +39 -0
  250. package/src/components/controls/TcHide.js +30 -0
  251. package/src/components/controls/TcLastPage.js +24 -0
  252. package/src/components/controls/TcNextPage.js +24 -0
  253. package/src/components/controls/TcPageSelect.js +36 -0
  254. package/src/components/controls/TcPageSize.js +23 -0
  255. package/src/components/controls/TcPrevPage.js +24 -0
  256. package/src/components/controls/TcSearch.js +34 -0
  257. package/src/components/controls/TcShowAll.js +18 -0
  258. package/src/components/controls/TextBackgroundColor.js +84 -0
  259. package/src/components/controls/TextColor.js +84 -0
  260. package/src/components/controls/Underline.js +19 -0
  261. package/src/components/controls/Undo.js +18 -0
  262. package/src/components/controls/WordCount.js +48 -0
  263. package/src/components/controls/WordWrap.js +36 -0
  264. package/tasks/released/0006-create-pagination-component.md +1 -1
  265. package/tasks/released/0007-code-editor-updates/branch-custom-controls.png +0 -0
  266. package/tasks/released/0007-code-editor-updates/branch-toolbar.png +0 -0
  267. package/tasks/released/0007-code-editor-updates/docs-overview.png +0 -0
  268. package/tasks/released/0007-code-editor-updates/form-integration.png +0 -0
  269. package/tasks/released/0007-code-editor-updates/live-builtin-controls.png +0 -0
  270. package/tasks/released/0007-code-editor-updates/live-custom-controls.png +0 -0
  271. package/tasks/released/0007-code-editor-updates/live-toolbar.png +0 -0
  272. package/tasks/released/0007-code-editor-updates/local-builtin-controls.png +0 -0
  273. package/tasks/released/0007-code-editor-updates/local-fixed-builtin.png +0 -0
  274. package/tasks/released/0007-code-editor-updates/theme-selector.png +0 -0
  275. package/tasks/released/0007-code-editor-updates.md +96 -0
  276. package/tests/components/CodeEditor.browser-test.js +0 -42
  277. package/tests/components/HtmlEditor.browser-test.js +0 -88
  278. package/tests/components/MarkdownEditor.browser-test.js +0 -72
  279. package/tests/components/Pagination.browser-test.js +12 -90
  280. package/tests/components/{htmlEditorControls → controls}/Align.browser-test.js +16 -16
  281. package/tests/components/{htmlEditorControls → controls}/Bold.browser-test.js +7 -7
  282. package/tests/components/{htmlEditorControls → controls}/BulletList.browser-test.js +7 -7
  283. package/tests/components/{htmlEditorControls → controls}/CharacterCount.browser-test.js +5 -5
  284. package/tests/components/{htmlEditorControls → controls}/ClearFormatting.browser-test.js +7 -7
  285. package/tests/components/{htmlEditorControls → controls}/CodeBlock.browser-test.js +8 -8
  286. package/tests/components/controls/Control.browser-test.js +147 -0
  287. package/tests/components/{htmlEditorControls → controls}/ControlGroup.browser-test.js +9 -9
  288. package/tests/components/{htmlEditorControls → controls}/ControlSpacer.browser-test.js +4 -4
  289. package/tests/components/{codeEditorControls → controls}/CopyCode.browser-test.js +8 -8
  290. package/tests/components/{htmlEditorControls → controls}/CreateLink.browser-test.js +7 -7
  291. package/tests/components/{htmlEditorControls → controls}/DropdownControl.browser-test.js +8 -8
  292. package/tests/components/{codeEditorControls → controls}/EditorTheme.browser-test.js +4 -4
  293. package/tests/components/{tableControls → controls}/ExportControls.browser-test.js +22 -46
  294. package/tests/components/{tableControls → controls}/FieldSortHide.browser-test.js +14 -26
  295. package/tests/components/{tableControls → controls}/Filters.browser-test.js +15 -27
  296. package/tests/components/{codeEditorControls → controls}/FindReplace.browser-test.js +8 -8
  297. package/tests/components/{codeEditorControls → controls}/FoldAll.browser-test.js +10 -10
  298. package/tests/components/{codeEditorControls → controls}/FontSize.browser-test.js +19 -14
  299. package/tests/components/{htmlEditorControls → controls}/FormatBlock.browser-test.js +9 -9
  300. package/tests/components/{htmlEditorControls → controls}/FormatCode.browser-test.js +17 -18
  301. package/tests/components/{codeEditorControls → controls}/Fullscreen.browser-test.js +11 -32
  302. package/tests/components/{tableControls → controls}/HiddenCount.browser-test.js +4 -4
  303. package/tests/components/{htmlEditorControls → controls}/InlineCode.browser-test.js +7 -7
  304. package/tests/components/{htmlEditorControls → controls}/InsertTable.browser-test.js +7 -7
  305. package/tests/components/{htmlEditorControls → controls}/Italic.browser-test.js +7 -7
  306. package/tests/components/{codeEditorControls → controls}/LanguageSelect.browser-test.js +4 -4
  307. package/tests/components/{codeEditorControls → controls}/Minimap.browser-test.js +8 -8
  308. package/tests/components/{htmlEditorControls → controls}/Mode.browser-test.js +7 -7
  309. package/tests/components/{codeEditorControls → controls}/ModeVisibility.browser-test.js +7 -7
  310. package/tests/components/{htmlEditorControls → controls}/NumberList.browser-test.js +7 -7
  311. package/tests/components/{tableControls → controls}/PaginationControls.browser-test.js +45 -45
  312. package/tests/components/{tableControls → controls}/RecordControls.browser-test.js +24 -60
  313. package/tests/components/{tableControls → controls}/Search.browser-test.js +4 -16
  314. package/tests/components/{htmlEditorControls → controls}/Strikethrough.browser-test.js +7 -7
  315. package/tests/components/{htmlEditorControls → controls}/TextBackgroundColor.browser-test.js +5 -5
  316. package/tests/components/{htmlEditorControls → controls}/TextColor.browser-test.js +5 -5
  317. package/tests/components/{htmlEditorControls → controls}/Underline.browser-test.js +7 -7
  318. package/tests/components/{codeEditorControls → controls}/UndoRedo.browser-test.js +15 -15
  319. package/tests/components/{htmlEditorControls → controls}/WordCount.browser-test.js +5 -5
  320. package/tests/components/{codeEditorControls → controls}/WordWrap.browser-test.js +8 -8
  321. package/dist/components/codeEditorControls/CodeEditorControl.js +0 -17
  322. package/dist/components/codeEditorControls/ControlGroup.js +0 -12
  323. package/dist/components/codeEditorControls/ControlSpacer.js +0 -6
  324. package/dist/components/codeEditorControls/CopyCode.js +0 -9
  325. package/dist/components/codeEditorControls/EditorTheme.js +0 -26
  326. package/dist/components/codeEditorControls/FindReplace.js +0 -7
  327. package/dist/components/codeEditorControls/FoldAll.js +0 -7
  328. package/dist/components/codeEditorControls/FontSize.js +0 -13
  329. package/dist/components/codeEditorControls/FormatCode.js +0 -9
  330. package/dist/components/codeEditorControls/Fullscreen.js +0 -12
  331. package/dist/components/codeEditorControls/LanguageSelect.js +0 -15
  332. package/dist/components/codeEditorControls/Minimap.js +0 -8
  333. package/dist/components/codeEditorControls/Redo.js +0 -7
  334. package/dist/components/codeEditorControls/Undo.js +0 -7
  335. package/dist/components/codeEditorControls/WordWrap.js +0 -8
  336. package/dist/components/htmlEditorControls/AlignCenter.js +0 -12
  337. package/dist/components/htmlEditorControls/AlignJustify.js +0 -12
  338. package/dist/components/htmlEditorControls/AlignLeft.js +0 -12
  339. package/dist/components/htmlEditorControls/AlignRight.js +0 -12
  340. package/dist/components/htmlEditorControls/Bold.js +0 -12
  341. package/dist/components/htmlEditorControls/BulletList.js +0 -12
  342. package/dist/components/htmlEditorControls/CharacterCount.js +0 -18
  343. package/dist/components/htmlEditorControls/ClearFormatting.js +0 -12
  344. package/dist/components/htmlEditorControls/CodeBlock.js +0 -12
  345. package/dist/components/htmlEditorControls/ControlGroup.js +0 -12
  346. package/dist/components/htmlEditorControls/CreateLink.js +0 -15
  347. package/dist/components/htmlEditorControls/DropdownControl.js +0 -57
  348. package/dist/components/htmlEditorControls/FormatBlock.js +0 -12
  349. package/dist/components/htmlEditorControls/FormatCode.js +0 -1
  350. package/dist/components/htmlEditorControls/HtmlEditorControl.js +0 -44
  351. package/dist/components/htmlEditorControls/InlineCode.js +0 -12
  352. package/dist/components/htmlEditorControls/InsertTable.js +0 -15
  353. package/dist/components/htmlEditorControls/Italic.js +0 -12
  354. package/dist/components/htmlEditorControls/Mode.js +0 -9
  355. package/dist/components/htmlEditorControls/NumberList.js +0 -12
  356. package/dist/components/htmlEditorControls/Strikethrough.js +0 -12
  357. package/dist/components/htmlEditorControls/TextBackgroundColor.js +0 -97
  358. package/dist/components/htmlEditorControls/TextColor.js +0 -97
  359. package/dist/components/htmlEditorControls/Underline.js +0 -12
  360. package/dist/components/htmlEditorControls/WordCount.js +0 -18
  361. package/dist/components/markdownEditorControls/Bold.js +0 -11
  362. package/dist/components/markdownEditorControls/BulletList.js +0 -11
  363. package/dist/components/markdownEditorControls/Code.js +0 -11
  364. package/dist/components/markdownEditorControls/FormatBlock.js +0 -30
  365. package/dist/components/markdownEditorControls/Heading.js +0 -11
  366. package/dist/components/markdownEditorControls/Image.js +0 -93
  367. package/dist/components/markdownEditorControls/Italic.js +0 -11
  368. package/dist/components/markdownEditorControls/Link.js +0 -11
  369. package/dist/components/markdownEditorControls/MarkdownEditorControl.js +0 -39
  370. package/dist/components/markdownEditorControls/Menu.js +0 -30
  371. package/dist/components/markdownEditorControls/NumberedList.js +0 -11
  372. package/dist/components/markdownEditorControls/Quote.js +0 -11
  373. package/dist/components/markdownEditorControls/SpeechToText.js +0 -16
  374. package/dist/components/markdownEditorControls/Strikethrough.js +0 -11
  375. package/dist/components/markdownEditorControls/Table.js +0 -80
  376. package/dist/components/paginationControls/FirstPage.js +0 -1
  377. package/dist/components/paginationControls/GotoPage.js +0 -17
  378. package/dist/components/paginationControls/ItemsPerPage.js +0 -15
  379. package/dist/components/paginationControls/LastPage.js +0 -1
  380. package/dist/components/paginationControls/NextPage.js +0 -1
  381. package/dist/components/paginationControls/PageCount.js +0 -1
  382. package/dist/components/paginationControls/PageInfo.js +0 -6
  383. package/dist/components/paginationControls/PaginationButtonControl.js +0 -20
  384. package/dist/components/paginationControls/PaginationControl.js +0 -5
  385. package/dist/components/paginationControls/PrevPage.js +0 -1
  386. package/dist/components/tableControls/DeleteRecord.js +0 -7
  387. package/dist/components/tableControls/DeleteSelected.js +0 -7
  388. package/dist/components/tableControls/Edit.js +0 -18
  389. package/dist/components/tableControls/ExportCSV.js +0 -8
  390. package/dist/components/tableControls/ExportJson.js +0 -8
  391. package/dist/components/tableControls/FieldSortHide.js +0 -25
  392. package/dist/components/tableControls/Filters.js +0 -46
  393. package/dist/components/tableControls/FirstPage.js +0 -9
  394. package/dist/components/tableControls/HiddenCount.js +0 -3
  395. package/dist/components/tableControls/Hide.js +0 -5
  396. package/dist/components/tableControls/LastPage.js +0 -9
  397. package/dist/components/tableControls/NextPage.js +0 -9
  398. package/dist/components/tableControls/PageSelect.js +0 -22
  399. package/dist/components/tableControls/PageSize.js +0 -5
  400. package/dist/components/tableControls/PrevPage.js +0 -9
  401. package/dist/components/tableControls/Search.js +0 -9
  402. package/dist/components/tableControls/ShowAll.js +0 -5
  403. package/dist/components/tableControls/TableControl.js +0 -16
  404. package/docs/src/components/codeEditorControls/CodeEditorControl.js +0 -17
  405. package/docs/src/components/codeEditorControls/ControlGroup.js +0 -12
  406. package/docs/src/components/codeEditorControls/CopyCode.js +0 -9
  407. package/docs/src/components/codeEditorControls/EditorTheme.js +0 -26
  408. package/docs/src/components/codeEditorControls/FindReplace.js +0 -7
  409. package/docs/src/components/codeEditorControls/FoldAll.js +0 -7
  410. package/docs/src/components/codeEditorControls/FontSize.js +0 -13
  411. package/docs/src/components/codeEditorControls/FormatCode.js +0 -9
  412. package/docs/src/components/codeEditorControls/Fullscreen.js +0 -12
  413. package/docs/src/components/codeEditorControls/LanguageSelect.js +0 -15
  414. package/docs/src/components/codeEditorControls/Minimap.js +0 -8
  415. package/docs/src/components/codeEditorControls/Redo.js +0 -7
  416. package/docs/src/components/codeEditorControls/Undo.js +0 -7
  417. package/docs/src/components/codeEditorControls/WordWrap.js +0 -8
  418. package/docs/src/components/htmlEditorControls/AlignCenter.js +0 -12
  419. package/docs/src/components/htmlEditorControls/AlignJustify.js +0 -12
  420. package/docs/src/components/htmlEditorControls/AlignLeft.js +0 -12
  421. package/docs/src/components/htmlEditorControls/AlignRight.js +0 -12
  422. package/docs/src/components/htmlEditorControls/Bold.js +0 -12
  423. package/docs/src/components/htmlEditorControls/BulletList.js +0 -12
  424. package/docs/src/components/htmlEditorControls/CharacterCount.js +0 -18
  425. package/docs/src/components/htmlEditorControls/ClearFormatting.js +0 -12
  426. package/docs/src/components/htmlEditorControls/CodeBlock.js +0 -12
  427. package/docs/src/components/htmlEditorControls/ControlGroup.js +0 -12
  428. package/docs/src/components/htmlEditorControls/ControlSpacer.js +0 -6
  429. package/docs/src/components/htmlEditorControls/CreateLink.js +0 -15
  430. package/docs/src/components/htmlEditorControls/DropdownControl.js +0 -57
  431. package/docs/src/components/htmlEditorControls/FormatBlock.js +0 -12
  432. package/docs/src/components/htmlEditorControls/FormatCode.js +0 -1
  433. package/docs/src/components/htmlEditorControls/HtmlEditorControl.js +0 -44
  434. package/docs/src/components/htmlEditorControls/InlineCode.js +0 -12
  435. package/docs/src/components/htmlEditorControls/InsertTable.js +0 -15
  436. package/docs/src/components/htmlEditorControls/Italic.js +0 -12
  437. package/docs/src/components/htmlEditorControls/Mode.js +0 -9
  438. package/docs/src/components/htmlEditorControls/NumberList.js +0 -12
  439. package/docs/src/components/htmlEditorControls/Strikethrough.js +0 -12
  440. package/docs/src/components/htmlEditorControls/TextBackgroundColor.js +0 -97
  441. package/docs/src/components/htmlEditorControls/TextColor.js +0 -97
  442. package/docs/src/components/htmlEditorControls/Underline.js +0 -12
  443. package/docs/src/components/htmlEditorControls/WordCount.js +0 -18
  444. package/docs/src/components/markdownEditorControls/Bold.js +0 -11
  445. package/docs/src/components/markdownEditorControls/BulletList.js +0 -11
  446. package/docs/src/components/markdownEditorControls/Code.js +0 -11
  447. package/docs/src/components/markdownEditorControls/FormatBlock.js +0 -30
  448. package/docs/src/components/markdownEditorControls/Heading.js +0 -11
  449. package/docs/src/components/markdownEditorControls/Image.js +0 -93
  450. package/docs/src/components/markdownEditorControls/Italic.js +0 -11
  451. package/docs/src/components/markdownEditorControls/Link.js +0 -11
  452. package/docs/src/components/markdownEditorControls/MarkdownEditorControl.js +0 -39
  453. package/docs/src/components/markdownEditorControls/Menu.js +0 -30
  454. package/docs/src/components/markdownEditorControls/NumberedList.js +0 -11
  455. package/docs/src/components/markdownEditorControls/Quote.js +0 -11
  456. package/docs/src/components/markdownEditorControls/SpeechToText.js +0 -16
  457. package/docs/src/components/markdownEditorControls/Strikethrough.js +0 -11
  458. package/docs/src/components/markdownEditorControls/Table.js +0 -80
  459. package/docs/src/components/paginationControls/FirstPage.js +0 -1
  460. package/docs/src/components/paginationControls/GotoPage.js +0 -17
  461. package/docs/src/components/paginationControls/ItemsPerPage.js +0 -15
  462. package/docs/src/components/paginationControls/LastPage.js +0 -1
  463. package/docs/src/components/paginationControls/NextPage.js +0 -1
  464. package/docs/src/components/paginationControls/PageCount.js +0 -1
  465. package/docs/src/components/paginationControls/PageInfo.js +0 -6
  466. package/docs/src/components/paginationControls/PaginationButtonControl.js +0 -20
  467. package/docs/src/components/paginationControls/PaginationControl.js +0 -5
  468. package/docs/src/components/paginationControls/PrevPage.js +0 -1
  469. package/docs/src/components/tableControls/DeleteRecord.js +0 -7
  470. package/docs/src/components/tableControls/DeleteSelected.js +0 -7
  471. package/docs/src/components/tableControls/Edit.js +0 -18
  472. package/docs/src/components/tableControls/ExportCSV.js +0 -8
  473. package/docs/src/components/tableControls/ExportJson.js +0 -8
  474. package/docs/src/components/tableControls/FieldSortHide.js +0 -25
  475. package/docs/src/components/tableControls/Filters.js +0 -46
  476. package/docs/src/components/tableControls/FirstPage.js +0 -9
  477. package/docs/src/components/tableControls/HiddenCount.js +0 -3
  478. package/docs/src/components/tableControls/Hide.js +0 -5
  479. package/docs/src/components/tableControls/LastPage.js +0 -9
  480. package/docs/src/components/tableControls/NextPage.js +0 -9
  481. package/docs/src/components/tableControls/PageSelect.js +0 -22
  482. package/docs/src/components/tableControls/PageSize.js +0 -5
  483. package/docs/src/components/tableControls/PrevPage.js +0 -9
  484. package/docs/src/components/tableControls/Search.js +0 -9
  485. package/docs/src/components/tableControls/ShowAll.js +0 -5
  486. package/docs/src/components/tableControls/TableControl.js +0 -16
  487. package/src/components/codeEditorControls/CodeEditorControl.js +0 -134
  488. package/src/components/codeEditorControls/ControlSpacer.js +0 -23
  489. package/src/components/codeEditorControls/CopyCode.js +0 -37
  490. package/src/components/codeEditorControls/EditorTheme.js +0 -81
  491. package/src/components/codeEditorControls/FindReplace.js +0 -35
  492. package/src/components/codeEditorControls/FoldAll.js +0 -49
  493. package/src/components/codeEditorControls/FontSize.js +0 -45
  494. package/src/components/codeEditorControls/FormatCode.js +0 -37
  495. package/src/components/codeEditorControls/Fullscreen.js +0 -72
  496. package/src/components/codeEditorControls/LanguageSelect.js +0 -74
  497. package/src/components/codeEditorControls/Minimap.js +0 -60
  498. package/src/components/codeEditorControls/Redo.js +0 -35
  499. package/src/components/codeEditorControls/Undo.js +0 -35
  500. package/src/components/codeEditorControls/WordWrap.js +0 -60
  501. package/src/components/htmlEditorControls/AlignCenter.js +0 -63
  502. package/src/components/htmlEditorControls/AlignJustify.js +0 -63
  503. package/src/components/htmlEditorControls/AlignLeft.js +0 -63
  504. package/src/components/htmlEditorControls/AlignRight.js +0 -63
  505. package/src/components/htmlEditorControls/Bold.js +0 -63
  506. package/src/components/htmlEditorControls/BulletList.js +0 -63
  507. package/src/components/htmlEditorControls/CharacterCount.js +0 -75
  508. package/src/components/htmlEditorControls/ClearFormatting.js +0 -63
  509. package/src/components/htmlEditorControls/CodeBlock.js +0 -64
  510. package/src/components/htmlEditorControls/ControlGroup.js +0 -70
  511. package/src/components/htmlEditorControls/ControlSpacer.js +0 -23
  512. package/src/components/htmlEditorControls/CreateLink.js +0 -115
  513. package/src/components/htmlEditorControls/DropdownControl.js +0 -149
  514. package/src/components/htmlEditorControls/FormatBlock.js +0 -106
  515. package/src/components/htmlEditorControls/FormatCode.js +0 -7
  516. package/src/components/htmlEditorControls/HtmlEditorControl.js +0 -164
  517. package/src/components/htmlEditorControls/InlineCode.js +0 -63
  518. package/src/components/htmlEditorControls/InsertTable.js +0 -126
  519. package/src/components/htmlEditorControls/Italic.js +0 -63
  520. package/src/components/htmlEditorControls/Mode.js +0 -68
  521. package/src/components/htmlEditorControls/NumberList.js +0 -63
  522. package/src/components/htmlEditorControls/Strikethrough.js +0 -63
  523. package/src/components/htmlEditorControls/TextBackgroundColor.js +0 -189
  524. package/src/components/htmlEditorControls/TextColor.js +0 -189
  525. package/src/components/htmlEditorControls/Underline.js +0 -63
  526. package/src/components/htmlEditorControls/WordCount.js +0 -76
  527. package/src/components/markdownEditorControls/Bold.js +0 -30
  528. package/src/components/markdownEditorControls/BulletList.js +0 -30
  529. package/src/components/markdownEditorControls/Code.js +0 -39
  530. package/src/components/markdownEditorControls/FormatBlock.js +0 -102
  531. package/src/components/markdownEditorControls/Heading.js +0 -46
  532. package/src/components/markdownEditorControls/Image.js +0 -250
  533. package/src/components/markdownEditorControls/Italic.js +0 -30
  534. package/src/components/markdownEditorControls/Link.js +0 -74
  535. package/src/components/markdownEditorControls/MarkdownEditorControl.js +0 -158
  536. package/src/components/markdownEditorControls/Menu.js +0 -86
  537. package/src/components/markdownEditorControls/NumberedList.js +0 -69
  538. package/src/components/markdownEditorControls/Quote.js +0 -30
  539. package/src/components/markdownEditorControls/SpeechToText.js +0 -65
  540. package/src/components/markdownEditorControls/Strikethrough.js +0 -35
  541. package/src/components/markdownEditorControls/Table.js +0 -165
  542. package/src/components/paginationControls/FirstPage.js +0 -26
  543. package/src/components/paginationControls/GotoPage.js +0 -56
  544. package/src/components/paginationControls/ItemsPerPage.js +0 -44
  545. package/src/components/paginationControls/LastPage.js +0 -26
  546. package/src/components/paginationControls/NextPage.js +0 -26
  547. package/src/components/paginationControls/PageCount.js +0 -10
  548. package/src/components/paginationControls/PageInfo.js +0 -23
  549. package/src/components/paginationControls/PaginationButtonControl.js +0 -76
  550. package/src/components/paginationControls/PaginationControl.js +0 -43
  551. package/src/components/paginationControls/PrevPage.js +0 -26
  552. package/src/components/tableControls/DeleteRecord.js +0 -29
  553. package/src/components/tableControls/DeleteSelected.js +0 -27
  554. package/src/components/tableControls/Edit.js +0 -86
  555. package/src/components/tableControls/ExportCSV.js +0 -71
  556. package/src/components/tableControls/ExportJson.js +0 -55
  557. package/src/components/tableControls/FieldSortHide.js +0 -76
  558. package/src/components/tableControls/Filters.js +0 -113
  559. package/src/components/tableControls/FirstPage.js +0 -65
  560. package/src/components/tableControls/HiddenCount.js +0 -43
  561. package/src/components/tableControls/Hide.js +0 -34
  562. package/src/components/tableControls/LastPage.js +0 -65
  563. package/src/components/tableControls/NextPage.js +0 -65
  564. package/src/components/tableControls/PageSelect.js +0 -101
  565. package/src/components/tableControls/PageSize.js +0 -68
  566. package/src/components/tableControls/PrevPage.js +0 -65
  567. package/src/components/tableControls/Search.js +0 -56
  568. package/src/components/tableControls/ShowAll.js +0 -34
  569. package/src/components/tableControls/TableControl.js +0 -103
  570. package/tasks/0006-create-pagination-component/screenshot-01-top.png +0 -0
  571. package/tasks/0006-create-pagination-component/screenshot-02-controls.png +0 -0
  572. package/tasks/0006-create-pagination-component/screenshot-03-preconfigured.png +0 -0
  573. package/tasks/0006-create-pagination-component/screenshot-04-live-demo-page1.png +0 -0
  574. package/tasks/0006-create-pagination-component/screenshot-05-live-demo-page2.png +0 -0
  575. package/tasks/0006-create-pagination-component/screenshot-06-live-demo-last-page.png +0 -0
  576. package/tasks/0006-create-pagination-component/screenshot-07-js-reference.png +0 -0
  577. package/tasks/0006-create-pagination-component.md +0 -136
  578. package/tests/components/tableControls/TableControl.browser-test.js +0 -300
@@ -4,6 +4,7 @@ import formatCode from '../utils/formatCode.js';
4
4
  import debounce from '../utils/debounce.js';
5
5
  import { getCalculatedTheme, subscribeToTheme } from '../utils/theme.js';
6
6
  import Dialog from './Dialog.js';
7
+ import Control from './controls/Control.js';
7
8
 
8
9
  /*
9
10
  Default CDN URLs
@@ -71,6 +72,7 @@ export default class HtmlEditor extends ShadowComponent {
71
72
  */
72
73
  connectedCallback() {
73
74
  super.connectedCallback();
75
+ if(!this.hasAttribute('controlled')) this.setAttribute('controlled', '');
74
76
  if (this.hasAttribute('value')) {
75
77
  this.value = this.getAttribute('value');
76
78
  }
@@ -180,16 +182,9 @@ export default class HtmlEditor extends ShadowComponent {
180
182
  Module Loading
181
183
  */
182
184
  loadControls() {
183
- const modules = this.constructor.controlModules[this.controls];
184
- if(!modules?.length) return;
185
- const loaded = this.constructor.loadedModules;
186
- const hecBase = new URL('./htmlEditorControls/', import.meta.url).href;
187
- const cecBase = new URL('./codeEditorControls/', import.meta.url).href;
188
- modules.filter(m => !loaded.has(m)).forEach(m => {
189
- loaded.add(m);
190
- const [dir, file] = m.split('/');
191
- import(`${dir === 'cec' ? cecBase : hecBase}${file}.js`);
192
- });
185
+ const set = this.constructor.controlSets[this.controls];
186
+ if(!set) return;
187
+ Control.load(Object.values(set));
193
188
  }
194
189
 
195
190
  async loadNodeModules() {
@@ -619,6 +614,16 @@ export default class HtmlEditor extends ShadowComponent {
619
614
  return this;
620
615
  }
621
616
 
617
+ /* Aliases matching the unified controls API */
618
+ bulletList() { return this.unorderedList(); }
619
+ numberList() { return this.orderedList(); }
620
+ toggleWordWrap() { return this.setWordWrap(!this.wordWrap); }
621
+ toggleMinimap() { return this.setMinimap(!this.minimapEnabled); }
622
+ formatCode() {
623
+ this.monacoEditor?.getAction('editor.action.formatDocument')?.run();
624
+ return this;
625
+ }
626
+
622
627
  /*
623
628
  Public Methods - Text Alignment
624
629
  */
@@ -1184,10 +1189,9 @@ export default class HtmlEditor extends ShadowComponent {
1184
1189
  }
1185
1190
  :host([fullscreen]) {
1186
1191
  position: fixed;
1187
- top: 0;
1188
- left: 0;
1189
- width: 100vw !important;
1190
- height: 100vh !important;
1192
+ inset: 0;
1193
+ width: auto;
1194
+ height: auto;
1191
1195
  z-index: 10000;
1192
1196
  }
1193
1197
  :host([disabled]) {
@@ -1326,40 +1330,18 @@ export default class HtmlEditor extends ShadowComponent {
1326
1330
  /*
1327
1331
  Static Properties
1328
1332
  */
1329
- static loadedModules = new Set();
1330
- static controlModules = {
1331
- minimal: [
1332
- 'hec/Bold', 'hec/Italic', 'hec/Underline', 'hec/BulletList', 'hec/NumberList', 'hec/ControlGroup'
1333
- ],
1334
- normal: [
1335
- 'hec/Bold', 'hec/Italic', 'hec/Underline', 'hec/Strikethrough', 'hec/InlineCode', 'hec/DropdownControl',
1336
- 'hec/FormatBlock', 'hec/CodeBlock', 'hec/BulletList', 'hec/NumberList', 'hec/AlignLeft',
1337
- 'hec/AlignCenter', 'hec/AlignRight', 'hec/CreateLink', 'hec/Mode', 'hec/WordCount', 'hec/ControlGroup',
1338
- 'cec/FormatCode'
1339
- ],
1340
- full: [
1341
- 'hec/Bold', 'hec/Italic', 'hec/Underline', 'hec/Strikethrough', 'hec/InlineCode', 'hec/DropdownControl',
1342
- 'hec/FormatBlock', 'hec/CodeBlock', 'hec/BulletList', 'hec/NumberList', 'hec/AlignLeft',
1343
- 'hec/AlignCenter', 'hec/AlignRight', 'hec/AlignJustify', 'hec/TextColor', 'hec/TextBackgroundColor',
1344
- 'hec/ClearFormatting', 'hec/CreateLink', 'hec/InsertTable', 'hec/Mode', 'hec/WordCount',
1345
- 'hec/CharacterCount', 'hec/ControlGroup',
1346
- 'cec/Undo', 'cec/Redo', 'cec/FormatCode', 'cec/CopyCode', 'cec/FindReplace',
1347
- 'cec/WordWrap', 'cec/Minimap', 'cec/FoldAll', 'cec/FontSize', 'cec/EditorTheme', 'cec/Fullscreen', 'cec/ControlGroup'
1348
- ]
1349
- };
1350
-
1351
1333
  static controlSets = {
1352
1334
  minimal: {
1353
1335
  topLeft: html`
1354
- <k-hec-group>
1355
- <k-hec-bold></k-hec-bold>
1356
- <k-hec-italic></k-hec-italic>
1357
- <k-hec-underline></k-hec-underline>
1358
- </k-hec-group>
1359
- <k-hec-group>
1360
- <k-hec-bullet-list></k-hec-bullet-list>
1361
- <k-hec-number-list></k-hec-number-list>
1362
- </k-hec-group>
1336
+ <k-control-group>
1337
+ <kc-bold></kc-bold>
1338
+ <kc-italic></kc-italic>
1339
+ <kc-underline></kc-underline>
1340
+ </k-control-group>
1341
+ <k-control-group>
1342
+ <kc-bullet-list></kc-bullet-list>
1343
+ <kc-number-list></kc-number-list>
1344
+ </k-control-group>
1363
1345
  `,
1364
1346
  topRight: null,
1365
1347
  bottomLeft: null,
@@ -1367,101 +1349,101 @@ export default class HtmlEditor extends ShadowComponent {
1367
1349
  },
1368
1350
  normal: {
1369
1351
  topLeft: html`
1370
- <k-hec-group>
1371
- <k-hec-bold></k-hec-bold>
1372
- <k-hec-italic></k-hec-italic>
1373
- <k-hec-underline></k-hec-underline>
1374
- <k-hec-strikethrough></k-hec-strikethrough>
1375
- </k-hec-group>
1376
- <k-hec-inline-code></k-hec-inline-code>
1377
- <k-hec-dropdown>
1352
+ <k-control-group>
1353
+ <kc-bold></kc-bold>
1354
+ <kc-italic></kc-italic>
1355
+ <kc-underline></kc-underline>
1356
+ <kc-strikethrough></kc-strikethrough>
1357
+ </k-control-group>
1358
+ <kc-inline-code></kc-inline-code>
1359
+ <kc-menu>
1378
1360
  <k-icon slot="icon" name="format_paragraph"></k-icon>
1379
1361
  <span slot="label">Text Style</span>
1380
- <k-hec-format-block tag="p">Paragraph</k-hec-format-block>
1381
- <k-hec-format-block tag="h1">Heading 1</k-hec-format-block>
1382
- <k-hec-format-block tag="h2">Heading 2</k-hec-format-block>
1383
- <k-hec-format-block tag="h3">Heading 3</k-hec-format-block>
1384
- <k-hec-format-block tag="blockquote">Blockquote</k-hec-format-block>
1385
- <k-hec-code-block></k-hec-code-block>
1386
- </k-hec-dropdown>
1387
- <k-hec-group>
1388
- <k-hec-bullet-list></k-hec-bullet-list>
1389
- <k-hec-number-list></k-hec-number-list>
1390
- </k-hec-group>
1362
+ <kc-format-block tag="p">Paragraph</kc-format-block>
1363
+ <kc-format-block tag="h1">Heading 1</kc-format-block>
1364
+ <kc-format-block tag="h2">Heading 2</kc-format-block>
1365
+ <kc-format-block tag="h3">Heading 3</kc-format-block>
1366
+ <kc-format-block tag="blockquote">Blockquote</kc-format-block>
1367
+ <kc-code-block></kc-code-block>
1368
+ </kc-menu>
1369
+ <k-control-group>
1370
+ <kc-bullet-list></kc-bullet-list>
1371
+ <kc-number-list></kc-number-list>
1372
+ </k-control-group>
1391
1373
  `,
1392
1374
  topRight: html`
1393
- <k-hec-group>
1394
- <k-hec-align-left></k-hec-align-left>
1395
- <k-hec-align-center></k-hec-align-center>
1396
- <k-hec-align-right></k-hec-align-right>
1397
- </k-hec-group>
1398
- <k-hec-create-link></k-hec-create-link>
1399
- <k-cec-format-code></k-cec-format-code>
1400
- <k-hec-mode></k-hec-mode>
1375
+ <k-control-group>
1376
+ <kc-align-left></kc-align-left>
1377
+ <kc-align-center></kc-align-center>
1378
+ <kc-align-right></kc-align-right>
1379
+ </k-control-group>
1380
+ <kc-create-link></kc-create-link>
1381
+ <kc-format-code></kc-format-code>
1382
+ <kc-mode></kc-mode>
1401
1383
  `,
1402
- bottomLeft: html`<k-hec-word-count></k-hec-word-count>`,
1384
+ bottomLeft: html`<kc-word-count></kc-word-count>`,
1403
1385
  bottomRight: null,
1404
1386
  },
1405
1387
  full: {
1406
1388
  topLeft: html`
1407
- <k-hec-group>
1408
- <k-hec-bold></k-hec-bold>
1409
- <k-hec-italic></k-hec-italic>
1410
- <k-hec-underline></k-hec-underline>
1411
- <k-hec-strikethrough></k-hec-strikethrough>
1412
- </k-hec-group>
1413
- <k-hec-inline-code></k-hec-inline-code>
1414
- <k-hec-dropdown>
1389
+ <k-control-group>
1390
+ <kc-bold></kc-bold>
1391
+ <kc-italic></kc-italic>
1392
+ <kc-underline></kc-underline>
1393
+ <kc-strikethrough></kc-strikethrough>
1394
+ </k-control-group>
1395
+ <kc-inline-code></kc-inline-code>
1396
+ <kc-menu>
1415
1397
  <k-icon slot="icon" name="format_paragraph"></k-icon>
1416
1398
  <span slot="label">Text Style</span>
1417
- <k-hec-format-block tag="p">Paragraph</k-hec-format-block>
1418
- <k-hec-format-block tag="h1">Heading 1</k-hec-format-block>
1419
- <k-hec-format-block tag="h2">Heading 2</k-hec-format-block>
1420
- <k-hec-format-block tag="h3">Heading 3</k-hec-format-block>
1421
- <k-hec-format-block tag="blockquote">Blockquote</k-hec-format-block>
1422
- <k-hec-code-block></k-hec-code-block>
1423
- </k-hec-dropdown>
1424
- <k-hec-group>
1425
- <k-hec-bullet-list></k-hec-bullet-list>
1426
- <k-hec-number-list></k-hec-number-list>
1427
- </k-hec-group>
1428
- <k-cec-group>
1429
- <k-cec-undo></k-cec-undo>
1430
- <k-cec-redo></k-cec-redo>
1431
- </k-cec-group>
1432
- <k-cec-group>
1433
- <k-cec-format-code></k-cec-format-code>
1434
- <k-cec-copy-code></k-cec-copy-code>
1435
- <k-cec-find-replace></k-cec-find-replace>
1436
- </k-cec-group>
1437
- <k-cec-group>
1438
- <k-cec-word-wrap></k-cec-word-wrap>
1439
- <k-cec-minimap></k-cec-minimap>
1440
- <k-cec-fold-all></k-cec-fold-all>
1441
- </k-cec-group>
1442
- <k-cec-font-size></k-cec-font-size>
1399
+ <kc-format-block tag="p">Paragraph</kc-format-block>
1400
+ <kc-format-block tag="h1">Heading 1</kc-format-block>
1401
+ <kc-format-block tag="h2">Heading 2</kc-format-block>
1402
+ <kc-format-block tag="h3">Heading 3</kc-format-block>
1403
+ <kc-format-block tag="blockquote">Blockquote</kc-format-block>
1404
+ <kc-code-block></kc-code-block>
1405
+ </kc-menu>
1406
+ <k-control-group>
1407
+ <kc-bullet-list></kc-bullet-list>
1408
+ <kc-number-list></kc-number-list>
1409
+ </k-control-group>
1410
+ <k-control-group>
1411
+ <kc-undo></kc-undo>
1412
+ <kc-redo></kc-redo>
1413
+ </k-control-group>
1414
+ <k-control-group>
1415
+ <kc-format-code></kc-format-code>
1416
+ <kc-copy-code></kc-copy-code>
1417
+ <kc-find-replace></kc-find-replace>
1418
+ </k-control-group>
1419
+ <k-control-group>
1420
+ <kc-word-wrap></kc-word-wrap>
1421
+ <kc-minimap></kc-minimap>
1422
+ <kc-fold-all></kc-fold-all>
1423
+ </k-control-group>
1424
+ <kc-font-size></kc-font-size>
1443
1425
  `,
1444
1426
  topRight: html`
1445
- <k-hec-group>
1446
- <k-hec-align-left></k-hec-align-left>
1447
- <k-hec-align-center></k-hec-align-center>
1448
- <k-hec-align-right></k-hec-align-right>
1449
- <k-hec-align-justify></k-hec-align-justify>
1450
- </k-hec-group>
1451
- <k-hec-create-link></k-hec-create-link>
1452
- <k-hec-group>
1453
- <k-hec-text-color></k-hec-text-color>
1454
- <k-hec-text-background-color></k-hec-text-background-color>
1455
- </k-hec-group>
1456
- <k-hec-clear-formatting></k-hec-clear-formatting>
1457
- <k-hec-insert-table></k-hec-insert-table>
1458
- <k-cec-editor-theme></k-cec-editor-theme>
1459
- <k-hec-mode></k-hec-mode>
1460
- <k-cec-fullscreen></k-cec-fullscreen>
1427
+ <k-control-group>
1428
+ <kc-align-left></kc-align-left>
1429
+ <kc-align-center></kc-align-center>
1430
+ <kc-align-right></kc-align-right>
1431
+ <kc-align-justify></kc-align-justify>
1432
+ </k-control-group>
1433
+ <kc-create-link></kc-create-link>
1434
+ <k-control-group>
1435
+ <kc-text-color></kc-text-color>
1436
+ <kc-text-background-color></kc-text-background-color>
1437
+ </k-control-group>
1438
+ <kc-clear-formatting></kc-clear-formatting>
1439
+ <kc-insert-table></kc-insert-table>
1440
+ <kc-editor-theme></kc-editor-theme>
1441
+ <kc-mode></kc-mode>
1442
+ <kc-fullscreen></kc-fullscreen>
1461
1443
  `,
1462
1444
  bottomLeft: html`
1463
- <k-hec-word-count></k-hec-word-count>
1464
- <k-hec-character-count></k-hec-character-count>
1445
+ <kc-word-count></kc-word-count>
1446
+ <kc-character-count></kc-character-count>
1465
1447
  `,
1466
1448
  bottomRight: null,
1467
1449
  },
@@ -3,6 +3,7 @@ import ShadowComponent from './ShadowComponent.js';
3
3
  import renderMarkdown from '../utils/renderMarkdown.js';
4
4
  import sanitizeHtml, { STRIP_COMPLETELY } from '../utils/sanitizeHtml.js';
5
5
  import debounce from '../utils/debounce.js';
6
+ import Control from './controls/Control.js';
6
7
  import './Resize.js';
7
8
  import './Tabs.js';
8
9
 
@@ -93,15 +94,14 @@ export default class MarkdownEditor extends ShadowComponent {
93
94
  Lifecycle
94
95
  */
95
96
  loadControls() {
96
- const modules = this.constructor.controlModules[this.controls];
97
- if(!modules?.length) return;
98
- const loaded = this.constructor.loadedModules;
99
- const base = new URL('./markdownEditorControls/', import.meta.url).href;
100
- modules.filter(m => !loaded.has(m)).forEach(m => { loaded.add(m); import(`${base}${m}.js`); });
97
+ const set = this.constructor.controlSets[this.controls];
98
+ if(!set) return;
99
+ Control.load(Object.values(set));
101
100
  }
102
101
 
103
102
  connectedCallback() {
104
103
  super.connectedCallback();
104
+ if(!this.hasAttribute('controlled')) this.setAttribute('controlled', '');
105
105
  if(this.hasAttribute('value')){
106
106
  this[defaultValue] = this.getAttribute('value');
107
107
  }
@@ -303,6 +303,71 @@ export default class MarkdownEditor extends ShadowComponent {
303
303
  });
304
304
  }
305
305
 
306
+ /*
307
+ Unified Formatting API — implemented as text-manipulation wrappers
308
+ over the helpers above so controls (kc-bold, kc-italic, etc.) can
309
+ target this host the same way they target HtmlEditor.
310
+ */
311
+ bold() { this.wrapSelection('**', '**', 'bold text'); return this; }
312
+ italic() { this.wrapSelection('_', '_', 'italic text'); return this; }
313
+ strikethrough() { this.wrapSelection('~~', '~~', 'strikethrough'); return this; }
314
+ inlineCode() {
315
+ const sel = this.getSelection();
316
+ if(sel.text.includes('\n')) this.wrapSelection('```\n', '\n```', 'code');
317
+ else this.wrapSelection('`', '`', 'code');
318
+ return this;
319
+ }
320
+ quote() { this.insertLinePrefix('> '); return this; }
321
+ bulletList() { this.insertLinePrefix('- '); return this; }
322
+ numberList() {
323
+ const ta = this.textarea;
324
+ if(!ta) return this;
325
+ if(this.mode !== 'write') this.mode = 'write';
326
+ this.updateComplete.then(() => {
327
+ ta.focus();
328
+ const { selectionStart: start, selectionEnd: end, value } = ta;
329
+ const lineStart = value.lastIndexOf('\n', start - 1) + 1;
330
+ const lineEndIdx = value.indexOf('\n', end);
331
+ const lineEnd = lineEndIdx === -1 ? value.length : lineEndIdx;
332
+ const block = value.substring(lineStart, lineEnd);
333
+ const lines = block.split('\n');
334
+ const numbered = /^\d+\. /;
335
+ const nonEmpty = lines.filter(l => l.length > 0);
336
+ const allNumbered = nonEmpty.length > 0 && nonEmpty.every(l => numbered.test(l));
337
+ let processed;
338
+ if(allNumbered){
339
+ processed = lines.map(l => l.replace(numbered, ''));
340
+ } else {
341
+ let n = 1;
342
+ processed = lines.map(l => {
343
+ if(!l) return l;
344
+ const stripped = l.replace(numbered, '');
345
+ return `${n++}. ${stripped}`;
346
+ });
347
+ }
348
+ const nextBlock = processed.join('\n');
349
+ const next = value.substring(0, lineStart) + nextBlock + value.substring(lineEnd);
350
+ ta.value = next;
351
+ ta.selectionStart = lineStart;
352
+ ta.selectionEnd = lineStart + nextBlock.length;
353
+ this.value = next;
354
+ ta.dispatchEvent(new Event('input', { bubbles: true }));
355
+ });
356
+ return this;
357
+ }
358
+ formatBlock(tag) {
359
+ const t = (tag || '').toLowerCase();
360
+ if(/^h[1-6]$/.test(t)){
361
+ const lvl = parseInt(t.slice(1), 10);
362
+ this.insertLinePrefix('#'.repeat(lvl) + ' ', /^#{1,6} /);
363
+ } else if(t === 'blockquote'){
364
+ this.quote();
365
+ } else if(t === 'pre'){
366
+ this.wrapSelection('```\n', '\n```', 'code');
367
+ }
368
+ return this;
369
+ }
370
+
306
371
  /*
307
372
  Protected Members
308
373
  */
@@ -375,7 +440,7 @@ export default class MarkdownEditor extends ShadowComponent {
375
440
  const newMode = e.detail?.tab;
376
441
  if(!newMode || newMode === this.mode) return;
377
442
  this.mode = newMode;
378
- this.dispatchEvent(new CustomEvent('mode-change', {
443
+ this.dispatchEvent(new CustomEvent('mode-changed', {
379
444
  detail: { mode: newMode },
380
445
  bubbles: true
381
446
  }));
@@ -520,74 +585,67 @@ export default class MarkdownEditor extends ShadowComponent {
520
585
  be imported eagerly. Lit creates the elements as plain HTMLElements
521
586
  until their definitions arrive, then the browser upgrades them in place.
522
587
  */
523
- static loadedModules = new Set();
524
- static controlModules = {
525
- minimal: ['Menu', 'FormatBlock', 'Bold', 'Italic', 'BulletList', 'NumberedList'],
526
- normal: ['Menu', 'FormatBlock', 'Bold', 'Italic', 'Quote', 'Code', 'Link', 'BulletList', 'NumberedList'],
527
- full: ['Menu', 'FormatBlock', 'Bold', 'Italic', 'Strikethrough', 'Quote', 'Code', 'Link', 'Image', 'Table', 'BulletList', 'NumberedList', 'SpeechToText']
528
- };
529
-
530
588
  static controlSets = {
531
589
  '': { top: null, bottom: null },
532
590
  none: { top: null, bottom: null },
533
591
  minimal: {
534
592
  top: html`
535
- <k-md-menu label="Heading">
536
- <k-icon slot="trigger" name="text_fields"></k-icon>
537
- <k-md-format-block tag="h1"></k-md-format-block>
538
- <k-md-format-block tag="h3"></k-md-format-block>
539
- <k-md-format-block tag="h5"></k-md-format-block>
540
- </k-md-menu>
541
- <k-md-bold></k-md-bold>
542
- <k-md-italic></k-md-italic>
543
- <k-md-bullet-list></k-md-bullet-list>
544
- <k-md-numbered-list></k-md-numbered-list>
593
+ <kc-menu>
594
+ <k-icon slot="icon" name="text_fields"></k-icon>
595
+ <kc-format-block tag="h1"></kc-format-block>
596
+ <kc-format-block tag="h3"></kc-format-block>
597
+ <kc-format-block tag="h5"></kc-format-block>
598
+ </kc-menu>
599
+ <kc-bold></kc-bold>
600
+ <kc-italic></kc-italic>
601
+ <kc-bullet-list></kc-bullet-list>
602
+ <kc-number-list></kc-number-list>
545
603
  `,
546
604
  bottom: null
547
605
  },
548
606
  normal: {
549
607
  top: html`
550
- <k-md-menu label="Heading">
551
- <k-icon slot="trigger" name="text_fields"></k-icon>
552
- <k-md-format-block tag="h1"></k-md-format-block>
553
- <k-md-format-block tag="h2"></k-md-format-block>
554
- <k-md-format-block tag="h3"></k-md-format-block>
555
- <k-md-format-block tag="h4"></k-md-format-block>
556
- <k-md-format-block tag="h5"></k-md-format-block>
557
- <k-md-format-block tag="h6"></k-md-format-block>
558
- </k-md-menu>
559
- <k-md-bold></k-md-bold>
560
- <k-md-italic></k-md-italic>
561
- <k-md-quote></k-md-quote>
562
- <k-md-code></k-md-code>
563
- <k-md-link></k-md-link>
564
- <k-md-bullet-list></k-md-bullet-list>
565
- <k-md-numbered-list></k-md-numbered-list>
608
+ <kc-menu>
609
+ <k-icon slot="icon" name="text_fields"></k-icon>
610
+ <kc-format-block tag="h1"></kc-format-block>
611
+ <kc-format-block tag="h2"></kc-format-block>
612
+ <kc-format-block tag="h3"></kc-format-block>
613
+ <kc-format-block tag="h4"></kc-format-block>
614
+ <kc-format-block tag="h5"></kc-format-block>
615
+ <kc-format-block tag="h6"></kc-format-block>
616
+ </kc-menu>
617
+ <kc-bold></kc-bold>
618
+ <kc-italic></kc-italic>
619
+ <kc-quote></kc-quote>
620
+ <kc-inline-code></kc-inline-code>
621
+ <kc-md-link></kc-md-link>
622
+ <kc-bullet-list></kc-bullet-list>
623
+ <kc-number-list></kc-number-list>
566
624
  `,
567
625
  bottom: null
568
626
  },
569
627
  full: {
570
628
  top: html`
571
- <k-md-menu label="Heading">
572
- <k-icon slot="trigger" name="text_fields"></k-icon>
573
- <k-md-format-block tag="h1"></k-md-format-block>
574
- <k-md-format-block tag="h2"></k-md-format-block>
575
- <k-md-format-block tag="h3"></k-md-format-block>
576
- <k-md-format-block tag="h4"></k-md-format-block>
577
- <k-md-format-block tag="h5"></k-md-format-block>
578
- <k-md-format-block tag="h6"></k-md-format-block>
579
- </k-md-menu>
580
- <k-md-bold></k-md-bold>
581
- <k-md-italic></k-md-italic>
582
- <k-md-strikethrough></k-md-strikethrough>
583
- <k-md-quote></k-md-quote>
584
- <k-md-code></k-md-code>
585
- <k-md-link></k-md-link>
586
- <k-md-image></k-md-image>
587
- <k-md-table></k-md-table>
588
- <k-md-bullet-list></k-md-bullet-list>
589
- <k-md-numbered-list></k-md-numbered-list>
590
- <k-md-speech-to-text></k-md-speech-to-text>
629
+ <kc-menu>
630
+ <k-icon slot="icon" name="text_fields"></k-icon>
631
+ <kc-format-block tag="h1"></kc-format-block>
632
+ <kc-format-block tag="h2"></kc-format-block>
633
+ <kc-format-block tag="h3"></kc-format-block>
634
+ <kc-format-block tag="h4"></kc-format-block>
635
+ <kc-format-block tag="h5"></kc-format-block>
636
+ <kc-format-block tag="h6"></kc-format-block>
637
+ </kc-menu>
638
+ <kc-bold></kc-bold>
639
+ <kc-italic></kc-italic>
640
+ <kc-strikethrough></kc-strikethrough>
641
+ <kc-quote></kc-quote>
642
+ <kc-inline-code></kc-inline-code>
643
+ <kc-md-link></kc-md-link>
644
+ <kc-md-image></kc-md-image>
645
+ <kc-md-table></kc-md-table>
646
+ <kc-bullet-list></kc-bullet-list>
647
+ <kc-number-list></kc-number-list>
648
+ <kc-md-speech-to-text></kc-md-speech-to-text>
591
649
  `,
592
650
  bottom: null
593
651
  }
@@ -2,6 +2,7 @@ import { html, css, nothing } from '../lit-all.min.js';
2
2
  import ShadowComponent from './ShadowComponent.js';
3
3
  import { bound, closest } from '../utils/number.js';
4
4
  import { commaSeparatedArray } from '../utils/propConverters.js';
5
+ import Control from './controls/Control.js';
5
6
 
6
7
  export default class Pagination extends ShadowComponent {
7
8
  /*
@@ -37,15 +38,15 @@ export default class Pagination extends ShadowComponent {
37
38
  /*
38
39
  Lifecycle
39
40
  */
41
+ connectedCallback() {
42
+ super.connectedCallback();
43
+ if(!this.hasAttribute('controlled')) this.setAttribute('controlled', '');
44
+ }
45
+
40
46
  loadControls() {
41
- const modules = this.constructor.controlModules[this.controls];
42
- if (!modules?.length) return;
43
- const loaded = this.constructor.loadedModules;
44
- const base = new URL('./paginationControls/', import.meta.url).href;
45
- modules.filter(m => !loaded.has(m)).forEach(m => {
46
- loaded.add(m);
47
- import(`${base}${m}.js`);
48
- });
47
+ const set = this.constructor.controlSets[this.controls];
48
+ if(!set) return;
49
+ Control.load(Object.values(set));
49
50
  }
50
51
 
51
52
  willUpdate(changedProperties) {
@@ -174,32 +175,26 @@ export default class Pagination extends ShadowComponent {
174
175
  }
175
176
  `;
176
177
 
177
- static loadedModules = new Set();
178
- static controlModules = {
179
- simple: ['PrevPage', 'NextPage', 'PageInfo'],
180
- full: ['FirstPage', 'PrevPage', 'GotoPage', 'NextPage', 'LastPage', 'ItemsPerPage']
181
- };
182
-
183
178
  static controlSets = {
184
179
  '': { left: null, right: null },
185
180
  none: { left: null, right: null },
186
181
  simple: {
187
182
  left: html`
188
- <k-pg-prev></k-pg-prev>
189
- <k-pg-page-info></k-pg-page-info>
190
- <k-pg-next></k-pg-next>
183
+ <kc-pg-prev></kc-pg-prev>
184
+ <kc-pg-page-info></kc-pg-page-info>
185
+ <kc-pg-next></kc-pg-next>
191
186
  `,
192
187
  right: null
193
188
  },
194
189
  full: {
195
190
  left: html`
196
- <k-pg-first></k-pg-first>
197
- <k-pg-prev></k-pg-prev>
198
- <k-pg-goto-page></k-pg-goto-page>
199
- <k-pg-next></k-pg-next>
200
- <k-pg-last></k-pg-last>
191
+ <kc-pg-first></kc-pg-first>
192
+ <kc-pg-prev></kc-pg-prev>
193
+ <kc-pg-goto-page></kc-pg-goto-page>
194
+ <kc-pg-next></kc-pg-next>
195
+ <kc-pg-last></kc-pg-last>
201
196
  `,
202
- right: html`<k-pg-items-per-page></k-pg-items-per-page>`
197
+ right: html`<kc-pg-items-per-page></kc-pg-items-per-page>`
203
198
  }
204
199
  };
205
200
  }
@@ -74,6 +74,11 @@ export default class Table extends ShadowComponent {
74
74
 
75
75
  /* Lifecycle Callbacks */
76
76
 
77
+ connectedCallback() {
78
+ super.connectedCallback();
79
+ if(!this.hasAttribute('controlled')) this.setAttribute('controlled', '');
80
+ }
81
+
77
82
  firstUpdated() {
78
83
  this.setData({
79
84
  records: this.records,
@@ -0,0 +1,19 @@
1
+ import ButtonControl from './ButtonControl.js';
2
+ import { html } from '../../lit-all.min.js';
3
+ import '../Icon.js';
4
+
5
+ export default class AlignCenter extends ButtonControl {
6
+ static requires = ['alignCenter'];
7
+ static hostMode = 'visual';
8
+
9
+ connectedCallback() {
10
+ super.connectedCallback();
11
+ if(!this.hasAttribute('title')) this.title = 'Align Center';
12
+ }
13
+
14
+ handleAction() { this.host?.alignCenter?.(); }
15
+
16
+ render() { return html`<slot><k-icon name="format_align_center"></k-icon></slot>`; }
17
+ }
18
+
19
+ customElements.define('kc-align-center', AlignCenter);